<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://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"
     xmlns:cf="https://www.futureplc.com/rss/content-flags"
>
    <channel>
                    <atom:link rel="alternate" hreflang="en-GB"
                       href="https://www.pcgamer.com/uk/feeds/tag/call-of-duty/"
                       type="application/rss+xml"/>
                            <title><![CDATA[ Latest from PC Gamer UK in Call-of-duty ]]></title>
                <link>https://www.pcgamer.com/uk/games/fps/call-of-duty</link>
        <description><![CDATA[ All the latest call-of-duty content from the PC Gamer  UK team ]]></description>
                                    <lastBuildDate>Thu, 12 Nov 2026 15:43:03 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ Conor McGregor picked up and flipped a Call of Duty dev during the making of Infinite Warfare: 'I wanted him to do something really physical, to demonstrate how capable he is' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Call of Duty doesn't have much luck with its stunt casting. Two years after Infinity Ward put Kevin Spacey in Advanced Warfare—before he was accused of sexual assault—it turned MMA fighter Conor McGregor into a future soldier, Captain Bradley Fillion, in <a href="https://www.pcgamer.com/uk/call-of-duty-infinite-warfare/" target="_blank">Infinite Warfare</a>. </p><p>McGregor's role was quite small, despite being one of the game's antagonists, and ended in his character's demise, but co-directors Jordan Hirsh and Taylor Kurosaki didn't want to cut any corners when it came to the mo-cap. </p><p>At the time, co-directors Hirsh and Kurosaki were trying to shake things up in regards to mo-cap. "I think that the folks at Infinity Ward probably thought I was a little crazy when I came in," Kurosaki tells us. "I think for every game they had done before that, you would maybe do some mocap or a cool takedown or a finisher, and then you'd have actors that would come into a VO booth and you'd have them come in one at a time and they'd read their lines and it’d be stitched together and then you're done. And they built a performance capture stage specifically for this project."</p><p>With Infinite Warfare, the team was doing full performance capture, so it needed its actors to get more physical. </p><p>Kurosaki remembers, after McGregor flipped him, that he "did this punch [right in front of my face] that I could feel the wind from. We're just rehearsing and figuring out the blocking. Everyone on the stage was, ‘Whoa, that was crazy! It was so fast!’ And of course, I had a different perspective than everyone else. Then everyone was laughing, and he helped me up, and I'm laughing. And then all of a sudden, this giant bead of sweat starts running down my face. I had this adrenaline, even though I knew I was perfectly safe. My body was just doing something that I couldn't control."</p><p>A few years later, McGregor started racking up criminal charges for assault. In 2019, he attacked a man for not accepting a drink in a Dublin pub. He pleaded guilty. In the same year, police in Ireland started investigating McGregor over allegations of multiple sexual assaults. He was not prosecuted, but a civil claim was made against him by Nikita Hand. In 2024, <a href="https://www.theguardian.com/world/2026/oct/14/conor-mcgregor-nikita-hand-civil-rape-case" target="_blank">an Irish jury found that McGregor raped Hand</a>.</p><p>Also in 2024, McGregor starred in Hitman, as one of its celebrity Elusive Targets—his second videogame role outside of the UFC games. <a href="https://www.pcgamer.com/games/action/conor-mcgregor-cut-from-hitman-effective-immediately-after-jury-orders-him-to-pay-usd260-000-to-a-woman-who-accused-him-of-rape/" target="_blank">IO Interactive stopped working with him</a> after the ruling and removed him from the game as an Elusive Target. </p><p>Activision, unlike IO, left McGregor in the Infinite Warfare campaign. The fighter has not made any other videogame appearances since then. Prior to the ruling, he was a playable fighter in EA's UFC games, starting in 2014. He was the co-cover athlete in 2016's UFC 2 and the solo cover athlete in 2018's UFC 3. His last appearance in the series was in UFC 5 in 2023. </p><p>McGregor has had no scripted television cameos since 2024, appearing strictly as himself for promotional spots and interviews—including a guest appearance on The Tonight Show Starring Jimmy Fallon in June 2026. Fallon and NBC were heavily criticised for inviting McGregor onto the show. He is also attached to host and executive-produce a Fox Nation competition series titled World's Baddest Man, slated for 2027.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W3Rr8e"></div>                            </div>                            <script src="https://kwizly.com/embed/W3Rr8e.js" async=""></script><div class="product"><a data-dimension112="3457101a-deaf-11f1-8759-3dde8a995a5c" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="3457101a-deaf-11f1-8759-3dde8a995a5c" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/conor-mcgregor-picked-up-and-flipped-a-call-of-duty-dev-during-the-making-of-infinite-warfare-i-wanted-him-to-do-something-really-physical-to-demonstrate-how-capable-he-is/</link>
                                                                            <description>
                            <![CDATA[ The MMA fighter and failed Irish presidential candidate had a small role in the 2016 shooter. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">GeFaHtECQgswXH3rK7abmm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7eeissVNyfbgehTuYCLKah-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 12 Nov 2026 15:43:03 +0000</pubDate>                                                                                                                                <updated>Thu, 12 Nov 2026 15:51:15 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Fraser Brown ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/wKNKbq8mrKbjjBvak9oDSh-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                        <dc:contributor><![CDATA[ Jeremy Peel ]]></dc:contributor>
                                                                    <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7eeissVNyfbgehTuYCLKah-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Conor McGregor]]></media:description>                                                            <media:text><![CDATA[Conor McGregor]]></media:text>
                                <media:title type="plain"><![CDATA[Conor McGregor]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7eeissVNyfbgehTuYCLKah-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Call of Duty doesn't have much luck with its stunt casting. Two years after Infinity Ward put Kevin Spacey in Advanced Warfare—before he was accused of sexual assault—it turned MMA fighter Conor McGregor into a future soldier, Captain Bradley Fillion, in <a href="https://www.pcgamer.com/uk/call-of-duty-infinite-warfare/" target="_blank">Infinite Warfare</a>. </p><p>McGregor's role was quite small, despite being one of the game's antagonists, and ended in his character's demise, but co-directors Jordan Hirsh and Taylor Kurosaki didn't want to cut any corners when it came to the mo-cap. </p><p>At the time, co-directors Hirsh and Kurosaki were trying to shake things up in regards to mo-cap. "I think that the folks at Infinity Ward probably thought I was a little crazy when I came in," Kurosaki tells us. "I think for every game they had done before that, you would maybe do some mocap or a cool takedown or a finisher, and then you'd have actors that would come into a VO booth and you'd have them come in one at a time and they'd read their lines and it’d be stitched together and then you're done. And they built a performance capture stage specifically for this project."</p><p>With Infinite Warfare, the team was doing full performance capture, so it needed its actors to get more physical. </p><p>Kurosaki remembers, after McGregor flipped him, that he "did this punch [right in front of my face] that I could feel the wind from. We're just rehearsing and figuring out the blocking. Everyone on the stage was, ‘Whoa, that was crazy! It was so fast!’ And of course, I had a different perspective than everyone else. Then everyone was laughing, and he helped me up, and I'm laughing. And then all of a sudden, this giant bead of sweat starts running down my face. I had this adrenaline, even though I knew I was perfectly safe. My body was just doing something that I couldn't control."</p><p>A few years later, McGregor started racking up criminal charges for assault. In 2019, he attacked a man for not accepting a drink in a Dublin pub. He pleaded guilty. In the same year, police in Ireland started investigating McGregor over allegations of multiple sexual assaults. He was not prosecuted, but a civil claim was made against him by Nikita Hand. In 2024, <a href="https://www.theguardian.com/world/2026/oct/14/conor-mcgregor-nikita-hand-civil-rape-case" target="_blank">an Irish jury found that McGregor raped Hand</a>.</p><p>Also in 2024, McGregor starred in Hitman, as one of its celebrity Elusive Targets—his second videogame role outside of the UFC games. <a href="https://www.pcgamer.com/games/action/conor-mcgregor-cut-from-hitman-effective-immediately-after-jury-orders-him-to-pay-usd260-000-to-a-woman-who-accused-him-of-rape/" target="_blank">IO Interactive stopped working with him</a> after the ruling and removed him from the game as an Elusive Target. </p><p>Activision, unlike IO, left McGregor in the Infinite Warfare campaign. The fighter has not made any other videogame appearances since then. Prior to the ruling, he was a playable fighter in EA's UFC games, starting in 2014. He was the co-cover athlete in 2016's UFC 2 and the solo cover athlete in 2018's UFC 3. His last appearance in the series was in UFC 5 in 2023. </p><p>McGregor has had no scripted television cameos since 2024, appearing strictly as himself for promotional spots and interviews—including a guest appearance on The Tonight Show Starring Jimmy Fallon in June 2026. Fallon and NBC were heavily criticised for inviting McGregor onto the show. He is also attached to host and executive-produce a Fox Nation competition series titled World's Baddest Man, slated for 2027.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W3Rr8e"></div>                            </div>                            <script src="https://kwizly.com/embed/W3Rr8e.js" async=""></script><div class="product"><a data-dimension112="3457101a-deaf-11f1-8759-3dde8a995a5c" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="3457101a-deaf-11f1-8759-3dde8a995a5c" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Note to self: If playing Call of Duty in an airport, don't say words like 'bomb' lest you want to evacuate an entire plane ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I'll be the first to admit I've said some <em>incredibly questionable-sounding things </em>while playing videogames. Or talking about them in public. But I would like to think that the one place where I would be extra careful about the words coming out of my mouth are in an airport, or on an airplane. Really, anywhere with an insane amount of security and an ever-pervasive fear of anything explosives-related.</p><p>Unfortunately, for passengers on board a Frontier Airlines flight earlier this week, however, one such gamer was not so cautious. As reported by <a href="https://www.cbsnews.com/losangeles/news/plane-evacuated-at-california-airport-after-call-of-duty-gameplay-is-mistaken-for-bomb-threat-police-say/" target="_blank">CBS News</a>, one plane at California's Ontario International Airport had to be evacuated over a bomb scare, only for it to be some guy playing Call of Duty with his pal.</p><p>According to reports, one passenger overheard words such as "bomb" and "explosion" and, rightly so, went and told staff about it. The situation led to both the plane and the east wing of Terminal 2 being evacuated, and a check of the aircraft which revealed that no explosives or bombs were on board.</p><p>After detaining and speaking to the culprit, it was revealed that he was, in fact, on FaceTime with his buddy while playing Call of Duty together. He was released without any charges, and the flight was reboarded and departed later that night.</p><p>I do feel a little bad for laughing about it—as a nervous flyer, I know for a fact that if I had been that passenger overhearing the conversation I may very well have gone into full-blown panic mode. I don't even like when someone doesn't put their phone on airplane mode as we're taking off!</p><p>But I'm also the type of person to watch my friend's Discord streams while I'm out and about, and I honestly <em>dread </em>to think about the kind of things passerbys have heard me say while spectating games. Hell, I'm sure even my neighbours have heard some absurd sentences leave my mouth when I've been raiding in Final Fantasy 14 with the windows wide open. If you're reading this neighbours, I'm sorry.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/note-to-self-if-playing-call-of-duty-in-an-airport-dont-say-words-like-bomb-lest-you-want-to-evacuate-an-entire-plane/</link>
                                                                            <description>
                            <![CDATA[ Oopsie daisy. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wZH3tyF3FYTRqqmGnSmmWH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/5EWnGC9pvFVHwRsPbdM4uV-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 10 Nov 2026 17:15:33 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Mollie Taylor ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/W9VNF2qWSreZXDkwcVR2tF-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/5EWnGC9pvFVHwRsPbdM4uV-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Soap from Call of Duty making a face]]></media:description>                                                            <media:text><![CDATA[Soap from Call of Duty making a face]]></media:text>
                                <media:title type="plain"><![CDATA[Soap from Call of Duty making a face]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/5EWnGC9pvFVHwRsPbdM4uV-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I'll be the first to admit I've said some <em>incredibly questionable-sounding things </em>while playing videogames. Or talking about them in public. But I would like to think that the one place where I would be extra careful about the words coming out of my mouth are in an airport, or on an airplane. Really, anywhere with an insane amount of security and an ever-pervasive fear of anything explosives-related.</p><p>Unfortunately, for passengers on board a Frontier Airlines flight earlier this week, however, one such gamer was not so cautious. As reported by <a href="https://www.cbsnews.com/losangeles/news/plane-evacuated-at-california-airport-after-call-of-duty-gameplay-is-mistaken-for-bomb-threat-police-say/" target="_blank">CBS News</a>, one plane at California's Ontario International Airport had to be evacuated over a bomb scare, only for it to be some guy playing Call of Duty with his pal.</p><p>According to reports, one passenger overheard words such as "bomb" and "explosion" and, rightly so, went and told staff about it. The situation led to both the plane and the east wing of Terminal 2 being evacuated, and a check of the aircraft which revealed that no explosives or bombs were on board.</p><p>After detaining and speaking to the culprit, it was revealed that he was, in fact, on FaceTime with his buddy while playing Call of Duty together. He was released without any charges, and the flight was reboarded and departed later that night.</p><p>I do feel a little bad for laughing about it—as a nervous flyer, I know for a fact that if I had been that passenger overhearing the conversation I may very well have gone into full-blown panic mode. I don't even like when someone doesn't put their phone on airplane mode as we're taking off!</p><p>But I'm also the type of person to watch my friend's Discord streams while I'm out and about, and I honestly <em>dread </em>to think about the kind of things passerbys have heard me say while spectating games. Hell, I'm sure even my neighbours have heard some absurd sentences leave my mouth when I've been raiding in Final Fantasy 14 with the windows wide open. If you're reading this neighbours, I'm sorry.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Modern Warfare 4's newest map is actually older than the Gen Z & Alpha teens who will play it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>After 23 mainline games, there are far more Call of Duty maps than anyone can reasonably remember. That's why I'm impressed it took just one screenshot for several fans (with back pain, presumably) to clock that an upcoming Modern Warfare 4 map is actually a remake of a map that's over 20 years old. </p><p>Backstab, the new 6v6 map arriving on November 6, is a dead ringer for <a href="https://callofduty.fandom.com/wiki/Burgundy">Burgundy</a>, first seen in Call of Duty 2 way back in 2005. That means Backstab is older than the teenagers currently playing Call of Duty—do with that information what you will.</p><p>A number of people noticed this around the same time, but I'll credit Reddit user <a href="https://www.reddit.com/r/modernwarfare4/s/hxFsMsjkPw">wizward64</a> for providing helpful visuals.</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:2560px;"><p class="vanilla-image-block" style="padding-top:36.02%;"><img id="8ZZjVCYN6Sif9QbnZDDxqc" name="burgundy backstab comparison" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/8ZZjVCYN6Sif9QbnZDDxqc-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="922" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Apologies to the reader typing "This was a classic, show some respect!", but there's no way I would've noticed the resemblance on my own. I played Call of Duty 2 on the Xbox 360 when it was new, but not all that much multiplayer. I really like the <a href="https://youtu.be/QQrsnytVwns?t=49" target="_blank">look of the original Burgundy</a>, though: The desaturated green grass and beige brickwork of the French countryside still looks so clean and attractive 21 years later. I'm also now wondering if my favorite Day of Defeat: Source map (<a href="https://dayofdefeat.fandom.com/wiki/Donner/Gallery">Donner</a>) snuck in some of these CoD 2 assets, or if all WW2 shooters of this era were riffing on the same Saving Private Ryan scenes.</p><p>The layouts are near 1:1, which is neat, though the theming is clearly altered. Burgundy was a WW2 map in France (duh) and Backstab appears to take place in either Russia or North Korea (I think I see Cyrillic script on those signs, so leaning toward the former). Backstab is also snowy, so maybe this town will exist in the eventual Russian chunk of the Hajin DMZ map.</p><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/QQrsnytVwns?start=39" allowfullscreen=""></iframe></div></div><p>Burgundy was a pretty small map for Call of Duty 2, and I expect it'll feel even smaller at Modern Warfare 4's quicker pace. The map's signature feature was a pair of two-story buildings that overlooked the central courtyard from opposite sides of the battlefield. High windows with usable machine gun emplacements made these buildings important for map control, but those windows will presumably become regular sniper nests in Backstab.</p><p>Call of Duty is famous for recycling old maps, but a deep dive into the vault like this feels different from the usual. This isn't Infinity Ward remaking a popular map to please expectant fans like we see with yearly iterations of Nuketown and Shipment, but instead pulling a relatively unknown goodie and refreshing it for a new audience. </p><p>The OG Call of Duty studio has apparently been doing this for a while and I didn't notice: As commenters point out in that same Reddit thread, the Modern Warfare 2 (2022) map <a href="https://callofduty.fandom.com/wiki/Taraq">Taraq</a> was a remake of CoD 1's <a href="https://callofduty.fandom.com/wiki/Neuville">Neuville</a> and Modern Warfare 2019 map <a href="https://callofduty.fandom.com/wiki/Suldal_Harbor">Suldal Harbor</a> was a remake of CoD 1's <a href="https://callofduty.fandom.com/wiki/Harbor">Harbor</a>. Hey, those maps were pretty good.</p><div class="product"><a data-dimension112="e13686bc-d3ce-11f1-b768-a7a6c08becad" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="e13686bc-d3ce-11f1-b768-a7a6c08becad" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/modern-warfare-4s-newest-map-is-actually-older-than-the-gen-z-and-alpha-teens-who-will-play-it/</link>
                                                                            <description>
                            <![CDATA[ This map can drink. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">38J3bQGevA2YL33PxPRBQ6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/X2xUE5bZdxT3QrB6vMvCk-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 29 Oct 2026 19:36:41 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/X2xUE5bZdxT3QrB6vMvCk-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Modern Warfare 4]]></media:description>                                                            <media:text><![CDATA[Modern Warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[Modern Warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/X2xUE5bZdxT3QrB6vMvCk-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>After 23 mainline games, there are far more Call of Duty maps than anyone can reasonably remember. That's why I'm impressed it took just one screenshot for several fans (with back pain, presumably) to clock that an upcoming Modern Warfare 4 map is actually a remake of a map that's over 20 years old. </p><p>Backstab, the new 6v6 map arriving on November 6, is a dead ringer for <a href="https://callofduty.fandom.com/wiki/Burgundy">Burgundy</a>, first seen in Call of Duty 2 way back in 2005. That means Backstab is older than the teenagers currently playing Call of Duty—do with that information what you will.</p><p>A number of people noticed this around the same time, but I'll credit Reddit user <a href="https://www.reddit.com/r/modernwarfare4/s/hxFsMsjkPw">wizward64</a> for providing helpful visuals.</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:2560px;"><p class="vanilla-image-block" style="padding-top:36.02%;"><img id="8ZZjVCYN6Sif9QbnZDDxqc" name="burgundy backstab comparison" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/8ZZjVCYN6Sif9QbnZDDxqc-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="922" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Apologies to the reader typing "This was a classic, show some respect!", but there's no way I would've noticed the resemblance on my own. I played Call of Duty 2 on the Xbox 360 when it was new, but not all that much multiplayer. I really like the <a href="https://youtu.be/QQrsnytVwns?t=49" target="_blank">look of the original Burgundy</a>, though: The desaturated green grass and beige brickwork of the French countryside still looks so clean and attractive 21 years later. I'm also now wondering if my favorite Day of Defeat: Source map (<a href="https://dayofdefeat.fandom.com/wiki/Donner/Gallery">Donner</a>) snuck in some of these CoD 2 assets, or if all WW2 shooters of this era were riffing on the same Saving Private Ryan scenes.</p><p>The layouts are near 1:1, which is neat, though the theming is clearly altered. Burgundy was a WW2 map in France (duh) and Backstab appears to take place in either Russia or North Korea (I think I see Cyrillic script on those signs, so leaning toward the former). Backstab is also snowy, so maybe this town will exist in the eventual Russian chunk of the Hajin DMZ map.</p><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/QQrsnytVwns?start=39" allowfullscreen=""></iframe></div></div><p>Burgundy was a pretty small map for Call of Duty 2, and I expect it'll feel even smaller at Modern Warfare 4's quicker pace. The map's signature feature was a pair of two-story buildings that overlooked the central courtyard from opposite sides of the battlefield. High windows with usable machine gun emplacements made these buildings important for map control, but those windows will presumably become regular sniper nests in Backstab.</p><p>Call of Duty is famous for recycling old maps, but a deep dive into the vault like this feels different from the usual. This isn't Infinity Ward remaking a popular map to please expectant fans like we see with yearly iterations of Nuketown and Shipment, but instead pulling a relatively unknown goodie and refreshing it for a new audience. </p><p>The OG Call of Duty studio has apparently been doing this for a while and I didn't notice: As commenters point out in that same Reddit thread, the Modern Warfare 2 (2022) map <a href="https://callofduty.fandom.com/wiki/Taraq">Taraq</a> was a remake of CoD 1's <a href="https://callofduty.fandom.com/wiki/Neuville">Neuville</a> and Modern Warfare 2019 map <a href="https://callofduty.fandom.com/wiki/Suldal_Harbor">Suldal Harbor</a> was a remake of CoD 1's <a href="https://callofduty.fandom.com/wiki/Harbor">Harbor</a>. Hey, those maps were pretty good.</p><div class="product"><a data-dimension112="e13686bc-d3ce-11f1-b768-a7a6c08becad" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="e13686bc-d3ce-11f1-b768-a7a6c08becad" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty: Modern Warfare 4 review ]]></title>
                                                                                                <dc:content><![CDATA[ <p>There is a new game titled "Call of Duty" every year, but it's not every year that Call of Duty is really <em>back.</em> </p><div  class="fancy-box"><div class="fancy_box-title">NEED TO KNOW</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>What is it </strong>The next Call of Duty from the original creators of Call of Duty<br /><strong>Release date </strong>October 23, 2026<br /><strong>Expect to pay </strong>$70/£60<br /><strong>Publisher </strong>Activision Blizzard<br /><strong>Developer </strong>Infinity Ward<br /><strong>Reviewed on </strong>RTX 5090, Ryzen 7 9800X3D 4.7 GHz, 64GB RAM<br /><strong>Multiplayer </strong>Up to 60 players<br /><strong>Steam Deck </strong>Unsupported<br /><strong>Link </strong><a data-analytics-id="inline-link" href="https://www.callofduty.com/" target="_blank">Official site</a></p></div></div><p>The tireless schedule of Activision's load-bearing FPS has resulted in more bad games than good as of late—Modern Warfare 3 was an expansion-sized sequel rushed out the door, Black Ops 6 was a step back for multiplayer, and its immediate followup Black Ops 7 was clocked as superfluous and uninteresting even by rain-or-shine fans. These back-to-back games, shouldered by Treyarch, Sledgehammer, and Raven, had cracks and compromises that suggested the Call of Duty machine just can't keep up with both "good" and "fast" anymore.</p><p>Modern Warfare 4's greatness shows how right that is. This is an extravagant package on all fronts: A kinetic 6v6 FPS with truly excellent gunplay, a fun campaign that doesn't just play the hits, and an expansive extraction "mode" that would be its own game if any other name were on the box.</p><p>I have complaints, but this is what it looks like when Call of Duty is in the pocket. The best Call of Duty studio got to take its time (four years, tied with the longest in series history) and it shows. </p><h3 class="article-body__section" id="section-multiplayer"><span>Multiplayer</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vtj5Rdg6sjUyREPAw4Pqzj" name="20261027105633_1" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/vtj5Rdg6sjUyREPAw4Pqzj-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>These days, whether or not a Call of Duty clicks with me begins and ends with the guns—how they look, sound, animate, and change with attachments—and Infinity Ward is simply unmatched on those details. Modern Warfare 4's guns spit out layered, cacophonous blasts that will overpower your voice chat by default (as they should). They shake your world as you shoot them without getting in the way of aim. They reload with personality and flair without wasting time. They're loud and metallic without sounding tinny or plastic, like Treyarch guns always do.</p><p>Modern Warfare 4 has some of the easiest guns to control in the genre, yet in action, they feel substantial and weighty like a milsim. This is the magic trick that Call of Duty studios regularly attempt, but only this one has mastered.</p><div><blockquote><p>Infinity Ward just loves being extra about guns in ways that make them memorable.</p></blockquote></div><p>Infinity Ward just loves being extra about guns in ways that make them memorable. This time, they've had fun mixing both modern and dated weapons with Korean design language: The KG-7 Vulkan is a functionally standard bolt-action sniper rifle, but its worn wooden body and chipped green paint communicate that it's been fished out of an aging North Korean armory. The Warlord, meanwhile, is a double-barrel shotgun with the profile of a brutalist space vessel—flanked by two translucent plastic tubes that you can watch empty and refill as you use it. It's rad.</p><p>Not every gun is this distinctive—not even Infinity Ward can produce 30+ guns without forgettable chaff—but there is enough personality in this arsenal to latch onto for hours on-end. I've fully leveled three in just a week, tweaking my attachment setup every few matches to suss out each gun's "thing." </p><iframe src="https://content.jwplatform.com/players/CHtuaD5w.html" id="CHtuaD5w" title="CoD Apex Attachment" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen=""></iframe><p>In some cases, Infinity Ward has saved a boring gun by giving it cool attachments. The Han 86 was, to my eye, the most boring assault rifle in the game until I discovered an integrally-suppressed barrel that all-but transforms it into an MP5 in aesthetic and behavior (an FPS classic I'm always happy to see). Attachments feels like bigger choices here than ever before—you can only use five at a time, and instead of stuffing Gunsmith with 20+ barrels, muzzles, and grips that do almost the same thing, there are fewer options per category that are usually the best at what they do. </p><p>Infinity Ward has also inherited prestige attachments—the best idea to come out of those recent Black Ops sequels. Called apex attachments in Modern Warfare 4, they're add-ons unique to each gun that drastically change their behavior or add a new dimension to how they work. You only get these after maxing out a gun (or by having a blueprint with them already applied), so I don't have many yet, but I love the ones I've played with.</p><p>They range from absurd to subtle: </p><ul><li>The <strong>Hyeon Burst's apex</strong> turns it into a hybrid burst-auto rifle, beginning with a sped-up burst and transitioning into slower automatic fire as I hold the trigger.</li><li>The <strong>M4's apex</strong> swaps its traditional magazine for the top-mounted, graphics card-shaped extended mag.</li><li>The <strong>Oris DMR</strong> gets side-mounted throwing knives (yes) that you can flick at enemies to counteract the gun's close-range weakness.</li><li>The <strong>PPSH SMG</strong> gets an underbarrel launcher that spews hot napalm on the ground for some on-the-fly area denial.</li></ul><p>Apex attachments aren't always worth the hype—I found the Mojave revolver's that lets you "fan the hammer" to fire faster underwhelming as an idea—but they're a way more enticing reason to progress in Modern Warfare 4 than camos or gaudy playercards.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rRPQJKhkWqVDM9bnsCrqij" name="20261027105702_1" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/rRPQJKhkWqVDM9bnsCrqij-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><h2 id="war-should-change">War should change</h2><p>Elsewhere in the land of "details you end up caring about after 20 years of Call of Duty" are nice quality-of-life touches in Create-a-Class, like the option to copy killstreak or perk selections to other classes, or assign operator skins on a per-class basis.</p><p>Then there's all that minutia that Infinity Ward is making a big deal about: revamped movement that allows for smoother mantling and sliding, a depth of field trick that unblurs important parts of the screen, less disruptive gunsmoke, better-looking hipfire. At the time, these all struck me as weirdly minor improvements to trumpet as big swings, and it's now clear why: Modern Warfare 4's core multiplayer takes no big swings. It is, at its core, about executing better what was already there. </p><p>That approach has its upsides, like a ridiculous attention to detail, but it underlines Activision's continued disinterest in challenging Call of Duty's status quo. Never has a shooter franchise been so shackled by traditional design choices that haven't been good for years: Killstreaks are <em>still </em>lopsided power trips that bring matches to a screeching halt so that the best player on the server can rack up more kills. Maps are <em>still</em> uninspired square boxes with three lanes and an allergy for verticality. Gunsmith <em>still</em> favors making every gun the same zero-recoil, high-capacity laser beam that wins firefights. It has been 19 years since Call of Duty 4, and I'm still getting shot by a guy who spawned behind me in Team Deathmatch.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4utUVzZJWQgF2MxdoAxAwj" name="20261027105546_1" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/4utUVzZJWQgF2MxdoAxAwj-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>The small country of developers who make Call of Duty could take a special interest in these problems, but they consistently don't. Instead, they design sequels around bolted-on distractions—jetpacks, hero abilities, Omnimovement—while actual big swings, like Warzone and DMZ, happen elsewhere on the main menu. We should all want more from a series that asks us to fork over $70 every year.</p><p>There is one exception, and it's sadly flying under the radar so far. Among Modern Warfare 4's slate of new modes (several of which are competently made but destined to be ignored) is Frontline, a TDM variant with one change: Teams spawn on opposite sides of the map, and those spawns never change. It sounds so minor, but it's the greatest thing to happen to Call of Duty multiplayer in a generation.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/Mfm9mvTkJtZyWkoMKJxXtX-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/4y7D5vsqdcXqybVk8Gsrji-1920-80.jpg" alt="Call of Duty: Modern Warfare 4 multiplayer character skin with a black mask and body armor " /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/B9Xn3FVtk9V33MnFZaYtJi-1920-80.jpg" alt="Modern Warfare 4: Key art showing two soldiers, weapons at the ready, walking around a corner in an open garage area." /><figcaption><small role="credit">Activision</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/KW8rUzLvWMN6KAFCwqEeg5-1920-80.jpg" alt="Key art for MW4, depicting a Korean soldier cautiously stood next to a wall as a building burns in the background." /><figcaption><small role="credit">Activision</small></figcaption></figure></figure><p>I almost couldn't believe how much better Call of Duty plays with consistent spawns: I can confidently move through the map with an idea of where enemies will come from, which gives matches an understandable continuity—a sense of tug-of-war. Matches are slower, lives more deliberate, and I'm not getting shot in the back.</p><p>My life is, for once, not up to the pull of a slot machine. We have territory, they have territory, and there's a middle ground to fight over. It's a winning formula that has worked in better casual shooters for decades (Team Fortress 2, anyone?), and singlehandedly fixes a gigantic problem with these games. Frontline is easily my new favorite way to play Call of Duty and should become the new normal, but knowing Activision and the Call of Duty audience, it'll probably be cycled out of the game and forgotten by next quarter.</p><h3 class="article-body__section" id="section-dmz"><span>DMZ</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VNjGhQEhtfgu6qq3TAsP8E" name="dmz hero 4" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/VNjGhQEhtfgu6qq3TAsP8E-1920-80.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: Activision)</span></figcaption></figure><p>DMZ is, in many ways, proof that Call of Duty shouldn't be afraid to change. </p><p>Going into my first day with the mode, I honestly thought the last thing I needed was another extraction shooter. This genre can be so consuming with its long grinds and punishing stakes that, beyond the occasional Hunt: Showdown night with friends, these days I gravitate to the more consistent, team-based, and casual end of the FPS spectrum. There is no "pick up and play" extraction shooter—or wasn't, until now.</p><p>Infinity Ward has made exactly what it's claiming with DMZ: A full-fledged extraction shooter that could be a standalone game like Escape From Tarkov or Marathon, but is instead the third pillar of a yearly Call of Duty installment. Its systems are extensive, its Hajin City map haunting and expansive, and it might have the least annoying chores of any game like it.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RU5WjrN8JVa9b4N6LCBd3E" name="dmz (8)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/RU5WjrN8JVa9b4N6LCBd3E-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>DMZ definitely has room for improvement, but I'm impressed. When I look at Modern Warfare 4's iterative core multiplayer and wonder what Infinity Ward has been doing these past four years, I realize this is it.</p><p>To me, what sets DMZ apart is how Infinity Ward isn't so interested in loss. Money is easy to make through a combination of valuables, faction assignments, and Dynamic Ops (multi-step missions that randomly populate the map). Cash earned through these missions is "banked", meaning I can't lose it even if I die without extracting. But I'm less likely to actually die than in other games, because I can pick myself up from a DBNO state once at the cost of max health.</p><p>Everything accrues XP that unlocks new stations at my FOB, crafting recipes that make future runs more convenient, and traits that permanently enhance my operator. Some of those traits are a huge deal, like a free self-revive in every match, and they don't disappear when I have a bad game. Instead, dying in the field triggers an MIA status for that operator that I can clear any time by dropping a wad of cash.</p><p>It's quite generous for this type of game, and I like it. DMZ wants me to always move forward, and in that sense, it sometimes feels more like a Call of Duty RPG.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RCdtNeZHY3NpotSRquqWgD" name="dmz (12)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/RCdtNeZHY3NpotSRquqWgD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>But it's not like DMZ is immune to gear fear: I had a few anxiety-inducing moments where an especially rare valuable, stack of crafting materials I needed for upgrades, or a rare weapon blueprint was burning a hole in my pack as I tried to sneak off to an extraction site. Hajin City's non-player threats—soldier patrols, helicopters, and drones that snitch on you—have yet to challenge or surprise on the level of Arc Raiders' sophisticated apocalypse machines, but they could easily overwhelm when I took my eye off the ball. I was ready to call the NPC soldiers a bunch of scrubs until they nearly ruined my best run yet.</p><p>This gets to my other favorite part of DMZ: Every extraction shooter has chores, but DMZ has a lot of structured events, locations, and formalized missions that can turn grocery runs into something bigger.</p><h2 id="a-perfect-dmz-round">A perfect DMZ round</h2><p>Like one time, a match started as a quick solo trip to find "rigid synthetics" for a stash upgrade I'd been working toward. The description for that material said they're found in residential areas, so I entered an apartment building, looted a locker, and found something I wasn't looking for: a rare key to the "Netshin IT Room."</p><p>That key had a helpful description: Unlocks the high-security server room deep within the server clusters on the upper floors of the Netshin Tech Complex within The Grid.</p><p>New sidequest added. I love that the hint didn't give everything away: I knew generally where I was going and what to look for, but no arrow or waypoint to follow. So I drove to the center of the city and found The Grid, one of the most dangerous zones in Hajin. You can tell because it's red on the map and walled off on all sides, announcing that you'd have to be dumb to run in there alone.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UhEByQgMx4S95E5vyocFoD" name="dmz (4)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/UhEByQgMx4S95E5vyocFoD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>So I ran in alone, storming the Netshin building and almost dying to heavily armored grunts twice. I ran up six flights of stairs (there was probably an elevator) until I reached the top and started checking every door. Surprisingly, there were other locked doors in Netshin that led to other exclusive areas, and Netshin is just one highrise of several in this part of the city—this map is dense.</p><p>I finally found the IT department, used the key, and strolled in thinking I'd hit the jackpot. Not quite: I'd actually disturbed the nest of Jang-ui, one of Hajin's miniboss "lieutenants" that have a chance to appear in each match. Auto-turrets placed in all four corners of the room caught me by surprise and almost killed me on their own, and reinforcements from elsewhere in the building flooded in as well. It was a squirrely fight typical of Call of Duty PvE: Lots of sprinting across the room to buy time for reloads, dumping pounds of lead into Jang-ui's stupid head, and pressing G to replenish armor.</p><p>But he finally died, and the rewards were huge: A kitted burst rifle unique to the boss fight and a weapon manual that'd unlock a gun permanently for crafting. That, plus a pile of useful materials, including the synthetics I'd originally been looking for. It was a sweet haul I really didn't wanna lose, which still felt very possible, as I was out of ammo.</p><p>I thought for sure I was home free when I found a ventilation shaft that spit me out on the scaffolding under a sky bridge—a hidden exit! From there I could just jump off to escape, and it would've been the perfect end to this little adventure, except I didn't have a parachute. So for the first time, I actually used DMZ's rudimentary stealth system to sneak out of Netshin, hiding behind desks and scrounging for bullet scraps until I left the same way I entered.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pvREEJ8u7mNxxFXq3ZMNoD" name="dmz (9)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/pvREEJ8u7mNxxFXq3ZMNoD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><h2 id="pvevolution">PvEvolution</h2><p>It was a genuinely emergent, self-appointed mission that felt like the best case scenario for DMZ. Not every part of the PvE experience is awesome. Call of Duty still can't escape how normal dudes with heavy armor just aren't interesting as opponents. They can't stack up to Arc Raiders physics-based drones, Hunt: Showdown's supernatural monsters, or even Marathon's UESC corps. But those are all games where, if you're fighting the environment, you're kind of playing them wrong: They are, in practice, multiplayer stealth games until the moment PvP kicks off.</p><p>I don't think DMZ will be like that. The fodder soldiers are boring, but they're also everywhere. Killing a few doesn't make so much noise that you're alerting the whole map—relative to its size, Hajin isn't as packed with players as Warzone's battle royale modes. I felt relatively safe to engage AI patrols for their armor plates and ammo without feeling forced into an awkward melee playstyle. That's good, because everything worth doing in Hajin plays out like a mini Spec Ops mission (we all remember that old Modern Warfare co-op mode, right?), including the six "story missions" that are even more campaign-like in nature.</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="E23wB3DP6Pq36jeyti6Z5E" name="dmz hero 3" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/E23wB3DP6Pq36jeyti6Z5E-1920-80.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: Activision)</span></figcaption></figure><div><blockquote><p>Call of Duty still can't escape how normal dudes with heavy armor just aren't interesting as opponents. </p></blockquote></div><p>Story missions are longer, narrative-focused tasks available early on. They have more bespoke ingredients than the randomized Dynamic Ops: There's one about a casino heist and another that involves manually pushing a gurney down hospital hallways while AI attacks on all sides. These are fun and pay well, but they don't change from match to match. It seems like Infinity Ward created these as a guided on-ramp for players new to extraction shooters. You have to queue into a story mission before the match starts, and if you do, you'll be the only squad in the match with that mission.</p><p>So while DMZ's PvE factions don't stand out, the incentives for fighting them do. Dynamic Ops are repetitive for sure—I did the same "blow up the chemical weapon" routine three times over two days—but they're a better excuse to explore than just opening boxes and praying for the presence of duct tape. This directly tackles a weakness of both Arc Raiders and Marathon, and they'd be smart to steal it.</p><p>It's fascinating how Infinity Ward is throwing its weight behind both PvE and PvP here, because I can't really say the same for its competitors. Arc Raiders is, at least to me, about sneaking and scavenging in dangerous environments, not picking fights with other players. In Marathon and Hunt, the loot and boss fights are just the pretense for excellent PvP.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LgwWZt3LbpTt72eGT27kmD" name="dmz (14)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/LgwWZt3LbpTt72eGT27kmD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>DMZ sprawls out in both directions, which gives it a unique angle, but also means it isn't the best at either play style. PvP fights have been surprisingly rare, but so far they're a lot like Warzone firefights, so just OK. Call of Duty's fast time-to-kill (even with armor plates) and generous aim assist means it's hard to bounce back from being the second one to start shooting, and leads to team fights that begin with one squadmate already down. </p><p>Infinity Ward told me DMZ was designed to respect your time, and that really comes through. I love the little touches of streamlining that show this is a Call of Duty extraction shooter, like how you don't need to stuff your backpack with bandages, armor plates, or stacks of ammo before heading out—that's all handled automatically. The game's also smart enough to loot the most obvious stuff for you, like ammo, crafting materials, and items that can stack in my backpack without taking up extra space. Games with this much looting is usually a turn-off, but it's very seamless and pleasant here.</p><p>They really went and made a whole-ass extraction shooter within Call of Duty, and it's surprisingly good.</p><h3 class="article-body__section" id="section-campaign"><span>Campaign</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZwFQmSCjPDJErkVS8HYzwV" name="mw4 campiagn" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/ZwFQmSCjPDJErkVS8HYzwV-1920-80.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: Activision Blizzard)</span></figcaption></figure><p>As I watched the credits roll on Modern Warfare 4's campaign, a sobering thought infiltrated: I've been playing Call of Duty for two-thirds of my life. While I consider it primarily a multiplayer game these days, what I loved about Call of Duty all that time ago was its campaigns. In 2006, as a shy fourth grader at a new school, I made my first friend because we both played Call of Duty 3 on the Wii and spent a week recounting cool moments from the campaign over lunch. By 2007 (the year of Modern Warfare, of course), our lunch table was losing its collective shit over the part where Captain Price slides you the pistol right as he (as we thought at the time) dies.</p><p>As memorable as that sequence was, it marked the moment Call of Duty became globe-trotting romps about superhuman, super serious operatives who prevent WW3 before breakfast. It was pretty badass at the time, but what they gained in the sort of spectacle that makes great Sunday Night Football ads, they lost in relatability.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vBS2DtCkcCZjHTnmMgKAvB" name="mw4 (21)" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/vBS2DtCkcCZjHTnmMgKAvB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Sure, those early WW2 campaigns were shlocky riffs on movies, but they starred normal people who primarily wanted to go home—grizzled sergeants and green privates who fended off helplessness with humor. They depicted large-scale offensives won by smaller contributions. That's the energy that Infinity Ward tries to harness again in Modern Warfare 4. At times, it totally works.</p><p>This is the most fun I've had with a Call of Duty campaign in years, lending mostly to its new, non-elite faces. Over half of the six-hour campaign revolves around a crew of young South Korean marines (plus a few Americans) running out the clock on their compulsory military service when North Korea suddenly invades. The guys themselves are familiar archetypes—a serious guy, an audience insert who doesn't talk much, an American who fills every silence with a joke—but they're basically charming enough that I cared to remember their names.</p><p>I like the idea, even if this latest "ripped from the headlines" premise of a North Korean offensive continues Infinity Ward's streak of flattening complex foreign conflicts through a conventionally American lens (while conveniently making the CIA's dogs the good guys). You'll never guess which global superpower is really pulling the strings this time, ya'll.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QBJSRMxXYpqBPzZYEkcu5C" name="mw4 (5)" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/QBJSRMxXYpqBPzZYEkcu5C-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><h2 id="going-dark">Going dark</h2><div><blockquote><p>Playing a "cog in a machine" again unlocks Modern Warfare 4's most standout missions</p></blockquote></div><p>Playing a "cog in a machine" again unlocks Modern Warfare 4's most standout missions, many of which remind me of the series' best days. "Mayhem" and "Losing Ground" follow a futile attempt to hold the fictional Hajin City against the overwhelming invasion. They're loud, chaotic fights where your characters are noticeably terrified of what's happening (a rarity in a post-Price world) and your side is constantly outnumbered. Later on, "Counter Attack" ramps up the scale and intensity with a massive beachfront assault that can only really be achieved by throwing a silly amount of money at it. It's certainly a better use of resources than the overly gimmicky, Warzone-y campaigns of recent Black Ops sequels.</p><p>Even when the action gets smaller, Private Park (no relation) and friends are simply fun to follow. "Stranded" picks up with the squad crash landing behind enemy lines in North Korea, and its Infinity Ward's best swing at a sandbox level to date. The multi-hour mission establishes three non-linear objectives, side quests, and a hideout where you can craft better armor, guns, and camouflage. It's a comparatively quiet, isolating mission than the ones that precede it—almost like playing a micro Far Cry in the middle of a CoD campaign. It was a bit jarring at first, but ended up a major highlight.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PeVRCaQm3SVZERPyXemCaB" name="mw4 (15)" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/PeVRCaQm3SVZERPyXemCaB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>I was worried this would prove to be another instance of sneaking Warzone into singleplayer, as the mission uses the DMZ looting system, but I was told the map was made just for the campaign, which is nice.</p><p>Infinity Ward could've crafted a whole campaign around Park's squad, and I'm still not sure why they didn't. Instead, their story runs parallel to the disconnected adventures of Captain Price, now a wanted fugitive because of some Modern Warfare 3 business that most people didn't see (the game acknowledges this by playing a lengthy recap video).</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MjVuRRooKcAqK2U8ZFhtNB" name="mw4 (2)" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/MjVuRRooKcAqK2U8ZFhtNB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Modern Warfare 4 tries to explore a darker Price while replaying the hits—a car chase with shooting, a foot chase with jumping, a cinematic knife fight—but these sequences left my head as quickly as they ended. It's bizarre how different and less interesting this part of the game is, especially considering Price basically exits the story for the back half and never intersects with the real heroes.</p><p>It comes off as Infinity Ward checking boxes for the folks who are expecting Price stuff while also wanting, desperately, to do something else. This was billed as the conclusion of the Modern Warfare story that started in 2019, but in practice, it's more like a sprint to be done with it all. It's a shame they dragged Mads Mikkelsen into the bad parts of this one—he could've been a menacing presence in a campaign that actually had time to use him.</p><p>It speaks to the quality of this series lately that producing a regular campaign with extravagant setpieces, lavish cinematics, and basically great gunplay is a big win. Uncompromised by the influence of Warzone or Zombies, this is the first time in too long that Call of Duty's campaign does not feel like the afterthought.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review/</link>
                                                                            <description>
                            <![CDATA[ This is what it looks like when Call of Duty is in the pocket. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">N9n5scmjz8rPkSEYEBSThB</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/qt76reovLwcC84yxwGZ4EE-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 27 Oct 2026 18:17:42 +0000</pubDate>                                                                                                                                <updated>Fri, 30 Oct 2026 18:38:36 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/qt76reovLwcC84yxwGZ4EE-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Modern Warfare 4 DMZ]]></media:description>                                                            <media:text><![CDATA[Modern Warfare 4 DMZ]]></media:text>
                                <media:title type="plain"><![CDATA[Modern Warfare 4 DMZ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/qt76reovLwcC84yxwGZ4EE-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There is a new game titled "Call of Duty" every year, but it's not every year that Call of Duty is really <em>back.</em> </p><div  class="fancy-box"><div class="fancy_box-title">NEED TO KNOW</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>What is it </strong>The next Call of Duty from the original creators of Call of Duty<br /><strong>Release date </strong>October 23, 2026<br /><strong>Expect to pay </strong>$70/£60<br /><strong>Publisher </strong>Activision Blizzard<br /><strong>Developer </strong>Infinity Ward<br /><strong>Reviewed on </strong>RTX 5090, Ryzen 7 9800X3D 4.7 GHz, 64GB RAM<br /><strong>Multiplayer </strong>Up to 60 players<br /><strong>Steam Deck </strong>Unsupported<br /><strong>Link </strong><a data-analytics-id="inline-link" href="https://www.callofduty.com/" target="_blank">Official site</a></p></div></div><p>The tireless schedule of Activision's load-bearing FPS has resulted in more bad games than good as of late—Modern Warfare 3 was an expansion-sized sequel rushed out the door, Black Ops 6 was a step back for multiplayer, and its immediate followup Black Ops 7 was clocked as superfluous and uninteresting even by rain-or-shine fans. These back-to-back games, shouldered by Treyarch, Sledgehammer, and Raven, had cracks and compromises that suggested the Call of Duty machine just can't keep up with both "good" and "fast" anymore.</p><p>Modern Warfare 4's greatness shows how right that is. This is an extravagant package on all fronts: A kinetic 6v6 FPS with truly excellent gunplay, a fun campaign that doesn't just play the hits, and an expansive extraction "mode" that would be its own game if any other name were on the box.</p><p>I have complaints, but this is what it looks like when Call of Duty is in the pocket. The best Call of Duty studio got to take its time (four years, tied with the longest in series history) and it shows. </p><h3 class="article-body__section" id="section-multiplayer"><span>Multiplayer</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vtj5Rdg6sjUyREPAw4Pqzj" name="20261027105633_1" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/vtj5Rdg6sjUyREPAw4Pqzj-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>These days, whether or not a Call of Duty clicks with me begins and ends with the guns—how they look, sound, animate, and change with attachments—and Infinity Ward is simply unmatched on those details. Modern Warfare 4's guns spit out layered, cacophonous blasts that will overpower your voice chat by default (as they should). They shake your world as you shoot them without getting in the way of aim. They reload with personality and flair without wasting time. They're loud and metallic without sounding tinny or plastic, like Treyarch guns always do.</p><p>Modern Warfare 4 has some of the easiest guns to control in the genre, yet in action, they feel substantial and weighty like a milsim. This is the magic trick that Call of Duty studios regularly attempt, but only this one has mastered.</p><div><blockquote><p>Infinity Ward just loves being extra about guns in ways that make them memorable.</p></blockquote></div><p>Infinity Ward just loves being extra about guns in ways that make them memorable. This time, they've had fun mixing both modern and dated weapons with Korean design language: The KG-7 Vulkan is a functionally standard bolt-action sniper rifle, but its worn wooden body and chipped green paint communicate that it's been fished out of an aging North Korean armory. The Warlord, meanwhile, is a double-barrel shotgun with the profile of a brutalist space vessel—flanked by two translucent plastic tubes that you can watch empty and refill as you use it. It's rad.</p><p>Not every gun is this distinctive—not even Infinity Ward can produce 30+ guns without forgettable chaff—but there is enough personality in this arsenal to latch onto for hours on-end. I've fully leveled three in just a week, tweaking my attachment setup every few matches to suss out each gun's "thing." </p><iframe src="https://content.jwplatform.com/players/CHtuaD5w.html" id="CHtuaD5w" title="CoD Apex Attachment" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen=""></iframe><p>In some cases, Infinity Ward has saved a boring gun by giving it cool attachments. The Han 86 was, to my eye, the most boring assault rifle in the game until I discovered an integrally-suppressed barrel that all-but transforms it into an MP5 in aesthetic and behavior (an FPS classic I'm always happy to see). Attachments feels like bigger choices here than ever before—you can only use five at a time, and instead of stuffing Gunsmith with 20+ barrels, muzzles, and grips that do almost the same thing, there are fewer options per category that are usually the best at what they do. </p><p>Infinity Ward has also inherited prestige attachments—the best idea to come out of those recent Black Ops sequels. Called apex attachments in Modern Warfare 4, they're add-ons unique to each gun that drastically change their behavior or add a new dimension to how they work. You only get these after maxing out a gun (or by having a blueprint with them already applied), so I don't have many yet, but I love the ones I've played with.</p><p>They range from absurd to subtle: </p><ul><li>The <strong>Hyeon Burst's apex</strong> turns it into a hybrid burst-auto rifle, beginning with a sped-up burst and transitioning into slower automatic fire as I hold the trigger.</li><li>The <strong>M4's apex</strong> swaps its traditional magazine for the top-mounted, graphics card-shaped extended mag.</li><li>The <strong>Oris DMR</strong> gets side-mounted throwing knives (yes) that you can flick at enemies to counteract the gun's close-range weakness.</li><li>The <strong>PPSH SMG</strong> gets an underbarrel launcher that spews hot napalm on the ground for some on-the-fly area denial.</li></ul><p>Apex attachments aren't always worth the hype—I found the Mojave revolver's that lets you "fan the hammer" to fire faster underwhelming as an idea—but they're a way more enticing reason to progress in Modern Warfare 4 than camos or gaudy playercards.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rRPQJKhkWqVDM9bnsCrqij" name="20261027105702_1" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/rRPQJKhkWqVDM9bnsCrqij-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><h2 id="war-should-change">War should change</h2><p>Elsewhere in the land of "details you end up caring about after 20 years of Call of Duty" are nice quality-of-life touches in Create-a-Class, like the option to copy killstreak or perk selections to other classes, or assign operator skins on a per-class basis.</p><p>Then there's all that minutia that Infinity Ward is making a big deal about: revamped movement that allows for smoother mantling and sliding, a depth of field trick that unblurs important parts of the screen, less disruptive gunsmoke, better-looking hipfire. At the time, these all struck me as weirdly minor improvements to trumpet as big swings, and it's now clear why: Modern Warfare 4's core multiplayer takes no big swings. It is, at its core, about executing better what was already there. </p><p>That approach has its upsides, like a ridiculous attention to detail, but it underlines Activision's continued disinterest in challenging Call of Duty's status quo. Never has a shooter franchise been so shackled by traditional design choices that haven't been good for years: Killstreaks are <em>still </em>lopsided power trips that bring matches to a screeching halt so that the best player on the server can rack up more kills. Maps are <em>still</em> uninspired square boxes with three lanes and an allergy for verticality. Gunsmith <em>still</em> favors making every gun the same zero-recoil, high-capacity laser beam that wins firefights. It has been 19 years since Call of Duty 4, and I'm still getting shot by a guy who spawned behind me in Team Deathmatch.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4utUVzZJWQgF2MxdoAxAwj" name="20261027105546_1" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/4utUVzZJWQgF2MxdoAxAwj-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>The small country of developers who make Call of Duty could take a special interest in these problems, but they consistently don't. Instead, they design sequels around bolted-on distractions—jetpacks, hero abilities, Omnimovement—while actual big swings, like Warzone and DMZ, happen elsewhere on the main menu. We should all want more from a series that asks us to fork over $70 every year.</p><p>There is one exception, and it's sadly flying under the radar so far. Among Modern Warfare 4's slate of new modes (several of which are competently made but destined to be ignored) is Frontline, a TDM variant with one change: Teams spawn on opposite sides of the map, and those spawns never change. It sounds so minor, but it's the greatest thing to happen to Call of Duty multiplayer in a generation.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/Mfm9mvTkJtZyWkoMKJxXtX-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/4y7D5vsqdcXqybVk8Gsrji-1920-80.jpg" alt="Call of Duty: Modern Warfare 4 multiplayer character skin with a black mask and body armor " /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/B9Xn3FVtk9V33MnFZaYtJi-1920-80.jpg" alt="Modern Warfare 4: Key art showing two soldiers, weapons at the ready, walking around a corner in an open garage area." /><figcaption><small role="credit">Activision</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/KW8rUzLvWMN6KAFCwqEeg5-1920-80.jpg" alt="Key art for MW4, depicting a Korean soldier cautiously stood next to a wall as a building burns in the background." /><figcaption><small role="credit">Activision</small></figcaption></figure></figure><p>I almost couldn't believe how much better Call of Duty plays with consistent spawns: I can confidently move through the map with an idea of where enemies will come from, which gives matches an understandable continuity—a sense of tug-of-war. Matches are slower, lives more deliberate, and I'm not getting shot in the back.</p><p>My life is, for once, not up to the pull of a slot machine. We have territory, they have territory, and there's a middle ground to fight over. It's a winning formula that has worked in better casual shooters for decades (Team Fortress 2, anyone?), and singlehandedly fixes a gigantic problem with these games. Frontline is easily my new favorite way to play Call of Duty and should become the new normal, but knowing Activision and the Call of Duty audience, it'll probably be cycled out of the game and forgotten by next quarter.</p><h3 class="article-body__section" id="section-dmz"><span>DMZ</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VNjGhQEhtfgu6qq3TAsP8E" name="dmz hero 4" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/VNjGhQEhtfgu6qq3TAsP8E-1920-80.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: Activision)</span></figcaption></figure><p>DMZ is, in many ways, proof that Call of Duty shouldn't be afraid to change. </p><p>Going into my first day with the mode, I honestly thought the last thing I needed was another extraction shooter. This genre can be so consuming with its long grinds and punishing stakes that, beyond the occasional Hunt: Showdown night with friends, these days I gravitate to the more consistent, team-based, and casual end of the FPS spectrum. There is no "pick up and play" extraction shooter—or wasn't, until now.</p><p>Infinity Ward has made exactly what it's claiming with DMZ: A full-fledged extraction shooter that could be a standalone game like Escape From Tarkov or Marathon, but is instead the third pillar of a yearly Call of Duty installment. Its systems are extensive, its Hajin City map haunting and expansive, and it might have the least annoying chores of any game like it.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RU5WjrN8JVa9b4N6LCBd3E" name="dmz (8)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/RU5WjrN8JVa9b4N6LCBd3E-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>DMZ definitely has room for improvement, but I'm impressed. When I look at Modern Warfare 4's iterative core multiplayer and wonder what Infinity Ward has been doing these past four years, I realize this is it.</p><p>To me, what sets DMZ apart is how Infinity Ward isn't so interested in loss. Money is easy to make through a combination of valuables, faction assignments, and Dynamic Ops (multi-step missions that randomly populate the map). Cash earned through these missions is "banked", meaning I can't lose it even if I die without extracting. But I'm less likely to actually die than in other games, because I can pick myself up from a DBNO state once at the cost of max health.</p><p>Everything accrues XP that unlocks new stations at my FOB, crafting recipes that make future runs more convenient, and traits that permanently enhance my operator. Some of those traits are a huge deal, like a free self-revive in every match, and they don't disappear when I have a bad game. Instead, dying in the field triggers an MIA status for that operator that I can clear any time by dropping a wad of cash.</p><p>It's quite generous for this type of game, and I like it. DMZ wants me to always move forward, and in that sense, it sometimes feels more like a Call of Duty RPG.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RCdtNeZHY3NpotSRquqWgD" name="dmz (12)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/RCdtNeZHY3NpotSRquqWgD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>But it's not like DMZ is immune to gear fear: I had a few anxiety-inducing moments where an especially rare valuable, stack of crafting materials I needed for upgrades, or a rare weapon blueprint was burning a hole in my pack as I tried to sneak off to an extraction site. Hajin City's non-player threats—soldier patrols, helicopters, and drones that snitch on you—have yet to challenge or surprise on the level of Arc Raiders' sophisticated apocalypse machines, but they could easily overwhelm when I took my eye off the ball. I was ready to call the NPC soldiers a bunch of scrubs until they nearly ruined my best run yet.</p><p>This gets to my other favorite part of DMZ: Every extraction shooter has chores, but DMZ has a lot of structured events, locations, and formalized missions that can turn grocery runs into something bigger.</p><h2 id="a-perfect-dmz-round">A perfect DMZ round</h2><p>Like one time, a match started as a quick solo trip to find "rigid synthetics" for a stash upgrade I'd been working toward. The description for that material said they're found in residential areas, so I entered an apartment building, looted a locker, and found something I wasn't looking for: a rare key to the "Netshin IT Room."</p><p>That key had a helpful description: Unlocks the high-security server room deep within the server clusters on the upper floors of the Netshin Tech Complex within The Grid.</p><p>New sidequest added. I love that the hint didn't give everything away: I knew generally where I was going and what to look for, but no arrow or waypoint to follow. So I drove to the center of the city and found The Grid, one of the most dangerous zones in Hajin. You can tell because it's red on the map and walled off on all sides, announcing that you'd have to be dumb to run in there alone.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UhEByQgMx4S95E5vyocFoD" name="dmz (4)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/UhEByQgMx4S95E5vyocFoD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>So I ran in alone, storming the Netshin building and almost dying to heavily armored grunts twice. I ran up six flights of stairs (there was probably an elevator) until I reached the top and started checking every door. Surprisingly, there were other locked doors in Netshin that led to other exclusive areas, and Netshin is just one highrise of several in this part of the city—this map is dense.</p><p>I finally found the IT department, used the key, and strolled in thinking I'd hit the jackpot. Not quite: I'd actually disturbed the nest of Jang-ui, one of Hajin's miniboss "lieutenants" that have a chance to appear in each match. Auto-turrets placed in all four corners of the room caught me by surprise and almost killed me on their own, and reinforcements from elsewhere in the building flooded in as well. It was a squirrely fight typical of Call of Duty PvE: Lots of sprinting across the room to buy time for reloads, dumping pounds of lead into Jang-ui's stupid head, and pressing G to replenish armor.</p><p>But he finally died, and the rewards were huge: A kitted burst rifle unique to the boss fight and a weapon manual that'd unlock a gun permanently for crafting. That, plus a pile of useful materials, including the synthetics I'd originally been looking for. It was a sweet haul I really didn't wanna lose, which still felt very possible, as I was out of ammo.</p><p>I thought for sure I was home free when I found a ventilation shaft that spit me out on the scaffolding under a sky bridge—a hidden exit! From there I could just jump off to escape, and it would've been the perfect end to this little adventure, except I didn't have a parachute. So for the first time, I actually used DMZ's rudimentary stealth system to sneak out of Netshin, hiding behind desks and scrounging for bullet scraps until I left the same way I entered.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pvREEJ8u7mNxxFXq3ZMNoD" name="dmz (9)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/pvREEJ8u7mNxxFXq3ZMNoD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><h2 id="pvevolution">PvEvolution</h2><p>It was a genuinely emergent, self-appointed mission that felt like the best case scenario for DMZ. Not every part of the PvE experience is awesome. Call of Duty still can't escape how normal dudes with heavy armor just aren't interesting as opponents. They can't stack up to Arc Raiders physics-based drones, Hunt: Showdown's supernatural monsters, or even Marathon's UESC corps. But those are all games where, if you're fighting the environment, you're kind of playing them wrong: They are, in practice, multiplayer stealth games until the moment PvP kicks off.</p><p>I don't think DMZ will be like that. The fodder soldiers are boring, but they're also everywhere. Killing a few doesn't make so much noise that you're alerting the whole map—relative to its size, Hajin isn't as packed with players as Warzone's battle royale modes. I felt relatively safe to engage AI patrols for their armor plates and ammo without feeling forced into an awkward melee playstyle. That's good, because everything worth doing in Hajin plays out like a mini Spec Ops mission (we all remember that old Modern Warfare co-op mode, right?), including the six "story missions" that are even more campaign-like in nature.</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="E23wB3DP6Pq36jeyti6Z5E" name="dmz hero 3" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/E23wB3DP6Pq36jeyti6Z5E-1920-80.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: Activision)</span></figcaption></figure><div><blockquote><p>Call of Duty still can't escape how normal dudes with heavy armor just aren't interesting as opponents. </p></blockquote></div><p>Story missions are longer, narrative-focused tasks available early on. They have more bespoke ingredients than the randomized Dynamic Ops: There's one about a casino heist and another that involves manually pushing a gurney down hospital hallways while AI attacks on all sides. These are fun and pay well, but they don't change from match to match. It seems like Infinity Ward created these as a guided on-ramp for players new to extraction shooters. You have to queue into a story mission before the match starts, and if you do, you'll be the only squad in the match with that mission.</p><p>So while DMZ's PvE factions don't stand out, the incentives for fighting them do. Dynamic Ops are repetitive for sure—I did the same "blow up the chemical weapon" routine three times over two days—but they're a better excuse to explore than just opening boxes and praying for the presence of duct tape. This directly tackles a weakness of both Arc Raiders and Marathon, and they'd be smart to steal it.</p><p>It's fascinating how Infinity Ward is throwing its weight behind both PvE and PvP here, because I can't really say the same for its competitors. Arc Raiders is, at least to me, about sneaking and scavenging in dangerous environments, not picking fights with other players. In Marathon and Hunt, the loot and boss fights are just the pretense for excellent PvP.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LgwWZt3LbpTt72eGT27kmD" name="dmz (14)" alt="Modern Warfare 4 DMZ" src="https://cdn.mos.cms.futurecdn.net/LgwWZt3LbpTt72eGT27kmD-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>DMZ sprawls out in both directions, which gives it a unique angle, but also means it isn't the best at either play style. PvP fights have been surprisingly rare, but so far they're a lot like Warzone firefights, so just OK. Call of Duty's fast time-to-kill (even with armor plates) and generous aim assist means it's hard to bounce back from being the second one to start shooting, and leads to team fights that begin with one squadmate already down. </p><p>Infinity Ward told me DMZ was designed to respect your time, and that really comes through. I love the little touches of streamlining that show this is a Call of Duty extraction shooter, like how you don't need to stuff your backpack with bandages, armor plates, or stacks of ammo before heading out—that's all handled automatically. The game's also smart enough to loot the most obvious stuff for you, like ammo, crafting materials, and items that can stack in my backpack without taking up extra space. Games with this much looting is usually a turn-off, but it's very seamless and pleasant here.</p><p>They really went and made a whole-ass extraction shooter within Call of Duty, and it's surprisingly good.</p><h3 class="article-body__section" id="section-campaign"><span>Campaign</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZwFQmSCjPDJErkVS8HYzwV" name="mw4 campiagn" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/ZwFQmSCjPDJErkVS8HYzwV-1920-80.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: Activision Blizzard)</span></figcaption></figure><p>As I watched the credits roll on Modern Warfare 4's campaign, a sobering thought infiltrated: I've been playing Call of Duty for two-thirds of my life. While I consider it primarily a multiplayer game these days, what I loved about Call of Duty all that time ago was its campaigns. In 2006, as a shy fourth grader at a new school, I made my first friend because we both played Call of Duty 3 on the Wii and spent a week recounting cool moments from the campaign over lunch. By 2007 (the year of Modern Warfare, of course), our lunch table was losing its collective shit over the part where Captain Price slides you the pistol right as he (as we thought at the time) dies.</p><p>As memorable as that sequence was, it marked the moment Call of Duty became globe-trotting romps about superhuman, super serious operatives who prevent WW3 before breakfast. It was pretty badass at the time, but what they gained in the sort of spectacle that makes great Sunday Night Football ads, they lost in relatability.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vBS2DtCkcCZjHTnmMgKAvB" name="mw4 (21)" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/vBS2DtCkcCZjHTnmMgKAvB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Sure, those early WW2 campaigns were shlocky riffs on movies, but they starred normal people who primarily wanted to go home—grizzled sergeants and green privates who fended off helplessness with humor. They depicted large-scale offensives won by smaller contributions. That's the energy that Infinity Ward tries to harness again in Modern Warfare 4. At times, it totally works.</p><p>This is the most fun I've had with a Call of Duty campaign in years, lending mostly to its new, non-elite faces. Over half of the six-hour campaign revolves around a crew of young South Korean marines (plus a few Americans) running out the clock on their compulsory military service when North Korea suddenly invades. The guys themselves are familiar archetypes—a serious guy, an audience insert who doesn't talk much, an American who fills every silence with a joke—but they're basically charming enough that I cared to remember their names.</p><p>I like the idea, even if this latest "ripped from the headlines" premise of a North Korean offensive continues Infinity Ward's streak of flattening complex foreign conflicts through a conventionally American lens (while conveniently making the CIA's dogs the good guys). You'll never guess which global superpower is really pulling the strings this time, ya'll.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QBJSRMxXYpqBPzZYEkcu5C" name="mw4 (5)" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/QBJSRMxXYpqBPzZYEkcu5C-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><h2 id="going-dark">Going dark</h2><div><blockquote><p>Playing a "cog in a machine" again unlocks Modern Warfare 4's most standout missions</p></blockquote></div><p>Playing a "cog in a machine" again unlocks Modern Warfare 4's most standout missions, many of which remind me of the series' best days. "Mayhem" and "Losing Ground" follow a futile attempt to hold the fictional Hajin City against the overwhelming invasion. They're loud, chaotic fights where your characters are noticeably terrified of what's happening (a rarity in a post-Price world) and your side is constantly outnumbered. Later on, "Counter Attack" ramps up the scale and intensity with a massive beachfront assault that can only really be achieved by throwing a silly amount of money at it. It's certainly a better use of resources than the overly gimmicky, Warzone-y campaigns of recent Black Ops sequels.</p><p>Even when the action gets smaller, Private Park (no relation) and friends are simply fun to follow. "Stranded" picks up with the squad crash landing behind enemy lines in North Korea, and its Infinity Ward's best swing at a sandbox level to date. The multi-hour mission establishes three non-linear objectives, side quests, and a hideout where you can craft better armor, guns, and camouflage. It's a comparatively quiet, isolating mission than the ones that precede it—almost like playing a micro Far Cry in the middle of a CoD campaign. It was a bit jarring at first, but ended up a major highlight.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PeVRCaQm3SVZERPyXemCaB" name="mw4 (15)" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/PeVRCaQm3SVZERPyXemCaB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>I was worried this would prove to be another instance of sneaking Warzone into singleplayer, as the mission uses the DMZ looting system, but I was told the map was made just for the campaign, which is nice.</p><p>Infinity Ward could've crafted a whole campaign around Park's squad, and I'm still not sure why they didn't. Instead, their story runs parallel to the disconnected adventures of Captain Price, now a wanted fugitive because of some Modern Warfare 3 business that most people didn't see (the game acknowledges this by playing a lengthy recap video).</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MjVuRRooKcAqK2U8ZFhtNB" name="mw4 (2)" alt="Modern Warfare 4" src="https://cdn.mos.cms.futurecdn.net/MjVuRRooKcAqK2U8ZFhtNB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Modern Warfare 4 tries to explore a darker Price while replaying the hits—a car chase with shooting, a foot chase with jumping, a cinematic knife fight—but these sequences left my head as quickly as they ended. It's bizarre how different and less interesting this part of the game is, especially considering Price basically exits the story for the back half and never intersects with the real heroes.</p><p>It comes off as Infinity Ward checking boxes for the folks who are expecting Price stuff while also wanting, desperately, to do something else. This was billed as the conclusion of the Modern Warfare story that started in 2019, but in practice, it's more like a sprint to be done with it all. It's a shame they dragged Mads Mikkelsen into the bad parts of this one—he could've been a menacing presence in a campaign that actually had time to use him.</p><p>It speaks to the quality of this series lately that producing a regular campaign with extravagant setpieces, lavish cinematics, and basically great gunplay is a big win. Uncompromised by the influence of Warzone or Zombies, this is the first time in too long that Call of Duty's campaign does not feel like the afterthought.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty passes $40 billion in lifetime revenue, making it one of the most lucrative videogame franchises ever ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It's been 22 years, 11 months, 28 days and counting since we were first graced with <a href="https://www.pcgamer.com/uk/games/fps/call-of-duty/">Call of Duty</a>. Over those two decades the franchise has emerged as one of the most lucrative in videogame history, with Xbox CEO Asha Sharma announcing that it's passed the $40billion revenue mark. </p><p>Speaking of <a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/">Call of Duty: Modern Warfare 4's</a> success, <a href="https://x.com/asha_shar/status/2114787993114591335" target="_blank">Sharma reflects</a>: "One of the most celebrated Call of Duty games in its 24-year history, and now $40 billion in lifetime franchise revenue. An incredible milestone. Congrats to the Activision team. And to the players, thank you for being with us."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2114787993114591335"><p lang="en" dir="ltr">One of the most celebrated Call of Duty games in its 24-year history, and now $40B in lifetime franchise revenue. An incredible milestone. Congrats to the Activision team. And to the players, thank you for being with us. https://t.co/AlpXydEQIQ<a href="https://twitter.com/cantworkitout/status/2114787993114591335">October 26, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>$40 billion in lifetime revenue places Call of Duty behind goliaths like Mario and Pokémon. It also means that Call of Duty, on average, has earned $4,762,472 a day, which is particularly terrifying if you ask me. </p><p>But how it got there is an entirely different question—one that can be answered by the ravenous appetite of consumers in the free market. <a href="https://www.pcgamer.com/uk/call-of-duty-black-ops-3/">Call of Duty: Black Ops 3</a> still sits at the top spot with over 43 million copies sold, with <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-2019/">Modern Warfare (2019)</a> comes in a close second with over 41 million copies sold. But by and large, the popularity of Call of Duty is driven by Black Ops, namely its older titles.  </p><p>The prize for most successful launch, however, has to go to <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-2-2022/">Modern Warfare 2 (2022)</a> which <a href="https://www.pcgamer.com/modern-warfare-2-is-the-best-launch-in-cods-history-after-selling-dollar1-billion-in-10-days/">earned $1 billion in just 10 days</a> alongside 200 million hours played. This followed Activision Blizzard's sale to Microsoft, which also meant that Modern Warfare 2 was the first time a Call of Duty game had been on Steam since 2017 with <a href="https://www.pcgamer.com/call-of-duty-wwii/">Call of Duty: WW2</a>—it even made it into Steam's top 10 games by concurrent players. </p><p>The ridiculous release schedule of one Call of Duty game a year certainly seems to be working for Activision. I doubt it would've been able to pass this landmark without the tireless work of Infinity Ward, Treyarch, Sledgehammer Games, and Raven Software pumping out something new year after year. At this rate I'm pretty sure the Call of Duty franchise will outlive us all. Picture this: the dry arid landscape of an Earth pillaged and then left void of humanity, with the sole proof of our existence being the 15th Call of Duty: Modern Warfare 2 remaster (2193)—I hope it's good. </p><div class="product"><a data-dimension112="2b75f358-d20c-11f1-936f-09fdf565c581" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="2b75f358-d20c-11f1-936f-09fdf565c581" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-passes-usd40-billion-in-lifetime-revenue-making-it-one-of-the-most-lucrative-videogame-franchise-ever/</link>
                                                                            <description>
                            <![CDATA[ Never underestimate the unbridled love for yelling hoorah before gunning down the same generic bad guy every year. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Y3hgoNURdMuM5VmGyAJhs5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/6ULxropgura5CQ3q2UkRG4-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 27 Oct 2026 13:55:38 +0000</pubDate>                                                                                                                                <updated>Tue, 27 Oct 2026 15:38:47 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elie Gould ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5HPuSiRgqza2PQESSqE7gG-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Elie is a news writer with an unhealthy love of horror games—even though their greatest fear is being chased. When they&#039;re not screaming or hiding, there&#039;s a good chance you&#039;ll find them testing their metal in metroidvanias or just admiring their Pokemon TCG collection. Elie has previously worked at TechRadar Gaming as a staff writer and studied at JOMEC in International Journalism and Documentaries – spending their free time filming short docs about Smash Bros. or any indie game that crossed their path.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/6ULxropgura5CQ3q2UkRG4-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision ]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Call of Duty: Modern Warfare 4 Price screenshot]]></media:description>                                                            <media:text><![CDATA[Call of Duty: Modern Warfare 4 Price screenshot]]></media:text>
                                <media:title type="plain"><![CDATA[Call of Duty: Modern Warfare 4 Price screenshot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/6ULxropgura5CQ3q2UkRG4-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It's been 22 years, 11 months, 28 days and counting since we were first graced with <a href="https://www.pcgamer.com/uk/games/fps/call-of-duty/">Call of Duty</a>. Over those two decades the franchise has emerged as one of the most lucrative in videogame history, with Xbox CEO Asha Sharma announcing that it's passed the $40billion revenue mark. </p><p>Speaking of <a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/">Call of Duty: Modern Warfare 4's</a> success, <a href="https://x.com/asha_shar/status/2114787993114591335" target="_blank">Sharma reflects</a>: "One of the most celebrated Call of Duty games in its 24-year history, and now $40 billion in lifetime franchise revenue. An incredible milestone. Congrats to the Activision team. And to the players, thank you for being with us."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2114787993114591335"><p lang="en" dir="ltr">One of the most celebrated Call of Duty games in its 24-year history, and now $40B in lifetime franchise revenue. An incredible milestone. Congrats to the Activision team. And to the players, thank you for being with us. https://t.co/AlpXydEQIQ<a href="https://twitter.com/cantworkitout/status/2114787993114591335">October 26, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>$40 billion in lifetime revenue places Call of Duty behind goliaths like Mario and Pokémon. It also means that Call of Duty, on average, has earned $4,762,472 a day, which is particularly terrifying if you ask me. </p><p>But how it got there is an entirely different question—one that can be answered by the ravenous appetite of consumers in the free market. <a href="https://www.pcgamer.com/uk/call-of-duty-black-ops-3/">Call of Duty: Black Ops 3</a> still sits at the top spot with over 43 million copies sold, with <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-2019/">Modern Warfare (2019)</a> comes in a close second with over 41 million copies sold. But by and large, the popularity of Call of Duty is driven by Black Ops, namely its older titles.  </p><p>The prize for most successful launch, however, has to go to <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-2-2022/">Modern Warfare 2 (2022)</a> which <a href="https://www.pcgamer.com/modern-warfare-2-is-the-best-launch-in-cods-history-after-selling-dollar1-billion-in-10-days/">earned $1 billion in just 10 days</a> alongside 200 million hours played. This followed Activision Blizzard's sale to Microsoft, which also meant that Modern Warfare 2 was the first time a Call of Duty game had been on Steam since 2017 with <a href="https://www.pcgamer.com/call-of-duty-wwii/">Call of Duty: WW2</a>—it even made it into Steam's top 10 games by concurrent players. </p><p>The ridiculous release schedule of one Call of Duty game a year certainly seems to be working for Activision. I doubt it would've been able to pass this landmark without the tireless work of Infinity Ward, Treyarch, Sledgehammer Games, and Raven Software pumping out something new year after year. At this rate I'm pretty sure the Call of Duty franchise will outlive us all. Picture this: the dry arid landscape of an Earth pillaged and then left void of humanity, with the sole proof of our existence being the 15th Call of Duty: Modern Warfare 2 remaster (2193)—I hope it's good. </p><div class="product"><a data-dimension112="2b75f358-d20c-11f1-936f-09fdf565c581" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="2b75f358-d20c-11f1-936f-09fdf565c581" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty: Modern Warfare 4 actually runs pretty smoothly with Activision's 'recommended' RTX 3060 Ti graphics card, and here are the settings I use to get the best performance from it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I've been having a grand old time playing <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review-in-progress-a-campaign-you-shouldnt-skip/" target="_blank">Call of Duty: Modern Warfare 4</a> with an <a href="https://www.pcgamer.com/hardware/graphics-cards/amd-radeon-rx-9700-xt-review-asus-prime-oc/" target="_blank">RX 9070 XT</a>, but there'll be plenty of people wanting to run the game on older hardware. So, I decided to dust off my old and much-beloved workhorse, the <a href="https://www.pcgamer.com/nvidia-rtx-3060-ti-review-benchmarks-performance/" target="_blank">RTX 3060 Ti</a>, and see how it does in the new Activision shooter. I've been quite pleasantly surprised by the results.</p><p>Which is good news, considering <a href="https://support.activision.com/modern-warfare-4/articles/pc-system-requirements-for-modern-warfare-4" target="_blank">Activision lists</a> this graphics card, alongside the AMD RX 6600 XT and Intel Arc B580, as the 'recommended' ones to "run at 90 fps in multiplayer on High graphics settings."</p><p>I've found this actually pans out, provided you're at 1080p or are fine enabling Quality upscaling at 1440p.</p><h2 class="article-body__section" id="section-rtx-3060-ti-performance-in-cod-mw4"><span>RTX 3060 Ti performance in COD: MW4</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:1911px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YCfD5BENn8KFH9od8t5TdT" name="image (4)" alt="A screenshot of COD: MW4, aiming down-range at a target." src="https://cdn.mos.cms.futurecdn.net/YCfD5BENn8KFH9od8t5TdT-1920-80.jpg" mos="" align="middle" fullscreen="" width="1911" height="1075" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>As you can see from the chart below, at 1440p native, the game struggles to reach this 90 fps target even on the Minimum preset. And as I noted in my <a href="https://www.pcgamer.com/games/call-of-duty/ive-tested-every-graphics-setting-in-call-of-duty-modern-warfare-4-tweak-these-four-options-for-the-best-performance/" target="_blank">general performance overview</a>—which, by the way, you should read if you want to know which specific settings to alter to improve your frame rate—the Balanced preset offers the best bang for your buck by far, as going up to Ultra lowers your frame rate significantly.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792766477236-lz8qius4a *, #fv-chart-1792766477236-lz8qius4a *:before, #fv-chart-1792766477236-lz8qius4a *:after, #fv-chart-1792766477236-lz8qius4a-slideshow *, #fv-chart-1792766477236-lz8qius4a-slideshow *:before, #fv-chart-1792766477236-lz8qius4a-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792766477236-lz8qius4a, #fv-chart-1792766477236-lz8qius4a-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792766477236-lz8qius4a { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792766477236-lz8qius4a .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792766477236-lz8qius4a .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792766477236-lz8qius4a.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792766477236-lz8qius4a.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792766477236-lz8qius4a .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792766477236-lz8qius4a-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn.disabled, #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792766477236-lz8qius4a .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792766477236-lz8qius4a .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792766477236-lz8qius4a .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792766477236-lz8qius4a .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792766477236-lz8qius4a .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792766477236-lz8qius4a .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792766477236-lz8qius4a .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792766477236-lz8qius4a .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792766477236-lz8qius4a .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792766477236-lz8qius4a .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792766477236-lz8qius4a .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792766477236-lz8qius4a .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792766477236-lz8qius4a .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-row, #fv-chart-1792766477236-lz8qius4a .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792766477236-lz8qius4a .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792766477236-lz8qius4a .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792766477236-lz8qius4a .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792766477236-lz8qius4a .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792766477236-lz8qius4a .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792766477236-lz8qius4a .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792766477236-lz8qius4a .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-pie-container, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stacked-product, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-grouped-bar-product, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stacked-product, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-label, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-grouped-product-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-label, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-container, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-cluster, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-container, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-x-axis-wrapper, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-x-axis-label-space, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-x-axis-chart-space, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-benchmark-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-dropdown-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-carousel-nav-btn, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-chart-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-chart-subhead, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-header, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select-wrapper, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-vs, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select-container, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-dials-grid, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-dial-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792766477236-lz8qius4a .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-row, #fv-chart-1792766477236-lz8qius4a .fv-stacked-product, #fv-chart-1792766477236-lz8qius4a .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-label, #fv-chart-1792766477236-lz8qius4a .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-container, #fv-chart-1792766477236-lz8qius4a .fv-bar-cluster { width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-label-space { display: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792766477236-lz8qius4a .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792766477236-lz8qius4a .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792766477236-lz8qius4a .fv-stl-shop-all-logo, #fv-chart-1792766477236-lz8qius4a .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792766477236-lz8qius4a.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "COD MW4 preset performance - 1440p - RTX 3060 Ti",  "description": "Frame rates were taken at 1440p native, using an RTX 3060 Ti, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T14:41:17.236Z",  "citation": "As with higher-end rigs, using the Balanced preset seems to give the best bang for your buck here, balancing visuals and performance. The RTX 3060 Ti maintains just above 60 fps on average when using the Balanced preset without upscaling.",  "keywords": [    "3060 Ti - Minimum",    "3060 Ti - Basic",    "3060 Ti - Balanced",    "3060 Ti - Ultra",    "3060 Ti - Extreme",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "Balanced – Call of Duty: Modern Warfare 4",      "value": 64,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Basic – Call of Duty: Modern Warfare 4",      "value": 66,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Extreme – Call of Duty: Modern Warfare 4",      "value": 43,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Minimum – Call of Duty: Modern Warfare 4",      "value": 70,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Ultra – Call of Duty: Modern Warfare 4",      "value": 48,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T14:41:17.236Z","state":{"data":[{"productName":"3060 Ti - Balanced","attribute":"Call of Duty: Modern Warfare 4","value":64,"unit":"Avg fps","multiValues":[{"value":64,"unit":"Avg fps"},{"value":56,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Basic","attribute":"Call of Duty: Modern Warfare 4","value":66,"unit":"Avg fps","multiValues":[{"value":66,"unit":"Avg fps"},{"value":59,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Extreme","attribute":"Call of Duty: Modern Warfare 4","value":43,"unit":"Avg fps","multiValues":[{"value":43,"unit":"Avg fps"},{"value":36,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Minimum","attribute":"Call of Duty: Modern Warfare 4","value":70,"unit":"Avg fps","multiValues":[{"value":70,"unit":"Avg fps"},{"value":59,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Ultra","attribute":"Call of Duty: Modern Warfare 4","value":48,"unit":"Avg fps","multiValues":[{"value":48,"unit":"Avg fps"},{"value":43,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["3060 Ti - Balanced","3060 Ti - Basic","3060 Ti - Extreme","3060 Ti - Minimum","3060 Ti - Ultra"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["3060 Ti - Minimum","3060 Ti - Basic","3060 Ti - Balanced","3060 Ti - Ultra","3060 Ti - Extreme"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"3060 Ti - Balanced","color":"#E33235"},{"productName":"3060 Ti - Basic","color":"#FE9F58"},{"productName":"3060 Ti - Extreme","color":"#1CA9C4"},{"productName":"3060 Ti - Minimum","color":"#EB6F71"},{"productName":"3060 Ti - Ultra","color":"#FFC08B"}],"initialProductColors":[{"productName":"3060 Ti - Balanced","color":"#E33235"},{"productName":"3060 Ti - Basic","color":"#FE9F58"},{"productName":"3060 Ti - Extreme","color":"#1CA9C4"},{"productName":"3060 Ti - Minimum","color":"#EB6F71"},{"productName":"3060 Ti - Ultra","color":"#FFC08B"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"COD MW4 preset performance - 1440p - RTX 3060 Ti","subhead":"Frame rates were taken at 1440p native, using an RTX 3060 Ti, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.","caption":"As with higher-end rigs, using the Balanced preset seems to give the best bang for your buck here, balancing visuals and performance. The RTX 3060 Ti maintains just above 60 fps on average when using the Balanced preset without upscaling.","productNameOverrides":{"3060 Ti - Minimum":"Minimum","3060 Ti - Basic":"Basic","3060 Ti - Balanced":"Balanced","3060 Ti - Ultra":"Ultra","3060 Ti - Extreme":"Extreme"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792766477236-lz8qius4a" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">COD MW4 preset performance - 1440p - RTX 3060 Ti</h3><p class="fv-chart-subhead">Frame rates were taken at 1440p native, using an RTX 3060 Ti, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792766477236-lz8qius4a-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="Frame rates were taken at 1440p native, using an RTX 3060 Ti, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM." data-caption="As with higher-end rigs, using the Balanced preset seems to give the best bang for your buck here, balancing visuals and performance. The RTX 3060 Ti maintains just above 60 fps on average when using the Balanced preset without upscaling." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Minimum</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 87.5%; background-color: #E33235;" data-target-width="87.5" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">70</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 73.75%; background-color: #FE9F58;" data-target-width="73.75" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">59</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Basic</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 82.5%; background-color: #E33235;" data-target-width="82.5" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">66</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 73.75%; background-color: #FE9F58;" data-target-width="73.75" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">59</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Balanced</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 80%; background-color: #E33235;" data-target-width="80" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">64</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 70%; background-color: #FE9F58;" data-target-width="70" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">56</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Ultra</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 60%; background-color: #E33235;" data-target-width="60" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">48</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 53.75%; background-color: #FE9F58;" data-target-width="53.75" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">43</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Extreme</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 53.75%; background-color: #E33235;" data-target-width="53.75" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">43</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 45%; background-color: #FE9F58;" data-target-width="45" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">36</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>20</span><span>40</span><span>60</span><span>80</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Minimum</td><td>70 Avg fps, 59 1% low fps</td></tr><tr><td>Basic</td><td>66 Avg fps, 59 1% low fps</td></tr><tr><td>Balanced</td><td>64 Avg fps, 56 1% low fps</td></tr><tr><td>Ultra</td><td>48 Avg fps, 43 1% low fps</td></tr><tr><td>Extreme</td><td>43 Avg fps, 36 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">As with higher-end rigs, using the Balanced preset seems to give the best bang for your buck here, balancing visuals and performance. The RTX 3060 Ti maintains just above 60 fps on average when using the Balanced preset without upscaling.</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792766477236-lz8qius4a', false); });      } else {        initialize('fv-chart-1792766477236-lz8qius4a', false);      }    })();      </script></div><p>I captured these frame rates during the same repeated 30-second run in a campaign mission, but I've found they translate pretty well to DMZ, although a few frames are shaved off in that mode, and a few additional are shaved off when looking into the distance across the expansive map.</p><p>The trick to get buttery smooth frame rates with a GPU like the RTX 3060 Ti is to enable DLSS upscaling in Quality mode.</p><p>Enabling Quality upscaling takes frame rates from just above 60 to around 90 or even 100 when using the Balanced preset, if you opt for the older CNN model. I didn't notice much of a difference in visuals between CNN and Transformer models, so I'd be opting for the former just for the extra handful of frames, but either way you're getting something very playable.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792766701537-tgv5kqsc5 *, #fv-chart-1792766701537-tgv5kqsc5 *:before, #fv-chart-1792766701537-tgv5kqsc5 *:after, #fv-chart-1792766701537-tgv5kqsc5-slideshow *, #fv-chart-1792766701537-tgv5kqsc5-slideshow *:before, #fv-chart-1792766701537-tgv5kqsc5-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792766701537-tgv5kqsc5, #fv-chart-1792766701537-tgv5kqsc5-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792766701537-tgv5kqsc5 { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792766701537-tgv5kqsc5.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn.disabled, #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792766701537-tgv5kqsc5 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792766701537-tgv5kqsc5 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792766701537-tgv5kqsc5 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row, #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792766701537-tgv5kqsc5 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-pie-container, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stacked-product, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-grouped-bar-product, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stacked-product, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-label, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-grouped-product-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-label, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-container, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-cluster, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-container, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-x-axis-wrapper, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-x-axis-label-space, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-x-axis-chart-space, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-benchmark-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-dropdown-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-carousel-nav-btn, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-chart-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-chart-subhead, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-header, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select-wrapper, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-vs, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select-container, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-dials-grid, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-dial-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792766701537-tgv5kqsc5 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row, #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-product, #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-label, #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-container, #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-cluster { width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-label-space { display: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stl-shop-all-logo, #fv-chart-1792766701537-tgv5kqsc5 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792766701537-tgv5kqsc5.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "DLSS Quality vs native at 1440p",  "description": "This compares playing the game at 1440p native to the two different versions of DLSS upscaling, set to Quality. ",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T14:45:01.537Z",  "citation": "Enabling DLSS on Quality turns gameplay from playable into a very smooth experience, whether that's using the CNN or Transformer model.",  "keywords": [    "3060 Ti - 1440p - CNN Quality",    "3060 Ti - 1440p - Transformer Quality",    "3060 Ti - Balanced",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "DLSS CNN Quality – Call of Duty: Modern Warfare 4",      "value": 97,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "DLSS Transformer Quality – Call of Duty: Modern Warfare 4",      "value": 89,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Native 1440p – Call of Duty: Modern Warfare 4",      "value": 64,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T14:45:01.537Z","state":{"data":[{"productName":"3060 Ti - 1440p - CNN Quality","attribute":"Call of Duty: Modern Warfare 4","value":97,"unit":"Avg fps","multiValues":[{"value":97,"unit":"Avg fps"},{"value":86,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - 1440p - Transformer Quality","attribute":"Call of Duty: Modern Warfare 4","value":89,"unit":"Avg fps","multiValues":[{"value":89,"unit":"Avg fps"},{"value":78,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Balanced","attribute":"Call of Duty: Modern Warfare 4","value":64,"unit":"Avg fps","multiValues":[{"value":64,"unit":"Avg fps"},{"value":56,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["3060 Ti - 1440p - CNN Quality","3060 Ti - 1440p - Transformer Quality","3060 Ti - Balanced"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["3060 Ti - 1440p - CNN Quality","3060 Ti - 1440p - Transformer Quality","3060 Ti - Balanced"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"3060 Ti - 1440p - CNN Quality","color":"#E33235"},{"productName":"3060 Ti - 1440p - Transformer Quality","color":"#FE9F58"},{"productName":"3060 Ti - Balanced","color":"#1CA9C4"}],"initialProductColors":[{"productName":"3060 Ti - 1440p - CNN Quality","color":"#E33235"},{"productName":"3060 Ti - 1440p - Transformer Quality","color":"#FE9F58"},{"productName":"3060 Ti - Balanced","color":"#1CA9C4"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"DLSS Quality vs native at 1440p","subhead":"This compares playing the game at 1440p native to the two different versions of DLSS upscaling, set to Quality. ","caption":"Enabling DLSS on Quality turns gameplay from playable into a very smooth experience, whether that's using the CNN or Transformer model.","productNameOverrides":{"3060 Ti - 1440p - CNN Quality":"DLSS CNN Quality","3060 Ti - 1440p - Transformer Quality":"DLSS Transformer Quality","3060 Ti - Balanced":"Native 1440p"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792766701537-tgv5kqsc5" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">DLSS Quality vs native at 1440p</h3><p class="fv-chart-subhead">This compares playing the game at 1440p native to the two different versions of DLSS upscaling, set to Quality. </p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792766701537-tgv5kqsc5-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="This compares playing the game at 1440p native to the two different versions of DLSS upscaling, set to Quality. " data-caption="Enabling DLSS on Quality turns gameplay from playable into a very smooth experience, whether that's using the CNN or Transformer model." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">DLSS CNN Quality</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 97%; background-color: #E33235;" data-target-width="97" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">97</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 86%; background-color: #FE9F58;" data-target-width="86" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">86</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">DLSS Transformer Quality</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 89%; background-color: #E33235;" data-target-width="89" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">89</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 78%; background-color: #FE9F58;" data-target-width="78" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">78</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Native 1440p</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 64%; background-color: #E33235;" data-target-width="64" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">64</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 56.00000000000001%; background-color: #FE9F58;" data-target-width="56.00000000000001" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">56</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>25</span><span>50</span><span>75</span><span>100</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>DLSS CNN Quality</td><td>97 Avg fps, 86 1% low fps</td></tr><tr><td>DLSS Transformer Quality</td><td>89 Avg fps, 78 1% low fps</td></tr><tr><td>Native 1440p</td><td>64 Avg fps, 56 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">Enabling DLSS on Quality turns gameplay from playable into a very smooth experience, whether that's using the CNN or Transformer model.</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792766701537-tgv5kqsc5', false); });      } else {        initialize('fv-chart-1792766701537-tgv5kqsc5', false);      }    })();      </script></div><p>All of the above is speaking to 1440p, but if you have a 1080p monitor or don't mind dropping to 1080p on your 1440p monitor, you can get some very nice frame rates from a card like the RTX 3060 Ti. As you can see from my final chart below, you can push about 130 fps on average in the campaign if you play at 1080p with DLSS enabled, again on the Balanced preset.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792772623125-cdpk07qu4 *, #fv-chart-1792772623125-cdpk07qu4 *:before, #fv-chart-1792772623125-cdpk07qu4 *:after, #fv-chart-1792772623125-cdpk07qu4-slideshow *, #fv-chart-1792772623125-cdpk07qu4-slideshow *:before, #fv-chart-1792772623125-cdpk07qu4-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792772623125-cdpk07qu4, #fv-chart-1792772623125-cdpk07qu4-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792772623125-cdpk07qu4 { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792772623125-cdpk07qu4 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792772623125-cdpk07qu4.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn.disabled, #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792772623125-cdpk07qu4 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792772623125-cdpk07qu4 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792772623125-cdpk07qu4 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792772623125-cdpk07qu4 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row, #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792772623125-cdpk07qu4 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-pie-container, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stacked-product, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-grouped-bar-product, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stacked-product, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-label, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-grouped-product-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-label, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-container, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-cluster, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-container, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-x-axis-wrapper, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-x-axis-label-space, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-x-axis-chart-space, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-benchmark-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-dropdown-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-carousel-nav-btn, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-chart-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-chart-subhead, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-header, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select-wrapper, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-vs, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select-container, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-dials-grid, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-dial-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792772623125-cdpk07qu4 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row, #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-product, #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-label, #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-container, #fv-chart-1792772623125-cdpk07qu4 .fv-bar-cluster { width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-label-space { display: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stl-shop-all-logo, #fv-chart-1792772623125-cdpk07qu4 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792772623125-cdpk07qu4.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing 1440p to 1080p performance",  "description": "This chart compares performance at 1440p to 1080p using an RTX 3060 Ti, with upscaling enabled and disabled.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T16:23:43.125Z",  "citation": "1080p with DLSS enabled performs very smoothly, suitable for a 144 Hz or 165 Hz monitor. Playing at 1440p with DLSS enabled gives about the same performance as playing at 1080p native (DLSS disabled).",  "keywords": [    "3060 Ti - Balanced",    "3060 Ti - 1440p - CNN Quality",    "3060 Ti - 1080p native",    "3060 Ti - 1080p - CNN Quality",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "1080p DLSS Quality (CNN) – Call of Duty: Modern Warfare 4",      "value": 131,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "1080p Native – Call of Duty: Modern Warfare 4",      "value": 92,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "1440p DLSS Quality (CNN) – Call of Duty: Modern Warfare 4",      "value": 97,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "1440p Native – Call of Duty: Modern Warfare 4",      "value": 64,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T16:23:43.125Z","state":{"data":[{"productName":"3060 Ti - 1080p - CNN Quality","attribute":"Call of Duty: Modern Warfare 4","value":131,"unit":"Avg fps","multiValues":[{"value":131,"unit":"Avg fps"},{"value":113,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - 1080p native","attribute":"Call of Duty: Modern Warfare 4","value":92,"unit":"Avg fps","multiValues":[{"value":92,"unit":"Avg fps"},{"value":81,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - 1440p - CNN Quality","attribute":"Call of Duty: Modern Warfare 4","value":97,"unit":"Avg fps","multiValues":[{"value":97,"unit":"Avg fps"},{"value":86,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Balanced","attribute":"Call of Duty: Modern Warfare 4","value":64,"unit":"Avg fps","multiValues":[{"value":64,"unit":"Avg fps"},{"value":56,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["3060 Ti - 1080p - CNN Quality","3060 Ti - 1080p native","3060 Ti - 1440p - CNN Quality","3060 Ti - Balanced"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["3060 Ti - Balanced","3060 Ti - 1440p - CNN Quality","3060 Ti - 1080p native","3060 Ti - 1080p - CNN Quality"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"3060 Ti - 1080p - CNN Quality","color":"#E33235"},{"productName":"3060 Ti - 1080p native","color":"#FE9F58"},{"productName":"3060 Ti - 1440p - CNN Quality","color":"#1CA9C4"},{"productName":"3060 Ti - Balanced","color":"#EB6F71"}],"initialProductColors":[{"productName":"3060 Ti - 1080p - CNN Quality","color":"#E33235"},{"productName":"3060 Ti - 1080p native","color":"#FE9F58"},{"productName":"3060 Ti - 1440p - CNN Quality","color":"#1CA9C4"},{"productName":"3060 Ti - Balanced","color":"#EB6F71"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing 1440p to 1080p performance","subhead":"This chart compares performance at 1440p to 1080p using an RTX 3060 Ti, with upscaling enabled and disabled.","caption":"1080p with DLSS enabled performs very smoothly, suitable for a 144 Hz or 165 Hz monitor. Playing at 1440p with DLSS enabled gives about the same performance as playing at 1080p native (DLSS disabled).","productNameOverrides":{"3060 Ti - Balanced":"1440p Native","3060 Ti - 1440p - CNN Quality":"1440p DLSS Quality (CNN)","3060 Ti - 1080p native":"1080p Native","3060 Ti - 1080p - CNN Quality":"1080p DLSS Quality (CNN)"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792772623125-cdpk07qu4" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Comparing 1440p to 1080p performance</h3><p class="fv-chart-subhead">This chart compares performance at 1440p to 1080p using an RTX 3060 Ti, with upscaling enabled and disabled.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792772623125-cdpk07qu4-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="This chart compares performance at 1440p to 1080p using an RTX 3060 Ti, with upscaling enabled and disabled." data-caption="1080p with DLSS enabled performs very smoothly, suitable for a 144 Hz or 165 Hz monitor. Playing at 1440p with DLSS enabled gives about the same performance as playing at 1080p native (DLSS disabled)." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">1440p Native</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 42.66666666666667%; background-color: #E33235;" data-target-width="42.66666666666667" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">64</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 37.333333333333336%; background-color: #FE9F58;" data-target-width="37.333333333333336" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">56</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">1440p DLSS Quality (CNN)</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 64.66666666666666%; background-color: #E33235;" data-target-width="64.66666666666666" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">97</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 57.333333333333336%; background-color: #FE9F58;" data-target-width="57.333333333333336" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">86</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">1080p Native</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 61.33333333333333%; background-color: #E33235;" data-target-width="61.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">92</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 54%; background-color: #FE9F58;" data-target-width="54" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">81</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">1080p DLSS Quality (CNN)</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 87.33333333333333%; background-color: #E33235;" data-target-width="87.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">131</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 75.33333333333333%; background-color: #FE9F58;" data-target-width="75.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">113</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>37.5</span><span>75</span><span>112.5</span><span>150</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>1440p Native</td><td>64 Avg fps, 56 1% low fps</td></tr><tr><td>1440p DLSS Quality (CNN)</td><td>97 Avg fps, 86 1% low fps</td></tr><tr><td>1080p Native</td><td>92 Avg fps, 81 1% low fps</td></tr><tr><td>1080p DLSS Quality (CNN)</td><td>131 Avg fps, 113 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">1080p with DLSS enabled performs very smoothly, suitable for a 144 Hz or 165 Hz monitor. Playing at 1440p with DLSS enabled gives about the same performance as playing at 1080p native (DLSS disabled).</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792772623125-cdpk07qu4', false); });      } else {        initialize('fv-chart-1792772623125-cdpk07qu4', false);      }    })();      </script></div><p>There are two caveats here, though. The first is that I wouldn't recommend doing this if you're on a 27-inch, 1440p monitor because it can look quite blurry. I'd just stick to 1440p with DLSS enabled instead. </p><p>The second caveat is that, in DMZ, I found frame rates to be a little lower than the ones I recorded in my runs of the campaign mission. But I'd still stick to those settings I just described. At 1440p with DLSS enabled in DMZ I get about 80–95 fps, and at 1080p with DLSS enabled I get about 110 fps.</p><h2 class="article-body__section" id="section-the-settings-i-d-use-in-cod-mw2-with-an-rtx-3060-ti"><span>The settings I'd use in COD: MW2 with an RTX 3060 Ti</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:1913px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ADf8vRbBtWTiViXXLTEKWT" name="image (5)" alt="A screenshot of the COD: MW4 operator selection screen." src="https://cdn.mos.cms.futurecdn.net/ADf8vRbBtWTiViXXLTEKWT-1920-80.jpg" mos="" align="middle" fullscreen="" width="1913" height="1076" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>This is the resolution and upscaling combo setup I'd personally use to actually play the game if I had a 27-inch, 1440p monitor: <strong>1440p resolution, DLSS Quality upscaling (CNN), and the Balanced preset.</strong> If I was using a 24-inch, 1080p monitor, I'd stick to DLSS Quality (CNN) and the Balanced preset, but obviously have the resolution at 1080p instead. With a smaller 1080p monitor, it's not as blurry to have DLSS enabled even at 1080p.</p><p>The final bit of good news is that I've found my frame rate to be pretty consistent, too. With an RTX 3060 Ti, I get frame rates consistently pushing closer to 100 fps than 60 fps at 1440p with DLSS Quality enabled and using the Balanced preset.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792748156761-g6kvjaygs *, #fv-chart-1792748156761-g6kvjaygs *:before, #fv-chart-1792748156761-g6kvjaygs *:after, #fv-chart-1792748156761-g6kvjaygs-slideshow *, #fv-chart-1792748156761-g6kvjaygs-slideshow *:before, #fv-chart-1792748156761-g6kvjaygs-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792748156761-g6kvjaygs, #fv-chart-1792748156761-g6kvjaygs-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748156761-g6kvjaygs { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn.disabled, #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792748156761-g6kvjaygs .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792748156761-g6kvjaygs .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792748156761-g6kvjaygs .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792748156761-g6kvjaygs .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792748156761-g6kvjaygs .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792748156761-g6kvjaygs .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-expand-btn, #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-expand-btn:hover, #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-pie-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-bar-product, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-product-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-cluster, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-label-space, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-chart-space, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-benchmark-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dropdown-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-carousel-nav-btn, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-chart-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-chart-subhead, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-header, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-vs, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dials-grid, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dial-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792748156761-g6kvjaygs .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748156761-g6kvjaygs.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing higher to lower detail quality",  "description": "High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:35:56.761Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "Image Comparison",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": []}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:35:56.761Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing higher to lower detail quality","subhead":"High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg","label1":"High detail quality","label2":"Normal detail quality","showTitle":true,"showSubhead":true}},"slides":[]}</script><div id="fv-chart-1792748156761-g6kvjaygs" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper  fv-is-image-compare  "><h3 class="fv-chart-title">Comparing higher to lower detail quality</h3><p class="fv-chart-subhead">High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792748156761-g6kvjaygs-image-compare-1" data-chart-type="Image Comparison" data-title="Image Comparison" data-subhead="High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image." data-caption="" style=""><div class="fv-benchmark-group"><div class="fv-image-compare-container"><div class="fv-image-compare-wrapper" data-image-compare="true"><div class="fv-image-compare-inner"><img src="https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg" alt="After" class="fv-image-compare-bg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><img src="https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg" alt="Before" class="fv-image-compare-fg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><div class="fv-image-compare-slider"><div class="fv-image-compare-slider-line"></div><div class="fv-image-compare-handle fv-image-compare-handle-square"><img src="https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png" alt="Brand Logo" style="width: 100%; height: 100%; object-fit: cover;" /></div></div></div><div class="fv-image-compare-label fv-image-compare-label-left">High detail quality</div><div class="fv-image-compare-label fv-image-compare-label-right">Normal detail quality</div><button class="fv-image-compare-expand-btn" aria-label="Expand Image"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V4h4"/><path d="M20 8V4h-4"/><path d="M4 16v4h4"/><path d="M20 16v4h-4"/><circle cx="11.5" cy="11.5" r="3.5"/><path d="m14 14 3 3"/></svg></button><button class="fv-image-compare-close-btn" aria-label="Close Fullscreen"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: none;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;"></span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792748156761-g6kvjaygs', false); });      } else {        initialize('fv-chart-1792748156761-g6kvjaygs', false);      }    })();      </script></div><p>A couple of final tips. One thing I'd recommend is avoiding the lower presets, and especially the bottom 'Minimum' one, as I found graphical fidelity takes a big hit when dropping that low. Everything is much more crisp at Balanced.</p><p>And finally: if you're okay sacrificing just a small handful of frames here and there, try turning your 'detail quality' setting up to High. I've found this eliminates some of the buggy, blocky trees and shrubbery you occasionally run into, and makes them look like actual trees.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-actually-runs-pretty-smoothly-with-activisions-recommended-rtx-3060-ti-graphics-card-and-here-are-the-settings-i-use-to-get-the-best-performance-from-it/</link>
                                                                            <description>
                            <![CDATA[ Though upscaling is somewhat of a requirement if you're at 1440p. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ttt7wGWsmmh5Dtfq9Qede3</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 23 Oct 2026 16:13:25 +0000</pubDate>                                                                                                                                <updated>Fri, 23 Oct 2026 23:08:05 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jacob Fox ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Ee8ZL5rzgTjTNkBFJ4jBnD-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jacob got his hands on a gaming PC for the first time when he was about 12 years old. He swiftly realised the local PC repair store had ripped him off with his build and vowed never to let another soul build his rig again. With this vow, Jacob the hardware junkie was born. Since then, Jacob&#039;s led a double-life as part-hardware geek, part-philosophy nerd, first working as a Hardware Writer for PCGamesN in 2020, then working towards a PhD in Philosophy for a few years while freelancing on the side for sites such as TechRadar, Pocket-lint, and yours truly, PC Gamer. Eventually, he gave up the ruthless mercenary life to join the world&#039;s #1 PC Gaming site full-time. It&#039;s definitely not an ego thing, he assures us.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A screenshot of DMZ mode in Call of Duty: Modern Warfare 4, with detail quality and terrain quality set to high.]]></media:description>                                                            <media:text><![CDATA[A screenshot of DMZ mode in Call of Duty: Modern Warfare 4, with detail quality and terrain quality set to high.]]></media:text>
                                <media:title type="plain"><![CDATA[A screenshot of DMZ mode in Call of Duty: Modern Warfare 4, with detail quality and terrain quality set to high.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I've been having a grand old time playing <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review-in-progress-a-campaign-you-shouldnt-skip/" target="_blank">Call of Duty: Modern Warfare 4</a> with an <a href="https://www.pcgamer.com/hardware/graphics-cards/amd-radeon-rx-9700-xt-review-asus-prime-oc/" target="_blank">RX 9070 XT</a>, but there'll be plenty of people wanting to run the game on older hardware. So, I decided to dust off my old and much-beloved workhorse, the <a href="https://www.pcgamer.com/nvidia-rtx-3060-ti-review-benchmarks-performance/" target="_blank">RTX 3060 Ti</a>, and see how it does in the new Activision shooter. I've been quite pleasantly surprised by the results.</p><p>Which is good news, considering <a href="https://support.activision.com/modern-warfare-4/articles/pc-system-requirements-for-modern-warfare-4" target="_blank">Activision lists</a> this graphics card, alongside the AMD RX 6600 XT and Intel Arc B580, as the 'recommended' ones to "run at 90 fps in multiplayer on High graphics settings."</p><p>I've found this actually pans out, provided you're at 1080p or are fine enabling Quality upscaling at 1440p.</p><h2 class="article-body__section" id="section-rtx-3060-ti-performance-in-cod-mw4"><span>RTX 3060 Ti performance in COD: MW4</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:1911px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YCfD5BENn8KFH9od8t5TdT" name="image (4)" alt="A screenshot of COD: MW4, aiming down-range at a target." src="https://cdn.mos.cms.futurecdn.net/YCfD5BENn8KFH9od8t5TdT-1920-80.jpg" mos="" align="middle" fullscreen="" width="1911" height="1075" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>As you can see from the chart below, at 1440p native, the game struggles to reach this 90 fps target even on the Minimum preset. And as I noted in my <a href="https://www.pcgamer.com/games/call-of-duty/ive-tested-every-graphics-setting-in-call-of-duty-modern-warfare-4-tweak-these-four-options-for-the-best-performance/" target="_blank">general performance overview</a>—which, by the way, you should read if you want to know which specific settings to alter to improve your frame rate—the Balanced preset offers the best bang for your buck by far, as going up to Ultra lowers your frame rate significantly.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792766477236-lz8qius4a *, #fv-chart-1792766477236-lz8qius4a *:before, #fv-chart-1792766477236-lz8qius4a *:after, #fv-chart-1792766477236-lz8qius4a-slideshow *, #fv-chart-1792766477236-lz8qius4a-slideshow *:before, #fv-chart-1792766477236-lz8qius4a-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792766477236-lz8qius4a, #fv-chart-1792766477236-lz8qius4a-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792766477236-lz8qius4a { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792766477236-lz8qius4a .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792766477236-lz8qius4a .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792766477236-lz8qius4a.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792766477236-lz8qius4a.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792766477236-lz8qius4a .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792766477236-lz8qius4a-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn.disabled, #fv-chart-1792766477236-lz8qius4a-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792766477236-lz8qius4a-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792766477236-lz8qius4a .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792766477236-lz8qius4a .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792766477236-lz8qius4a .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792766477236-lz8qius4a .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792766477236-lz8qius4a .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792766477236-lz8qius4a .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792766477236-lz8qius4a .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792766477236-lz8qius4a .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792766477236-lz8qius4a .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792766477236-lz8qius4a .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792766477236-lz8qius4a .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792766477236-lz8qius4a .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792766477236-lz8qius4a .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792766477236-lz8qius4a .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792766477236-lz8qius4a .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792766477236-lz8qius4a .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-row, #fv-chart-1792766477236-lz8qius4a .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792766477236-lz8qius4a .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792766477236-lz8qius4a .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792766477236-lz8qius4a .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792766477236-lz8qius4a .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792766477236-lz8qius4a .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792766477236-lz8qius4a .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792766477236-lz8qius4a.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792766477236-lz8qius4a .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792766477236-lz8qius4a .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-pie-container, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stacked-product, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-grouped-bar-product, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stacked-product, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-label, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-grouped-product-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-label, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-container, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-cluster, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-container, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-x-axis-wrapper, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-x-axis-label-space, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-x-axis-chart-space, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-benchmark-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-dropdown-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-carousel-nav-btn, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-chart-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-chart-subhead, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-header, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select-wrapper, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-vs, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select-container, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-versus-select, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-dials-grid, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-dial-title, #fv-chart-1792766477236-lz8qius4a.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792766477236-lz8qius4a.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792766477236-lz8qius4a .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-row, #fv-chart-1792766477236-lz8qius4a .fv-stacked-product, #fv-chart-1792766477236-lz8qius4a .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-label, #fv-chart-1792766477236-lz8qius4a .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-container, #fv-chart-1792766477236-lz8qius4a .fv-bar-cluster { width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766477236-lz8qius4a .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766477236-lz8qius4a .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-label-space { display: none !important; } #fv-chart-1792766477236-lz8qius4a .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792766477236-lz8qius4a .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792766477236-lz8qius4a .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792766477236-lz8qius4a .fv-stl-shop-all-logo, #fv-chart-1792766477236-lz8qius4a .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792766477236-lz8qius4a .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792766477236-lz8qius4a .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792766477236-lz8qius4a .fv-dial-title { font-size: 16px !important; } #fv-chart-1792766477236-lz8qius4a .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792766477236-lz8qius4a.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "COD MW4 preset performance - 1440p - RTX 3060 Ti",  "description": "Frame rates were taken at 1440p native, using an RTX 3060 Ti, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T14:41:17.236Z",  "citation": "As with higher-end rigs, using the Balanced preset seems to give the best bang for your buck here, balancing visuals and performance. The RTX 3060 Ti maintains just above 60 fps on average when using the Balanced preset without upscaling.",  "keywords": [    "3060 Ti - Minimum",    "3060 Ti - Basic",    "3060 Ti - Balanced",    "3060 Ti - Ultra",    "3060 Ti - Extreme",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "Balanced – Call of Duty: Modern Warfare 4",      "value": 64,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Basic – Call of Duty: Modern Warfare 4",      "value": 66,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Extreme – Call of Duty: Modern Warfare 4",      "value": 43,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Minimum – Call of Duty: Modern Warfare 4",      "value": 70,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Ultra – Call of Duty: Modern Warfare 4",      "value": 48,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T14:41:17.236Z","state":{"data":[{"productName":"3060 Ti - Balanced","attribute":"Call of Duty: Modern Warfare 4","value":64,"unit":"Avg fps","multiValues":[{"value":64,"unit":"Avg fps"},{"value":56,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Basic","attribute":"Call of Duty: Modern Warfare 4","value":66,"unit":"Avg fps","multiValues":[{"value":66,"unit":"Avg fps"},{"value":59,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Extreme","attribute":"Call of Duty: Modern Warfare 4","value":43,"unit":"Avg fps","multiValues":[{"value":43,"unit":"Avg fps"},{"value":36,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Minimum","attribute":"Call of Duty: Modern Warfare 4","value":70,"unit":"Avg fps","multiValues":[{"value":70,"unit":"Avg fps"},{"value":59,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Ultra","attribute":"Call of Duty: Modern Warfare 4","value":48,"unit":"Avg fps","multiValues":[{"value":48,"unit":"Avg fps"},{"value":43,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["3060 Ti - Balanced","3060 Ti - Basic","3060 Ti - Extreme","3060 Ti - Minimum","3060 Ti - Ultra"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["3060 Ti - Minimum","3060 Ti - Basic","3060 Ti - Balanced","3060 Ti - Ultra","3060 Ti - Extreme"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"3060 Ti - Balanced","color":"#E33235"},{"productName":"3060 Ti - Basic","color":"#FE9F58"},{"productName":"3060 Ti - Extreme","color":"#1CA9C4"},{"productName":"3060 Ti - Minimum","color":"#EB6F71"},{"productName":"3060 Ti - Ultra","color":"#FFC08B"}],"initialProductColors":[{"productName":"3060 Ti - Balanced","color":"#E33235"},{"productName":"3060 Ti - Basic","color":"#FE9F58"},{"productName":"3060 Ti - Extreme","color":"#1CA9C4"},{"productName":"3060 Ti - Minimum","color":"#EB6F71"},{"productName":"3060 Ti - Ultra","color":"#FFC08B"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"COD MW4 preset performance - 1440p - RTX 3060 Ti","subhead":"Frame rates were taken at 1440p native, using an RTX 3060 Ti, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.","caption":"As with higher-end rigs, using the Balanced preset seems to give the best bang for your buck here, balancing visuals and performance. The RTX 3060 Ti maintains just above 60 fps on average when using the Balanced preset without upscaling.","productNameOverrides":{"3060 Ti - Minimum":"Minimum","3060 Ti - Basic":"Basic","3060 Ti - Balanced":"Balanced","3060 Ti - Ultra":"Ultra","3060 Ti - Extreme":"Extreme"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792766477236-lz8qius4a" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">COD MW4 preset performance - 1440p - RTX 3060 Ti</h3><p class="fv-chart-subhead">Frame rates were taken at 1440p native, using an RTX 3060 Ti, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792766477236-lz8qius4a-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="Frame rates were taken at 1440p native, using an RTX 3060 Ti, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM." data-caption="As with higher-end rigs, using the Balanced preset seems to give the best bang for your buck here, balancing visuals and performance. The RTX 3060 Ti maintains just above 60 fps on average when using the Balanced preset without upscaling." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Minimum</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 87.5%; background-color: #E33235;" data-target-width="87.5" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">70</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 73.75%; background-color: #FE9F58;" data-target-width="73.75" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">59</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Basic</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 82.5%; background-color: #E33235;" data-target-width="82.5" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">66</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 73.75%; background-color: #FE9F58;" data-target-width="73.75" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">59</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Balanced</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 80%; background-color: #E33235;" data-target-width="80" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">64</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 70%; background-color: #FE9F58;" data-target-width="70" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">56</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Ultra</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 60%; background-color: #E33235;" data-target-width="60" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">48</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 53.75%; background-color: #FE9F58;" data-target-width="53.75" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">43</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Extreme</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 53.75%; background-color: #E33235;" data-target-width="53.75" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">43</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 45%; background-color: #FE9F58;" data-target-width="45" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">36</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>20</span><span>40</span><span>60</span><span>80</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Minimum</td><td>70 Avg fps, 59 1% low fps</td></tr><tr><td>Basic</td><td>66 Avg fps, 59 1% low fps</td></tr><tr><td>Balanced</td><td>64 Avg fps, 56 1% low fps</td></tr><tr><td>Ultra</td><td>48 Avg fps, 43 1% low fps</td></tr><tr><td>Extreme</td><td>43 Avg fps, 36 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">As with higher-end rigs, using the Balanced preset seems to give the best bang for your buck here, balancing visuals and performance. The RTX 3060 Ti maintains just above 60 fps on average when using the Balanced preset without upscaling.</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792766477236-lz8qius4a', false); });      } else {        initialize('fv-chart-1792766477236-lz8qius4a', false);      }    })();      </script></div><p>I captured these frame rates during the same repeated 30-second run in a campaign mission, but I've found they translate pretty well to DMZ, although a few frames are shaved off in that mode, and a few additional are shaved off when looking into the distance across the expansive map.</p><p>The trick to get buttery smooth frame rates with a GPU like the RTX 3060 Ti is to enable DLSS upscaling in Quality mode.</p><p>Enabling Quality upscaling takes frame rates from just above 60 to around 90 or even 100 when using the Balanced preset, if you opt for the older CNN model. I didn't notice much of a difference in visuals between CNN and Transformer models, so I'd be opting for the former just for the extra handful of frames, but either way you're getting something very playable.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792766701537-tgv5kqsc5 *, #fv-chart-1792766701537-tgv5kqsc5 *:before, #fv-chart-1792766701537-tgv5kqsc5 *:after, #fv-chart-1792766701537-tgv5kqsc5-slideshow *, #fv-chart-1792766701537-tgv5kqsc5-slideshow *:before, #fv-chart-1792766701537-tgv5kqsc5-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792766701537-tgv5kqsc5, #fv-chart-1792766701537-tgv5kqsc5-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792766701537-tgv5kqsc5 { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792766701537-tgv5kqsc5.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn.disabled, #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792766701537-tgv5kqsc5-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792766701537-tgv5kqsc5 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792766701537-tgv5kqsc5 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792766701537-tgv5kqsc5 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row, #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792766701537-tgv5kqsc5.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792766701537-tgv5kqsc5 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-pie-container, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stacked-product, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-grouped-bar-product, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stacked-product, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-label, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-grouped-product-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-label, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-container, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-cluster, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-container, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-x-axis-wrapper, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-x-axis-label-space, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-x-axis-chart-space, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-benchmark-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-dropdown-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-carousel-nav-btn, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-chart-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-chart-subhead, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-header, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select-wrapper, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-vs, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select-container, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-versus-select, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-dials-grid, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-dial-title, #fv-chart-1792766701537-tgv5kqsc5.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792766701537-tgv5kqsc5.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792766701537-tgv5kqsc5 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row, #fv-chart-1792766701537-tgv5kqsc5 .fv-stacked-product, #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-label, #fv-chart-1792766701537-tgv5kqsc5 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-container, #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-cluster { width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-label-space { display: none !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stl-shop-all-logo, #fv-chart-1792766701537-tgv5kqsc5 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-dial-title { font-size: 16px !important; } #fv-chart-1792766701537-tgv5kqsc5 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792766701537-tgv5kqsc5.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "DLSS Quality vs native at 1440p",  "description": "This compares playing the game at 1440p native to the two different versions of DLSS upscaling, set to Quality. ",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T14:45:01.537Z",  "citation": "Enabling DLSS on Quality turns gameplay from playable into a very smooth experience, whether that's using the CNN or Transformer model.",  "keywords": [    "3060 Ti - 1440p - CNN Quality",    "3060 Ti - 1440p - Transformer Quality",    "3060 Ti - Balanced",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "DLSS CNN Quality – Call of Duty: Modern Warfare 4",      "value": 97,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "DLSS Transformer Quality – Call of Duty: Modern Warfare 4",      "value": 89,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Native 1440p – Call of Duty: Modern Warfare 4",      "value": 64,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T14:45:01.537Z","state":{"data":[{"productName":"3060 Ti - 1440p - CNN Quality","attribute":"Call of Duty: Modern Warfare 4","value":97,"unit":"Avg fps","multiValues":[{"value":97,"unit":"Avg fps"},{"value":86,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - 1440p - Transformer Quality","attribute":"Call of Duty: Modern Warfare 4","value":89,"unit":"Avg fps","multiValues":[{"value":89,"unit":"Avg fps"},{"value":78,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Balanced","attribute":"Call of Duty: Modern Warfare 4","value":64,"unit":"Avg fps","multiValues":[{"value":64,"unit":"Avg fps"},{"value":56,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["3060 Ti - 1440p - CNN Quality","3060 Ti - 1440p - Transformer Quality","3060 Ti - Balanced"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["3060 Ti - 1440p - CNN Quality","3060 Ti - 1440p - Transformer Quality","3060 Ti - Balanced"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"3060 Ti - 1440p - CNN Quality","color":"#E33235"},{"productName":"3060 Ti - 1440p - Transformer Quality","color":"#FE9F58"},{"productName":"3060 Ti - Balanced","color":"#1CA9C4"}],"initialProductColors":[{"productName":"3060 Ti - 1440p - CNN Quality","color":"#E33235"},{"productName":"3060 Ti - 1440p - Transformer Quality","color":"#FE9F58"},{"productName":"3060 Ti - Balanced","color":"#1CA9C4"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"DLSS Quality vs native at 1440p","subhead":"This compares playing the game at 1440p native to the two different versions of DLSS upscaling, set to Quality. ","caption":"Enabling DLSS on Quality turns gameplay from playable into a very smooth experience, whether that's using the CNN or Transformer model.","productNameOverrides":{"3060 Ti - 1440p - CNN Quality":"DLSS CNN Quality","3060 Ti - 1440p - Transformer Quality":"DLSS Transformer Quality","3060 Ti - Balanced":"Native 1440p"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792766701537-tgv5kqsc5" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">DLSS Quality vs native at 1440p</h3><p class="fv-chart-subhead">This compares playing the game at 1440p native to the two different versions of DLSS upscaling, set to Quality. </p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792766701537-tgv5kqsc5-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="This compares playing the game at 1440p native to the two different versions of DLSS upscaling, set to Quality. " data-caption="Enabling DLSS on Quality turns gameplay from playable into a very smooth experience, whether that's using the CNN or Transformer model." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">DLSS CNN Quality</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 97%; background-color: #E33235;" data-target-width="97" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">97</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 86%; background-color: #FE9F58;" data-target-width="86" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">86</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">DLSS Transformer Quality</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 89%; background-color: #E33235;" data-target-width="89" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">89</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 78%; background-color: #FE9F58;" data-target-width="78" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">78</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Native 1440p</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 64%; background-color: #E33235;" data-target-width="64" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">64</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 56.00000000000001%; background-color: #FE9F58;" data-target-width="56.00000000000001" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">56</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>25</span><span>50</span><span>75</span><span>100</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>DLSS CNN Quality</td><td>97 Avg fps, 86 1% low fps</td></tr><tr><td>DLSS Transformer Quality</td><td>89 Avg fps, 78 1% low fps</td></tr><tr><td>Native 1440p</td><td>64 Avg fps, 56 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">Enabling DLSS on Quality turns gameplay from playable into a very smooth experience, whether that's using the CNN or Transformer model.</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792766701537-tgv5kqsc5', false); });      } else {        initialize('fv-chart-1792766701537-tgv5kqsc5', false);      }    })();      </script></div><p>All of the above is speaking to 1440p, but if you have a 1080p monitor or don't mind dropping to 1080p on your 1440p monitor, you can get some very nice frame rates from a card like the RTX 3060 Ti. As you can see from my final chart below, you can push about 130 fps on average in the campaign if you play at 1080p with DLSS enabled, again on the Balanced preset.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792772623125-cdpk07qu4 *, #fv-chart-1792772623125-cdpk07qu4 *:before, #fv-chart-1792772623125-cdpk07qu4 *:after, #fv-chart-1792772623125-cdpk07qu4-slideshow *, #fv-chart-1792772623125-cdpk07qu4-slideshow *:before, #fv-chart-1792772623125-cdpk07qu4-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792772623125-cdpk07qu4, #fv-chart-1792772623125-cdpk07qu4-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792772623125-cdpk07qu4 { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792772623125-cdpk07qu4 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792772623125-cdpk07qu4.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn.disabled, #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792772623125-cdpk07qu4-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792772623125-cdpk07qu4 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792772623125-cdpk07qu4 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792772623125-cdpk07qu4 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792772623125-cdpk07qu4 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row, #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792772623125-cdpk07qu4.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792772623125-cdpk07qu4 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-pie-container, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stacked-product, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-grouped-bar-product, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stacked-product, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-label, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-grouped-product-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-label, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-container, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-cluster, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-container, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-x-axis-wrapper, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-x-axis-label-space, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-x-axis-chart-space, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-benchmark-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-dropdown-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-carousel-nav-btn, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-chart-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-chart-subhead, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-header, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select-wrapper, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-vs, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select-container, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-versus-select, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-dials-grid, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-dial-title, #fv-chart-1792772623125-cdpk07qu4.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792772623125-cdpk07qu4.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792772623125-cdpk07qu4 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row, #fv-chart-1792772623125-cdpk07qu4 .fv-stacked-product, #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-label, #fv-chart-1792772623125-cdpk07qu4 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-container, #fv-chart-1792772623125-cdpk07qu4 .fv-bar-cluster { width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792772623125-cdpk07qu4 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-label-space { display: none !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stl-shop-all-logo, #fv-chart-1792772623125-cdpk07qu4 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-dial-title { font-size: 16px !important; } #fv-chart-1792772623125-cdpk07qu4 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792772623125-cdpk07qu4.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing 1440p to 1080p performance",  "description": "This chart compares performance at 1440p to 1080p using an RTX 3060 Ti, with upscaling enabled and disabled.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T16:23:43.125Z",  "citation": "1080p with DLSS enabled performs very smoothly, suitable for a 144 Hz or 165 Hz monitor. Playing at 1440p with DLSS enabled gives about the same performance as playing at 1080p native (DLSS disabled).",  "keywords": [    "3060 Ti - Balanced",    "3060 Ti - 1440p - CNN Quality",    "3060 Ti - 1080p native",    "3060 Ti - 1080p - CNN Quality",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "1080p DLSS Quality (CNN) – Call of Duty: Modern Warfare 4",      "value": 131,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "1080p Native – Call of Duty: Modern Warfare 4",      "value": 92,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "1440p DLSS Quality (CNN) – Call of Duty: Modern Warfare 4",      "value": 97,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "1440p Native – Call of Duty: Modern Warfare 4",      "value": 64,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T16:23:43.125Z","state":{"data":[{"productName":"3060 Ti - 1080p - CNN Quality","attribute":"Call of Duty: Modern Warfare 4","value":131,"unit":"Avg fps","multiValues":[{"value":131,"unit":"Avg fps"},{"value":113,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - 1080p native","attribute":"Call of Duty: Modern Warfare 4","value":92,"unit":"Avg fps","multiValues":[{"value":92,"unit":"Avg fps"},{"value":81,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - 1440p - CNN Quality","attribute":"Call of Duty: Modern Warfare 4","value":97,"unit":"Avg fps","multiValues":[{"value":97,"unit":"Avg fps"},{"value":86,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"3060 Ti - Balanced","attribute":"Call of Duty: Modern Warfare 4","value":64,"unit":"Avg fps","multiValues":[{"value":64,"unit":"Avg fps"},{"value":56,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["3060 Ti - 1080p - CNN Quality","3060 Ti - 1080p native","3060 Ti - 1440p - CNN Quality","3060 Ti - Balanced"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["3060 Ti - Balanced","3060 Ti - 1440p - CNN Quality","3060 Ti - 1080p native","3060 Ti - 1080p - CNN Quality"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"3060 Ti - 1080p - CNN Quality","color":"#E33235"},{"productName":"3060 Ti - 1080p native","color":"#FE9F58"},{"productName":"3060 Ti - 1440p - CNN Quality","color":"#1CA9C4"},{"productName":"3060 Ti - Balanced","color":"#EB6F71"}],"initialProductColors":[{"productName":"3060 Ti - 1080p - CNN Quality","color":"#E33235"},{"productName":"3060 Ti - 1080p native","color":"#FE9F58"},{"productName":"3060 Ti - 1440p - CNN Quality","color":"#1CA9C4"},{"productName":"3060 Ti - Balanced","color":"#EB6F71"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing 1440p to 1080p performance","subhead":"This chart compares performance at 1440p to 1080p using an RTX 3060 Ti, with upscaling enabled and disabled.","caption":"1080p with DLSS enabled performs very smoothly, suitable for a 144 Hz or 165 Hz monitor. Playing at 1440p with DLSS enabled gives about the same performance as playing at 1080p native (DLSS disabled).","productNameOverrides":{"3060 Ti - Balanced":"1440p Native","3060 Ti - 1440p - CNN Quality":"1440p DLSS Quality (CNN)","3060 Ti - 1080p native":"1080p Native","3060 Ti - 1080p - CNN Quality":"1080p DLSS Quality (CNN)"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792772623125-cdpk07qu4" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Comparing 1440p to 1080p performance</h3><p class="fv-chart-subhead">This chart compares performance at 1440p to 1080p using an RTX 3060 Ti, with upscaling enabled and disabled.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792772623125-cdpk07qu4-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="This chart compares performance at 1440p to 1080p using an RTX 3060 Ti, with upscaling enabled and disabled." data-caption="1080p with DLSS enabled performs very smoothly, suitable for a 144 Hz or 165 Hz monitor. Playing at 1440p with DLSS enabled gives about the same performance as playing at 1080p native (DLSS disabled)." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">1440p Native</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 42.66666666666667%; background-color: #E33235;" data-target-width="42.66666666666667" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">64</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 37.333333333333336%; background-color: #FE9F58;" data-target-width="37.333333333333336" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">56</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">1440p DLSS Quality (CNN)</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 64.66666666666666%; background-color: #E33235;" data-target-width="64.66666666666666" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">97</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 57.333333333333336%; background-color: #FE9F58;" data-target-width="57.333333333333336" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">86</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">1080p Native</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 61.33333333333333%; background-color: #E33235;" data-target-width="61.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">92</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 54%; background-color: #FE9F58;" data-target-width="54" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">81</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">1080p DLSS Quality (CNN)</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 87.33333333333333%; background-color: #E33235;" data-target-width="87.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">131</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 75.33333333333333%; background-color: #FE9F58;" data-target-width="75.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">113</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>37.5</span><span>75</span><span>112.5</span><span>150</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>1440p Native</td><td>64 Avg fps, 56 1% low fps</td></tr><tr><td>1440p DLSS Quality (CNN)</td><td>97 Avg fps, 86 1% low fps</td></tr><tr><td>1080p Native</td><td>92 Avg fps, 81 1% low fps</td></tr><tr><td>1080p DLSS Quality (CNN)</td><td>131 Avg fps, 113 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">1080p with DLSS enabled performs very smoothly, suitable for a 144 Hz or 165 Hz monitor. Playing at 1440p with DLSS enabled gives about the same performance as playing at 1080p native (DLSS disabled).</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792772623125-cdpk07qu4', false); });      } else {        initialize('fv-chart-1792772623125-cdpk07qu4', false);      }    })();      </script></div><p>There are two caveats here, though. The first is that I wouldn't recommend doing this if you're on a 27-inch, 1440p monitor because it can look quite blurry. I'd just stick to 1440p with DLSS enabled instead. </p><p>The second caveat is that, in DMZ, I found frame rates to be a little lower than the ones I recorded in my runs of the campaign mission. But I'd still stick to those settings I just described. At 1440p with DLSS enabled in DMZ I get about 80–95 fps, and at 1080p with DLSS enabled I get about 110 fps.</p><h2 class="article-body__section" id="section-the-settings-i-d-use-in-cod-mw2-with-an-rtx-3060-ti"><span>The settings I'd use in COD: MW2 with an RTX 3060 Ti</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:1913px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ADf8vRbBtWTiViXXLTEKWT" name="image (5)" alt="A screenshot of the COD: MW4 operator selection screen." src="https://cdn.mos.cms.futurecdn.net/ADf8vRbBtWTiViXXLTEKWT-1920-80.jpg" mos="" align="middle" fullscreen="" width="1913" height="1076" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>This is the resolution and upscaling combo setup I'd personally use to actually play the game if I had a 27-inch, 1440p monitor: <strong>1440p resolution, DLSS Quality upscaling (CNN), and the Balanced preset.</strong> If I was using a 24-inch, 1080p monitor, I'd stick to DLSS Quality (CNN) and the Balanced preset, but obviously have the resolution at 1080p instead. With a smaller 1080p monitor, it's not as blurry to have DLSS enabled even at 1080p.</p><p>The final bit of good news is that I've found my frame rate to be pretty consistent, too. With an RTX 3060 Ti, I get frame rates consistently pushing closer to 100 fps than 60 fps at 1440p with DLSS Quality enabled and using the Balanced preset.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792748156761-g6kvjaygs *, #fv-chart-1792748156761-g6kvjaygs *:before, #fv-chart-1792748156761-g6kvjaygs *:after, #fv-chart-1792748156761-g6kvjaygs-slideshow *, #fv-chart-1792748156761-g6kvjaygs-slideshow *:before, #fv-chart-1792748156761-g6kvjaygs-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792748156761-g6kvjaygs, #fv-chart-1792748156761-g6kvjaygs-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748156761-g6kvjaygs { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn.disabled, #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792748156761-g6kvjaygs .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792748156761-g6kvjaygs .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792748156761-g6kvjaygs .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792748156761-g6kvjaygs .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792748156761-g6kvjaygs .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792748156761-g6kvjaygs .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-expand-btn, #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-expand-btn:hover, #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-pie-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-bar-product, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-product-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-cluster, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-label-space, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-chart-space, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-benchmark-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dropdown-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-carousel-nav-btn, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-chart-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-chart-subhead, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-header, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-vs, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dials-grid, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dial-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792748156761-g6kvjaygs .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748156761-g6kvjaygs.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing higher to lower detail quality",  "description": "High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:35:56.761Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "Image Comparison",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": []}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:35:56.761Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing higher to lower detail quality","subhead":"High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg","label1":"High detail quality","label2":"Normal detail quality","showTitle":true,"showSubhead":true}},"slides":[]}</script><div id="fv-chart-1792748156761-g6kvjaygs" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper  fv-is-image-compare  "><h3 class="fv-chart-title">Comparing higher to lower detail quality</h3><p class="fv-chart-subhead">High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792748156761-g6kvjaygs-image-compare-1" data-chart-type="Image Comparison" data-title="Image Comparison" data-subhead="High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image." data-caption="" style=""><div class="fv-benchmark-group"><div class="fv-image-compare-container"><div class="fv-image-compare-wrapper" data-image-compare="true"><div class="fv-image-compare-inner"><img src="https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg" alt="After" class="fv-image-compare-bg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><img src="https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg" alt="Before" class="fv-image-compare-fg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><div class="fv-image-compare-slider"><div class="fv-image-compare-slider-line"></div><div class="fv-image-compare-handle fv-image-compare-handle-square"><img src="https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png" alt="Brand Logo" style="width: 100%; height: 100%; object-fit: cover;" /></div></div></div><div class="fv-image-compare-label fv-image-compare-label-left">High detail quality</div><div class="fv-image-compare-label fv-image-compare-label-right">Normal detail quality</div><button class="fv-image-compare-expand-btn" aria-label="Expand Image"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V4h4"/><path d="M20 8V4h-4"/><path d="M4 16v4h4"/><path d="M20 16v4h-4"/><circle cx="11.5" cy="11.5" r="3.5"/><path d="m14 14 3 3"/></svg></button><button class="fv-image-compare-close-btn" aria-label="Close Fullscreen"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: none;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;"></span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792748156761-g6kvjaygs', false); });      } else {        initialize('fv-chart-1792748156761-g6kvjaygs', false);      }    })();      </script></div><p>A couple of final tips. One thing I'd recommend is avoiding the lower presets, and especially the bottom 'Minimum' one, as I found graphical fidelity takes a big hit when dropping that low. Everything is much more crisp at Balanced.</p><p>And finally: if you're okay sacrificing just a small handful of frames here and there, try turning your 'detail quality' setting up to High. I've found this eliminates some of the buggy, blocky trees and shrubbery you occasionally run into, and makes them look like actual trees.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I've tested every graphics setting in Call of Duty: Modern Warfare 4—tweak these four options for the best performance ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I'm not usually one for all these fancy graphics; give me more frames, at all costs. But when I booted up <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review-in-progress-a-campaign-you-shouldnt-skip/" target="_blank">Call of Duty: Modern Warfare 4</a>, I have to admit, I was a little reluctant to sacrifice too much in the visual department. Because the game is, indeed, gorgeous despite being a little glitchy with texture pop-ins and flickering in DMZ mode. A more tailored approach was needed. So, I set about testing every single graphics setting in the game, one by one, to see which ones have the biggest impact, and I found there are four main settings to tweak.</p><p>First things first, though, if you just want to get up and going and you're using a mid-range PC, whack it on the Balanced preset, and you'll be fine. If you're using a high-end rig, then you should be fine setting it to the Ultra preset.</p><p><em>Note: All performance figures were calculated by doing the same 30-second run in-game, on Mission 4 of the campaign. I kept all movements and actions as similar as possible in each run I performed.</em></p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792748801715-rowg0zt4v *, #fv-chart-1792748801715-rowg0zt4v *:before, #fv-chart-1792748801715-rowg0zt4v *:after, #fv-chart-1792748801715-rowg0zt4v-slideshow *, #fv-chart-1792748801715-rowg0zt4v-slideshow *:before, #fv-chart-1792748801715-rowg0zt4v-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792748801715-rowg0zt4v, #fv-chart-1792748801715-rowg0zt4v-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748801715-rowg0zt4v { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792748801715-rowg0zt4v .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792748801715-rowg0zt4v .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792748801715-rowg0zt4v.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748801715-rowg0zt4v .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn.disabled, #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792748801715-rowg0zt4v .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792748801715-rowg0zt4v .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792748801715-rowg0zt4v .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792748801715-rowg0zt4v .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792748801715-rowg0zt4v .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-row, #fv-chart-1792748801715-rowg0zt4v .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792748801715-rowg0zt4v .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792748801715-rowg0zt4v .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748801715-rowg0zt4v .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-pie-container, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stacked-product, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-grouped-bar-product, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stacked-product, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-label, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-grouped-product-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-label, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-container, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-cluster, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-container, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-x-axis-wrapper, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-x-axis-label-space, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-x-axis-chart-space, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-benchmark-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-dropdown-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-carousel-nav-btn, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-chart-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-chart-subhead, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-header, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select-wrapper, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-vs, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select-container, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-dials-grid, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-dial-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792748801715-rowg0zt4v .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-row, #fv-chart-1792748801715-rowg0zt4v .fv-stacked-product, #fv-chart-1792748801715-rowg0zt4v .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-label, #fv-chart-1792748801715-rowg0zt4v .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-container, #fv-chart-1792748801715-rowg0zt4v .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stl-shop-all-logo, #fv-chart-1792748801715-rowg0zt4v .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748801715-rowg0zt4v.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Preset performance comparison",  "description": "Comparing game performance at different graphical presets at 1440p, using an RX 9070 XT, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:46:41.715Z",  "citation": "The biggest gain in performance comes from dropping from Ultra to Balanced. The differences between the other presets aren't so great. All presets net well above 60 fps with a high-end PC, and most sit above 100 fps.",  "keywords": [    "Minimum preset",    "Basic preset",    "Balanced preset",    "Ultra preset",    "Extreme preset",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "Balanced preset – Call of Duty: Modern Warfare 4",      "value": 133,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Basic preset – Call of Duty: Modern Warfare 4",      "value": 137,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Extreme preset – Call of Duty: Modern Warfare 4",      "value": 97,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Minimum preset – Call of Duty: Modern Warfare 4",      "value": 146,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Ultra preset – Call of Duty: Modern Warfare 4",      "value": 107,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:46:41.715Z","state":{"data":[{"productName":"Balanced preset","attribute":"Call of Duty: Modern Warfare 4","value":133,"unit":"Avg fps","multiValues":[{"value":133,"unit":"Avg fps"},{"value":109,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Basic preset","attribute":"Call of Duty: Modern Warfare 4","value":137,"unit":"Avg fps","multiValues":[{"value":137,"unit":"Avg fps"},{"value":114,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Extreme preset","attribute":"Call of Duty: Modern Warfare 4","value":97,"unit":"Avg fps","multiValues":[{"value":97,"unit":"Avg fps"},{"value":75,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Minimum preset","attribute":"Call of Duty: Modern Warfare 4","value":146,"unit":"Avg fps","multiValues":[{"value":146,"unit":"Avg fps"},{"value":119,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Ultra preset","attribute":"Call of Duty: Modern Warfare 4","value":107,"unit":"Avg fps","multiValues":[{"value":107,"unit":"Avg fps"},{"value":85,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["Balanced preset","Basic preset","Extreme preset","Minimum preset","Ultra preset"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["Minimum preset","Basic preset","Balanced preset","Ultra preset","Extreme preset"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"Balanced preset","color":"#E33235"},{"productName":"Basic preset","color":"#FE9F58"},{"productName":"Extreme preset","color":"#1CA9C4"},{"productName":"Minimum preset","color":"#EB6F71"},{"productName":"Ultra preset","color":"#FFC08B"}],"initialProductColors":[{"productName":"Balanced preset","color":"#E33235"},{"productName":"Basic preset","color":"#FE9F58"},{"productName":"Extreme preset","color":"#1CA9C4"},{"productName":"Minimum preset","color":"#EB6F71"},{"productName":"Ultra preset","color":"#FFC08B"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Preset performance comparison","subhead":"Comparing game performance at different graphical presets at 1440p, using an RX 9070 XT, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.","caption":"The biggest gain in performance comes from dropping from Ultra to Balanced. The differences between the other presets aren't so great. All presets net well above 60 fps with a high-end PC, and most sit above 100 fps.","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792748801715-rowg0zt4v" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Preset performance comparison</h3><p class="fv-chart-subhead">Comparing game performance at different graphical presets at 1440p, using an RX 9070 XT, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792748801715-rowg0zt4v-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="Comparing game performance at different graphical presets at 1440p, using an RX 9070 XT, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM." data-caption="The biggest gain in performance comes from dropping from Ultra to Balanced. The differences between the other presets aren't so great. All presets net well above 60 fps with a high-end PC, and most sit above 100 fps." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Minimum preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 97.33333333333334%; background-color: #E33235;" data-target-width="97.33333333333334" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">146</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 79.33333333333333%; background-color: #FE9F58;" data-target-width="79.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">119</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Basic preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 91.33333333333333%; background-color: #E33235;" data-target-width="91.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">137</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 76%; background-color: #FE9F58;" data-target-width="76" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">114</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Balanced preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 88.66666666666667%; background-color: #E33235;" data-target-width="88.66666666666667" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">133</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 72.66666666666667%; background-color: #FE9F58;" data-target-width="72.66666666666667" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">109</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Ultra preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 71.33333333333334%; background-color: #E33235;" data-target-width="71.33333333333334" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">107</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 56.666666666666664%; background-color: #FE9F58;" data-target-width="56.666666666666664" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">85</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Extreme preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 64.66666666666666%; background-color: #E33235;" data-target-width="64.66666666666666" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">97</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 50%; background-color: #FE9F58;" data-target-width="50" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">75</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>37.5</span><span>75</span><span>112.5</span><span>150</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Minimum preset</td><td>146 Avg fps, 119 1% low fps</td></tr><tr><td>Basic preset</td><td>137 Avg fps, 114 1% low fps</td></tr><tr><td>Balanced preset</td><td>133 Avg fps, 109 1% low fps</td></tr><tr><td>Ultra preset</td><td>107 Avg fps, 85 1% low fps</td></tr><tr><td>Extreme preset</td><td>97 Avg fps, 75 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">The biggest gain in performance comes from dropping from Ultra to Balanced. The differences between the other presets aren't so great. All presets net well above 60 fps with a high-end PC, and most sit above 100 fps.</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792748801715-rowg0zt4v', false); });      } else {        initialize('fv-chart-1792748801715-rowg0zt4v', false);      }    })();      </script></div><p>As you can see from the chart above, apart from enabling upscaling, by far the biggest performance jump comes from dropping from Ultra to Balanced. There's nowhere near as big a difference between Balanced/Basic/Minimum and Ultra/Extreme.</p><p>If you're keen on tinkering a little more, however, your first port of call should be the following four settings:</p><ul><li><strong>Detail quality</strong></li><li><strong>Shadow quality</strong></li><li><strong>Shadow filtering quality</strong></li><li><strong>Terrain quality</strong></li></ul><p>These settings are all found under <strong>Graphics > Quality > Advanced Quality Settings</strong>. The shadow settings obviously affect how shadows look, while the detail and terrain quality settings affect how the ground and small objects look. Increasing terrain quality makes things like ground surface textures appear more, well, textured, and detail quality makes small objects appear more—you guessed it—detailed.</p><p>Here's the difference between (1) normal shadow quality and high shadow filtering quality on the left, and (2) low shadow quality and normal shadow filtering quality on the right:</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792750939279-0vj30ag83 *, #fv-chart-1792750939279-0vj30ag83 *:before, #fv-chart-1792750939279-0vj30ag83 *:after, #fv-chart-1792750939279-0vj30ag83-slideshow *, #fv-chart-1792750939279-0vj30ag83-slideshow *:before, #fv-chart-1792750939279-0vj30ag83-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792750939279-0vj30ag83, #fv-chart-1792750939279-0vj30ag83-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792750939279-0vj30ag83 { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792750939279-0vj30ag83 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792750939279-0vj30ag83 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792750939279-0vj30ag83.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792750939279-0vj30ag83.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792750939279-0vj30ag83 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792750939279-0vj30ag83-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn.disabled, #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792750939279-0vj30ag83 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792750939279-0vj30ag83 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792750939279-0vj30ag83 .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792750939279-0vj30ag83 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792750939279-0vj30ag83 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-row, #fv-chart-1792750939279-0vj30ag83 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792750939279-0vj30ag83 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792750939279-0vj30ag83 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792750939279-0vj30ag83 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1792750939279-0vj30ag83.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-expand-btn, #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-expand-btn:hover, #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-pie-container, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stacked-product, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-grouped-bar-product, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stacked-product, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-label, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-grouped-product-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-label, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-container, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-cluster, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-container, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-x-axis-wrapper, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-x-axis-label-space, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-x-axis-chart-space, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-benchmark-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-dropdown-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-carousel-nav-btn, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-chart-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-chart-subhead, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-header, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select-wrapper, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-vs, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select-container, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-dials-grid, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-dial-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792750939279-0vj30ag83 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-row, #fv-chart-1792750939279-0vj30ag83 .fv-stacked-product, #fv-chart-1792750939279-0vj30ag83 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-label, #fv-chart-1792750939279-0vj30ag83 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-container, #fv-chart-1792750939279-0vj30ag83 .fv-bar-cluster { width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-label-space { display: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stl-shop-all-logo, #fv-chart-1792750939279-0vj30ag83 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792750939279-0vj30ag83.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing higher vs lower shadow settings",  "description": "On the left side, shadow quality is normal and shadow filtering quality is high. On the right, shadow quality is low and shadow filtering quality is normal.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T10:22:19.279Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "Image Comparison",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": []}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T10:22:19.279Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing higher vs lower shadow settings","subhead":"On the left side, shadow quality is normal and shadow filtering quality is high. On the right, shadow quality is low and shadow filtering quality is normal.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/VFGHJKEKQtvSKV9Aazwrie.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/mojQ2UeT9Bg8R3vbR98nje.jpg","label1":"Normal quality | High filtering","label2":"Low quality | Normal filtering","showTitle":true,"showSubhead":true}},"slides":[]}</script><div id="fv-chart-1792750939279-0vj30ag83" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper  fv-is-image-compare  "><h3 class="fv-chart-title">Comparing higher vs lower shadow settings</h3><p class="fv-chart-subhead">On the left side, shadow quality is normal and shadow filtering quality is high. On the right, shadow quality is low and shadow filtering quality is normal.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792750939279-0vj30ag83-image-compare-1" data-chart-type="Image Comparison" data-title="Image Comparison" data-subhead="On the left side, shadow quality is normal and shadow filtering quality is high. On the right, shadow quality is low and shadow filtering quality is normal." data-caption="" style=""><div class="fv-benchmark-group"><div class="fv-image-compare-container"><div class="fv-image-compare-wrapper" data-image-compare="true"><div class="fv-image-compare-inner"><img src="https://cdn.mos.cms.futurecdn.net/mojQ2UeT9Bg8R3vbR98nje.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/mojQ2UeT9Bg8R3vbR98nje.jpg" alt="After" class="fv-image-compare-bg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><img src="https://cdn.mos.cms.futurecdn.net/VFGHJKEKQtvSKV9Aazwrie.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/VFGHJKEKQtvSKV9Aazwrie.jpg" alt="Before" class="fv-image-compare-fg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><div class="fv-image-compare-slider"><div class="fv-image-compare-slider-line"></div><div class="fv-image-compare-handle fv-image-compare-handle-square"><img src="https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png" alt="Brand Logo" style="width: 100%; height: 100%; object-fit: cover;" /></div></div></div><div class="fv-image-compare-label fv-image-compare-label-left">Normal quality | High filtering</div><div class="fv-image-compare-label fv-image-compare-label-right">Low quality | Normal filtering</div><button class="fv-image-compare-expand-btn" aria-label="Expand Image"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V4h4"/><path d="M20 8V4h-4"/><path d="M4 16v4h4"/><path d="M20 16v4h-4"/><circle cx="11.5" cy="11.5" r="3.5"/><path d="m14 14 3 3"/></svg></button><button class="fv-image-compare-close-btn" aria-label="Close Fullscreen"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: none;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;"></span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792750939279-0vj30ag83', false); });      } else {        initialize('fv-chart-1792750939279-0vj30ag83', false);      }    })();      </script></div><p>And here's the difference between (1) high detail quality and high terrain quality on the left, and (2) normal detail quality and medium terrain quality on the right:</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792747557659-s12goipy9 *, #fv-chart-1792747557659-s12goipy9 *:before, #fv-chart-1792747557659-s12goipy9 *:after, #fv-chart-1792747557659-s12goipy9-slideshow *, #fv-chart-1792747557659-s12goipy9-slideshow *:before, #fv-chart-1792747557659-s12goipy9-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792747557659-s12goipy9, #fv-chart-1792747557659-s12goipy9-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792747557659-s12goipy9 { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792747557659-s12goipy9 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792747557659-s12goipy9 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792747557659-s12goipy9.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792747557659-s12goipy9.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792747557659-s12goipy9 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792747557659-s12goipy9-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn.disabled, #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792747557659-s12goipy9 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792747557659-s12goipy9 .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792747557659-s12goipy9 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792747557659-s12goipy9 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792747557659-s12goipy9 .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792747557659-s12goipy9 .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792747557659-s12goipy9 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792747557659-s12goipy9 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792747557659-s12goipy9 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792747557659-s12goipy9 .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792747557659-s12goipy9 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792747557659-s12goipy9 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792747557659-s12goipy9 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-row, #fv-chart-1792747557659-s12goipy9 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792747557659-s12goipy9 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792747557659-s12goipy9 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792747557659-s12goipy9 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792747557659-s12goipy9 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792747557659-s12goipy9 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792747557659-s12goipy9 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792747557659-s12goipy9 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1792747557659-s12goipy9.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-expand-btn, #fv-chart-1792747557659-s12goipy9 .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-expand-btn:hover, #fv-chart-1792747557659-s12goipy9 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-pie-container, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stacked-product, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-grouped-bar-product, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stacked-product, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-label, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-grouped-product-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-label, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-container, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-cluster, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-container, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-x-axis-wrapper, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-x-axis-label-space, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-x-axis-chart-space, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-benchmark-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-dropdown-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-carousel-nav-btn, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-chart-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-chart-subhead, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-header, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select-wrapper, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-vs, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select-container, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-dials-grid, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-dial-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792747557659-s12goipy9 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-row, #fv-chart-1792747557659-s12goipy9 .fv-stacked-product, #fv-chart-1792747557659-s12goipy9 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-label, #fv-chart-1792747557659-s12goipy9 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-container, #fv-chart-1792747557659-s12goipy9 .fv-bar-cluster { width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-label-space { display: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792747557659-s12goipy9 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792747557659-s12goipy9 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792747557659-s12goipy9 .fv-stl-shop-all-logo, #fv-chart-1792747557659-s12goipy9 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792747557659-s12goipy9.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing higher vs lower detail/terrain settings",  "description": "High detail quality and terrain quality on the left, normal/medium detail and terrain quality on the right.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:25:57.659Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "Image Comparison",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": []}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:25:57.659Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing higher vs lower detail/terrain settings","subhead":"High detail quality and terrain quality on the left, normal/medium detail and terrain quality on the right.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/6aM4bVx6k22jyvTpZSV2ne.jpg","label1":"Higher detail and terrain quality","label2":"Lower detail and terrain quality","showTitle":true,"showSubhead":true}},"slides":[]}</script><div id="fv-chart-1792747557659-s12goipy9" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper  fv-is-image-compare  "><h3 class="fv-chart-title">Comparing higher vs lower detail/terrain settings</h3><p class="fv-chart-subhead">High detail quality and terrain quality on the left, normal/medium detail and terrain quality on the right.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792747557659-s12goipy9-image-compare-1" data-chart-type="Image Comparison" data-title="Image Comparison" data-subhead="High detail quality and terrain quality on the left, normal/medium detail and terrain quality on the right." data-caption="" style=""><div class="fv-benchmark-group"><div class="fv-image-compare-container"><div class="fv-image-compare-wrapper" data-image-compare="true"><div class="fv-image-compare-inner"><img src="https://cdn.mos.cms.futurecdn.net/6aM4bVx6k22jyvTpZSV2ne.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/6aM4bVx6k22jyvTpZSV2ne.jpg" alt="After" class="fv-image-compare-bg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><img src="https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme.jpg" alt="Before" class="fv-image-compare-fg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><div class="fv-image-compare-slider"><div class="fv-image-compare-slider-line"></div><div class="fv-image-compare-handle fv-image-compare-handle-square"><img src="https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png" alt="Brand Logo" style="width: 100%; height: 100%; object-fit: cover;" /></div></div></div><div class="fv-image-compare-label fv-image-compare-label-left">Higher detail and terrain quality</div><div class="fv-image-compare-label fv-image-compare-label-right">Lower detail and terrain quality</div><button class="fv-image-compare-expand-btn" aria-label="Expand Image"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V4h4"/><path d="M20 8V4h-4"/><path d="M4 16v4h4"/><path d="M20 16v4h-4"/><circle cx="11.5" cy="11.5" r="3.5"/><path d="m14 14 3 3"/></svg></button><button class="fv-image-compare-close-btn" aria-label="Close Fullscreen"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: none;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;"></span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792747557659-s12goipy9', false); });      } else {        initialize('fv-chart-1792747557659-s12goipy9', false);      }    })();      </script></div><p>As you can see, the game looks far from awful even with these settings lowered, though the difference isn't unnoticeable. If you're looking to gain some extra frames, though, I'd definitely consider trying out lowering these settings. As you can see from the chart below, you gain a big chunk of performance by dropping both the shadow and detail settings.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792749069069-besqqjcfr *, #fv-chart-1792749069069-besqqjcfr *:before, #fv-chart-1792749069069-besqqjcfr *:after, #fv-chart-1792749069069-besqqjcfr-slideshow *, #fv-chart-1792749069069-besqqjcfr-slideshow *:before, #fv-chart-1792749069069-besqqjcfr-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792749069069-besqqjcfr, #fv-chart-1792749069069-besqqjcfr-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792749069069-besqqjcfr { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792749069069-besqqjcfr .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792749069069-besqqjcfr .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792749069069-besqqjcfr.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792749069069-besqqjcfr.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792749069069-besqqjcfr .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792749069069-besqqjcfr-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn.disabled, #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792749069069-besqqjcfr .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792749069069-besqqjcfr .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792749069069-besqqjcfr .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792749069069-besqqjcfr .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792749069069-besqqjcfr .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792749069069-besqqjcfr .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792749069069-besqqjcfr .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792749069069-besqqjcfr .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792749069069-besqqjcfr .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792749069069-besqqjcfr .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792749069069-besqqjcfr .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792749069069-besqqjcfr .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792749069069-besqqjcfr .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-row, #fv-chart-1792749069069-besqqjcfr .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792749069069-besqqjcfr .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792749069069-besqqjcfr .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792749069069-besqqjcfr .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792749069069-besqqjcfr .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792749069069-besqqjcfr .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792749069069-besqqjcfr .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792749069069-besqqjcfr .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-pie-container, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stacked-product, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-grouped-bar-product, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stacked-product, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-label, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-grouped-product-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-label, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-container, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-cluster, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-container, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-x-axis-wrapper, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-x-axis-label-space, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-x-axis-chart-space, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-benchmark-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-dropdown-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-carousel-nav-btn, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-chart-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-chart-subhead, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-header, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select-wrapper, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-vs, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select-container, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-dials-grid, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-dial-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792749069069-besqqjcfr .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-row, #fv-chart-1792749069069-besqqjcfr .fv-stacked-product, #fv-chart-1792749069069-besqqjcfr .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-label, #fv-chart-1792749069069-besqqjcfr .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-container, #fv-chart-1792749069069-besqqjcfr .fv-bar-cluster { width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-label-space { display: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792749069069-besqqjcfr .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792749069069-besqqjcfr .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792749069069-besqqjcfr .fv-stl-shop-all-logo, #fv-chart-1792749069069-besqqjcfr .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792749069069-besqqjcfr.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Performance gain lowering four key settings",  "description": "This compares frame rate at the Ultra preset to frame rate with just the four settings listed above lowered down to what they are at the Balanced preset.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:51:09.070Z",  "citation": "By lowering just these four settings, you get a sizeable increase in performance.",  "keywords": [    "Ultra preset",    "Four settings lowered",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "Four settings lowered – Call of Duty: Modern Warfare 4",      "value": 124,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Ultra preset – Call of Duty: Modern Warfare 4",      "value": 107,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:51:09.070Z","state":{"data":[{"productName":"Four settings lowered","attribute":"Call of Duty: Modern Warfare 4","value":124,"unit":"Avg fps","multiValues":[{"value":124,"unit":"Avg fps"},{"value":101,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Ultra preset","attribute":"Call of Duty: Modern Warfare 4","value":107,"unit":"Avg fps","multiValues":[{"value":107,"unit":"Avg fps"},{"value":85,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["Four settings lowered","Ultra preset"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["Ultra preset","Four settings lowered"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"Four settings lowered","color":"#E33235"},{"productName":"Ultra preset","color":"#FE9F58"}],"initialProductColors":[{"productName":"Four settings lowered","color":"#E33235"},{"productName":"Ultra preset","color":"#FE9F58"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Performance gain lowering four key settings","subhead":"This compares frame rate at the Ultra preset to frame rate with just the four settings listed above lowered down to what they are at the Balanced preset.","caption":"By lowering just these four settings, you get a sizeable increase in performance.","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792749069069-besqqjcfr" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Performance gain lowering four key settings</h3><p class="fv-chart-subhead">This compares frame rate at the Ultra preset to frame rate with just the four settings listed above lowered down to what they are at the Balanced preset.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792749069069-besqqjcfr-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="This compares frame rate at the Ultra preset to frame rate with just the four settings listed above lowered down to what they are at the Balanced preset." data-caption="By lowering just these four settings, you get a sizeable increase in performance." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Ultra preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 71.33333333333334%; background-color: #E33235;" data-target-width="71.33333333333334" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">107</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 56.666666666666664%; background-color: #FE9F58;" data-target-width="56.666666666666664" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">85</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Four settings lowered</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 82.66666666666667%; background-color: #E33235;" data-target-width="82.66666666666667" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">124</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 67.33333333333333%; background-color: #FE9F58;" data-target-width="67.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">101</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>37.5</span><span>75</span><span>112.5</span><span>150</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Ultra preset</td><td>107 Avg fps, 85 1% low fps</td></tr><tr><td>Four settings lowered</td><td>124 Avg fps, 101 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">By lowering just these four settings, you get a sizeable increase in performance.</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792749069069-besqqjcfr', false); });      } else {        initialize('fv-chart-1792749069069-besqqjcfr', false);      }    })();      </script></div><p>You might want to steer clear of detail quality if you don't want anything buggy going on. I found that dropping detail quality below high makes the occasional tree look blocky and unfinished even when at a moderate difference. You can see the difference in the image comparison below. For my part, I don't mind it too much because most trees and other details are completely fine. </p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792748156761-g6kvjaygs *, #fv-chart-1792748156761-g6kvjaygs *:before, #fv-chart-1792748156761-g6kvjaygs *:after, #fv-chart-1792748156761-g6kvjaygs-slideshow *, #fv-chart-1792748156761-g6kvjaygs-slideshow *:before, #fv-chart-1792748156761-g6kvjaygs-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792748156761-g6kvjaygs, #fv-chart-1792748156761-g6kvjaygs-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748156761-g6kvjaygs { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn.disabled, #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792748156761-g6kvjaygs .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792748156761-g6kvjaygs .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792748156761-g6kvjaygs .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792748156761-g6kvjaygs .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792748156761-g6kvjaygs .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792748156761-g6kvjaygs .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-expand-btn, #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-expand-btn:hover, #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-pie-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-bar-product, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-product-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-cluster, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-label-space, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-chart-space, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-benchmark-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dropdown-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-carousel-nav-btn, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-chart-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-chart-subhead, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-header, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-vs, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dials-grid, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dial-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792748156761-g6kvjaygs .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748156761-g6kvjaygs.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing higher to lower detail quality",  "description": "High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:35:56.761Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "Image Comparison",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": []}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:35:56.761Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing higher to lower detail quality","subhead":"High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg","label1":"High detail quality","label2":"Normal detail quality","showTitle":true,"showSubhead":true}},"slides":[]}</script><div id="fv-chart-1792748156761-g6kvjaygs" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper  fv-is-image-compare  "><h3 class="fv-chart-title">Comparing higher to lower detail quality</h3><p class="fv-chart-subhead">High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792748156761-g6kvjaygs-image-compare-1" data-chart-type="Image Comparison" data-title="Image Comparison" data-subhead="High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image." data-caption="" style=""><div class="fv-benchmark-group"><div class="fv-image-compare-container"><div class="fv-image-compare-wrapper" data-image-compare="true"><div class="fv-image-compare-inner"><img src="https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg" alt="After" class="fv-image-compare-bg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><img src="https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg" alt="Before" class="fv-image-compare-fg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><div class="fv-image-compare-slider"><div class="fv-image-compare-slider-line"></div><div class="fv-image-compare-handle fv-image-compare-handle-square"><img src="https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png" alt="Brand Logo" style="width: 100%; height: 100%; object-fit: cover;" /></div></div></div><div class="fv-image-compare-label fv-image-compare-label-left">High detail quality</div><div class="fv-image-compare-label fv-image-compare-label-right">Normal detail quality</div><button class="fv-image-compare-expand-btn" aria-label="Expand Image"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V4h4"/><path d="M20 8V4h-4"/><path d="M4 16v4h4"/><path d="M20 16v4h-4"/><circle cx="11.5" cy="11.5" r="3.5"/><path d="m14 14 3 3"/></svg></button><button class="fv-image-compare-close-btn" aria-label="Close Fullscreen"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: none;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;"></span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792748156761-g6kvjaygs', false); });      } else {        initialize('fv-chart-1792748156761-g6kvjaygs', false);      }    })();      </script></div><p>All this being said, though, upscaling throws a spanner in the works. With upscaling enabled, I found the performance gain to be nowhere near as big when lowering these settings. Instead of the big jump you see above, it pushed me from about 150 fps to about 160–165 fps in DMZ mode using an AMD Radeon RX 9070 XT.</p><p>Now, as I said at the start, I am a bit of a frame-head—I love upping my frame rate for online shooters. So for my money, given the game looks far from bad with these settings lowered, for DMZ and multiplayer, I think I'd keep the four settings low enough by enabling the Balanced preset, then drop down to 1080p with my 400 Hz monitor, enable Quality upscaling, and get headshotting.</p><p>For the campaign, though, and presumably in general for most gamers who aren't massive frame-heads like me (yes, I'm trying to make the term stick), I'd say it's worth keeping the three or four settings above ramped up to what they are on the Ultra preset and instead just enabling Quality upscaling, if your rig can handle it. I'd prefer the nicer shadows avoiding the very slight and occasional loss of crispness that comes with upscaling.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/ive-tested-every-graphics-setting-in-call-of-duty-modern-warfare-4-tweak-these-four-options-for-the-best-performance/</link>
                                                                            <description>
                            <![CDATA[ Upscaling can also help a bunch, of course. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">i6xpCFRmhnWgQsiE7TztAZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YCfD5BENn8KFH9od8t5TdT-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 23 Oct 2026 10:29:20 +0000</pubDate>                                                                                                                                <updated>Fri, 23 Oct 2026 10:29:26 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jacob Fox ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Ee8ZL5rzgTjTNkBFJ4jBnD-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jacob got his hands on a gaming PC for the first time when he was about 12 years old. He swiftly realised the local PC repair store had ripped him off with his build and vowed never to let another soul build his rig again. With this vow, Jacob the hardware junkie was born. Since then, Jacob&#039;s led a double-life as part-hardware geek, part-philosophy nerd, first working as a Hardware Writer for PCGamesN in 2020, then working towards a PhD in Philosophy for a few years while freelancing on the side for sites such as TechRadar, Pocket-lint, and yours truly, PC Gamer. Eventually, he gave up the ruthless mercenary life to join the world&#039;s #1 PC Gaming site full-time. It&#039;s definitely not an ego thing, he assures us.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YCfD5BENn8KFH9od8t5TdT-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A screenshot of COD: MW4, aiming down-range at a target.]]></media:description>                                                            <media:text><![CDATA[A screenshot of COD: MW4, aiming down-range at a target.]]></media:text>
                                <media:title type="plain"><![CDATA[A screenshot of COD: MW4, aiming down-range at a target.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YCfD5BENn8KFH9od8t5TdT-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I'm not usually one for all these fancy graphics; give me more frames, at all costs. But when I booted up <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review-in-progress-a-campaign-you-shouldnt-skip/" target="_blank">Call of Duty: Modern Warfare 4</a>, I have to admit, I was a little reluctant to sacrifice too much in the visual department. Because the game is, indeed, gorgeous despite being a little glitchy with texture pop-ins and flickering in DMZ mode. A more tailored approach was needed. So, I set about testing every single graphics setting in the game, one by one, to see which ones have the biggest impact, and I found there are four main settings to tweak.</p><p>First things first, though, if you just want to get up and going and you're using a mid-range PC, whack it on the Balanced preset, and you'll be fine. If you're using a high-end rig, then you should be fine setting it to the Ultra preset.</p><p><em>Note: All performance figures were calculated by doing the same 30-second run in-game, on Mission 4 of the campaign. I kept all movements and actions as similar as possible in each run I performed.</em></p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792748801715-rowg0zt4v *, #fv-chart-1792748801715-rowg0zt4v *:before, #fv-chart-1792748801715-rowg0zt4v *:after, #fv-chart-1792748801715-rowg0zt4v-slideshow *, #fv-chart-1792748801715-rowg0zt4v-slideshow *:before, #fv-chart-1792748801715-rowg0zt4v-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792748801715-rowg0zt4v, #fv-chart-1792748801715-rowg0zt4v-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748801715-rowg0zt4v { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792748801715-rowg0zt4v .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792748801715-rowg0zt4v .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792748801715-rowg0zt4v.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748801715-rowg0zt4v .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn.disabled, #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792748801715-rowg0zt4v-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792748801715-rowg0zt4v .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792748801715-rowg0zt4v .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792748801715-rowg0zt4v .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792748801715-rowg0zt4v .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792748801715-rowg0zt4v .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-row, #fv-chart-1792748801715-rowg0zt4v .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792748801715-rowg0zt4v .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792748801715-rowg0zt4v .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792748801715-rowg0zt4v.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792748801715-rowg0zt4v .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748801715-rowg0zt4v .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-pie-container, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stacked-product, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-grouped-bar-product, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stacked-product, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-label, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-grouped-product-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-label, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-container, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-cluster, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-container, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-x-axis-wrapper, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-x-axis-label-space, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-x-axis-chart-space, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-benchmark-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-dropdown-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-carousel-nav-btn, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-chart-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-chart-subhead, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-header, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select-wrapper, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-vs, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select-container, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-versus-select, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-dials-grid, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-dial-title, #fv-chart-1792748801715-rowg0zt4v.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748801715-rowg0zt4v.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792748801715-rowg0zt4v .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-row, #fv-chart-1792748801715-rowg0zt4v .fv-stacked-product, #fv-chart-1792748801715-rowg0zt4v .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-label, #fv-chart-1792748801715-rowg0zt4v .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-container, #fv-chart-1792748801715-rowg0zt4v .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748801715-rowg0zt4v .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748801715-rowg0zt4v .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748801715-rowg0zt4v .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stl-shop-all-logo, #fv-chart-1792748801715-rowg0zt4v .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748801715-rowg0zt4v .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748801715-rowg0zt4v .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748801715-rowg0zt4v.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Preset performance comparison",  "description": "Comparing game performance at different graphical presets at 1440p, using an RX 9070 XT, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:46:41.715Z",  "citation": "The biggest gain in performance comes from dropping from Ultra to Balanced. The differences between the other presets aren't so great. All presets net well above 60 fps with a high-end PC, and most sit above 100 fps.",  "keywords": [    "Minimum preset",    "Basic preset",    "Balanced preset",    "Ultra preset",    "Extreme preset",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "Balanced preset – Call of Duty: Modern Warfare 4",      "value": 133,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Basic preset – Call of Duty: Modern Warfare 4",      "value": 137,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Extreme preset – Call of Duty: Modern Warfare 4",      "value": 97,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Minimum preset – Call of Duty: Modern Warfare 4",      "value": 146,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Ultra preset – Call of Duty: Modern Warfare 4",      "value": 107,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:46:41.715Z","state":{"data":[{"productName":"Balanced preset","attribute":"Call of Duty: Modern Warfare 4","value":133,"unit":"Avg fps","multiValues":[{"value":133,"unit":"Avg fps"},{"value":109,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Basic preset","attribute":"Call of Duty: Modern Warfare 4","value":137,"unit":"Avg fps","multiValues":[{"value":137,"unit":"Avg fps"},{"value":114,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Extreme preset","attribute":"Call of Duty: Modern Warfare 4","value":97,"unit":"Avg fps","multiValues":[{"value":97,"unit":"Avg fps"},{"value":75,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Minimum preset","attribute":"Call of Duty: Modern Warfare 4","value":146,"unit":"Avg fps","multiValues":[{"value":146,"unit":"Avg fps"},{"value":119,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Ultra preset","attribute":"Call of Duty: Modern Warfare 4","value":107,"unit":"Avg fps","multiValues":[{"value":107,"unit":"Avg fps"},{"value":85,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["Balanced preset","Basic preset","Extreme preset","Minimum preset","Ultra preset"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["Minimum preset","Basic preset","Balanced preset","Ultra preset","Extreme preset"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"Balanced preset","color":"#E33235"},{"productName":"Basic preset","color":"#FE9F58"},{"productName":"Extreme preset","color":"#1CA9C4"},{"productName":"Minimum preset","color":"#EB6F71"},{"productName":"Ultra preset","color":"#FFC08B"}],"initialProductColors":[{"productName":"Balanced preset","color":"#E33235"},{"productName":"Basic preset","color":"#FE9F58"},{"productName":"Extreme preset","color":"#1CA9C4"},{"productName":"Minimum preset","color":"#EB6F71"},{"productName":"Ultra preset","color":"#FFC08B"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Preset performance comparison","subhead":"Comparing game performance at different graphical presets at 1440p, using an RX 9070 XT, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.","caption":"The biggest gain in performance comes from dropping from Ultra to Balanced. The differences between the other presets aren't so great. All presets net well above 60 fps with a high-end PC, and most sit above 100 fps.","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792748801715-rowg0zt4v" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Preset performance comparison</h3><p class="fv-chart-subhead">Comparing game performance at different graphical presets at 1440p, using an RX 9070 XT, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792748801715-rowg0zt4v-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="Comparing game performance at different graphical presets at 1440p, using an RX 9070 XT, Ryzen 7 7800X3D, and 32 GB of DDR5 RAM." data-caption="The biggest gain in performance comes from dropping from Ultra to Balanced. The differences between the other presets aren't so great. All presets net well above 60 fps with a high-end PC, and most sit above 100 fps." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Minimum preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 97.33333333333334%; background-color: #E33235;" data-target-width="97.33333333333334" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">146</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 79.33333333333333%; background-color: #FE9F58;" data-target-width="79.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">119</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Basic preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 91.33333333333333%; background-color: #E33235;" data-target-width="91.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">137</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 76%; background-color: #FE9F58;" data-target-width="76" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">114</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Balanced preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 88.66666666666667%; background-color: #E33235;" data-target-width="88.66666666666667" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">133</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 72.66666666666667%; background-color: #FE9F58;" data-target-width="72.66666666666667" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">109</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Ultra preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 71.33333333333334%; background-color: #E33235;" data-target-width="71.33333333333334" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">107</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 56.666666666666664%; background-color: #FE9F58;" data-target-width="56.666666666666664" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">85</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Extreme preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 64.66666666666666%; background-color: #E33235;" data-target-width="64.66666666666666" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">97</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 50%; background-color: #FE9F58;" data-target-width="50" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">75</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>37.5</span><span>75</span><span>112.5</span><span>150</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Minimum preset</td><td>146 Avg fps, 119 1% low fps</td></tr><tr><td>Basic preset</td><td>137 Avg fps, 114 1% low fps</td></tr><tr><td>Balanced preset</td><td>133 Avg fps, 109 1% low fps</td></tr><tr><td>Ultra preset</td><td>107 Avg fps, 85 1% low fps</td></tr><tr><td>Extreme preset</td><td>97 Avg fps, 75 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">The biggest gain in performance comes from dropping from Ultra to Balanced. The differences between the other presets aren't so great. All presets net well above 60 fps with a high-end PC, and most sit above 100 fps.</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792748801715-rowg0zt4v', false); });      } else {        initialize('fv-chart-1792748801715-rowg0zt4v', false);      }    })();      </script></div><p>As you can see from the chart above, apart from enabling upscaling, by far the biggest performance jump comes from dropping from Ultra to Balanced. There's nowhere near as big a difference between Balanced/Basic/Minimum and Ultra/Extreme.</p><p>If you're keen on tinkering a little more, however, your first port of call should be the following four settings:</p><ul><li><strong>Detail quality</strong></li><li><strong>Shadow quality</strong></li><li><strong>Shadow filtering quality</strong></li><li><strong>Terrain quality</strong></li></ul><p>These settings are all found under <strong>Graphics > Quality > Advanced Quality Settings</strong>. The shadow settings obviously affect how shadows look, while the detail and terrain quality settings affect how the ground and small objects look. Increasing terrain quality makes things like ground surface textures appear more, well, textured, and detail quality makes small objects appear more—you guessed it—detailed.</p><p>Here's the difference between (1) normal shadow quality and high shadow filtering quality on the left, and (2) low shadow quality and normal shadow filtering quality on the right:</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792750939279-0vj30ag83 *, #fv-chart-1792750939279-0vj30ag83 *:before, #fv-chart-1792750939279-0vj30ag83 *:after, #fv-chart-1792750939279-0vj30ag83-slideshow *, #fv-chart-1792750939279-0vj30ag83-slideshow *:before, #fv-chart-1792750939279-0vj30ag83-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792750939279-0vj30ag83, #fv-chart-1792750939279-0vj30ag83-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792750939279-0vj30ag83 { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792750939279-0vj30ag83 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792750939279-0vj30ag83 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792750939279-0vj30ag83.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792750939279-0vj30ag83.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792750939279-0vj30ag83 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792750939279-0vj30ag83-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn.disabled, #fv-chart-1792750939279-0vj30ag83-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792750939279-0vj30ag83-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792750939279-0vj30ag83 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792750939279-0vj30ag83 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792750939279-0vj30ag83 .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792750939279-0vj30ag83 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792750939279-0vj30ag83 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-row, #fv-chart-1792750939279-0vj30ag83 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792750939279-0vj30ag83 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792750939279-0vj30ag83 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792750939279-0vj30ag83.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792750939279-0vj30ag83 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792750939279-0vj30ag83 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1792750939279-0vj30ag83.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-expand-btn, #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-expand-btn:hover, #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1792750939279-0vj30ag83 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-pie-container, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stacked-product, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-grouped-bar-product, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stacked-product, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-label, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-grouped-product-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-label, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-container, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-cluster, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-container, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-x-axis-wrapper, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-x-axis-label-space, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-x-axis-chart-space, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-benchmark-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-dropdown-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-carousel-nav-btn, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-chart-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-chart-subhead, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-header, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select-wrapper, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-vs, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select-container, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-versus-select, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-dials-grid, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-dial-title, #fv-chart-1792750939279-0vj30ag83.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792750939279-0vj30ag83.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792750939279-0vj30ag83 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-row, #fv-chart-1792750939279-0vj30ag83 .fv-stacked-product, #fv-chart-1792750939279-0vj30ag83 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-label, #fv-chart-1792750939279-0vj30ag83 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-container, #fv-chart-1792750939279-0vj30ag83 .fv-bar-cluster { width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792750939279-0vj30ag83 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792750939279-0vj30ag83 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-label-space { display: none !important; } #fv-chart-1792750939279-0vj30ag83 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stl-shop-all-logo, #fv-chart-1792750939279-0vj30ag83 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792750939279-0vj30ag83 .fv-dial-title { font-size: 16px !important; } #fv-chart-1792750939279-0vj30ag83 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792750939279-0vj30ag83.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing higher vs lower shadow settings",  "description": "On the left side, shadow quality is normal and shadow filtering quality is high. On the right, shadow quality is low and shadow filtering quality is normal.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T10:22:19.279Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "Image Comparison",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": []}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T10:22:19.279Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing higher vs lower shadow settings","subhead":"On the left side, shadow quality is normal and shadow filtering quality is high. On the right, shadow quality is low and shadow filtering quality is normal.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/VFGHJKEKQtvSKV9Aazwrie.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/mojQ2UeT9Bg8R3vbR98nje.jpg","label1":"Normal quality | High filtering","label2":"Low quality | Normal filtering","showTitle":true,"showSubhead":true}},"slides":[]}</script><div id="fv-chart-1792750939279-0vj30ag83" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper  fv-is-image-compare  "><h3 class="fv-chart-title">Comparing higher vs lower shadow settings</h3><p class="fv-chart-subhead">On the left side, shadow quality is normal and shadow filtering quality is high. On the right, shadow quality is low and shadow filtering quality is normal.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792750939279-0vj30ag83-image-compare-1" data-chart-type="Image Comparison" data-title="Image Comparison" data-subhead="On the left side, shadow quality is normal and shadow filtering quality is high. On the right, shadow quality is low and shadow filtering quality is normal." data-caption="" style=""><div class="fv-benchmark-group"><div class="fv-image-compare-container"><div class="fv-image-compare-wrapper" data-image-compare="true"><div class="fv-image-compare-inner"><img src="https://cdn.mos.cms.futurecdn.net/mojQ2UeT9Bg8R3vbR98nje.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/mojQ2UeT9Bg8R3vbR98nje.jpg" alt="After" class="fv-image-compare-bg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><img src="https://cdn.mos.cms.futurecdn.net/VFGHJKEKQtvSKV9Aazwrie.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/VFGHJKEKQtvSKV9Aazwrie.jpg" alt="Before" class="fv-image-compare-fg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><div class="fv-image-compare-slider"><div class="fv-image-compare-slider-line"></div><div class="fv-image-compare-handle fv-image-compare-handle-square"><img src="https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png" alt="Brand Logo" style="width: 100%; height: 100%; object-fit: cover;" /></div></div></div><div class="fv-image-compare-label fv-image-compare-label-left">Normal quality | High filtering</div><div class="fv-image-compare-label fv-image-compare-label-right">Low quality | Normal filtering</div><button class="fv-image-compare-expand-btn" aria-label="Expand Image"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V4h4"/><path d="M20 8V4h-4"/><path d="M4 16v4h4"/><path d="M20 16v4h-4"/><circle cx="11.5" cy="11.5" r="3.5"/><path d="m14 14 3 3"/></svg></button><button class="fv-image-compare-close-btn" aria-label="Close Fullscreen"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: none;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;"></span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792750939279-0vj30ag83', false); });      } else {        initialize('fv-chart-1792750939279-0vj30ag83', false);      }    })();      </script></div><p>And here's the difference between (1) high detail quality and high terrain quality on the left, and (2) normal detail quality and medium terrain quality on the right:</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792747557659-s12goipy9 *, #fv-chart-1792747557659-s12goipy9 *:before, #fv-chart-1792747557659-s12goipy9 *:after, #fv-chart-1792747557659-s12goipy9-slideshow *, #fv-chart-1792747557659-s12goipy9-slideshow *:before, #fv-chart-1792747557659-s12goipy9-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792747557659-s12goipy9, #fv-chart-1792747557659-s12goipy9-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792747557659-s12goipy9 { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792747557659-s12goipy9 .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792747557659-s12goipy9 .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792747557659-s12goipy9.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792747557659-s12goipy9.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792747557659-s12goipy9 .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792747557659-s12goipy9-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn.disabled, #fv-chart-1792747557659-s12goipy9-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792747557659-s12goipy9-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792747557659-s12goipy9 .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792747557659-s12goipy9 .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792747557659-s12goipy9 .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792747557659-s12goipy9 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792747557659-s12goipy9 .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792747557659-s12goipy9 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792747557659-s12goipy9 .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792747557659-s12goipy9 .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792747557659-s12goipy9 .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792747557659-s12goipy9 .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792747557659-s12goipy9 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792747557659-s12goipy9 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792747557659-s12goipy9 .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792747557659-s12goipy9 .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792747557659-s12goipy9 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792747557659-s12goipy9 .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-row, #fv-chart-1792747557659-s12goipy9 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792747557659-s12goipy9 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792747557659-s12goipy9 .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792747557659-s12goipy9 .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792747557659-s12goipy9 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792747557659-s12goipy9 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792747557659-s12goipy9 .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792747557659-s12goipy9.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792747557659-s12goipy9 .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792747557659-s12goipy9 .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1792747557659-s12goipy9.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-expand-btn, #fv-chart-1792747557659-s12goipy9 .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-expand-btn:hover, #fv-chart-1792747557659-s12goipy9 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1792747557659-s12goipy9 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-pie-container, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stacked-product, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-grouped-bar-product, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stacked-product, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-label, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-grouped-product-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-label, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-container, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-cluster, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-container, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-x-axis-wrapper, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-x-axis-label-space, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-x-axis-chart-space, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-benchmark-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-dropdown-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-carousel-nav-btn, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-chart-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-chart-subhead, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-header, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select-wrapper, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-vs, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select-container, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-versus-select, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-dials-grid, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-dial-title, #fv-chart-1792747557659-s12goipy9.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792747557659-s12goipy9.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792747557659-s12goipy9 .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-row, #fv-chart-1792747557659-s12goipy9 .fv-stacked-product, #fv-chart-1792747557659-s12goipy9 .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-label, #fv-chart-1792747557659-s12goipy9 .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-container, #fv-chart-1792747557659-s12goipy9 .fv-bar-cluster { width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9 .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792747557659-s12goipy9 .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792747557659-s12goipy9 .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-label-space { display: none !important; } #fv-chart-1792747557659-s12goipy9 .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9 .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9 .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792747557659-s12goipy9 .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792747557659-s12goipy9 .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792747557659-s12goipy9 .fv-stl-shop-all-logo, #fv-chart-1792747557659-s12goipy9 .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792747557659-s12goipy9 .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792747557659-s12goipy9 .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792747557659-s12goipy9 .fv-dial-title { font-size: 16px !important; } #fv-chart-1792747557659-s12goipy9 .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792747557659-s12goipy9.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing higher vs lower detail/terrain settings",  "description": "High detail quality and terrain quality on the left, normal/medium detail and terrain quality on the right.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:25:57.659Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "Image Comparison",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": []}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:25:57.659Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing higher vs lower detail/terrain settings","subhead":"High detail quality and terrain quality on the left, normal/medium detail and terrain quality on the right.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/6aM4bVx6k22jyvTpZSV2ne.jpg","label1":"Higher detail and terrain quality","label2":"Lower detail and terrain quality","showTitle":true,"showSubhead":true}},"slides":[]}</script><div id="fv-chart-1792747557659-s12goipy9" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper  fv-is-image-compare  "><h3 class="fv-chart-title">Comparing higher vs lower detail/terrain settings</h3><p class="fv-chart-subhead">High detail quality and terrain quality on the left, normal/medium detail and terrain quality on the right.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792747557659-s12goipy9-image-compare-1" data-chart-type="Image Comparison" data-title="Image Comparison" data-subhead="High detail quality and terrain quality on the left, normal/medium detail and terrain quality on the right." data-caption="" style=""><div class="fv-benchmark-group"><div class="fv-image-compare-container"><div class="fv-image-compare-wrapper" data-image-compare="true"><div class="fv-image-compare-inner"><img src="https://cdn.mos.cms.futurecdn.net/6aM4bVx6k22jyvTpZSV2ne.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/6aM4bVx6k22jyvTpZSV2ne.jpg" alt="After" class="fv-image-compare-bg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><img src="https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/K87Z9XfsywJDw2EBwveyme.jpg" alt="Before" class="fv-image-compare-fg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><div class="fv-image-compare-slider"><div class="fv-image-compare-slider-line"></div><div class="fv-image-compare-handle fv-image-compare-handle-square"><img src="https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png" alt="Brand Logo" style="width: 100%; height: 100%; object-fit: cover;" /></div></div></div><div class="fv-image-compare-label fv-image-compare-label-left">Higher detail and terrain quality</div><div class="fv-image-compare-label fv-image-compare-label-right">Lower detail and terrain quality</div><button class="fv-image-compare-expand-btn" aria-label="Expand Image"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V4h4"/><path d="M20 8V4h-4"/><path d="M4 16v4h4"/><path d="M20 16v4h-4"/><circle cx="11.5" cy="11.5" r="3.5"/><path d="m14 14 3 3"/></svg></button><button class="fv-image-compare-close-btn" aria-label="Close Fullscreen"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: none;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;"></span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792747557659-s12goipy9', false); });      } else {        initialize('fv-chart-1792747557659-s12goipy9', false);      }    })();      </script></div><p>As you can see, the game looks far from awful even with these settings lowered, though the difference isn't unnoticeable. If you're looking to gain some extra frames, though, I'd definitely consider trying out lowering these settings. As you can see from the chart below, you gain a big chunk of performance by dropping both the shadow and detail settings.</p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792749069069-besqqjcfr *, #fv-chart-1792749069069-besqqjcfr *:before, #fv-chart-1792749069069-besqqjcfr *:after, #fv-chart-1792749069069-besqqjcfr-slideshow *, #fv-chart-1792749069069-besqqjcfr-slideshow *:before, #fv-chart-1792749069069-besqqjcfr-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792749069069-besqqjcfr, #fv-chart-1792749069069-besqqjcfr-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792749069069-besqqjcfr { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792749069069-besqqjcfr .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792749069069-besqqjcfr .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792749069069-besqqjcfr.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792749069069-besqqjcfr.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792749069069-besqqjcfr .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792749069069-besqqjcfr-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn.disabled, #fv-chart-1792749069069-besqqjcfr-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792749069069-besqqjcfr-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792749069069-besqqjcfr .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792749069069-besqqjcfr .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792749069069-besqqjcfr .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792749069069-besqqjcfr .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792749069069-besqqjcfr .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792749069069-besqqjcfr .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792749069069-besqqjcfr .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792749069069-besqqjcfr .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792749069069-besqqjcfr .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792749069069-besqqjcfr .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792749069069-besqqjcfr .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792749069069-besqqjcfr .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792749069069-besqqjcfr .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792749069069-besqqjcfr .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792749069069-besqqjcfr .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792749069069-besqqjcfr .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-row, #fv-chart-1792749069069-besqqjcfr .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792749069069-besqqjcfr .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792749069069-besqqjcfr .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792749069069-besqqjcfr .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792749069069-besqqjcfr .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792749069069-besqqjcfr .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792749069069-besqqjcfr .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792749069069-besqqjcfr.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792749069069-besqqjcfr .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792749069069-besqqjcfr .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-pie-container, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stacked-product, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-grouped-bar-product, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stacked-product, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-label, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-grouped-product-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-label, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-container, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-cluster, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-container, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-x-axis-wrapper, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-x-axis-label-space, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-x-axis-chart-space, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-benchmark-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-dropdown-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-carousel-nav-btn, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-chart-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-chart-subhead, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-header, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select-wrapper, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-vs, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select-container, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-versus-select, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-dials-grid, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-dial-title, #fv-chart-1792749069069-besqqjcfr.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792749069069-besqqjcfr.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792749069069-besqqjcfr .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-row, #fv-chart-1792749069069-besqqjcfr .fv-stacked-product, #fv-chart-1792749069069-besqqjcfr .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-label, #fv-chart-1792749069069-besqqjcfr .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-container, #fv-chart-1792749069069-besqqjcfr .fv-bar-cluster { width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792749069069-besqqjcfr .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792749069069-besqqjcfr .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-label-space { display: none !important; } #fv-chart-1792749069069-besqqjcfr .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792749069069-besqqjcfr .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792749069069-besqqjcfr .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792749069069-besqqjcfr .fv-stl-shop-all-logo, #fv-chart-1792749069069-besqqjcfr .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792749069069-besqqjcfr .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792749069069-besqqjcfr .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792749069069-besqqjcfr .fv-dial-title { font-size: 16px !important; } #fv-chart-1792749069069-besqqjcfr .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792749069069-besqqjcfr.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Performance gain lowering four key settings",  "description": "This compares frame rate at the Ultra preset to frame rate with just the four settings listed above lowered down to what they are at the Balanced preset.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:51:09.070Z",  "citation": "By lowering just these four settings, you get a sizeable increase in performance.",  "keywords": [    "Ultra preset",    "Four settings lowered",    "Call of Duty: Modern Warfare 4",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "Four settings lowered – Call of Duty: Modern Warfare 4",      "value": 124,      "unitText": "Avg fps"    },    {      "@type": "PropertyValue",      "name": "Ultra preset – Call of Duty: Modern Warfare 4",      "value": 107,      "unitText": "Avg fps"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:51:09.070Z","state":{"data":[{"productName":"Four settings lowered","attribute":"Call of Duty: Modern Warfare 4","value":124,"unit":"Avg fps","multiValues":[{"value":124,"unit":"Avg fps"},{"value":101,"unit":"1% low fps"}],"color":"","site":"PC Gamer"},{"productName":"Ultra preset","attribute":"Call of Duty: Modern Warfare 4","value":107,"unit":"Avg fps","multiValues":[{"value":107,"unit":"Avg fps"},{"value":85,"unit":"1% low fps"}],"color":"","site":"PC Gamer"}],"products":["Four settings lowered","Ultra preset"],"attributes":["Call of Duty: Modern Warfare 4"],"selectedProducts":["Ultra preset","Four settings lowered"],"selectedPrimaryProduct":null,"selectedAttributes":["Call of Duty: Modern Warfare 4"],"productColors":[{"productName":"Four settings lowered","color":"#E33235"},{"productName":"Ultra preset","color":"#FE9F58"}],"initialProductColors":[{"productName":"Four settings lowered","color":"#E33235"},{"productName":"Ultra preset","color":"#FE9F58"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Performance gain lowering four key settings","subhead":"This compares frame rate at the Ultra preset to frame rate with just the four settings listed above lowered down to what they are at the Balanced preset.","caption":"By lowering just these four settings, you get a sizeable increase in performance.","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792749069069-besqqjcfr" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Performance gain lowering four key settings</h3><p class="fv-chart-subhead">This compares frame rate at the Ultra preset to frame rate with just the four settings listed above lowered down to what they are at the Balanced preset.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792749069069-besqqjcfr-bar-Call of Duty: Modern Warfare 4" data-chart-type="Bar" data-title="Call of Duty: Modern Warfare 4" data-subhead="This compares frame rate at the Ultra preset to frame rate with just the four settings listed above lowered down to what they are at the Balanced preset." data-caption="By lowering just these four settings, you get a sizeable increase in performance." style=""><div class="fv-benchmark-group"><h4 class="fv-benchmark-title">Call of Duty: Modern Warfare 4</h4><div class="fv-multi-value-legend"><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #E33235;"></div><span>Avg fps</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>1% low fps</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Ultra preset</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 71.33333333333334%; background-color: #E33235;" data-target-width="71.33333333333334" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">107</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 56.666666666666664%; background-color: #FE9F58;" data-target-width="56.666666666666664" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">85</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Four settings lowered</div><div class="fv-bar-container fv-multi-bar-container"><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 82.66666666666667%; background-color: #E33235;" data-target-width="82.66666666666667" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #ffffff !important; text-shadow: 1px 1px 1px rgba(0,0,0,0.3) !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">124</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 67.33333333333333%; background-color: #FE9F58;" data-target-width="67.33333333333333" data-target-margin="0"><div class="fv-bar-inner-content" style="color: #1F2937 !important; text-shadow: none !important; flex-direction: row;"><span></span><span class="fv-bar-inner-value">101</span></div></div></div></div></div><div class="fv-x-axis-wrapper"><div class="fv-x-axis-label-space"></div><div class="fv-x-axis-chart-space"><div class="fv-x-axis-line"></div><div class="fv-x-axis-ticks"><span>0</span><span>37.5</span><span>75</span><span>112.5</span><span>150</span></div></div></div><table class="sr-only"><caption>Call of Duty: Modern Warfare 4 Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Ultra preset</td><td>107 Avg fps, 85 1% low fps</td></tr><tr><td>Four settings lowered</td><td>124 Avg fps, 101 1% low fps</td></tr></tbody></table></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: block;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;">By lowering just these four settings, you get a sizeable increase in performance.</span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792749069069-besqqjcfr', false); });      } else {        initialize('fv-chart-1792749069069-besqqjcfr', false);      }    })();      </script></div><p>You might want to steer clear of detail quality if you don't want anything buggy going on. I found that dropping detail quality below high makes the occasional tree look blocky and unfinished even when at a moderate difference. You can see the difference in the image comparison below. For my part, I don't mind it too much because most trees and other details are completely fine. </p><div class="vizualizer-embed"><style>@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792748156761-g6kvjaygs *, #fv-chart-1792748156761-g6kvjaygs *:before, #fv-chart-1792748156761-g6kvjaygs *:after, #fv-chart-1792748156761-g6kvjaygs-slideshow *, #fv-chart-1792748156761-g6kvjaygs-slideshow *:before, #fv-chart-1792748156761-g6kvjaygs-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792748156761-g6kvjaygs, #fv-chart-1792748156761-g6kvjaygs-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748156761-g6kvjaygs { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748156761-g6kvjaygs .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn.disabled, #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792748156761-g6kvjaygs-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792748156761-g6kvjaygs .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792748156761-g6kvjaygs .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792748156761-g6kvjaygs .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792748156761-g6kvjaygs .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792748156761-g6kvjaygs .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dials-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important; gap: 1.5rem 1rem !important; width: 100% !important; margin: 0.75rem 0 1.25rem !important; align-items: start !important; justify-items: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-card { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; width: 100% !important; max-width: 220px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-title { font-family: 'Poppins', 'Open Sans', sans-serif !important; font-size: 18px !important; font-weight: 700 !important; color: #2b2b2b !important; line-height: 1.25 !important; margin-bottom: 0.35rem !important; text-align: center !important; width: 100% !important; overflow-wrap: break-word !important; text-transform: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-commentary { margin-top: 0.35rem !important; font-size: 13px !important; line-height: 1.45 !important; color: #4B5563 !important; text-align: center !important; width: 100% !important; padding: 0 4px !important; font-family: 'Open Sans', sans-serif !important; word-wrap: break-word !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-commentary-input { min-height: 22px !important; border: 1px dashed transparent !important; border-radius: 4px !important; transition: border-color 0.15s ease, background-color 0.15s ease !important; } #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792748156761-g6kvjaygs.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792748156761-g6kvjaygs .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label-left { left: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-label-right { right: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-expand-btn, #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-expand-btn:hover, #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; } #fv-chart-1792748156761-g6kvjaygs .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-pie-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-bar-product, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-grouped-product-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-cluster, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-label-space, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-x-axis-chart-space, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-benchmark-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dropdown-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-carousel-nav-btn, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-chart-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-chart-subhead, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-header, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-vs, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select-container, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-versus-select, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dials-grid, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-dial-title, #fv-chart-1792748156761-g6kvjaygs.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748156761-g6kvjaygs.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792748156761-g6kvjaygs .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row, #fv-chart-1792748156761-g6kvjaygs .fv-stacked-product, #fv-chart-1792748156761-g6kvjaygs .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-label, #fv-chart-1792748156761-g6kvjaygs .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-container, #fv-chart-1792748156761-g6kvjaygs .fv-bar-cluster { width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792748156761-g6kvjaygs .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-label-space { display: none !important; } #fv-chart-1792748156761-g6kvjaygs .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-logo, #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792748156761-g6kvjaygs .fv-dial-title { font-size: 16px !important; } #fv-chart-1792748156761-g6kvjaygs .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792748156761-g6kvjaygs.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }</style><script type="application/ld+json">{  "@context": "https://schema.org",  "@type": "Dataset",  "name": "Comparing higher to lower detail quality",  "description": "High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-23T09:35:56.761Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "Image Comparison",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": []}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-23T09:35:56.761Z","state":{"data":[],"products":[],"attributes":[],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[],"initialProductColors":[],"attributeColors":[],"attributeGroups":[],"chartType":"Image Comparison","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"All Charts","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Comparing higher to lower detail quality","subhead":"High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":true,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":false,"experimentalEnablePieChart":false,"slideshowUseDropdown":false,"imageCompareData":{"image1Url":"https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg","image2Url":"https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg","label1":"High detail quality","label2":"Normal detail quality","showTitle":true,"showSubhead":true}},"slides":[]}</script><div id="fv-chart-1792748156761-g6kvjaygs" class="fv-chart-wrapper   " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper  fv-is-image-compare  "><h3 class="fv-chart-title">Comparing higher to lower detail quality</h3><p class="fv-chart-subhead">High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792748156761-g6kvjaygs-image-compare-1" data-chart-type="Image Comparison" data-title="Image Comparison" data-subhead="High detail quality on the left, normal on the right. Notice the yellow/orange tree loses all detail in the right-hand image." data-caption="" style=""><div class="fv-benchmark-group"><div class="fv-image-compare-container"><div class="fv-image-compare-wrapper" data-image-compare="true"><div class="fv-image-compare-inner"><img src="https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/xFCK2MB2Laec5Ca5WppqPM.jpg" alt="After" class="fv-image-compare-bg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><img src="https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg" data-highres-src="https://cdn.mos.cms.futurecdn.net/dgtm3mxTXQVJhTGBoH9uPM.jpg" alt="Before" class="fv-image-compare-fg" loading="lazy" referrerpolicy="no-referrer" draggable="false" /><div class="fv-image-compare-slider"><div class="fv-image-compare-slider-line"></div><div class="fv-image-compare-handle fv-image-compare-handle-square"><img src="https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png" alt="Brand Logo" style="width: 100%; height: 100%; object-fit: cover;" /></div></div></div><div class="fv-image-compare-label fv-image-compare-label-left">High detail quality</div><div class="fv-image-compare-label fv-image-compare-label-right">Normal detail quality</div><button class="fv-image-compare-expand-btn" aria-label="Expand Image"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 8V4h4"/><path d="M20 8V4h-4"/><path d="M4 16v4h4"/><path d="M20 16v4h-4"/><circle cx="11.5" cy="11.5" r="3.5"/><path d="m14 14 3 3"/></svg></button><button class="fv-image-compare-close-btn" aria-label="Close Fullscreen"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div></div></div></div><div class="fv-bottom-bar"><div class="fv-footer-content" style="display: none;"><div class="rv-chart-caption" style="display: block;"><span class="fv-original-caption" style="display: block;"></span><span class="fv-ia-dynamic-caption" style="display: none;"></span></div></div><div class="fv-logo-explore-bar"><img class="fv-logo" src="https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" alt="PC Gamer Logo" /></div></div></div></div><script>      window.iFrameResizer = {        heightCalculationMethod: 'taggedElement'      };    </script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.2.11/iframeResizer.contentWindow.min.js" async=""></script>    <script>          (function() {            function createChartAnimator() {        return function animateChartWrapper(chartWrapper) {          if (!chartWrapper) return;                    function animateBars(chartElement) {            if (!chartElement) return;            var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment');            bars.forEach(function(bar, index) {                bar.style.setProperty('width', '0%', 'important');                bar.style.setProperty('transition', 'none', 'important');                var targetWidth = bar.dataset.targetWidth;                if (targetWidth === undefined) return;                                void bar.offsetWidth;                 var targetMargin = bar.dataset.targetMargin;                var baseMargin = bar.dataset.baseMargin;                if (baseMargin !== undefined) {                    bar.style.setProperty('margin-left', baseMargin + '%', 'important');                }                                setTimeout(function() {                    var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : '';                    bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important');                    bar.style.setProperty('width', targetWidth + '%', 'important');                    if (targetMargin !== undefined && baseMargin !== undefined) {                        bar.style.setProperty('margin-left', targetMargin + '%', 'important');                    }                }, index * 50 + 50);            });          }          function animateLineChart(chartElement) {              if (!chartElement) return;              var lineSvg = chartElement.querySelector('svg');              if (!lineSvg) return;              var paths = lineSvg.querySelectorAll('.riv-line-path');              paths.forEach(function(p, i) {                if (typeof p.getTotalLength === 'function') {                  var len = p.getTotalLength();                  p.style.transition = 'none';                  p.style.strokeDasharray = len;                  p.style.strokeDashoffset = len;                  p.getBoundingClientRect();                  setTimeout(function() {                    p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s';                    p.style.strokeDashoffset = '0';                  }, 100);                }              });              var dots = lineSvg.querySelectorAll('.riv-dot');              dots.forEach(function(dot, i) {                dot.style.opacity = '0';                setTimeout(function() {                    dot.style.transition = 'opacity 0.3s ease';                    dot.style.opacity = '1';                }, 500 + i * 10);              });            }          function animateDials(chartElement) {            if (!chartElement) return;            var needles = chartElement.querySelectorAll('.fv-dial-needle');            needles.forEach(function(needle, index) {              var targetAngle = needle.dataset.targetAngle;              var baseAngle = needle.dataset.baseAngle || '-132';              if (targetAngle === undefined) return;              needle.style.setProperty('transition', 'none', 'important');              needle.style.setProperty('transform', 'rotate(' + baseAngle + 'deg)', 'important');              void needle.getBoundingClientRect();              setTimeout(function() {                needle.style.setProperty('transition', 'transform 0.9s cubic-bezier(0.22, 1, 0.36, 1)', 'important');                needle.style.setProperty('transform', 'rotate(' + targetAngle + 'deg)', 'important');              }, index * 60 + 50);            });          }            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            charts.forEach(function(chart) {                if (window.getComputedStyle(chart).display === 'none') return;                var chartType = chart.dataset.chartType;                if (chartType === 'Line') {                  animateLineChart(chart);                } else if (chartType !== 'Pie') {                  animateBars(chart);                  animateDials(chart);                }            });        };      }      var fvLocalAnimate = createChartAnimator();      window.fvAnimateCharts = fvLocalAnimate;            function initialize(uniqueId, isSlideshow) {        var root = document.getElementById(uniqueId);        if (!root && !isSlideshow) return;                function setupWrapper(chartWrapper) {            if (!chartWrapper) return;                        /* Responsive mobile view handling */            function checkMobileView() {                var width = chartWrapper.getBoundingClientRect().width;                var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;                                var isMobile;                if (width === 0) {                    isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;                } else {                    isMobile = isMobileDevice || width < 600;                }                                if (isMobile) {                    chartWrapper.classList.add('mobile-view');                } else {                    chartWrapper.classList.remove('mobile-view');                }            }                        checkMobileView();                        if (typeof ResizeObserver !== 'undefined') {                var ro = new ResizeObserver(function() {                    checkMobileView();                });                ro.observe(chartWrapper);            }                        window.addEventListener('resize', checkMobileView);                        var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';            if (labelsOnTop) {                var charts = chartWrapper.querySelectorAll('.fv-chart-item');                var hasVisibleBarChart = false;                charts.forEach(function(c) {                    if (window.getComputedStyle(c).display !== 'none') {                        var cType = c.dataset.chartType;                        if (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus') {                            hasVisibleBarChart = true;                        }                    }                });                                if (hasVisibleBarChart) {                    chartWrapper.classList.add('labels-on-top');                } else {                    chartWrapper.classList.remove('labels-on-top');                }            } else {                chartWrapper.classList.remove('labels-on-top');            }                        /* Legend interactions */            chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {                var chartId = legend.dataset.chart;                var chart = chartWrapper.querySelector('[id="' + chartId + '"]');                if (!chart) return;                var lines = chart.querySelectorAll('.riv-line-path');                var dots = chart.querySelectorAll('.riv-dot');                var legendItems = legend.querySelectorAll('.riv-legend-item');                legendItems.forEach(function(item) {                    var productName = item.dataset.product;                    var safeProductName = productName.replace(/"/g, '\\"');                    var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');                    var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');                                        if (line && !line.dataset.origStroke) {                        line.dataset.origStroke = line.getAttribute('stroke-width') || '2';                    }                                        var highlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '0.2'; });                        legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                        if (line) {                            line.style.opacity = '1';                            line.setAttribute('stroke-width', '4');                        }                        productDots.forEach(function(d) { d.style.opacity = '1'; });                        item.style.opacity = '1';                    };                    var clearHighlight = function() {                        if (legend.querySelector('.isolated')) return;                        lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                        dots.forEach(function(d) { d.style.opacity = '1'; });                        legendItems.forEach(function(i) { i.style.opacity = '1'; });                    };                    var toggleIsolate = function() {                        var isIsolated = item.classList.contains('isolated');                        legendItems.forEach(function(i) { i.classList.remove('isolated'); });                        if (isIsolated) {                            lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '1'; });                            legendItems.forEach(function(i) { i.style.opacity = '1'; });                        } else {                            item.classList.add('isolated');                            lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });                            dots.forEach(function(d) { d.style.opacity = '0.2'; });                            legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });                            if (line) {                                line.style.opacity = '1';                                line.setAttribute('stroke-width', '4');                            }                            productDots.forEach(function(d) { d.style.opacity = '1'; });                            item.style.opacity = '1';                        }                    };                    item.addEventListener('mouseenter', highlight);                    item.addEventListener('focus', highlight);                    item.addEventListener('mouseleave', clearHighlight);                    item.addEventListener('blur', clearHighlight);                    item.addEventListener('click', toggleIsolate);                                        if (line) {                        line.style.cursor = 'pointer';                        line.addEventListener('mouseenter', highlight);                        line.addEventListener('mouseleave', clearHighlight);                        line.addEventListener('click', toggleIsolate);                    }                });            });                        /* Versus Chart Logic */            var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');            versusCharts.forEach(function(vc) {                var dataJson = vc.getAttribute('data-versus-data');                var leftColor = vc.getAttribute('data-left-color') || '#E53935';                var rightColor = vc.getAttribute('data-right-color') || '#FFB300';                if (!dataJson) return;                                var versusData = JSON.parse(dataJson);                                var leftSelect = vc.querySelector('.fv-select-left');                var rightSelect = vc.querySelector('.fv-select-right');                var rows = vc.querySelectorAll('.fv-versus-row');                                function updateVersusChart() {                    var leftProduct = leftSelect.value;                    var rightProduct = rightSelect.value;                                        leftSelect.style.color = leftColor;                    leftSelect.style.borderColor = leftColor;                    rightSelect.style.color = rightColor;                    rightSelect.style.borderColor = rightColor;                                        rows.forEach(function(row) {                        var index = parseInt(row.getAttribute('data-index'));                        var data = versusData[index];                        if (!data) return;                                                var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;                        var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;                                                var leftIsNum = typeof leftVal === 'number';                        var rightIsNum = typeof rightVal === 'number';                                                var leftNum = leftIsNum ? leftVal : 0;                        var rightNum = rightIsNum ? rightVal : 0;                                                var maxVal = Math.max(leftNum, rightNum, 0.0001);                                                var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;                        var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;                                                var winner = null;                        var pctDiffStr = null;                                                if (leftIsNum && rightIsNum) {                            if (leftNum > rightNum) {                                winner = 'left';                                if (rightNum > 0) {                                    var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            } else if (rightNum > leftNum) {                                winner = 'right';                                if (leftNum > 0) {                                    var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);                                    pctDiffStr = '+' + diff.toLocaleString() + '%';                                }                            }                        }                                                var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));                        var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));                        var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||                                    (data.productData[rightProduct] && data.productData[rightProduct].unit) || '';                                                var leftTextStr = leftDisplay;                        var rightTextStr = rightDisplay;                                                var leftBar = row.querySelector('.fv-versus-bar-left');                        var rightBar = row.querySelector('.fv-versus-bar-right');                        var leftText = row.querySelector('.fv-inside-left');                        var rightText = row.querySelector('.fv-inside-right');                        var labelText = row.querySelector('.fv-versus-label span');                                                var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff');                        existingPctDiffs.forEach(function(el) { el.remove(); });                                                if (winner === 'left' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild);                        } else if (winner === 'right' && pctDiffStr) {                            var pctSpan = document.createElement('span');                            pctSpan.className = 'fv-versus-pct-diff';                            pctSpan.style.color = 'rgba(255, 255, 255, 0.9)';                            pctSpan.textContent = pctDiffStr;                            if (rightBar) rightBar.appendChild(pctSpan);                        }                                                if (leftBar) {                            leftBar.style.backgroundColor = leftColor;                            leftBar.dataset.targetWidth = leftWidth;                            leftBar.style.setProperty('--target-width', leftWidth + '%');                            leftBar.style.width = leftWidth + '%';                        }                        if (rightBar) {                            rightBar.style.backgroundColor = rightColor;                            rightBar.dataset.targetWidth = rightWidth;                            rightBar.style.setProperty('--target-width', rightWidth + '%');                            rightBar.style.width = rightWidth + '%';                        }                        if (leftText) {                            leftText.innerHTML = leftTextStr;                        }                        if (rightText) {                            rightText.innerHTML = rightTextStr;                        }                        if (labelText) {                            labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : '');                        }                    });                }                                if (leftSelect) leftSelect.addEventListener('change', updateVersusChart);                if (rightSelect) rightSelect.addEventListener('change', updateVersusChart);            });            /* Bar Commentary Hover Logic */            var barRows = chartWrapper.querySelectorAll('.fv-bar-row');            var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption');            var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : '';                        barRows.forEach(function(row) {                var commentaryEl = row.querySelector('[data-commentary-key]');                if (commentaryEl) {                    var commentaryText = commentaryEl.textContent;                    if (commentaryText && commentaryText.trim().length > 0) {                        row.addEventListener('mouseenter', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = commentaryText;                                globalCaptionEl.classList.add('fv-bar-active-caption');                            }                        });                        row.addEventListener('mouseleave', function() {                            if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) {                                globalCaptionEl.innerHTML = fallbackCaptionHtml;                                globalCaptionEl.classList.remove('fv-bar-active-caption');                            }                        });                    }                }            });            /* Carousel & Dropdown Logic */            var charts = chartWrapper.querySelectorAll('.fv-chart-item');            var dropdown = chartWrapper.querySelector('.fv-dropdown-title');            var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev');            var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next');            var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title');            var counter = chartWrapper.querySelector('.fv-carousel-counter');                        var subheadEl = chartWrapper.querySelector('.fv-chart-subhead');            var captionEl = chartWrapper.querySelector('.rv-chart-caption');            var footerContentEl = chartWrapper.querySelector('.fv-footer-content');            var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar');            var logoEl = chartWrapper.querySelector('.fv-logo');            if (charts.length > 1 && (dropdown || prevBtn)) {                 var currentChartIndex = 0;                 var titles = [];                 if (dropdown) {                    titles = Array.from(dropdown.options).map(function(o) { return o.text; });                 } else {                    charts.forEach(function(c) {                        titles.push(c.getAttribute('data-title') || '');                    });                 }                                  function showInternalChart(index) {                    if (index < 0) index = charts.length - 1;                    if (index >= charts.length) index = 0;                    currentChartIndex = index;                                        charts.forEach(function(c, i) {                        c.style.display = i === index ? 'block' : 'none';                        if (i === index) {                             var cType = c.dataset.chartType;                             if (cType !== 'Pie') {                                 fvLocalAnimate(chartWrapper);                             }                                                          var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';                             if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) {                                 chartWrapper.classList.add('labels-on-top');                             } else {                                 chartWrapper.classList.remove('labels-on-top');                             }                        }                    });                                        if (dropdown) dropdown.value = index;                    if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index];                    if (counter) counter.textContent = (index + 1) + ' of ' + charts.length;                                        var activeChart = charts[index];                    if (activeChart) {                        var newSubhead = activeChart.getAttribute('data-subhead');                        var newCaption = activeChart.getAttribute('data-caption');                        var currentChartType = activeChart.getAttribute('data-chart-type');                        var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection';                                                if (subheadEl) subheadEl.textContent = newSubhead || '';                        if (captionEl) {                            captionEl.textContent = newCaption || '';                            fallbackCaptionHtml = newCaption || '';                        }                                                if (footerContentEl) {                             if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) {                                 footerContentEl.style.display = 'block';                                 if (bottomBarEl) bottomBarEl.style.display = 'flex';                             } else {                                 footerContentEl.style.display = 'none';                                 if (bottomBarEl && !logoEl) {                                     bottomBarEl.style.display = 'none';                                 }                             }                        }                    }                 }                                  if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); });                 if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); });                 if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); });            }                        /* Image Comparison Logic */            var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');            imageCompareWrappers.forEach(function(wrapper) {                var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;                var slider = wrapper.querySelector('.fv-image-compare-slider');                var fgImage = wrapper.querySelector('.fv-image-compare-fg');                var bgImage = wrapper.querySelector('.fv-image-compare-bg');                var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');                var labelRight = wrapper.querySelector('.fv-image-compare-label-right');                var isDragging = false;                var scale = 1;                var panX = 0;                var panY = 0;                var isPanning = false;                var hasPanned = false;                var lastClientX = 0;                var lastClientY = 0;                var initialDistance = null;                var lastCenterX = null;                var lastCenterY = null;                function updateTransform() {                    if (wrapper.classList.contains('fv-image-compare-fullscreen')) {                        inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');                    } else {                        inner.style.removeProperty('transform');                        scale = 1;                        panX = 0;                        panY = 0;                    }                }                function constrainPan() {                    var rect = wrapper.getBoundingClientRect();                    var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);                    var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);                    panX = Math.max(-maxPanX, Math.min(panX, maxPanX));                    panY = Math.max(-maxPanY, Math.min(panY, maxPanY));                }                wrapper.addEventListener('wheel', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    e.preventDefault();                    var zoomSensitivity = 0.005;                    var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);                    var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                        if (newScale === scale) return;                    var rect = wrapper.getBoundingClientRect();                    var mouseX = e.clientX - rect.left - rect.width / 2;                    var mouseY = e.clientY - rect.top - rect.height / 2;                                        var ratio = newScale / scale;                    panX = mouseX - (mouseX - panX) * ratio;                    panY = mouseY - (mouseY - panY) * ratio;                                        scale = newScale;                    constrainPan();                    updateTransform();                }, { passive: false });                wrapper.addEventListener('mousedown', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;                    if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                    isPanning = true;                    hasPanned = false;                    lastClientX = e.clientX;                    lastClientY = e.clientY;                });                window.addEventListener('mousemove', function(e) {                    if (!isPanning) return;                    var dx = e.clientX - lastClientX;                    var dy = e.clientY - lastClientY;                                        if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                        hasPanned = true;                    }                    lastClientX = e.clientX;                    lastClientY = e.clientY;                                        panX += dx;                    panY += dy;                                        constrainPan();                    updateTransform();                });                window.addEventListener('mouseup', function() {                    isPanning = false;                });                wrapper.addEventListener('touchstart', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        initialDistance = Math.sqrt(dx * dx + dy * dy);                                                var rect = wrapper.getBoundingClientRect();                        lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                        lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                hasPanned = true;                    } else if (e.touches.length === 1 && scale > 1) {                        if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;                        isPanning = true;                        hasPanned = false;                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                    }                }, { passive: false });                wrapper.addEventListener('touchmove', function(e) {                    if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;                    if (e.touches.length === 2 && initialDistance !== null) {                        e.preventDefault();                        var dx = e.touches[0].clientX - e.touches[1].clientX;                        var dy = e.touches[0].clientY - e.touches[1].clientY;                        var distance = Math.sqrt(dx * dx + dy * dy);                                                if (initialDistance > 0) {                            var zoomFactor = distance / initialDistance;                            var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));                                                        var rect = wrapper.getBoundingClientRect();                            var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;                            var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;                                                        var ratio = newScale / scale;                            panX = centerX - (centerX - panX) * ratio;                            panY = centerY - (centerY - panY) * ratio;                                                        if (lastCenterX !== null && lastCenterY !== null) {                                panX += (centerX - lastCenterX);                                panY += (centerY - lastCenterY);                            }                                                        scale = newScale;                            lastCenterX = centerX;                            lastCenterY = centerY;                            constrainPan();                            updateTransform();                        }                        initialDistance = distance;                    } else if (e.touches.length === 1 && isPanning) {                        e.preventDefault();                        var dx = e.touches[0].clientX - lastClientX;                        var dy = e.touches[0].clientY - lastClientY;                                                if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {                            hasPanned = true;                        }                        lastClientX = e.touches[0].clientX;                        lastClientY = e.touches[0].clientY;                                                panX += dx;                        panY += dy;                                                constrainPan();                        updateTransform();                    }                }, { passive: false });                wrapper.addEventListener('touchend', function(e) {                    if (e.touches.length < 2) {                        initialDistance = null;                    }                    if (e.touches.length === 0) {                        isPanning = false;                    }                });                function handleMove(clientX) {                    var rect = inner.getBoundingClientRect();                    var x = Math.max(0, Math.min(clientX - rect.left, rect.width));                    var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));                                        if (slider) slider.style.setProperty('left', percent + '%', 'important');                    if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');                                        if (labelLeft) {                        if (percent < 10) {                            labelLeft.style.setProperty('opacity', '0', 'important');                        } else {                            labelLeft.style.setProperty('opacity', '1', 'important');                        }                    }                    if (labelRight) {                        if (percent > 90) {                            labelRight.style.setProperty('opacity', '0', 'important');                        } else {                            labelRight.style.setProperty('opacity', '1', 'important');                        }                    }                }                function onMouseMove(e) {                    if (!isDragging) return;                    handleMove(e.clientX);                }                function onTouchMove(e) {                    if (!isDragging) return;                    e.preventDefault();                    handleMove(e.touches[0].clientX);                }                function stopDragging() {                    isDragging = false;                    window.removeEventListener('mousemove', onMouseMove);                    window.removeEventListener('mouseup', stopDragging);                    window.removeEventListener('touchmove', onTouchMove);                    window.removeEventListener('touchend', stopDragging);                }                if (slider) {                    var startDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('mousemove', onMouseMove);                        window.addEventListener('mouseup', stopDragging);                    };                    var startTouchDrag = function(clientX) {                        isDragging = true;                        handleMove(clientX);                        window.addEventListener('touchmove', onTouchMove, { passive: false });                        window.addEventListener('touchend', stopDragging);                    };                    slider.addEventListener('mousedown', function(e) {                        e.preventDefault();                        startDrag(e.clientX);                    });                    slider.addEventListener('touchstart', function(e) {                        e.preventDefault();                        startTouchDrag(e.touches[0].clientX);                    }, { passive: false });                }                var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');                var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');                if (expandBtn) {                    if (window !== window.parent) {                        expandBtn.style.display = 'none';                    } else {                        expandBtn.addEventListener('click', function(e) {                            e.stopPropagation();                            wrapper.classList.add('fv-image-compare-fullscreen');                            document.body.style.overflow = 'hidden';                                                        if (fgImage && fgImage.dataset.highresSrc) {                                fgImage.src = fgImage.dataset.highresSrc;                                fgImage.removeAttribute('srcset');                                fgImage.removeAttribute('sizes');                            }                            if (bgImage && bgImage.dataset.highresSrc) {                                bgImage.src = bgImage.dataset.highresSrc;                                bgImage.removeAttribute('srcset');                                bgImage.removeAttribute('sizes');                            }                        });                    }                }                if (closeBtn) {                    closeBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    });                }                                document.addEventListener('keydown', function(e) {                    if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {                        wrapper.classList.remove('fv-image-compare-fullscreen');                        document.body.style.overflow = '';                        updateTransform();                    }                });            });            /* Shop The Look Hotspots */            var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn');            var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal');            var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn');            var stlContainer = chartWrapper.querySelector('.fv-stl-container');                        function closeAllModals() {                if (allProductsModal) {                    allProductsModal.classList.remove('is-active');                                        var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item');                    items.forEach(function(item) {                        item.classList.remove('is-highlighted');                    });                    if (stlContainer) {                        setTimeout(function() {                            if (!allProductsModal.classList.contains('is-active')) {                                stlContainer.style.minHeight = '';                                if ('parentIFrame' in window) {                                    window.parentIFrame.size();                                }                            }                        }, 300);                    }                }                hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); });                if ('parentIFrame' in window) {                    window.parentIFrame.size();                }            }            hotspots.forEach(function(btn) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var hotspotId = btn.getAttribute('data-hotspot-id');                    var isExpanded = btn.getAttribute('aria-expanded') === 'true';                                        closeAllModals();                                        if (!isExpanded && allProductsModal) {                        btn.setAttribute('aria-expanded', 'true');                        allProductsModal.classList.add('is-active');                        var container = btn.closest('.fv-stl-container');                        if (container && container.offsetHeight < 450) {                            container.style.minHeight = '450px';                        }                                                var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]');                        if (targetItem) {                            targetItem.classList.add('is-highlighted');                            setTimeout(function() {                                targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' });                            }, 100);                        }                                                if ('parentIFrame' in window) {                            window.parentIFrame.size();                        }                    }                });            });            if (shopAllBtn && allProductsModal) {                shopAllBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    closeAllModals();                    allProductsModal.classList.add('is-active');                    var container = shopAllBtn.closest('.fv-stl-container');                    if (container && container.offsetHeight < 450) {                        container.style.minHeight = '450px';                    }                    if ('parentIFrame' in window) {                        window.parentIFrame.size();                    }                });            }            if (allProductsModal) {                var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close');                if (closeAllBtn) {                    closeAllBtn.addEventListener('click', function(e) {                        e.stopPropagation();                        closeAllModals();                    });                }            }            chartWrapper.addEventListener('click', function(e) {                if (!e.target.closest('.fv-stl-all-products-content')) {                    closeAllModals();                }            });            if (allProductsModal) {                allProductsModal.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-stl-all-products-content')) {                        closeAllModals();                    }                });            }            /* Image Annotation Logic */            var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button');            var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper');            var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl;            var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption');            var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn');            var currentIaIndex = -1;            function closeAllIANodes() {                iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); });                if (originalCaption) originalCaption.style.display = 'block';                if (dynamicCaption) dynamicCaption.style.display = 'none';            }                        function resetExploreBtn() {                currentIaIndex = -1;                if (exploreBtn) {                    var exploreSpan = exploreBtn.querySelector('span');                    if (exploreSpan) exploreSpan.textContent = 'Explore';                }            }            iaNodes.forEach(function(btn, index) {                btn.addEventListener('click', function(e) {                    e.stopPropagation();                    var isActive = btn.classList.contains('is-active');                    closeAllIANodes();                    if (!isActive) {                        currentIaIndex = index;                        if (exploreBtn) {                            var exploreSpan = exploreBtn.querySelector('span');                            if (exploreSpan) exploreSpan.textContent = 'Next';                        }                        btn.classList.add('is-active');                        if (dynamicCaption) {                            var title = btn.getAttribute('data-title') || '';                            var desc = btn.getAttribute('data-desc') || '';                            dynamicCaption.innerHTML = '';                            var strongTag = document.createElement('strong');                            strongTag.textContent = title;                            dynamicCaption.appendChild(strongTag);                            if (desc) {                                dynamicCaption.appendChild(document.createTextNode(' - ' + desc));                            }                                                        if (originalCaption) originalCaption.style.display = 'none';                            dynamicCaption.style.display = 'block';                                                        if (footerContentEl) footerContentEl.style.display = 'block';                        }                    } else {                        resetExploreBtn();                    }                });            });            if (exploreBtn) {                exploreBtn.addEventListener('click', function(e) {                    e.stopPropagation();                    if (iaNodes.length === 0) return;                                        var nextIndex = currentIaIndex + 1;                    if (nextIndex >= iaNodes.length) {                        closeAllIANodes();                        resetExploreBtn();                    } else {                        currentIaIndex = nextIndex;                        var targetBtn = iaNodes[currentIaIndex];                        if (targetBtn) {                            if (targetBtn.classList.contains('is-active')) {                                targetBtn.click();                            }                            targetBtn.click();                        }                    }                });            }            if (iaWrapper) {                iaWrapper.addEventListener('click', function(e) {                    if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) {                        closeAllIANodes();                        resetExploreBtn();                    }                });            }            /* Initial Animation */            chartWrapper._fvAnimate = fvLocalAnimate;            fvLocalAnimate(chartWrapper);            /* Countdown Logic */            var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');            if (countdownContainer) {                var targetDateAttr = countdownContainer.getAttribute('data-target-date');                if (targetDateAttr) {                    var targetDate = new Date(targetDateAttr);                    var pad = function(n) { return (n < 10 ? '0' : '') + n; };                                        var updateCountdown = function() {                        var difference = +targetDate - +new Date();                        var d = 0, h = 0, m = 0, s = 0;                        if (difference > 0) {                            d = Math.floor(difference / (1000 * 60 * 60 * 24));                            h = Math.floor((difference / (1000 * 60 * 60)) % 24);                            m = Math.floor((difference / 1000 / 60) % 60);                            s = Math.floor((difference / 1000) % 60);                        }                                                var daysEl = countdownContainer.querySelector('[data-time="days"]');                        var hoursEl = countdownContainer.querySelector('[data-time="hours"]');                        var minsEl = countdownContainer.querySelector('[data-time="minutes"]');                        var secsEl = countdownContainer.querySelector('[data-time="seconds"]');                                                if (daysEl) daysEl.textContent = d;                        if (hoursEl) hoursEl.textContent = pad(h);                        if (minsEl) minsEl.textContent = pad(m);                        if (secsEl) secsEl.textContent = pad(s);                    };                                        updateCountdown();                    setInterval(updateCountdown, 1000);                }            }        }        if (false) {            var slideshowContainer = document.getElementById(uniqueId + '-slideshow');            if (slideshowContainer) {                var slides = slideshowContainer.querySelectorAll('.fv-slide');                slides.forEach(function(slide) {                    setupWrapper(slide.querySelector('.fv-chart-wrapper'));                });            }                    } else {            setupWrapper(root);        }      }            if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792748156761-g6kvjaygs', false); });      } else {        initialize('fv-chart-1792748156761-g6kvjaygs', false);      }    })();      </script></div><p>All this being said, though, upscaling throws a spanner in the works. With upscaling enabled, I found the performance gain to be nowhere near as big when lowering these settings. Instead of the big jump you see above, it pushed me from about 150 fps to about 160–165 fps in DMZ mode using an AMD Radeon RX 9070 XT.</p><p>Now, as I said at the start, I am a bit of a frame-head—I love upping my frame rate for online shooters. So for my money, given the game looks far from bad with these settings lowered, for DMZ and multiplayer, I think I'd keep the four settings low enough by enabling the Balanced preset, then drop down to 1080p with my 400 Hz monitor, enable Quality upscaling, and get headshotting.</p><p>For the campaign, though, and presumably in general for most gamers who aren't massive frame-heads like me (yes, I'm trying to make the term stick), I'd say it's worth keeping the three or four settings above ramped up to what they are on the Ultra preset and instead just enabling Quality upscaling, if your rig can handle it. I'd prefer the nicer shadows avoiding the very slight and occasional loss of crispness that comes with upscaling.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to clear a compound in Modern Warfare 4 DMZ ]]></title>
                                                                                                <dc:content><![CDATA[ <figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1322px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="uAVNusCmrBTPgwByLfuGYM" name="dmz-clear-a-compound-1" alt="Modern Warfare 4 DMZ - Compound" src="https://cdn.mos.cms.futurecdn.net/uAVNusCmrBTPgwByLfuGYM-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1322" height="743" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/uAVNusCmrBTPgwByLfuGYM-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">There are some easy open compounds in Daesong Ridge in the south </span><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><p>Clearing a compound is one of the early orders you'll have to complete when you arrive in <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a>'s DMZ mode, and it requires you to assault a mini enemy stronghold.</p><p>Compounds are marked with the little tent and flag symbols on the map, though they vary in difficulty, and some of them require keys to open. If you're looking for an easy one to complete, I recommend the two in Daesong Ridge in the south of the map. These army camps are open, so they're easy to access, and they don't have too many enemies. To clear a compound you need to:</p><ul><li>Kill every enemy in the compound—your current progress is represented by the percentage bar on the left, though it counts up instead of down.</li><li>When you kill the last enemy in the stronghold, make sure to pick up the Medical Extraction Intel they drop and extract it to complete the order.</li></ul><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/qYLZ9z4SX4g6FWBe8uzbrM-1920-80.jpg" alt="Modern Warfare 4 DMZ - Clearing a compound" /><figcaption>Your progress clearing the compound is shown on the left side<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/FAoqQqYyNeTjQrgRZo8YqM-1920-80.jpg" alt="Modern Warfare 4 DMZ - Medical item" /><figcaption>Make sure to grab the Medical Extraction Intel from the last soldier you kill for the order<small role="credit">Infinity Ward</small></figcaption></figure></figure><p>If you can't find the last enemies, they may be stuck in something, so search around, or just make some noise to attract their attention, or if all else fails, find another compound.</p><p>While you're in the compound, don't forget to loot any safes you find for some decent valuables—in the army camps, these are in the tower and in the main building, though the smaller barracks also have lockers and containers with loot.</p><div class="product"><a data-dimension112="679421ba-ce07-11f1-ba0d-a39a18a9383a" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="679421ba-ce07-11f1-ba0d-a39a18a9383a" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/dmz-clear-a-compound-no-one-left/</link>
                                                                            <description>
                            <![CDATA[ Complete the No One Left order. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rEMtWA2AXTYBNi4nQwvhSL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/puRh9PgaH6xDQExD4HsSbM-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 11:10:00 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 11:10:51 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Sean Martin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/rw7hUY3Y2mxZJtwx3ePdwF-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/puRh9PgaH6xDQExD4HsSbM-1920-80.jpg">
                                                            <media:credit><![CDATA[Infinity Ward]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Modern Warfare 4 DMZ - Clear a compound]]></media:description>                                                            <media:text><![CDATA[Modern Warfare 4 DMZ - Clear a compound]]></media:text>
                                <media:title type="plain"><![CDATA[Modern Warfare 4 DMZ - Clear a compound]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/puRh9PgaH6xDQExD4HsSbM-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1322px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="uAVNusCmrBTPgwByLfuGYM" name="dmz-clear-a-compound-1" alt="Modern Warfare 4 DMZ - Compound" src="https://cdn.mos.cms.futurecdn.net/uAVNusCmrBTPgwByLfuGYM-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1322" height="743" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/uAVNusCmrBTPgwByLfuGYM-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">There are some easy open compounds in Daesong Ridge in the south </span><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><p>Clearing a compound is one of the early orders you'll have to complete when you arrive in <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a>'s DMZ mode, and it requires you to assault a mini enemy stronghold.</p><p>Compounds are marked with the little tent and flag symbols on the map, though they vary in difficulty, and some of them require keys to open. If you're looking for an easy one to complete, I recommend the two in Daesong Ridge in the south of the map. These army camps are open, so they're easy to access, and they don't have too many enemies. To clear a compound you need to:</p><ul><li>Kill every enemy in the compound—your current progress is represented by the percentage bar on the left, though it counts up instead of down.</li><li>When you kill the last enemy in the stronghold, make sure to pick up the Medical Extraction Intel they drop and extract it to complete the order.</li></ul><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/qYLZ9z4SX4g6FWBe8uzbrM-1920-80.jpg" alt="Modern Warfare 4 DMZ - Clearing a compound" /><figcaption>Your progress clearing the compound is shown on the left side<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/FAoqQqYyNeTjQrgRZo8YqM-1920-80.jpg" alt="Modern Warfare 4 DMZ - Medical item" /><figcaption>Make sure to grab the Medical Extraction Intel from the last soldier you kill for the order<small role="credit">Infinity Ward</small></figcaption></figure></figure><p>If you can't find the last enemies, they may be stuck in something, so search around, or just make some noise to attract their attention, or if all else fails, find another compound.</p><p>While you're in the compound, don't forget to loot any safes you find for some decent valuables—in the army camps, these are in the tower and in the main building, though the smaller barracks also have lockers and containers with loot.</p><div class="product"><a data-dimension112="679421ba-ce07-11f1-ba0d-a39a18a9383a" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="679421ba-ce07-11f1-ba0d-a39a18a9383a" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to get electronic sensors in Modern Warfare 4 DMZ ]]></title>
                                                                                                <dc:content><![CDATA[ <figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/4NctiPfB7CDUYGjf5fh7Fe-1920-80.jpg" alt="DMZ electronic sensors" /><figcaption>You can find electronic sensors lying around in buildings, but particularly apartments<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/4NbEPGMzgtn2CuGRw2kwFe-1920-80.jpg" alt="DMZ electronic sensors in a bag" /><figcaption>And in certain containers<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/7JBbxgknejHx9AppfJVMFe-1920-80.jpg" alt="DMZ electronic sensors in a PC" /><figcaption>You can also search PCs for them<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/pUw3y5bYHYsEAR9n6Beovd-1920-80.jpg" alt="DMZ electronic sensors" /><figcaption>I got all ten of mine in Hanrim Village in the north, but any packed area of buildings should work<small role="credit">Infinity Ward</small></figcaption></figure></figure><p>You'll need electronic sensors in <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a>'s DMZ mode to upgrade your starting stash, which quickly runs out of space after the first couple of matches. Unlike rigid synthetics, the other material you need, you likely won't find enough electronic sensors without looking in the right place.</p><p>The best places to get electronic sensors are:</p><ul><li>Inside buildings, but particularly apartments and apartment blocks. I found quite a few as loose items or inside bags.</li><li>Inside computers. If you spot a computer, open it up and take a look.</li><li>While there are residential buildings all over the map, I had the most luck in Hanrin Village in the north, where one run south along the road gave me all ten sensors I needed.</li></ul><p>The good thing about apartment buildings is that they also usually have a lot of rigid synthetics, so you can kill two birds with one stone. So, search buildings, computers, and make sure to bring a blue, medium backpack so you can secure slot what you do find, and still progress to that upgrade even if you don't manage to exfil.</p><div class="product"><a data-dimension112="5b79a6e4-ce01-11f1-ade3-738b2ee92f7f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="5b79a6e4-ce01-11f1-ade3-738b2ee92f7f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/dmz-electronic-sensors-location/</link>
                                                                            <description>
                            <![CDATA[ One of two materials you'll need to expand your stash. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yKd997MR3WGV9SU6DU9vHJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/dQxXi738t9kDCNLUpeZcAe-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 10:26:58 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 10:58:33 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Sean Martin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/rw7hUY3Y2mxZJtwx3ePdwF-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/dQxXi738t9kDCNLUpeZcAe-1920-80.jpg">
                                                            <media:credit><![CDATA[Infinity Ward]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[DMZ electronic sensors - Soldiers]]></media:description>                                                            <media:text><![CDATA[DMZ electronic sensors - Soldiers]]></media:text>
                                <media:title type="plain"><![CDATA[DMZ electronic sensors - Soldiers]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/dQxXi738t9kDCNLUpeZcAe-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/4NctiPfB7CDUYGjf5fh7Fe-1920-80.jpg" alt="DMZ electronic sensors" /><figcaption>You can find electronic sensors lying around in buildings, but particularly apartments<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/4NbEPGMzgtn2CuGRw2kwFe-1920-80.jpg" alt="DMZ electronic sensors in a bag" /><figcaption>And in certain containers<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/7JBbxgknejHx9AppfJVMFe-1920-80.jpg" alt="DMZ electronic sensors in a PC" /><figcaption>You can also search PCs for them<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/pUw3y5bYHYsEAR9n6Beovd-1920-80.jpg" alt="DMZ electronic sensors" /><figcaption>I got all ten of mine in Hanrim Village in the north, but any packed area of buildings should work<small role="credit">Infinity Ward</small></figcaption></figure></figure><p>You'll need electronic sensors in <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a>'s DMZ mode to upgrade your starting stash, which quickly runs out of space after the first couple of matches. Unlike rigid synthetics, the other material you need, you likely won't find enough electronic sensors without looking in the right place.</p><p>The best places to get electronic sensors are:</p><ul><li>Inside buildings, but particularly apartments and apartment blocks. I found quite a few as loose items or inside bags.</li><li>Inside computers. If you spot a computer, open it up and take a look.</li><li>While there are residential buildings all over the map, I had the most luck in Hanrin Village in the north, where one run south along the road gave me all ten sensors I needed.</li></ul><p>The good thing about apartment buildings is that they also usually have a lot of rigid synthetics, so you can kill two birds with one stone. So, search buildings, computers, and make sure to bring a blue, medium backpack so you can secure slot what you do find, and still progress to that upgrade even if you don't manage to exfil.</p><div class="product"><a data-dimension112="5b79a6e4-ce01-11f1-ade3-738b2ee92f7f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="5b79a6e4-ce01-11f1-ade3-738b2ee92f7f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Modern Warfare 4 players declare 'broken' on DMZ perk that lets you self-revive after full death ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Call of Duty: Modern Warfare 4's big extraction mode DMZ has been out for one day, so it's a bit early to make sweeping declarations about balance, but even I'm raising an eyebrow at an operator trait that the internet is already calling broken.</p><p>That's "broken" in the "so overpowered it shouldn't exist" way, not the "literally doesn't work way," though when you see Possum in action, it does give the impression of a bug. </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:700px;"><p class="vanilla-image-block" style="padding-top:23.57%;"><img id="Ls3VyDL9Kqj43oXratbfod" name="possum" alt="Possum" src="https://cdn.mos.cms.futurecdn.net/Ls3VyDL9Kqj43oXratbfod-1920-80.jpg" mos="" align="middle" fullscreen="" width="700" height="165" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Possum: Allows a self revive into last stand from death, storing health to maximum, once per match </span><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>As someone who's been around the extraction shooter block, it's a very powerful trump card. It doesn't take that long to get, either: If you beeline straight to it on the Warfighter skill tree, you can do it in a handful of matches. </p><p>To be clear, this is not the same as reviving yourself during the DBNO (down but not out) state, which anyone can do from level 1: Possum means you can be a cold, dead, lootable body, and then suddenly spring back to life. </p><p>I'm not surprised folks are panicky about the prospect of playing around lobbies full of Possum players. There's already one clip circulating (per <a href="https://x.com/xFleXy_/status/2112694957077057597?s=20">xFleXy_</a> on X) of someone fully killing a player, turning their back to fight other nearby enemies, then getting shot in the back by the guy they <em>just</em> killed.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112694957077057597"><p lang="en" dir="ltr">Umm I kill &amp; finish the guy in the white skin and then he suddenly pops up and kills me??? @InfinityWard @CallofDutyCM https://t.co/XFrgD6MRCI<a href="https://twitter.com/cantworkitout/status/2112694957077057597">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>That's the nightmare scenario, though the perk has drawbacks that xFleXy could've exploited if they'd known Possum existed. The self-revive isn't quick, and once it's done they still have to pick themselves up from DBNO with a tourniquet. If the killer is paying attention when that first step happens, they can easily end them for good before they stand back up.</p><p>I reckon Infinity Ward didn't envision folks using the perk to instantly turn the table on a lost fight. Per the name, you're likely meant to sit still, play dead, then self-revive after your corpse has been picked clean and the killers have moved on. You lose some stuff, but you escape with your operator (which can be expensive to replace). Call of Duty YouTuber <a href="https://x.com/JGODYT/status/2112968680648909291?s=20">JGOD </a>demonstrated this use case in his own video.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112968680648909291"><p lang="en" dir="ltr">1st time using the Possum Trait in DMZ🟢Waited 3 minutes for the players to move on🟢They dropped a 2 plate while looting my Free Kit🟢Then Exfilled https://t.co/SHFgd2gJv1<a href="https://twitter.com/cantworkitout/status/2112968680648909291">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>In those terms, a trait like Possum is a great fit for DMZ, which is <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review-in-progress-a-campaign-you-shouldnt-skip/">designed not to be as punishing as other extraction shooters</a>. The problem is its execution: Players who just won a fight should not always have to worry that their victim is going to stand back up and kill them. Maybe using Possum should make more noise in the moment, or require a long wait (like 5 to 10 minutes) to use. Infinity Ward needs to underline how bad of an idea it is to use while enemies are around, or in lieu of that, <strong>players need a way to burn bodies</strong>.</p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/DMZ/comments/1xb2zly/possum_seems_very_op_in_pvp_fights">Possum seems very OP in PvP fights.</a><figcaption><cite> from <a href="https://www.reddit.com/r/DMZ">r/DMZ</a></cite></figcaption></blockquote></figure><script async="" src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>"Burn bodies," in this context, refers to Hunt: Showdown, the other extraction shooter with this exact ability. That game's Possum, called Necromancer, works the same way, except that others have the option to set your corpse on fire and wait for a sound cue that confirms "this guy ain't getting up." It's a great bit of balance, because it puts the onus on the killer to already have a molotov cocktail on-hand, look for another way to start a fire, or leave your corpse and accept you may come back. Sometimes Necromancer saves your bacon, sometimes not.</p><p>Whatever the eventual solution is, I expect Infinity Ward to react soon. </p><div class="product"><a data-dimension112="0e08b946-cd97-11f1-8a85-33303c64f19b" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="0e08b946-cd97-11f1-8a85-33303c64f19b" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/modern-warfare-4-players-declare-broken-on-dmz-perk-that-lets-you-self-revive-after-full-death/</link>
                                                                            <description>
                            <![CDATA[ Some hate that you can't know an enemy's truly dead in DMZ. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9LEWPVZ6QnK9udWN68RdQY</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VNjGhQEhtfgu6qq3TAsP8E-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 21:36:47 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/VNjGhQEhtfgu6qq3TAsP8E-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Modern Warfare 4 DMZ]]></media:description>                                                            <media:text><![CDATA[Modern Warfare 4 DMZ]]></media:text>
                                <media:title type="plain"><![CDATA[Modern Warfare 4 DMZ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VNjGhQEhtfgu6qq3TAsP8E-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Call of Duty: Modern Warfare 4's big extraction mode DMZ has been out for one day, so it's a bit early to make sweeping declarations about balance, but even I'm raising an eyebrow at an operator trait that the internet is already calling broken.</p><p>That's "broken" in the "so overpowered it shouldn't exist" way, not the "literally doesn't work way," though when you see Possum in action, it does give the impression of a bug. </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:700px;"><p class="vanilla-image-block" style="padding-top:23.57%;"><img id="Ls3VyDL9Kqj43oXratbfod" name="possum" alt="Possum" src="https://cdn.mos.cms.futurecdn.net/Ls3VyDL9Kqj43oXratbfod-1920-80.jpg" mos="" align="middle" fullscreen="" width="700" height="165" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Possum: Allows a self revive into last stand from death, storing health to maximum, once per match </span><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>As someone who's been around the extraction shooter block, it's a very powerful trump card. It doesn't take that long to get, either: If you beeline straight to it on the Warfighter skill tree, you can do it in a handful of matches. </p><p>To be clear, this is not the same as reviving yourself during the DBNO (down but not out) state, which anyone can do from level 1: Possum means you can be a cold, dead, lootable body, and then suddenly spring back to life. </p><p>I'm not surprised folks are panicky about the prospect of playing around lobbies full of Possum players. There's already one clip circulating (per <a href="https://x.com/xFleXy_/status/2112694957077057597?s=20">xFleXy_</a> on X) of someone fully killing a player, turning their back to fight other nearby enemies, then getting shot in the back by the guy they <em>just</em> killed.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112694957077057597"><p lang="en" dir="ltr">Umm I kill &amp; finish the guy in the white skin and then he suddenly pops up and kills me??? @InfinityWard @CallofDutyCM https://t.co/XFrgD6MRCI<a href="https://twitter.com/cantworkitout/status/2112694957077057597">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>That's the nightmare scenario, though the perk has drawbacks that xFleXy could've exploited if they'd known Possum existed. The self-revive isn't quick, and once it's done they still have to pick themselves up from DBNO with a tourniquet. If the killer is paying attention when that first step happens, they can easily end them for good before they stand back up.</p><p>I reckon Infinity Ward didn't envision folks using the perk to instantly turn the table on a lost fight. Per the name, you're likely meant to sit still, play dead, then self-revive after your corpse has been picked clean and the killers have moved on. You lose some stuff, but you escape with your operator (which can be expensive to replace). Call of Duty YouTuber <a href="https://x.com/JGODYT/status/2112968680648909291?s=20">JGOD </a>demonstrated this use case in his own video.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112968680648909291"><p lang="en" dir="ltr">1st time using the Possum Trait in DMZ🟢Waited 3 minutes for the players to move on🟢They dropped a 2 plate while looting my Free Kit🟢Then Exfilled https://t.co/SHFgd2gJv1<a href="https://twitter.com/cantworkitout/status/2112968680648909291">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>In those terms, a trait like Possum is a great fit for DMZ, which is <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review-in-progress-a-campaign-you-shouldnt-skip/">designed not to be as punishing as other extraction shooters</a>. The problem is its execution: Players who just won a fight should not always have to worry that their victim is going to stand back up and kill them. Maybe using Possum should make more noise in the moment, or require a long wait (like 5 to 10 minutes) to use. Infinity Ward needs to underline how bad of an idea it is to use while enemies are around, or in lieu of that, <strong>players need a way to burn bodies</strong>.</p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/DMZ/comments/1xb2zly/possum_seems_very_op_in_pvp_fights">Possum seems very OP in PvP fights.</a><figcaption><cite> from <a href="https://www.reddit.com/r/DMZ">r/DMZ</a></cite></figcaption></blockquote></figure><script async="" src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>"Burn bodies," in this context, refers to Hunt: Showdown, the other extraction shooter with this exact ability. That game's Possum, called Necromancer, works the same way, except that others have the option to set your corpse on fire and wait for a sound cue that confirms "this guy ain't getting up." It's a great bit of balance, because it puts the onus on the killer to already have a molotov cocktail on-hand, look for another way to start a fire, or leave your corpse and accept you may come back. Sometimes Necromancer saves your bacon, sometimes not.</p><p>Whatever the eventual solution is, I expect Infinity Ward to react soon. </p><div class="product"><a data-dimension112="0e08b946-cd97-11f1-8a85-33303c64f19b" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="0e08b946-cd97-11f1-8a85-33303c64f19b" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to find a dynamic op phone in DMZ in Modern Warfare 4 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Got a confusing order about finding a "dynamic op phone" in Modern Warfare 4 DMZ? You're not alone there: I've played around 15 hours of DMZ so far and this is the only objective that has genuinely confused me.</p><p>The good news is the answer is simpler than it sounds. The whole order is really just a tutorial for DMZ's free roam option, demonstrating how to lay low and complete contracts.</p><h2 id="where-to-find-a-dynamic-op-phone-in-dmz">Where to find a dynamic op phone in DMZ</h2><p>The page four order that asks you to "Collect a dynamic op phone in Cheongun Village" is really just asking you to pick up and complete a dynamic op. <strong>Dynamic ops are any of the missions marked by green satellite phone shapes on the map.</strong></p><p>Since the order calls for starting one from Cheongun Village, the quickest way to do this is to enter a DMZ match through free roam (the third option on the deploy screen). This ensures that you won't have a dynamic op or story mission already assigned when the match starts, as you won't be able to start another until that one is finished.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PxyoRBiswr94HjPLq6kBYA" name="dynamic ops dmz" alt="Dynamic Ops phone DMZ" src="https://cdn.mos.cms.futurecdn.net/PxyoRBiswr94HjPLq6kBYA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>So just get to Cheongun Village as quickly as possible—it's at the northwest corner of the South Korea part of Hajin, near the casino and hospital—and find one of those green markers. You can ping one to find it quickly, but they also make a distinct beeping sound that you can follow to the phone. They look like this:</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gkmw8t6Gs6poueoNRhJgTi" name="20261021122028_1" alt="Dynamic Op Phone DMZ" src="https://cdn.mos.cms.futurecdn.net/gkmw8t6Gs6poueoNRhJgTi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p><strong>Be sure to actually complete the dynamic op to finish the rest of the order, or you'll have to do the first step again</strong>. If you want to finish the whole page of orders in one run, then you'll also want do the following while you're at it:</p><ul><li>Craft a suppressor, a throwing knife, medium backpack, and two-plate armor vest</li><li>Bring a silenced gun (cheapest is a pistol)</li><li>Using the suppressed gun, kill eight enemies without taking damage</li></ul><div class="product"><a data-dimension112="a921dcbc-cd8a-11f1-acc2-0559e399fe9e" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="a921dcbc-cd8a-11f1-acc2-0559e399fe9e" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/dynamic-op-phone-dmz/</link>
                                                                            <description>
                            <![CDATA[ It's way simpler than it sounds. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bmy8yQHVPrU558mbshH8TY</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/siVK265pVnjz4JwL8oF2PE-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 20:06:55 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/siVK265pVnjz4JwL8oF2PE-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Modern Warfare 4 DMZ]]></media:description>                                                            <media:text><![CDATA[Modern Warfare 4 DMZ]]></media:text>
                                <media:title type="plain"><![CDATA[Modern Warfare 4 DMZ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/siVK265pVnjz4JwL8oF2PE-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Got a confusing order about finding a "dynamic op phone" in Modern Warfare 4 DMZ? You're not alone there: I've played around 15 hours of DMZ so far and this is the only objective that has genuinely confused me.</p><p>The good news is the answer is simpler than it sounds. The whole order is really just a tutorial for DMZ's free roam option, demonstrating how to lay low and complete contracts.</p><h2 id="where-to-find-a-dynamic-op-phone-in-dmz">Where to find a dynamic op phone in DMZ</h2><p>The page four order that asks you to "Collect a dynamic op phone in Cheongun Village" is really just asking you to pick up and complete a dynamic op. <strong>Dynamic ops are any of the missions marked by green satellite phone shapes on the map.</strong></p><p>Since the order calls for starting one from Cheongun Village, the quickest way to do this is to enter a DMZ match through free roam (the third option on the deploy screen). This ensures that you won't have a dynamic op or story mission already assigned when the match starts, as you won't be able to start another until that one is finished.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PxyoRBiswr94HjPLq6kBYA" name="dynamic ops dmz" alt="Dynamic Ops phone DMZ" src="https://cdn.mos.cms.futurecdn.net/PxyoRBiswr94HjPLq6kBYA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>So just get to Cheongun Village as quickly as possible—it's at the northwest corner of the South Korea part of Hajin, near the casino and hospital—and find one of those green markers. You can ping one to find it quickly, but they also make a distinct beeping sound that you can follow to the phone. They look like this:</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gkmw8t6Gs6poueoNRhJgTi" name="20261021122028_1" alt="Dynamic Op Phone DMZ" src="https://cdn.mos.cms.futurecdn.net/gkmw8t6Gs6poueoNRhJgTi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p><strong>Be sure to actually complete the dynamic op to finish the rest of the order, or you'll have to do the first step again</strong>. If you want to finish the whole page of orders in one run, then you'll also want do the following while you're at it:</p><ul><li>Craft a suppressor, a throwing knife, medium backpack, and two-plate armor vest</li><li>Bring a silenced gun (cheapest is a pistol)</li><li>Using the suppressed gun, kill eight enemies without taking damage</li></ul><div class="product"><a data-dimension112="a921dcbc-cd8a-11f1-acc2-0559e399fe9e" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="a921dcbc-cd8a-11f1-acc2-0559e399fe9e" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Don't get hit with the BIOS update hammer for COD MW4 like my colleagues—here's how to ensure you can play multiplayer and DMZ ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you're itching to get your pupils up against <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review-in-progress-a-campaign-you-shouldnt-skip" target="_blank">Call of Duty: Modern Warfare 4</a> on PC at launch on Friday, you should probably double-check your system is up to date. We've already had a couple of colleagues here flung against the wall of requirements with the new COD, requiring a BIOS update to play online.</p><p>That's because <a href="https://support.activision.com/articles/trusted-platform-module-and-secure-boot" target="_blank">Activision explains</a> that both TPM 2.0 and Secure Boot are required to play any online game mode (multiplayer or DMZ). More specifically, though, you must have a new enough version of PTT (Platform Trust Technology) for Intel systems, and fTPM (Firmware Trusted Platform Module) for AMD ones.</p><p>Secure Boot and TPM requirements themselves are part of the toolkit that many modern online games use to keep cheaters out. We've seen <a href="https://www.pcgamer.com/hardware/battlefield-6-requires-secure-boot-to-run-and-its-coming-to-more-games-soon-including-call-of-duty-black-ops-7-heres-what-it-is-why-linux-gamers-are-mad-about-it-and-how-to-enable-it/" target="_blank">requirements for both</a>, for instance, to play Battlefield 6. Secure Boot is what gives your firmware and kernel themselves signatures to ensure they are legit, and the TPM helps verify that everything boots up in order with no extra, malicious software or firmware thrust into the boot process. Intel PTT and AMD fTPM are implementations of TPM.</p><p>The key confusion with COD MW4 is that just having Secure Boot and TPM 2.0 doesn't seem to be enough on its own—old versions of PTT or fTPM won't work.</p><p>Activision says that, <a href="https://support.activision.com/articles/trusted-platform-module-and-secure-boot#:~:text=If%20your%20Manufacturer%20Version%20is%20INTC%20302.12.*.*%20or%20INTC%20303.12.*.*%2C%20where%20*%20represents%20any%20number%2C%20your%20motherboard%20may%20require%20a%20firmware%20update." target="_blank">for Intel systems</a>, if your TPM version is some form of 302.1.2.X or 303.1.2.X (where X can be anything), your motherboard may require a firmware update. </p><p><a href="https://support.activision.com/articles/trusted-platform-module-and-secure-boot#:~:text=AMD%20motherboards%20with%20a%20Manufacturer%20Version%203.*.0.*%20(Figure%2011)%2C%20where%20*%20represents%20any%20number%2C%20are%20not%20compatible%20with%20applicable%20Call%20of%20Duty%20games%20and%20require%20a%20firmware%20update%20to%20meet%20compliance." target="_blank">For AMD ones</a>, 3.X.0.X versions aren't compatible and will require a firmware update.</p><p>To update either PTT or fTPM, you need to update your BIOS.</p><p>To check your TPM version, press Win+R and run 'tpm.msc'. It should show you your version under 'TPM Manufacturer Information' at the bottom. If your TPM info window says one of those aforementioned versions you'll need to update your BIOS. </p><p>Bear in mind that this isn't just a problem with very old CPUs, as we've had two colleagues here at PC Gamer run into the issue despite running an Intel Core i5 12400KF and AMD Ryzen 5 5800X, respectively. Though they have admitted their BIOS versions were many years old.</p><p>If you've not updated your BIOS in a very long time, it's probably a good idea to do so before COD drops. One can fix vulnerabilities and even sometimes resolve pretty serious stability and longevity issues, as was the case with Intel's 14th Gen chips a few years back. </p><h2 class="article-body__section" id="section-how-to-update-your-bios"><span>How to update your BIOS</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:1911px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YCfD5BENn8KFH9od8t5TdT" name="image (4)" alt="A screenshot of COD: MW4, aiming down-range at a target." src="https://cdn.mos.cms.futurecdn.net/YCfD5BENn8KFH9od8t5TdT-1920-80.jpg" mos="" align="middle" fullscreen="" width="1911" height="1075" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><ol start="1"><li><strong>Download the most recent stable version for your specific motherboard from its manufacturer's website. </strong></li><li><strong>Store it on a USB drive and plug that directly into your motherboard at the back of your PC</strong></li><li><strong>Reboot and head into your BIOS. </strong></li><li><strong>Find your BIOS update section</strong></li><li><strong>Choose to do a local/offline install</strong></li><li><strong>Select your newly downloaded BIOS file to install from.</strong></li></ol><p>Oh, and then back away slowly, and don't trip over that power cable while it installs. Kidding, it'll be fine—just take your time and do everything by the book.</p><p>If you're struggling to actually get into your BIOS via the traditional Del/F2 route—if your monitor stays black during POST for example—then you can hold down the Shift key while you restart your PC from the Windows shutdown menu. This will boot into a start menu that will allow you to go into an advanced options screen that lets you boot into your UEFI BIOS.</p><h2 class="article-body__section" id="section-how-to-get-set-up-after-your-bios-update"><span>How to get set up after your BIOS update</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FWTAmnRbksM8Lg3gqrnMUM" name="modern-warfare-4-release-times" alt="Modern Warfare 4 release times - Soldiers on a helicopter" src="https://cdn.mos.cms.futurecdn.net/FWTAmnRbksM8Lg3gqrnMUM-1920-80.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: Activision)</span></figcaption></figure><p>Bear in mind that updating your BIOS resets everything, so you might need to adjust some settings to get things back how they were.</p><p>Most important, given the reason we're doing all this, is checking you have Secure Boot, TPM, and PTT/fTPM enabled. These settings will usually be found in a Security or Boot section, but the exact location will depend on your motherboard and BIOS.</p><p>You'll also want to check your memory profile, which adjusts your RAM speed and timings. If you have a specific one you selected previously, you'll have to find that again, but for most people simply enabling XMP (for Intel) or EXPO (for AMD) will do, as these should get your RAM running at faster timings. Most BIOSes should have an obvious toggle for this, though you might have to navigate to a page containing your memory settings.</p><p>You might also want to adjust your fan profiles if you prefer a manual curve. It will be worth checking your primary boot drive is recognised and set with first boot priority, too. And lastly, you should check Resizable BAR (ReBAR) is enabled, which is usually found in Advanced or PCIe menus.</p><p>Once all is in order, you can boot up into Windows and, with any luck, get into COD without issue.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/dont-get-hit-with-the-bios-update-hammer-for-cod-mw4-like-my-colleagues-heres-how-to-ensure-you-can-play-multiplayer-and-dmz/</link>
                                                                            <description>
                            <![CDATA[ TPM and Secure Boot requirements strike again. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">fuLVqZPDd6qztEN2c7oHkV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ADf8vRbBtWTiViXXLTEKWT-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 15:55:30 +0000</pubDate>                                                                                                                                <updated>Wed, 21 Oct 2026 21:41:01 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jacob Fox ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Ee8ZL5rzgTjTNkBFJ4jBnD-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jacob got his hands on a gaming PC for the first time when he was about 12 years old. He swiftly realised the local PC repair store had ripped him off with his build and vowed never to let another soul build his rig again. With this vow, Jacob the hardware junkie was born. Since then, Jacob&#039;s led a double-life as part-hardware geek, part-philosophy nerd, first working as a Hardware Writer for PCGamesN in 2020, then working towards a PhD in Philosophy for a few years while freelancing on the side for sites such as TechRadar, Pocket-lint, and yours truly, PC Gamer. Eventually, he gave up the ruthless mercenary life to join the world&#039;s #1 PC Gaming site full-time. It&#039;s definitely not an ego thing, he assures us.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ADf8vRbBtWTiViXXLTEKWT-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A screenshot of the COD: MW4 operator selection screen.]]></media:description>                                                            <media:text><![CDATA[A screenshot of the COD: MW4 operator selection screen.]]></media:text>
                                <media:title type="plain"><![CDATA[A screenshot of the COD: MW4 operator selection screen.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ADf8vRbBtWTiViXXLTEKWT-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you're itching to get your pupils up against <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-review-in-progress-a-campaign-you-shouldnt-skip" target="_blank">Call of Duty: Modern Warfare 4</a> on PC at launch on Friday, you should probably double-check your system is up to date. We've already had a couple of colleagues here flung against the wall of requirements with the new COD, requiring a BIOS update to play online.</p><p>That's because <a href="https://support.activision.com/articles/trusted-platform-module-and-secure-boot" target="_blank">Activision explains</a> that both TPM 2.0 and Secure Boot are required to play any online game mode (multiplayer or DMZ). More specifically, though, you must have a new enough version of PTT (Platform Trust Technology) for Intel systems, and fTPM (Firmware Trusted Platform Module) for AMD ones.</p><p>Secure Boot and TPM requirements themselves are part of the toolkit that many modern online games use to keep cheaters out. We've seen <a href="https://www.pcgamer.com/hardware/battlefield-6-requires-secure-boot-to-run-and-its-coming-to-more-games-soon-including-call-of-duty-black-ops-7-heres-what-it-is-why-linux-gamers-are-mad-about-it-and-how-to-enable-it/" target="_blank">requirements for both</a>, for instance, to play Battlefield 6. Secure Boot is what gives your firmware and kernel themselves signatures to ensure they are legit, and the TPM helps verify that everything boots up in order with no extra, malicious software or firmware thrust into the boot process. Intel PTT and AMD fTPM are implementations of TPM.</p><p>The key confusion with COD MW4 is that just having Secure Boot and TPM 2.0 doesn't seem to be enough on its own—old versions of PTT or fTPM won't work.</p><p>Activision says that, <a href="https://support.activision.com/articles/trusted-platform-module-and-secure-boot#:~:text=If%20your%20Manufacturer%20Version%20is%20INTC%20302.12.*.*%20or%20INTC%20303.12.*.*%2C%20where%20*%20represents%20any%20number%2C%20your%20motherboard%20may%20require%20a%20firmware%20update." target="_blank">for Intel systems</a>, if your TPM version is some form of 302.1.2.X or 303.1.2.X (where X can be anything), your motherboard may require a firmware update. </p><p><a href="https://support.activision.com/articles/trusted-platform-module-and-secure-boot#:~:text=AMD%20motherboards%20with%20a%20Manufacturer%20Version%203.*.0.*%20(Figure%2011)%2C%20where%20*%20represents%20any%20number%2C%20are%20not%20compatible%20with%20applicable%20Call%20of%20Duty%20games%20and%20require%20a%20firmware%20update%20to%20meet%20compliance." target="_blank">For AMD ones</a>, 3.X.0.X versions aren't compatible and will require a firmware update.</p><p>To update either PTT or fTPM, you need to update your BIOS.</p><p>To check your TPM version, press Win+R and run 'tpm.msc'. It should show you your version under 'TPM Manufacturer Information' at the bottom. If your TPM info window says one of those aforementioned versions you'll need to update your BIOS. </p><p>Bear in mind that this isn't just a problem with very old CPUs, as we've had two colleagues here at PC Gamer run into the issue despite running an Intel Core i5 12400KF and AMD Ryzen 5 5800X, respectively. Though they have admitted their BIOS versions were many years old.</p><p>If you've not updated your BIOS in a very long time, it's probably a good idea to do so before COD drops. One can fix vulnerabilities and even sometimes resolve pretty serious stability and longevity issues, as was the case with Intel's 14th Gen chips a few years back. </p><h2 class="article-body__section" id="section-how-to-update-your-bios"><span>How to update your BIOS</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:1911px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YCfD5BENn8KFH9od8t5TdT" name="image (4)" alt="A screenshot of COD: MW4, aiming down-range at a target." src="https://cdn.mos.cms.futurecdn.net/YCfD5BENn8KFH9od8t5TdT-1920-80.jpg" mos="" align="middle" fullscreen="" width="1911" height="1075" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><ol start="1"><li><strong>Download the most recent stable version for your specific motherboard from its manufacturer's website. </strong></li><li><strong>Store it on a USB drive and plug that directly into your motherboard at the back of your PC</strong></li><li><strong>Reboot and head into your BIOS. </strong></li><li><strong>Find your BIOS update section</strong></li><li><strong>Choose to do a local/offline install</strong></li><li><strong>Select your newly downloaded BIOS file to install from.</strong></li></ol><p>Oh, and then back away slowly, and don't trip over that power cable while it installs. Kidding, it'll be fine—just take your time and do everything by the book.</p><p>If you're struggling to actually get into your BIOS via the traditional Del/F2 route—if your monitor stays black during POST for example—then you can hold down the Shift key while you restart your PC from the Windows shutdown menu. This will boot into a start menu that will allow you to go into an advanced options screen that lets you boot into your UEFI BIOS.</p><h2 class="article-body__section" id="section-how-to-get-set-up-after-your-bios-update"><span>How to get set up after your BIOS update</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FWTAmnRbksM8Lg3gqrnMUM" name="modern-warfare-4-release-times" alt="Modern Warfare 4 release times - Soldiers on a helicopter" src="https://cdn.mos.cms.futurecdn.net/FWTAmnRbksM8Lg3gqrnMUM-1920-80.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: Activision)</span></figcaption></figure><p>Bear in mind that updating your BIOS resets everything, so you might need to adjust some settings to get things back how they were.</p><p>Most important, given the reason we're doing all this, is checking you have Secure Boot, TPM, and PTT/fTPM enabled. These settings will usually be found in a Security or Boot section, but the exact location will depend on your motherboard and BIOS.</p><p>You'll also want to check your memory profile, which adjusts your RAM speed and timings. If you have a specific one you selected previously, you'll have to find that again, but for most people simply enabling XMP (for Intel) or EXPO (for AMD) will do, as these should get your RAM running at faster timings. Most BIOSes should have an obvious toggle for this, though you might have to navigate to a page containing your memory settings.</p><p>You might also want to adjust your fan profiles if you prefer a manual curve. It will be worth checking your primary boot drive is recognised and set with first boot priority, too. And lastly, you should check Resizable BAR (ReBAR) is enabled, which is usually found in Advanced or PCIe menus.</p><p>Once all is in order, you can boot up into Windows and, with any luck, get into COD without issue.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Modern Warfare 4 release times and early access explained ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Key deets</div><div class="fancy_box_body"><p class="fancy-box__body-text">💀 If you preorder Modern Warfare 4 digitally, you'll get early access to the campaign starting October 16 and DMZ on October 20.</p><p class="fancy-box__body-text">💀 The full release is on October 23 at midnight local time.</p><p class="fancy-box__body-text">💀 PC preload is already live.</p></div></div><p><a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Call of Duty: Modern Warfare 4</a> is releasing soon, but also features early access for many of its modes, including its campaign and the hotly anticipated revival of the DMZ extraction shooter. </p><p>To get early access to both the campaign and DMZ, you need to preorder the game digitally, otherwise, you'll be able to play on October 23. Activision hasn't revealed an exact time for the campaign early access unlock on the 16th, but the PC preload is already live. </p><p>There also hasn't been any official info about the DMZ early access release time on October 20. However, some sources predict it will be 10 am PT (1 pm ET/6 pm BST). What we do know is that:</p><ul><li>Modern Warfare 4 will release on October 23 at midnight local time, wherever you are.</li></ul><p>You'll need 115GB for the game's storage and you can find the official system requirements to run it on the <a href="https://store.steampowered.com/app/4435490/Call_of_Duty_Modern_Warfare_4/" target="_blank">Steam</a> page.</p><p>As we draw closer to the DMZ unlock and the full release, I'll update this article with any official time announcements that Activision drops.</p><div class="product"><a data-dimension112="e40ebbfe-c95e-11f1-aa05-eb35ff15d662" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="e40ebbfe-c95e-11f1-aa05-eb35ff15d662" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/modern-warfare-4-release-date-launch-times-early-access/</link>
                                                                            <description>
                            <![CDATA[ Here's what you can play and when. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TAP6GTVorWPe8CNRRsK5bi</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/FWTAmnRbksM8Lg3gqrnMUM-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 16 Oct 2026 12:44:53 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Sean Martin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/rw7hUY3Y2mxZJtwx3ePdwF-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/FWTAmnRbksM8Lg3gqrnMUM-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Modern Warfare 4 release times - Soldiers on a helicopter]]></media:description>                                                            <media:text><![CDATA[Modern Warfare 4 release times - Soldiers on a helicopter]]></media:text>
                                <media:title type="plain"><![CDATA[Modern Warfare 4 release times - Soldiers on a helicopter]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/FWTAmnRbksM8Lg3gqrnMUM-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Key deets</div><div class="fancy_box_body"><p class="fancy-box__body-text">💀 If you preorder Modern Warfare 4 digitally, you'll get early access to the campaign starting October 16 and DMZ on October 20.</p><p class="fancy-box__body-text">💀 The full release is on October 23 at midnight local time.</p><p class="fancy-box__body-text">💀 PC preload is already live.</p></div></div><p><a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Call of Duty: Modern Warfare 4</a> is releasing soon, but also features early access for many of its modes, including its campaign and the hotly anticipated revival of the DMZ extraction shooter. </p><p>To get early access to both the campaign and DMZ, you need to preorder the game digitally, otherwise, you'll be able to play on October 23. Activision hasn't revealed an exact time for the campaign early access unlock on the 16th, but the PC preload is already live. </p><p>There also hasn't been any official info about the DMZ early access release time on October 20. However, some sources predict it will be 10 am PT (1 pm ET/6 pm BST). What we do know is that:</p><ul><li>Modern Warfare 4 will release on October 23 at midnight local time, wherever you are.</li></ul><p>You'll need 115GB for the game's storage and you can find the official system requirements to run it on the <a href="https://store.steampowered.com/app/4435490/Call_of_Duty_Modern_Warfare_4/" target="_blank">Steam</a> page.</p><p>As we draw closer to the DMZ unlock and the full release, I'll update this article with any official time announcements that Activision drops.</p><div class="product"><a data-dimension112="e40ebbfe-c95e-11f1-aa05-eb35ff15d662" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="e40ebbfe-c95e-11f1-aa05-eb35ff15d662" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty 'cosmetic toggle' will cleanse Warzone of its Party City aesthetic ]]></title>
                                                                                                <dc:content><![CDATA[ <iframe src="https://content.jwplatform.com/players/k4XwdJk7.html" id="k4XwdJk7" title="MW4 cosmetic toggle.mp4" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen=""></iframe><h2 id="warzone-is-trying-something-new">Warzone is trying something new</h2><ul><li>In Warzone, a "cosmetic toggle" that will disable legacy character skins at a client level</li><li>With this toggle, players will instead see operators from Modern Warfare 4, making the game stylistically cohesive</li><li>This toggle only exists within Warzone, as Modern Warfare 4 itself won't carry forward any cosmetics from past games.</li></ul><p>This time last year, Call of Duty had to look itself in the mirror and admit that all the <a href="https://www.pcgamer.com/games/fps/activision-finally-acknowledges-call-of-duty-skins-problem-decides-cosmetics-wont-carry-forward-in-black-ops-7-some-of-you-have-said-weve-drifted-from-what-made-call-of-duty-unique-in-the-first-place-that-feedback-hits-home/">ugly crossover skins</a> had gotten out of hand. The company committed to a clean break with Black Ops 7: No old skins would carry forward, and future cosmetics would have to fit the Black Ops universe to make the cut. That lasted for about three months, when a <a href="https://www.pcgamer.com/games/fps/after-promising-black-ops-7-skins-would-feel-authentic-to-call-of-duty-and-its-setting-fallout-has-arrived-in-call-of-duty/">CoD x Fallout</a> collaboration arrived and all bets were off again.</p><p>This new toggle is, without a doubt, a positive change for CoD that I personally never expected to happen. If I were a Warzone diehard, I'd turn this on from day one and never look back. It's a shame, though, that this toggle appears to be only a temporary vacation from tacky outfits.</p><p>Since, according to <a href="https://www.callofduty.com/blog/2026/09/call-of-duty-modern-warfare-4-warzone-season-1-operator-toggle">this blog post</a>, skins from Modern Warfare 4 aren't filtered out with the toggle, Warzone players will still be subject to whatever future attire is destined for the new game. So Warzone will only be stylistically cohesive for as long as Modern Warfare 4 is. By the time Season 6 rolls around, we might have Timothée Chalamet in Dune gear or Travis Kelce running amok in Warzone, and the toggle would be rendered pointless.</p><p>That is, unless Infinity Ward makes its own commitment to non-goofy cosmetics between now and launch, or expands the toggle to exclude all store outfits. I've reached out to Activision for clarification on how this will work.</p><div class="product"><a data-dimension112="2b9b41d0-b862-11f1-843e-57b8a5566283" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="2b9b41d0-b862-11f1-843e-57b8a5566283" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-cosmetic-toggle-will-cleanse-warzone-of-its-party-city-aesthetic/</link>
                                                                            <description>
                            <![CDATA[ Is the toggle a half measure? ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jExnx88KkuXbXndVJpZHsg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WQ84Gi9EbygAN4hJ3VymJc-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 24 Sep 2026 21:54:30 +0000</pubDate>                                                                                                                                <updated>Fri, 25 Sep 2026 01:02:16 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WQ84Gi9EbygAN4hJ3VymJc-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Black Ops 6 american dad skin]]></media:description>                                                            <media:text><![CDATA[Black Ops 6 american dad skin]]></media:text>
                                <media:title type="plain"><![CDATA[Black Ops 6 american dad skin]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WQ84Gi9EbygAN4hJ3VymJc-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <iframe src="https://content.jwplatform.com/players/k4XwdJk7.html" id="k4XwdJk7" title="MW4 cosmetic toggle.mp4" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen=""></iframe><h2 id="warzone-is-trying-something-new">Warzone is trying something new</h2><ul><li>In Warzone, a "cosmetic toggle" that will disable legacy character skins at a client level</li><li>With this toggle, players will instead see operators from Modern Warfare 4, making the game stylistically cohesive</li><li>This toggle only exists within Warzone, as Modern Warfare 4 itself won't carry forward any cosmetics from past games.</li></ul><p>This time last year, Call of Duty had to look itself in the mirror and admit that all the <a href="https://www.pcgamer.com/games/fps/activision-finally-acknowledges-call-of-duty-skins-problem-decides-cosmetics-wont-carry-forward-in-black-ops-7-some-of-you-have-said-weve-drifted-from-what-made-call-of-duty-unique-in-the-first-place-that-feedback-hits-home/">ugly crossover skins</a> had gotten out of hand. The company committed to a clean break with Black Ops 7: No old skins would carry forward, and future cosmetics would have to fit the Black Ops universe to make the cut. That lasted for about three months, when a <a href="https://www.pcgamer.com/games/fps/after-promising-black-ops-7-skins-would-feel-authentic-to-call-of-duty-and-its-setting-fallout-has-arrived-in-call-of-duty/">CoD x Fallout</a> collaboration arrived and all bets were off again.</p><p>This new toggle is, without a doubt, a positive change for CoD that I personally never expected to happen. If I were a Warzone diehard, I'd turn this on from day one and never look back. It's a shame, though, that this toggle appears to be only a temporary vacation from tacky outfits.</p><p>Since, according to <a href="https://www.callofduty.com/blog/2026/09/call-of-duty-modern-warfare-4-warzone-season-1-operator-toggle">this blog post</a>, skins from Modern Warfare 4 aren't filtered out with the toggle, Warzone players will still be subject to whatever future attire is destined for the new game. So Warzone will only be stylistically cohesive for as long as Modern Warfare 4 is. By the time Season 6 rolls around, we might have Timothée Chalamet in Dune gear or Travis Kelce running amok in Warzone, and the toggle would be rendered pointless.</p><p>That is, unless Infinity Ward makes its own commitment to non-goofy cosmetics between now and launch, or expands the toggle to exclude all store outfits. I've reached out to Activision for clarification on how this will work.</p><div class="product"><a data-dimension112="2b9b41d0-b862-11f1-843e-57b8a5566283" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="2b9b41d0-b862-11f1-843e-57b8a5566283" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty introduces a gun skin that you can only see on an Xbox console ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Call of Duty has joined Microsoft's bid to reinvigorate interest in Xbox consoles, today announcing a Modern Warfare 4 gun skin that you can only see if you're playing on an Xbox.</p><p>You read that right: The Inner Circuit blueprint is an M4 skin granted to those who pre-order Modern Warfare 4 on any platform, <em>but</em> the gun looks totally different on the Xbox version.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/WexBcNLkXj5zNjAXFwze2j-1920-80.jpg" alt="xbox gun call of duty modern warfare 4" /><figcaption>LEFT: The Inner Circuit skin as it'll appear on PC, PlayStation, and Switch 2.<small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/EKX2LXFrPqYbFaSRVSW36j-1920-80.jpg" alt="xbox gun call of duty modern warfare 4" /><figcaption>RIGHT: The Xbox 25th Anniversary Inner Circuit, exclusive to Xbox<small role="credit">Activision Blizzard</small></figcaption></figure></figure><p>The Xbox 25th anniversary edition of the skin is designed after the green translucent plastic of the original Xbox console—it also features an Xbox logo and "Xbox 25" branding on the magazine. It looks, I must admit, pretty cool. Too bad these pictures are as close as I'll ever get to seeing it, as I don't own an Xbox.</p><p>Platform-specific incentives are nothing new for Call of Duty—for years, a Sony partnership meant PlayStation players got extra double XP, and Xbox used to get first dibs on map packs—but what's strange here is how this cosmetic isn't just exclusive to one platform, but only perceivable by it as well. If an Xbox player wants to show off their green M4 to a friend on PC, all they'll see is a boring-looking grey gun.</p><p>In a <a href="https://www.callofduty.com/blog/2026/09/call-of-duty-modern-warfare-4-preorder-bonus-inner-circuit-m4-blueprint">dedicated Xbox gun blog post</a>, Activision clarified that in all ways other than appearance, the weapon blueprint is the same across platforms: "Both versions use the same attachments and perform identically in-game."</p><p>That's certainly one way to make pre-orders for a preferred platform more attractive, though this approach strikes me as more confusing than simply giving Xbox players a unique skin that everyone can see. At least that way I would actually know when the guy who killed me is trying to show off their fancy Xbox gun in a killcam. Instead, non-Xboxers who don't read Activision's blog or this website won't even know the difference. Strange!</p><p>And to think: This time last year, <a href="https://www.pcgamer.com/hardware/everything-is-an-xbox-now-so-i-see-no-reason-to-buy-xbox-again/">my PC <em>was </em>an Xbox</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-O9mKEO"></div>                            </div>                            <script src="https://kwizly.com/embed/O9mKEO.js" async=""></script><div class="product"><a data-dimension112="35bba4d0-ac81-11f1-bbfa-19a249c44ad5" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="35bba4d0-ac81-11f1-bbfa-19a249c44ad5" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-introduces-a-gun-skin-that-you-can-only-see-on-an-xbox-console/</link>
                                                                            <description>
                            <![CDATA[ Behold the Xbox gun. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ncCQRZXbLoraS2RMJyiyrT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Xk8JZv8RHSa6AXcRAsXcwi-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 09 Sep 2026 19:11:08 +0000</pubDate>                                                                                                                                <updated>Thu, 10 Sep 2026 00:19:42 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Xk8JZv8RHSa6AXcRAsXcwi-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[xbox gun call of duty modern warfare 4]]></media:description>                                                            <media:text><![CDATA[xbox gun call of duty modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[xbox gun call of duty modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Xk8JZv8RHSa6AXcRAsXcwi-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Call of Duty has joined Microsoft's bid to reinvigorate interest in Xbox consoles, today announcing a Modern Warfare 4 gun skin that you can only see if you're playing on an Xbox.</p><p>You read that right: The Inner Circuit blueprint is an M4 skin granted to those who pre-order Modern Warfare 4 on any platform, <em>but</em> the gun looks totally different on the Xbox version.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/WexBcNLkXj5zNjAXFwze2j-1920-80.jpg" alt="xbox gun call of duty modern warfare 4" /><figcaption>LEFT: The Inner Circuit skin as it'll appear on PC, PlayStation, and Switch 2.<small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/EKX2LXFrPqYbFaSRVSW36j-1920-80.jpg" alt="xbox gun call of duty modern warfare 4" /><figcaption>RIGHT: The Xbox 25th Anniversary Inner Circuit, exclusive to Xbox<small role="credit">Activision Blizzard</small></figcaption></figure></figure><p>The Xbox 25th anniversary edition of the skin is designed after the green translucent plastic of the original Xbox console—it also features an Xbox logo and "Xbox 25" branding on the magazine. It looks, I must admit, pretty cool. Too bad these pictures are as close as I'll ever get to seeing it, as I don't own an Xbox.</p><p>Platform-specific incentives are nothing new for Call of Duty—for years, a Sony partnership meant PlayStation players got extra double XP, and Xbox used to get first dibs on map packs—but what's strange here is how this cosmetic isn't just exclusive to one platform, but only perceivable by it as well. If an Xbox player wants to show off their green M4 to a friend on PC, all they'll see is a boring-looking grey gun.</p><p>In a <a href="https://www.callofduty.com/blog/2026/09/call-of-duty-modern-warfare-4-preorder-bonus-inner-circuit-m4-blueprint">dedicated Xbox gun blog post</a>, Activision clarified that in all ways other than appearance, the weapon blueprint is the same across platforms: "Both versions use the same attachments and perform identically in-game."</p><p>That's certainly one way to make pre-orders for a preferred platform more attractive, though this approach strikes me as more confusing than simply giving Xbox players a unique skin that everyone can see. At least that way I would actually know when the guy who killed me is trying to show off their fancy Xbox gun in a killcam. Instead, non-Xboxers who don't read Activision's blog or this website won't even know the difference. Strange!</p><p>And to think: This time last year, <a href="https://www.pcgamer.com/hardware/everything-is-an-xbox-now-so-i-see-no-reason-to-buy-xbox-again/">my PC <em>was </em>an Xbox</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-O9mKEO"></div>                            </div>                            <script src="https://kwizly.com/embed/O9mKEO.js" async=""></script><div class="product"><a data-dimension112="35bba4d0-ac81-11f1-bbfa-19a249c44ad5" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="35bba4d0-ac81-11f1-bbfa-19a249c44ad5" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Activision serves cease and desist to infamous Call of Duty cheat maker—and films the whole thing: 'We will find you' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Activision has employed many different tactics in its unending battle against cheating in<a href="https://www.pcgamer.com/uk/games/fps/call-of-duty/"> Call of Duty</a>, from <a href="https://www.pcgamer.com/gaming-industry/activision-wins-dollar145-million-in-lawsuit-against-call-of-duty-cheat-maker/">suing cheat makers</a> for millions of dollars to employing complex technical solutions to ban cheaters as quickly as possible. In its latest gambit, Activision served cease-and-desist papers to one especially infamous Call of Duty cheat maker, filmed the entire exchange, and posted it online.</p><p>On Friday, a video appeared on the official<a href="https://x.com/CallofDuty/status/2093353055605379268" target="_blank"> Call of Duty X account</a> (via<a href="https://kotaku.com/activision-notorious-call-of-duty-cheat-maker-elocarry-2000729370" target="_blank"> Kotaku</a>) showing a legal representative arriving at the home of Elocarry—a cheat maker who creates exploits for games like<a href="https://www.pcgamer.com/uk/rust/"> Rust</a> and<a href="https://www.pcgamer.com/uk/apex-legends/"> Apex Legends</a> alongside Call of Duty—walking up to his front door and serving him a cease and desist order.</p><p>Now, if you're expecting some Dog the Bounty Hunter level of reality TV drama, expect to be disappointed. The whole exchange between Elocarry and the legal representative is brief and civil—pretty much "Hello. Here are your papers. Goodbye." The most interesting part occurs when the representative explains the papers are cease-and-desist orders, and Elocarry asks "What's that?", after which the representative suggests Elocarry call the relevant attorney's office.</p><p>Clearly though, the objective here is to serve a broader warning to Call of Duty cheaters. That not only will the publisher come after you legally, that it will also do so publicly and for the whole world to see. In a follow-up post, Activision says that it served 80 such cease-and-desist letters in its fight against cheat makers, disrupting 375 reseller operations and shutting down 30 vendors entirely.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2093353055605379268"><p lang="en" dir="ltr">RICOCHET Anti-Cheat doesn't end when your match does.Cheat makers operate around the world. So do we. We’re taking the fight directly to cheat sellers.Last weekend during the Closed Beta, we went to Ohio to takedown Elocarry.That’s not an isolated case... pic.twitter.com/IP69qlGgDD<a href="https://twitter.com/cantworkitout/status/2093353055605379268">August 28, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Regarding Elocarry specifically, the cease-and-desist order appears to have had an effect. Further down the thread, the Call of Duty X account<a href="https://x.com/CallofDuty/status/2093353061670441297" target="_blank"> posted a screenshot</a> from Elocarry's discord which states he has "temporarily paused sales" of Call of Duty cheats as he "review[s] a matter internally".</p><p>Activision also took the opportunity to discuss how these anti-cheat efforts are being carried forward into<a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/"> Call of Duty: Modern Warfare 4</a>. In another post in the thread, Activision stated that during last weekend's beta test "infection rates were lower, hardware bans were harder to evade and our time to action improved." Sadly, Activision didn't go into much more detail than this. But the publisher certainly seems keen to let players know how seriously it is taking cheating.</p><p>Modern Warfare 4's second beta weekend is<a href="https://www.pcgamer.com/games/call-of-duty/mw4-beta-dates-times/"> currently ongoing</a>, and unlike the first beta weekend is open to all players. Alongside the standard multiplayer test, players can also try a mission from the campaign and drop into Warzone for a bout of battle royale. PC Gamer's Morgan Park<a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/"> got hands-on with</a> Modern Warfare 4 earlier in the year, coming away impressed by the level of detail on show, but unconvinced by its maps.</p><div class="product"><a data-dimension112="52c9a18c-a45a-11f1-b6b0-756bb77ff6a3" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="52c9a18c-a45a-11f1-b6b0-756bb77ff6a3" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/activision-serves-cease-and-desist-to-infamous-call-of-duty-cheat-maker-and-films-the-whole-thing-we-will-find-you/</link>
                                                                            <description>
                            <![CDATA[ The publisher says it has disrupted 375 reseller operations so far. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">eSBLvZjiWPrKFPkzaPkhjG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 30 Aug 2026 10:05:20 +0000</pubDate>                                                                                                                                <updated>Mon, 31 Aug 2026 13:49:01 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rick Lane ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ &lt;p&gt;Rick has been fascinated by PC gaming since he was seven years old, when he used to sneak into his dad&#039;s home office for covert sessions of Doom. He grew up on a diet of similarly unsuitable games, with favourites including Quake, Thief, Half-Life and Deus Ex. Between 2013 and 2022, Rick was games editor of Custom PC magazine and associated website &lt;a href=&quot;http://bit-tech.net/&quot; target=&quot;_blank&quot;&gt;bit-tech.net&lt;/a&gt;. But he&#039;s always kept one foot in freelance games journalism, writing for publications like Edge, Eurogamer, the Guardian and, naturally, PC Gamer. While he&#039;ll play anything that can be controlled with a keyboard and mouse, he has a particular passion for first-person shooters and immersive sims.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[modern warfare 4]]></media:description>                                                            <media:text><![CDATA[modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Activision has employed many different tactics in its unending battle against cheating in<a href="https://www.pcgamer.com/uk/games/fps/call-of-duty/"> Call of Duty</a>, from <a href="https://www.pcgamer.com/gaming-industry/activision-wins-dollar145-million-in-lawsuit-against-call-of-duty-cheat-maker/">suing cheat makers</a> for millions of dollars to employing complex technical solutions to ban cheaters as quickly as possible. In its latest gambit, Activision served cease-and-desist papers to one especially infamous Call of Duty cheat maker, filmed the entire exchange, and posted it online.</p><p>On Friday, a video appeared on the official<a href="https://x.com/CallofDuty/status/2093353055605379268" target="_blank"> Call of Duty X account</a> (via<a href="https://kotaku.com/activision-notorious-call-of-duty-cheat-maker-elocarry-2000729370" target="_blank"> Kotaku</a>) showing a legal representative arriving at the home of Elocarry—a cheat maker who creates exploits for games like<a href="https://www.pcgamer.com/uk/rust/"> Rust</a> and<a href="https://www.pcgamer.com/uk/apex-legends/"> Apex Legends</a> alongside Call of Duty—walking up to his front door and serving him a cease and desist order.</p><p>Now, if you're expecting some Dog the Bounty Hunter level of reality TV drama, expect to be disappointed. The whole exchange between Elocarry and the legal representative is brief and civil—pretty much "Hello. Here are your papers. Goodbye." The most interesting part occurs when the representative explains the papers are cease-and-desist orders, and Elocarry asks "What's that?", after which the representative suggests Elocarry call the relevant attorney's office.</p><p>Clearly though, the objective here is to serve a broader warning to Call of Duty cheaters. That not only will the publisher come after you legally, that it will also do so publicly and for the whole world to see. In a follow-up post, Activision says that it served 80 such cease-and-desist letters in its fight against cheat makers, disrupting 375 reseller operations and shutting down 30 vendors entirely.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2093353055605379268"><p lang="en" dir="ltr">RICOCHET Anti-Cheat doesn't end when your match does.Cheat makers operate around the world. So do we. We’re taking the fight directly to cheat sellers.Last weekend during the Closed Beta, we went to Ohio to takedown Elocarry.That’s not an isolated case... pic.twitter.com/IP69qlGgDD<a href="https://twitter.com/cantworkitout/status/2093353055605379268">August 28, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Regarding Elocarry specifically, the cease-and-desist order appears to have had an effect. Further down the thread, the Call of Duty X account<a href="https://x.com/CallofDuty/status/2093353061670441297" target="_blank"> posted a screenshot</a> from Elocarry's discord which states he has "temporarily paused sales" of Call of Duty cheats as he "review[s] a matter internally".</p><p>Activision also took the opportunity to discuss how these anti-cheat efforts are being carried forward into<a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/"> Call of Duty: Modern Warfare 4</a>. In another post in the thread, Activision stated that during last weekend's beta test "infection rates were lower, hardware bans were harder to evade and our time to action improved." Sadly, Activision didn't go into much more detail than this. But the publisher certainly seems keen to let players know how seriously it is taking cheating.</p><p>Modern Warfare 4's second beta weekend is<a href="https://www.pcgamer.com/games/call-of-duty/mw4-beta-dates-times/"> currently ongoing</a>, and unlike the first beta weekend is open to all players. Alongside the standard multiplayer test, players can also try a mission from the campaign and drop into Warzone for a bout of battle royale. PC Gamer's Morgan Park<a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/"> got hands-on with</a> Modern Warfare 4 earlier in the year, coming away impressed by the level of detail on show, but unconvinced by its maps.</p><div class="product"><a data-dimension112="52c9a18c-a45a-11f1-b6b0-756bb77ff6a3" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="52c9a18c-a45a-11f1-b6b0-756bb77ff6a3" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty: Modern Warfare 4's first beta patch adds a new map and mode, as Infinity Ward responds to complaints about footstep noise and weapon lethality ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The beta for<a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/"> Call of Duty: Modern Warfare 4</a> kicked off in earnest this weekend, with Infinity Ward commencing public testing of what we all hope is a return to form after the disappointment of<a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-review/"> Call of Duty: Black Ops 7</a>. And changes are already being made, with the developers releasing a<a href="https://www.callofduty.com/patchnotes/2026/08/call-of-duty-modern-warfare-4-beta-patch-notes" target="_blank"> new patch</a> that makes a couple of mechanical tweaks while also adding a new map and mode.</p><p>We'll deal with the latter additions first. The new map is called Cachette, and it is truly a <em>new </em>map, making its debut in Modern Warfare 4. It's a compact, 6v6 affair set on the outskirts of a French rail terminal, where some military types have made an armoury out of an old mechanics garage and an abandoned wine warehouse.</p><p>The new mode, meanwhile, is called Inflation, and it is a cash grab in the most literal sense. Eliminating enemies during a match gives you cash, while players with the most cash become marked as high-value targets. If you get the better of a high-value target, you get to steal their cash and, presumably, become an HVT yourself. I always think Call of Duty shines brightest when it adds a <em>little </em>bit of structure to its inherently frenetic nature, and this sounds like the right balance of the two.</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:720px;"><p class="vanilla-image-block" style="padding-top:125.00%;"><img id="irGVdbibbV3bpem9LF3eZX" name="unnamed" alt="modern warfare 4 beta details" src="https://cdn.mos.cms.futurecdn.net/irGVdbibbV3bpem9LF3eZX-1920-80.jpg" mos="" align="middle" fullscreen="" width="720" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>As for those mechanical adjustments, footstep volume has been reduced after players complained it was too loud. On top of that, Infinity Ward concurs with players that "time-to-till [TTK] isn't quite right yet" and as such has "turned down the lethality of some of our guns." Oh, and map voting has been introduced, with Infinity Ward stating that the system needed four maps to work effectively—which it now has with the addition of Cachette.</p><p>Infinity Ward says it will continue working on the beta throughout its runtime, so further patches may be waiting in the wings. The early access beta ends on August 25, with a second, open beta arriving on August 28. Alongside the multiplayer modes and playable campaign mission made available this weekend, the open beta will also let players<a href="https://www.pcgamer.com/games/call-of-duty/mw4-beta-dates-times/"> get hands-on with</a> the latest iteration of Warzone. If you want to know how to access the beta yourself, you find all the info you need<a href="https://www.pcgamer.com/games/call-of-duty/mw4-beta-dates-times/"> here</a>.</p><div class="product"><a data-dimension112="00f4e080-9edb-11f1-aee2-e3336a297fc2" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="00f4e080-9edb-11f1-aee2-e3336a297fc2" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4s-first-beta-patch-adds-a-new-map-and-mode-as-infinity-ward-responds-to-complaints-about-footstep-noise-and-weapon-lethality/</link>
                                                                            <description>
                            <![CDATA[ Cachette and Inflation join the fray as Infinity Ward adjusts footsteps and gun damage. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">fmQQ9NrTHGeQygihKzJXwg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/e3MVk8QYaAbuzXkCbScQCB-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 23 Aug 2026 10:11:37 +0000</pubDate>                                                                                                                                <updated>Sun, 23 Aug 2026 16:42:18 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rick Lane ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ &lt;p&gt;Rick has been fascinated by PC gaming since he was seven years old, when he used to sneak into his dad&#039;s home office for covert sessions of Doom. He grew up on a diet of similarly unsuitable games, with favourites including Quake, Thief, Half-Life and Deus Ex. Between 2013 and 2022, Rick was games editor of Custom PC magazine and associated website &lt;a href=&quot;http://bit-tech.net/&quot; target=&quot;_blank&quot;&gt;bit-tech.net&lt;/a&gt;. But he&#039;s always kept one foot in freelance games journalism, writing for publications like Edge, Eurogamer, the Guardian and, naturally, PC Gamer. While he&#039;ll play anything that can be controlled with a keyboard and mouse, he has a particular passion for first-person shooters and immersive sims.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/e3MVk8QYaAbuzXkCbScQCB-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Surrounded by squadmates, a soldier kneels over a bag overflowing with cash.]]></media:description>                                                            <media:text><![CDATA[Surrounded by squadmates, a soldier kneels over a bag overflowing with cash.]]></media:text>
                                <media:title type="plain"><![CDATA[Surrounded by squadmates, a soldier kneels over a bag overflowing with cash.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/e3MVk8QYaAbuzXkCbScQCB-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The beta for<a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/"> Call of Duty: Modern Warfare 4</a> kicked off in earnest this weekend, with Infinity Ward commencing public testing of what we all hope is a return to form after the disappointment of<a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-review/"> Call of Duty: Black Ops 7</a>. And changes are already being made, with the developers releasing a<a href="https://www.callofduty.com/patchnotes/2026/08/call-of-duty-modern-warfare-4-beta-patch-notes" target="_blank"> new patch</a> that makes a couple of mechanical tweaks while also adding a new map and mode.</p><p>We'll deal with the latter additions first. The new map is called Cachette, and it is truly a <em>new </em>map, making its debut in Modern Warfare 4. It's a compact, 6v6 affair set on the outskirts of a French rail terminal, where some military types have made an armoury out of an old mechanics garage and an abandoned wine warehouse.</p><p>The new mode, meanwhile, is called Inflation, and it is a cash grab in the most literal sense. Eliminating enemies during a match gives you cash, while players with the most cash become marked as high-value targets. If you get the better of a high-value target, you get to steal their cash and, presumably, become an HVT yourself. I always think Call of Duty shines brightest when it adds a <em>little </em>bit of structure to its inherently frenetic nature, and this sounds like the right balance of the two.</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:720px;"><p class="vanilla-image-block" style="padding-top:125.00%;"><img id="irGVdbibbV3bpem9LF3eZX" name="unnamed" alt="modern warfare 4 beta details" src="https://cdn.mos.cms.futurecdn.net/irGVdbibbV3bpem9LF3eZX-1920-80.jpg" mos="" align="middle" fullscreen="" width="720" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>As for those mechanical adjustments, footstep volume has been reduced after players complained it was too loud. On top of that, Infinity Ward concurs with players that "time-to-till [TTK] isn't quite right yet" and as such has "turned down the lethality of some of our guns." Oh, and map voting has been introduced, with Infinity Ward stating that the system needed four maps to work effectively—which it now has with the addition of Cachette.</p><p>Infinity Ward says it will continue working on the beta throughout its runtime, so further patches may be waiting in the wings. The early access beta ends on August 25, with a second, open beta arriving on August 28. Alongside the multiplayer modes and playable campaign mission made available this weekend, the open beta will also let players<a href="https://www.pcgamer.com/games/call-of-duty/mw4-beta-dates-times/"> get hands-on with</a> the latest iteration of Warzone. If you want to know how to access the beta yourself, you find all the info you need<a href="https://www.pcgamer.com/games/call-of-duty/mw4-beta-dates-times/"> here</a>.</p><div class="product"><a data-dimension112="00f4e080-9edb-11f1-aee2-e3336a297fc2" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="00f4e080-9edb-11f1-aee2-e3336a297fc2" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty: Modern Warfare 4 beta dates: How to sign up for both MW4 beta weekends ]]></title>
                                                                                                <dc:content><![CDATA[ <p>You can't regularly queue up for combat until October, but a series of <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/">Call of Duty: Modern Warfare 4</a> betas are a chance to try one upcoming campaign mission and several multiplayer maps before launch. Trying to decipher what happens when and how to register is super convoluted, so here's an info drop on the MW4 beta dates and what you'll need to get started. </p><h2 class="article-body__section" id="section-call-of-duty-mw4-beta-dates"><span>Call of Duty MW4 beta dates</span></h2><p>You've got two options for jumping into the MW4 beta: If you pre-order the game you can participate in the first round (early access beta), or you can wait and play for free in the second (open beta).</p><section class="article__schema-question"><h3>MW4 early access beta date and times</h3><article class="article__schema-answer"><p><strong>The MW4 early access beta begins on Friday, August 21 at 11 am PDT</strong>, and ends on the following Tuesday, August 25 at 10 am PDT. Here are the times across regions on August 21:</p><ul><li>11 am PDT (Los Angeles)</li><li>2 pm EDT (New York)</li><li>7 pm BST (London)</li><li>8 pm CEST (Berlin)</li><li>4 am August 22 AEST (Sydney)</li><li>6 am August 22 NZST (Auckland)</li><li>Or use this <a href="https://www.timeanddate.com/worldclock/converter.html?iso=20260821T180000&amp;p1=137&amp;p2=179&amp;p3=136&amp;p4=37&amp;p5=240&amp;p6=22">global timezone resource</a> to compare this with more regions.</li></ul></article></section><section class="article__schema-question"><h3>MW4 open beta date and times</h3><article class="article__schema-answer"><p><strong>The MW4 open beta begins on Friday, August 28 at 10 am PDT</strong>, and ends on the following Tuesday, September 1 at 10 am PDT. Here are the times across regions on August 28:</p><ul><li>10 am PDT (Los Angeles)</li><li>1 pm EDT (New York)</li><li>6 pm BST (London)</li><li>7 pm CEST (Berlin)</li><li>3 am August 29 AEST (Sydney)</li><li>5 am August 29 NZST (Auckland)</li><li>Compare this with more regions using this handy <a href="https://www.timeanddate.com/worldclock/converter.html?iso=20260828T170000&amp;p1=137&amp;p2=179&amp;p3=136&amp;p4=37&amp;p5=240&amp;p6=22">time and date tool</a>. </li></ul></article></section><h2 class="article-body__section" id="section-call-of-duty-mw4-beta-codes-and-registration"><span>Call of Duty MW4 beta codes and registration</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:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4y7D5vsqdcXqybVk8Gsrji" name="COD-MW4-Beta-Multiplayer-Trailer" alt="Call of Duty: Modern Warfare 4 multiplayer character skin with a black mask and body armor" src="https://cdn.mos.cms.futurecdn.net/4y7D5vsqdcXqybVk8Gsrji-1920-80.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: Infinity Ward)</span></figcaption></figure><p><em>Some </em>players need a MW4 beta code to participate in the early access weekend starting on August 21, but it all depends on how you've pre-ordered. The second period on August 28 doesn't require a purchase; it's open to anyone on Steam, Battle.net, or consoles. </p><p><strong>The MW4 open beta weekend on August 28 does not require a pre-order or beta code to participate. Anyone can download the open beta build on any platform. </strong></p><section class="article__schema-question"><h3>What you need to know about the early access beta codes</h3><article class="article__schema-answer"><ul><li>You can redeem MW4 beta codes through the <a href="https://callofduty.com/betaredeem">official COD site</a></li><li>Only players who pre-order physical editions or digital copies (through other retailers) of MW4 will need to redeem a beta code </li><li>Anyone who pre-orders through the in-game store or a platform store (like Steam, PSN, etc) receives automatic access and does not need a beta code</li></ul></article></section><section class="article__schema-question"><h3>How do I get a MW4 beta code for the early access dates?</h3><article class="article__schema-answer"><p>Pre-orders are the only way to guarantee you get into the early access beta, but I've spotted MW4 beta code giveaways around places like <a href="https://www.reddit.com/r/PS5/comments/1vr0jsz/giveaway_over_30x_call_of_duty_modern_warfare_4/">Reddit</a> and most social platforms. The Call of Duty: Next Showcase also notes it's hosting code giveaways—that starts at 9 am PDT on August 21, and you can watch it on <a href="https://www.youtube.com/watch?v=RvZvq0qaZvQ">YouTube</a>. </p></article></section><h2 class="article-body__section" id="section-mw4-beta-modes-maps-and-more"><span>MW4 beta modes, maps, and more</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/ixVxLamAZbsVB5o9QJ8Wz7-1920-80.jpg" alt="Call of Duty MW4 beta weekend map, Transit 213" /><figcaption>Transit 213<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/8xKSb9iFNTEDHZ2GghQRv7-1920-80.jpg" alt="Call of Duty MW4 Cachette map from the beta" /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/PspMeBLJ8t68k59FAspMy7-1920-80.jpg" alt="Call of Duty MW4  beta weekend map, Silkworm" /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ZhyWGCLr5TDv8iRjk2Q2y7-1920-80.jpg" alt="Call of Duty MW4 beta weekend map, Lotus" /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/L5eCaMKYm5jyVPQHvxHrw7-1920-80.jpg" alt="Call of Duty MW4  beta weekend map, Rooftops" /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure></figure><h3 id="the-maps-and-modes-available-in-both-beta-weekends">The maps and modes available in both beta weekends</h3><p>Most maps and modes are available in both MW4 betas, but features like Combat Outpost aren't available until the second weekend. A couple of maps are also limited to just one weekend, so I've put together those key differences in a table for reference</p><div ><table><caption>Available modes in both weekends</caption><thead><tr><th class="firstcol " ><p><strong>Modes</strong></p></th><th  ><p><strong>Early Access Beta</strong></p></th><th  ><p><strong>Open Beta</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Campaign mission:</strong> Entrenched</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p><strong>Ground War:</strong> Combat Outpost</p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Domination</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Hardpoint</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Hijack</p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Inflation</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Kill Block - 10v10 and 3v3</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Kill Confirmed</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Mobility Course</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Search &amp; Destroy</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Team Deathmatch</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr></tbody></table></div><div ><table><caption>Available maps in both weekends</caption><thead><tr><th class="firstcol " ><p><strong>Maps</strong></p></th><th  ><p><strong>Early Access Beta</strong></p></th><th  ><p><strong>Open Beta</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Cachette</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Kill Block</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Lithium</p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Lotus</p></td><td  ><p>✔️</p></td><td  ><p>❌</p></td></tr><tr><td class="firstcol " ><p>Rooftops</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Silkworm</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Transit 213</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Imjin Farmland <strong>(Ground War)</strong></p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Wolves Stadium<strong> (Ground War)</strong></p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Resurgence Zodiac<strong> (Warzone)</strong></p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr></tbody></table></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQw9nX"></div>                            </div>                            <script src="https://kwizly.com/embed/WQw9nX.js" async=""></script><h2 class="article-body__section" id="section-mw4-beta-rewards"><span>MW4 beta rewards</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BRYU5krmdocaBBjCiJaMp7" name="MW4-Beta-Rewards" alt="Call of Duty MW4 beta rewards for Levels 4 - 30" src="https://cdn.mos.cms.futurecdn.net/BRYU5krmdocaBBjCiJaMp7-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/BRYU5krmdocaBBjCiJaMp7-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><section class="article__schema-question"><h3>Early access beta rewards</h3><article class="article__schema-answer"><ul><li><strong>Level 4: </strong>Through the Paces Legendary Emblem</li><li><strong>Level 8: </strong>First Served Weapon Charm</li><li><strong>Level 12: </strong>Meonjeo Legendary Weapon Sticker</li><li><strong>Level 16: </strong>Last Charge Legendary Calling Card</li><li><strong>Level 20: </strong>Dread Tiger Operator Skin – Reece</li></ul></article></section><section class="article__schema-question"><h3>Open beta rewards</h3><article class="article__schema-answer"><ul><li>All early access beta rewards from Levels 4-20</li><li><strong>Level 23:</strong> Field Tested Epic Spray</li><li><strong>Level 26: </strong>Beta Rights Epic Loading Screen</li><li><strong>Level 30:</strong> Beta Forged ISO Nightshade Weapon Blueprint</li></ul></article></section><section class="article__schema-question"><h3>Additional beta rewards</h3><article class="article__schema-answer"><ul><li><strong>General rewards: </strong>3 emblems, 3 calling cards, 1 spray, and 3 loading screens</li><li><strong>Challenge reward:</strong> 1 (unknown) charm</li><li><strong>Combat record reward: </strong>1 (unknown) weapon blueprint, emblem, and charm</li><li>An additional (unknown) challenge reward</li></ul></article></section><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="TfKqDATWxVdkdy5gGmo6X7" name="MW4-Twitch-Drops" alt="Call of Duty Next Twitch Drops, which include: Gas Ready Emblem, Rapple Repel Calling Card, and Ghost Helmet Charm" src="https://cdn.mos.cms.futurecdn.net/TfKqDATWxVdkdy5gGmo6X7-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/TfKqDATWxVdkdy5gGmo6X7-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><section class="article__schema-question"><h3>Twitch Drops</h3><article class="article__schema-answer"><ul><li><strong>COD Next: </strong>Gas Ready Emblem, Rapple Repel Calling Card, and Ghost Helmet Charm</li><li><strong>MW4 beta: </strong>Get Tactical Emblem, Clearing House Calling Card, and Action Ready Charm</li></ul></article></section><h2 class="article-body__section" id="section-mw4-beta-pre-loading"><span>MW4 beta pre-loading</span></h2><section class="article__schema-question"><h3>Is there preloading for the MW4 beta?</h3><article class="article__schema-answer"><p><strong>Yes, you can pre-load the MW4 early access beta now on Steam and </strong><a href="http://battle.net"><strong>Battle.net</strong></a><strong> right now</strong>—so can your friends on PlayStation 5 and Xbox Series X/S.</p><p><strong>Pre-loading for the MW4 open beta (August 28) will begin on Wednesday, August 26 at 9 am PDT. </strong>If you participated in the first test, you won't need to download the game again, but you may have a few updates.</p></article></section><div class="product"><a data-dimension112="8b40e64c-9cdf-11f1-a5bf-9d005830ef03" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="8b40e64c-9cdf-11f1-a5bf-9d005830ef03" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/mw4-beta-dates-times/</link>
                                                                            <description>
                            <![CDATA[ Everything you'll want to know about both MW4 beta weekends. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wkLbye2XfSSRvkPHoUKJAS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/UySdZPpwqjMmyXt6jKgc3j-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 20 Aug 2026 21:38:54 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Andrea Shearon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/qGDcAqeJDHFab8LYduM29E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/UySdZPpwqjMmyXt6jKgc3j-1920-80.jpg">
                                                            <media:credit><![CDATA[Infinity Ward]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Call of Duty: Modern Warfare 4 - Multiplayer match showing three players with guns down a street in fictional South Korea]]></media:description>                                                            <media:text><![CDATA[Call of Duty: Modern Warfare 4 - Multiplayer match showing three players with guns down a street in fictional South Korea]]></media:text>
                                <media:title type="plain"><![CDATA[Call of Duty: Modern Warfare 4 - Multiplayer match showing three players with guns down a street in fictional South Korea]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/UySdZPpwqjMmyXt6jKgc3j-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>You can't regularly queue up for combat until October, but a series of <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/">Call of Duty: Modern Warfare 4</a> betas are a chance to try one upcoming campaign mission and several multiplayer maps before launch. Trying to decipher what happens when and how to register is super convoluted, so here's an info drop on the MW4 beta dates and what you'll need to get started. </p><h2 class="article-body__section" id="section-call-of-duty-mw4-beta-dates"><span>Call of Duty MW4 beta dates</span></h2><p>You've got two options for jumping into the MW4 beta: If you pre-order the game you can participate in the first round (early access beta), or you can wait and play for free in the second (open beta).</p><section class="article__schema-question"><h3>MW4 early access beta date and times</h3><article class="article__schema-answer"><p><strong>The MW4 early access beta begins on Friday, August 21 at 11 am PDT</strong>, and ends on the following Tuesday, August 25 at 10 am PDT. Here are the times across regions on August 21:</p><ul><li>11 am PDT (Los Angeles)</li><li>2 pm EDT (New York)</li><li>7 pm BST (London)</li><li>8 pm CEST (Berlin)</li><li>4 am August 22 AEST (Sydney)</li><li>6 am August 22 NZST (Auckland)</li><li>Or use this <a href="https://www.timeanddate.com/worldclock/converter.html?iso=20260821T180000&amp;p1=137&amp;p2=179&amp;p3=136&amp;p4=37&amp;p5=240&amp;p6=22">global timezone resource</a> to compare this with more regions.</li></ul></article></section><section class="article__schema-question"><h3>MW4 open beta date and times</h3><article class="article__schema-answer"><p><strong>The MW4 open beta begins on Friday, August 28 at 10 am PDT</strong>, and ends on the following Tuesday, September 1 at 10 am PDT. Here are the times across regions on August 28:</p><ul><li>10 am PDT (Los Angeles)</li><li>1 pm EDT (New York)</li><li>6 pm BST (London)</li><li>7 pm CEST (Berlin)</li><li>3 am August 29 AEST (Sydney)</li><li>5 am August 29 NZST (Auckland)</li><li>Compare this with more regions using this handy <a href="https://www.timeanddate.com/worldclock/converter.html?iso=20260828T170000&amp;p1=137&amp;p2=179&amp;p3=136&amp;p4=37&amp;p5=240&amp;p6=22">time and date tool</a>. </li></ul></article></section><h2 class="article-body__section" id="section-call-of-duty-mw4-beta-codes-and-registration"><span>Call of Duty MW4 beta codes and registration</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:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4y7D5vsqdcXqybVk8Gsrji" name="COD-MW4-Beta-Multiplayer-Trailer" alt="Call of Duty: Modern Warfare 4 multiplayer character skin with a black mask and body armor" src="https://cdn.mos.cms.futurecdn.net/4y7D5vsqdcXqybVk8Gsrji-1920-80.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: Infinity Ward)</span></figcaption></figure><p><em>Some </em>players need a MW4 beta code to participate in the early access weekend starting on August 21, but it all depends on how you've pre-ordered. The second period on August 28 doesn't require a purchase; it's open to anyone on Steam, Battle.net, or consoles. </p><p><strong>The MW4 open beta weekend on August 28 does not require a pre-order or beta code to participate. Anyone can download the open beta build on any platform. </strong></p><section class="article__schema-question"><h3>What you need to know about the early access beta codes</h3><article class="article__schema-answer"><ul><li>You can redeem MW4 beta codes through the <a href="https://callofduty.com/betaredeem">official COD site</a></li><li>Only players who pre-order physical editions or digital copies (through other retailers) of MW4 will need to redeem a beta code </li><li>Anyone who pre-orders through the in-game store or a platform store (like Steam, PSN, etc) receives automatic access and does not need a beta code</li></ul></article></section><section class="article__schema-question"><h3>How do I get a MW4 beta code for the early access dates?</h3><article class="article__schema-answer"><p>Pre-orders are the only way to guarantee you get into the early access beta, but I've spotted MW4 beta code giveaways around places like <a href="https://www.reddit.com/r/PS5/comments/1vr0jsz/giveaway_over_30x_call_of_duty_modern_warfare_4/">Reddit</a> and most social platforms. The Call of Duty: Next Showcase also notes it's hosting code giveaways—that starts at 9 am PDT on August 21, and you can watch it on <a href="https://www.youtube.com/watch?v=RvZvq0qaZvQ">YouTube</a>. </p></article></section><h2 class="article-body__section" id="section-mw4-beta-modes-maps-and-more"><span>MW4 beta modes, maps, and more</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/ixVxLamAZbsVB5o9QJ8Wz7-1920-80.jpg" alt="Call of Duty MW4 beta weekend map, Transit 213" /><figcaption>Transit 213<small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/8xKSb9iFNTEDHZ2GghQRv7-1920-80.jpg" alt="Call of Duty MW4 Cachette map from the beta" /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/PspMeBLJ8t68k59FAspMy7-1920-80.jpg" alt="Call of Duty MW4  beta weekend map, Silkworm" /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ZhyWGCLr5TDv8iRjk2Q2y7-1920-80.jpg" alt="Call of Duty MW4 beta weekend map, Lotus" /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/L5eCaMKYm5jyVPQHvxHrw7-1920-80.jpg" alt="Call of Duty MW4  beta weekend map, Rooftops" /><figcaption><small role="credit">Infinity Ward</small></figcaption></figure></figure><h3 id="the-maps-and-modes-available-in-both-beta-weekends">The maps and modes available in both beta weekends</h3><p>Most maps and modes are available in both MW4 betas, but features like Combat Outpost aren't available until the second weekend. A couple of maps are also limited to just one weekend, so I've put together those key differences in a table for reference</p><div ><table><caption>Available modes in both weekends</caption><thead><tr><th class="firstcol " ><p><strong>Modes</strong></p></th><th  ><p><strong>Early Access Beta</strong></p></th><th  ><p><strong>Open Beta</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Campaign mission:</strong> Entrenched</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p><strong>Ground War:</strong> Combat Outpost</p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Domination</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Hardpoint</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Hijack</p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Inflation</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Kill Block - 10v10 and 3v3</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Kill Confirmed</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Mobility Course</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Search &amp; Destroy</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Team Deathmatch</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr></tbody></table></div><div ><table><caption>Available maps in both weekends</caption><thead><tr><th class="firstcol " ><p><strong>Maps</strong></p></th><th  ><p><strong>Early Access Beta</strong></p></th><th  ><p><strong>Open Beta</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Cachette</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Kill Block</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Lithium</p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Lotus</p></td><td  ><p>✔️</p></td><td  ><p>❌</p></td></tr><tr><td class="firstcol " ><p>Rooftops</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Silkworm</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Transit 213</p></td><td  ><p>✔️</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Imjin Farmland <strong>(Ground War)</strong></p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Wolves Stadium<strong> (Ground War)</strong></p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr><tr><td class="firstcol " ><p>Resurgence Zodiac<strong> (Warzone)</strong></p></td><td  ><p>❌</p></td><td  ><p>✔️</p></td></tr></tbody></table></div><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WQw9nX"></div>                            </div>                            <script src="https://kwizly.com/embed/WQw9nX.js" async=""></script><h2 class="article-body__section" id="section-mw4-beta-rewards"><span>MW4 beta rewards</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BRYU5krmdocaBBjCiJaMp7" name="MW4-Beta-Rewards" alt="Call of Duty MW4 beta rewards for Levels 4 - 30" src="https://cdn.mos.cms.futurecdn.net/BRYU5krmdocaBBjCiJaMp7-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/BRYU5krmdocaBBjCiJaMp7-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><section class="article__schema-question"><h3>Early access beta rewards</h3><article class="article__schema-answer"><ul><li><strong>Level 4: </strong>Through the Paces Legendary Emblem</li><li><strong>Level 8: </strong>First Served Weapon Charm</li><li><strong>Level 12: </strong>Meonjeo Legendary Weapon Sticker</li><li><strong>Level 16: </strong>Last Charge Legendary Calling Card</li><li><strong>Level 20: </strong>Dread Tiger Operator Skin – Reece</li></ul></article></section><section class="article__schema-question"><h3>Open beta rewards</h3><article class="article__schema-answer"><ul><li>All early access beta rewards from Levels 4-20</li><li><strong>Level 23:</strong> Field Tested Epic Spray</li><li><strong>Level 26: </strong>Beta Rights Epic Loading Screen</li><li><strong>Level 30:</strong> Beta Forged ISO Nightshade Weapon Blueprint</li></ul></article></section><section class="article__schema-question"><h3>Additional beta rewards</h3><article class="article__schema-answer"><ul><li><strong>General rewards: </strong>3 emblems, 3 calling cards, 1 spray, and 3 loading screens</li><li><strong>Challenge reward:</strong> 1 (unknown) charm</li><li><strong>Combat record reward: </strong>1 (unknown) weapon blueprint, emblem, and charm</li><li>An additional (unknown) challenge reward</li></ul></article></section><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="TfKqDATWxVdkdy5gGmo6X7" name="MW4-Twitch-Drops" alt="Call of Duty Next Twitch Drops, which include: Gas Ready Emblem, Rapple Repel Calling Card, and Ghost Helmet Charm" src="https://cdn.mos.cms.futurecdn.net/TfKqDATWxVdkdy5gGmo6X7-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/TfKqDATWxVdkdy5gGmo6X7-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><section class="article__schema-question"><h3>Twitch Drops</h3><article class="article__schema-answer"><ul><li><strong>COD Next: </strong>Gas Ready Emblem, Rapple Repel Calling Card, and Ghost Helmet Charm</li><li><strong>MW4 beta: </strong>Get Tactical Emblem, Clearing House Calling Card, and Action Ready Charm</li></ul></article></section><h2 class="article-body__section" id="section-mw4-beta-pre-loading"><span>MW4 beta pre-loading</span></h2><section class="article__schema-question"><h3>Is there preloading for the MW4 beta?</h3><article class="article__schema-answer"><p><strong>Yes, you can pre-load the MW4 early access beta now on Steam and </strong><a href="http://battle.net"><strong>Battle.net</strong></a><strong> right now</strong>—so can your friends on PlayStation 5 and Xbox Series X/S.</p><p><strong>Pre-loading for the MW4 open beta (August 28) will begin on Wednesday, August 26 at 9 am PDT. </strong>If you participated in the first test, you won't need to download the game again, but you may have a few updates.</p></article></section><div class="product"><a data-dimension112="8b40e64c-9cdf-11f1-a5bf-9d005830ef03" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="8b40e64c-9cdf-11f1-a5bf-9d005830ef03" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Here's a first for Call of Duty: The Modern Warfare 4 beta will have a campaign mission and Warzone stuff ]]></title>
                                                                                                <dc:content><![CDATA[ <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/qqf2T1ctbAM" allowfullscreen=""></iframe></div></div><p>Few things in gaming are more routine than a Call of Duty multiplayer beta, but this year's is actually a bit different. The Modern Warfare 4 beta kicking off on August 21 (for pre-orders only) will include the usual smattering of multiplayer modes, and in a series first, it'll also include a chunk of the campaign.</p><p>"Entrenched" is the campaign mission that'll be playable early, and Infinity Ward has published a brief teaser for it (watch above). Based on what we know about the story of Modern Warfare 4, it seems we're neck deep in North Korea's invasion of South Korea by this point.</p><p>The mission will follow a squad of South Korean marines (plus one embedded American) in an uphill offensive—we've got trenches, APCs, shotguns, and that thing where an NPC buddy has an elaborate mo-capped brawl right in front of you. In short: a Call of Duty mission, and perhaps a good one.</p><p>Warzone will also make an appearance in a beta for the first time, but not until the second weekend. That's the one that's open for all, August 28 to September 1. The new Zodiac Resurgeance map will be playable, and I imagine we'll also learn the ways in which Warzone will be absorbing Modern Warfare 4's gameplay changes.</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:720px;"><p class="vanilla-image-block" style="padding-top:125.00%;"><img id="irGVdbibbV3bpem9LF3eZX" name="unnamed" alt="modern warfare 4 beta details" src="https://cdn.mos.cms.futurecdn.net/irGVdbibbV3bpem9LF3eZX-1920-80.jpg" mos="" align="middle" fullscreen="" width="720" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>If you're not caught up, Infinity Ward's first CoD in four years appears to be <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">more about refinements</a> than anything else—clever solutions to things like muzzle flash, hipfire, and movement aimed at maintaining Modern Warfare's immersive qualities while not annoying serious players. I played a bit of multiplayer back in May against other journalists and had a good time, but next week's beta is a proper test drive.</p><p>As for why Infinity Ward is double-stuffing the beta, it has not said, though one could intuit that the studio is extending an olive branch to fans disappointed by last year's <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-review/">pretty bad Black Ops 7</a>, and who might not see the urgency to buy another $70 CoD weeks before GTA6 arrives.</p><div class="product"><a data-dimension112="1a6cbd22-9827-11f1-a332-2b244aa5604f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="1a6cbd22-9827-11f1-a332-2b244aa5604f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/heres-a-first-for-call-of-duty-the-modern-warfare-4-beta-will-have-a-campaign-mission-and-warzone-stuff/</link>
                                                                            <description>
                            <![CDATA[ A double-stuffed beta. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5q5KWSqtkppDpy69HMmVJF</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Mfm9mvTkJtZyWkoMKJxXtX-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 14 Aug 2026 21:29:32 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Mfm9mvTkJtZyWkoMKJxXtX-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[modern warfare 4]]></media:description>                                                            <media:text><![CDATA[modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Mfm9mvTkJtZyWkoMKJxXtX-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <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/qqf2T1ctbAM" allowfullscreen=""></iframe></div></div><p>Few things in gaming are more routine than a Call of Duty multiplayer beta, but this year's is actually a bit different. The Modern Warfare 4 beta kicking off on August 21 (for pre-orders only) will include the usual smattering of multiplayer modes, and in a series first, it'll also include a chunk of the campaign.</p><p>"Entrenched" is the campaign mission that'll be playable early, and Infinity Ward has published a brief teaser for it (watch above). Based on what we know about the story of Modern Warfare 4, it seems we're neck deep in North Korea's invasion of South Korea by this point.</p><p>The mission will follow a squad of South Korean marines (plus one embedded American) in an uphill offensive—we've got trenches, APCs, shotguns, and that thing where an NPC buddy has an elaborate mo-capped brawl right in front of you. In short: a Call of Duty mission, and perhaps a good one.</p><p>Warzone will also make an appearance in a beta for the first time, but not until the second weekend. That's the one that's open for all, August 28 to September 1. The new Zodiac Resurgeance map will be playable, and I imagine we'll also learn the ways in which Warzone will be absorbing Modern Warfare 4's gameplay changes.</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:720px;"><p class="vanilla-image-block" style="padding-top:125.00%;"><img id="irGVdbibbV3bpem9LF3eZX" name="unnamed" alt="modern warfare 4 beta details" src="https://cdn.mos.cms.futurecdn.net/irGVdbibbV3bpem9LF3eZX-1920-80.jpg" mos="" align="middle" fullscreen="" width="720" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>If you're not caught up, Infinity Ward's first CoD in four years appears to be <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">more about refinements</a> than anything else—clever solutions to things like muzzle flash, hipfire, and movement aimed at maintaining Modern Warfare's immersive qualities while not annoying serious players. I played a bit of multiplayer back in May against other journalists and had a good time, but next week's beta is a proper test drive.</p><p>As for why Infinity Ward is double-stuffing the beta, it has not said, though one could intuit that the studio is extending an olive branch to fans disappointed by last year's <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-review/">pretty bad Black Ops 7</a>, and who might not see the urgency to buy another $70 CoD weeks before GTA6 arrives.</p><div class="product"><a data-dimension112="1a6cbd22-9827-11f1-a332-2b244aa5604f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="1a6cbd22-9827-11f1-a332-2b244aa5604f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty: Modern Warfare 4's beta will have low-SBMM playlists, as Activision continues to 'learn a lot about multiplayer matchmaking' ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.pcgamer.com/uk/call-of-duty-black-ops-7/">Call of Duty: Black Ops 7</a> was<a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-review/"> not the series' finest hour</a>, but one aspect of the sequel that has gone down well with players is its experiments with matchmaking. For years, players have complained about the effects of skill-based matchmaking (SBMM), which is intended to level the playing field by sorting players into groups of similar skill. But some players claim that SBMM can outright flatten the experience, neutering much of the fun and unpredictability of arena shooting.</p><p>Until recently, Activision had tried to convince players of the merits of SBMM. But last year saw a<a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-may-have-finally-blinked-on-sbmm-as-the-black-ops-7-beta-adds-a-playlist-with-drastically-reduced-skill-consideration/"> change in attitude</a> from the publisher. For Black Ops 7's multiplayer, it introduced an "open moshpit" playlist alongside its standard match allocator, wherein skill consideration was "drastically reduced in matchmaking".</p><p>It appears this option has gone down well with CoD players, as Activision has  said it plans to carry low-SBMM playlists forward into<a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/"> Call of Duty: Modern Warfare 4</a>. This was revealed in a post on Call of Duty's official X account, where it explained its broader plans for multiplayer matchmaking going forward.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2079975156815126904"><p lang="en" dir="ltr">Over the past year, we've continued to learn a lot about Multiplayer matchmaking through player data and community feedback. We’re also excited to see all the recent love for Black Ops and Black Ops II, which reinforced that there are many elements of those experiences that…<a href="https://twitter.com/cantworkitout/status/2079975156815126904">July 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"Over the past year, we've continued to learn a lot about multiplayer matchmaking through player data and community feedback," the developers wrote, adding that these learnings had been "reinforced" by players' reception of the releases of Black Ops and Black Ops 2 alongside Black Ops 7. Clearly, it has concluded that open playlists are worth keeping around, as it says. "We'll continue to offer Open playlists in Black Ops 7, and we'll also include Open Playlist options in the upcoming Modern Warfare 4 beta."</p><p>On top of this, Activision is introducing a "new matchmaking system" for various modes in Black Ops 7, including Black Ops classic, quick play and party games. It says that this system is "inspired by"<a href="https://www.pcgamer.com/uk/call-of-duty-black-ops/"> Black Ops</a> and<a href="https://www.pcgamer.com/uk/call-of-duty-black-ops-2/"> Black Ops 2</a>, and in a follow-up post, explains it builds upon "what we've learned, with smarter team balancing, wide match variety, improvements that keep matches full, and a better experience for mixed-level parties."</p><p>It'll be interesting to see how the matchmaking changes align with Modern Warfare 4's adjustments to gunplay and general combat, with a renewed emphasis on making players "feel like they're really behind the gun". The beta kicks off on August 21, though unlike last year Game Pass subscribers<a href="https://www.pcgamer.com/games/call-of-duty/modern-warfare-4-beta-dates-set-for-august-and-this-year-game-pass-subscribers-get-no-special-treatment/"> will not be entitled</a> to early beta access.</p><div class="product"><a data-dimension112="807b0772-8765-11f1-9163-45258fef5dfc" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="807b0772-8765-11f1-9163-45258fef5dfc" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4s-beta-will-have-low-sbmm-playlists-as-activision-continues-to-learn-a-lot-about-multiplayer-matchmaking/</link>
                                                                            <description>
                            <![CDATA[ A "new matchmaking system" is also being introduced into Black Ops 7. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZvmsXnqxBJhb8HfTywQ8sQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/FShtLk5FyuFYxeXx77cEin-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 26 Jul 2026 11:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rick Lane ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ &lt;p&gt;Rick has been fascinated by PC gaming since he was seven years old, when he used to sneak into his dad&#039;s home office for covert sessions of Doom. He grew up on a diet of similarly unsuitable games, with favourites including Quake, Thief, Half-Life and Deus Ex. Between 2013 and 2022, Rick was games editor of Custom PC magazine and associated website &lt;a href=&quot;http://bit-tech.net/&quot; target=&quot;_blank&quot;&gt;bit-tech.net&lt;/a&gt;. But he&#039;s always kept one foot in freelance games journalism, writing for publications like Edge, Eurogamer, the Guardian and, naturally, PC Gamer. While he&#039;ll play anything that can be controlled with a keyboard and mouse, he has a particular passion for first-person shooters and immersive sims.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/FShtLk5FyuFYxeXx77cEin-1920-80.jpg">
                                                            <media:credit><![CDATA[Infinity Ward]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[DMZ 2.0 - Soldiers]]></media:description>                                                            <media:text><![CDATA[DMZ 2.0 - Soldiers]]></media:text>
                                <media:title type="plain"><![CDATA[DMZ 2.0 - Soldiers]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/FShtLk5FyuFYxeXx77cEin-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.pcgamer.com/uk/call-of-duty-black-ops-7/">Call of Duty: Black Ops 7</a> was<a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-review/"> not the series' finest hour</a>, but one aspect of the sequel that has gone down well with players is its experiments with matchmaking. For years, players have complained about the effects of skill-based matchmaking (SBMM), which is intended to level the playing field by sorting players into groups of similar skill. But some players claim that SBMM can outright flatten the experience, neutering much of the fun and unpredictability of arena shooting.</p><p>Until recently, Activision had tried to convince players of the merits of SBMM. But last year saw a<a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-may-have-finally-blinked-on-sbmm-as-the-black-ops-7-beta-adds-a-playlist-with-drastically-reduced-skill-consideration/"> change in attitude</a> from the publisher. For Black Ops 7's multiplayer, it introduced an "open moshpit" playlist alongside its standard match allocator, wherein skill consideration was "drastically reduced in matchmaking".</p><p>It appears this option has gone down well with CoD players, as Activision has  said it plans to carry low-SBMM playlists forward into<a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/"> Call of Duty: Modern Warfare 4</a>. This was revealed in a post on Call of Duty's official X account, where it explained its broader plans for multiplayer matchmaking going forward.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2079975156815126904"><p lang="en" dir="ltr">Over the past year, we've continued to learn a lot about Multiplayer matchmaking through player data and community feedback. We’re also excited to see all the recent love for Black Ops and Black Ops II, which reinforced that there are many elements of those experiences that…<a href="https://twitter.com/cantworkitout/status/2079975156815126904">July 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"Over the past year, we've continued to learn a lot about multiplayer matchmaking through player data and community feedback," the developers wrote, adding that these learnings had been "reinforced" by players' reception of the releases of Black Ops and Black Ops 2 alongside Black Ops 7. Clearly, it has concluded that open playlists are worth keeping around, as it says. "We'll continue to offer Open playlists in Black Ops 7, and we'll also include Open Playlist options in the upcoming Modern Warfare 4 beta."</p><p>On top of this, Activision is introducing a "new matchmaking system" for various modes in Black Ops 7, including Black Ops classic, quick play and party games. It says that this system is "inspired by"<a href="https://www.pcgamer.com/uk/call-of-duty-black-ops/"> Black Ops</a> and<a href="https://www.pcgamer.com/uk/call-of-duty-black-ops-2/"> Black Ops 2</a>, and in a follow-up post, explains it builds upon "what we've learned, with smarter team balancing, wide match variety, improvements that keep matches full, and a better experience for mixed-level parties."</p><p>It'll be interesting to see how the matchmaking changes align with Modern Warfare 4's adjustments to gunplay and general combat, with a renewed emphasis on making players "feel like they're really behind the gun". The beta kicks off on August 21, though unlike last year Game Pass subscribers<a href="https://www.pcgamer.com/games/call-of-duty/modern-warfare-4-beta-dates-set-for-august-and-this-year-game-pass-subscribers-get-no-special-treatment/"> will not be entitled</a> to early beta access.</p><div class="product"><a data-dimension112="807b0772-8765-11f1-9163-45258fef5dfc" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="807b0772-8765-11f1-9163-45258fef5dfc" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Activision should ditch the Call of Duty movie and bring back its absurd celeb fest where Will Arnett went on a quest to find his own junk ]]></title>
                                                                                                <dc:content><![CDATA[ <p>With the news that <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a>, of all things, is getting <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-movie-director-once-claimed-he-told-navy-seals-they-were-pathetic-for-playing-call-of-duty/" target="_blank">adapted into a movie by the director of Battleship</a>—and it's unfortunately <a href="https://www.pcgamer.com/games/call-of-duty/activision-has-confirmed-the-call-of-duty-movie-setting-and-its-not-what-id-have-picked/" target="_blank">set in the Modern Warfare universe</a>—I got vivid flashbacks to the series' last attempt in multimedia.</p><p>Back in 2011, Activision decided it was time to change how it would support Call of Duty games post-launch. Modern Warfare 3 (the first one) saw the introduction of Call of Duty Elite, a subscription service that included monthly content like new maps, as well as social network tools. While there was a free, lite version which included things like Theater Mode and career stats, the real deal cost $50 a year.</p><p>Of course, the monthly DLC (later sold as separate packs for non-subscribers) was the reason most people, myself included, ever joined up. But Activision was really pushing for it to be a social network-inspired multimedia platform, so it sweetened the deal with three video series, one by Ridley and Tony Scott, another by Will Arnett and Jason Bateman, and one from Andrew Santino.</p><h2 id="friday-night-fights">Friday Night Fights</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/vb7Me2W6hGo" allowfullscreen=""></iframe></div></div><div><blockquote><p>In a world where rivalries rule, one game stands alone. How far will you go to win in the ultimate test of survival? One fight, winner takes all. Every shot counts.</p></blockquote></div><p>Ridley Scott, the acclaimed creator of Aliens, Blade Runner, and so on, teamed up with his late brother Tony Scott to executive produce Friday Night Fights. This game show series pitted two teams of players against each other in odd matchups, hosted by Stacy Keebler. </p><p>Ever wanted to find out whether the police or fire department were better at Call of Duty? No? Well, now you could. How about rappers versus rockstars? New York or Boston? Winners would get to trash-talk while receiving a championship belt and a donation to the Call of Duty Endowment charity in their name.</p><p>Each episode boiled down to the two teams meeting their coaches to discuss the game plan (usually just trash-talking, honestly, or incredibly surface-level tips), then sitting down opposite their enemy to insult each other face-to-face and play a few matches of MW3. </p><p>The New York versus Boston episode was basically just the latter team chanting "New York sucks" for the entire 15-minute episode, and occasionally calling the players ugly. You get the vibe—it was very 2011.</p><p>Each player would also get an over-the-top MTV Cribs-esque introduction and profile, telling you their favourite weapon, playstyle, and how many hours of CoD they played a week. I'm sure it was cool back then, but it's certainly dated now.</p><p>Surprisingly, it did quite well and went for three seasons, airing from 2011-2012 before being discontinued. The final season traded celebrities and themed match-ups for a season-long esports tournament setup. It never quite lived up to its oddly serious intro: "In a world where rivalries rule, one game stands alone. How far will you go to win in the ultimate test of survival? One fight, winner takes all. Every shot counts."</p><h2 id="cocked-hammers">Cocked Hammers</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/OaujGZjYBAM" allowfullscreen=""></iframe></div></div><div><blockquote><p>Now which one of you needle dicks called me a eunuch?</p></blockquote></div><p>Created by actors Will Arnett and Jason Bateman, Cocked Hammers is genuinely cool, being an odd half-animated, half-in-game footage Machinima-style skit show. It starred Arnett and Bateman, as well as Peter Giles and Justin Theroux, each with unique player models based on their actors since the story was that the four friends had been sucked into the game like Jumanji. And it played out basically like Halo's iconic Red vs Blue Machinima series but in Call of Duty.</p><p>Again, it's a product of its time. To give you an idea, in one episode, Will Arnett's character discovers they can't pee because they don't have a penis, so they run around the map trying to figure out how to die. Then he accidentally levels up and unlocks the 'premium upgrade Magnum', turns to the other characters, and says "Now which one of you needle dicks called me a eunuch?".</p><p>Cocked Hammers is undoubtedly saved by having Will Arnett and Jason Bateman lead. Simply put, they're good actors so seeing their crudely digitised soldiers interact is good fun even today, and you can tell they're actually trying.</p><h2 id="noob-tube">Noob Tube</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/aSDSdRxFV0Y" allowfullscreen=""></iframe></div></div><div><blockquote><p>Now it looks like a butt cannon that poops grenades.</p></blockquote></div><p>Noob Tube was a community series where actor and comedian Andrew Santino would react to players' gameplay clips. He'd often make a snide remark or dated joke at the player's expense, but this series did hit the mark for a more community-focused show for Call of Duty's new social platform.</p><p>Playing with Santino's experience as a comedian, there were also skits interspersed between the clips. In one episode they did a fake advert for the massage spa on the Bootleg map, and another about the weather forecast on the maps for the week, despite the fact it never changed.</p><p>The jokes were relentless and <em>very</em> hit and miss, but I'll admit that there's still some fun to be had in watching this relic, and not just for nostalgia's sake. Honestly, I kind of miss the lighthearted tone of this show—it wouldn't land the same if it was made today.</p><p>It's pretty easy to hate on all three of these shows, especially given the big names somehow backing them, but they were, and still are, oddly good fun. Sometimes because they're cringe-worthy, and other times because they're genuinely charming.</p><p>Honestly, I think I'd prefer Activision start these weird, creative projects up again rather than pump money into what I can only imagine being the most generic war movie ever produced. I can see Captain Price and co. bending the rules to do what they think is right by playing the campaign. I can't see a confusing mix of celebrities attached to officially home-brewed Machinima animations.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0Rm7X"></div>                            </div>                            <script src="https://kwizly.com/embed/W0Rm7X.js" async=""></script><div class="product"><a data-dimension112="b7e951d2-8508-11f1-98e5-3b7030df8fa9" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="b7e951d2-8508-11f1-98e5-3b7030df8fa9" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/activision-should-ditch-the-call-of-duty-movie-and-bring-back-its-absurd-celeb-fest-where-will-arnett-went-on-a-quest-to-find-his-own-junk/</link>
                                                                            <description>
                            <![CDATA[ Ridley Scott, Will Arnett, Jason Bateman, and Andrew Santino all made Call of Duty shows before. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">iaGFoFYAPa2ZwMq3mq4mYV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/aWpQjZKoDaUqZhaLJ9JXjE-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 21 Jul 2026 13:45:36 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rory Norris ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LghCxdhyWRKUT4BHYB2D2E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Rory has made the fatal error of playing way too many live service games at once, and somehow still finding time for everything in between. Sure, he’s an expert at Destiny 2, Call of Duty, and more, but at what cost? He’s even sunk 1,000 hours into The Elder Scrolls Online over the years. At least he put all those hours spent grinding challenges to good use over the years as a freelancer and guides editor. In his spare time, he’s also an avid video creator, often breaking down the environmental design of his favourite games. If you can’t track him down, he’s probably lost in a cave with a bunch of dwarves shouting “rock and stone” to no end.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/aWpQjZKoDaUqZhaLJ9JXjE-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A vertically split image featuring Jason Bateman ad Will Arnett&#039;s (left and right respectively) from the Call of Duty Elite Cocked Hammers show.]]></media:description>                                                            <media:text><![CDATA[A vertically split image featuring Jason Bateman ad Will Arnett&#039;s (left and right respectively) from the Call of Duty Elite Cocked Hammers show.]]></media:text>
                                <media:title type="plain"><![CDATA[A vertically split image featuring Jason Bateman ad Will Arnett&#039;s (left and right respectively) from the Call of Duty Elite Cocked Hammers show.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/aWpQjZKoDaUqZhaLJ9JXjE-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>With the news that <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a>, of all things, is getting <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-movie-director-once-claimed-he-told-navy-seals-they-were-pathetic-for-playing-call-of-duty/" target="_blank">adapted into a movie by the director of Battleship</a>—and it's unfortunately <a href="https://www.pcgamer.com/games/call-of-duty/activision-has-confirmed-the-call-of-duty-movie-setting-and-its-not-what-id-have-picked/" target="_blank">set in the Modern Warfare universe</a>—I got vivid flashbacks to the series' last attempt in multimedia.</p><p>Back in 2011, Activision decided it was time to change how it would support Call of Duty games post-launch. Modern Warfare 3 (the first one) saw the introduction of Call of Duty Elite, a subscription service that included monthly content like new maps, as well as social network tools. While there was a free, lite version which included things like Theater Mode and career stats, the real deal cost $50 a year.</p><p>Of course, the monthly DLC (later sold as separate packs for non-subscribers) was the reason most people, myself included, ever joined up. But Activision was really pushing for it to be a social network-inspired multimedia platform, so it sweetened the deal with three video series, one by Ridley and Tony Scott, another by Will Arnett and Jason Bateman, and one from Andrew Santino.</p><h2 id="friday-night-fights">Friday Night Fights</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/vb7Me2W6hGo" allowfullscreen=""></iframe></div></div><div><blockquote><p>In a world where rivalries rule, one game stands alone. How far will you go to win in the ultimate test of survival? One fight, winner takes all. Every shot counts.</p></blockquote></div><p>Ridley Scott, the acclaimed creator of Aliens, Blade Runner, and so on, teamed up with his late brother Tony Scott to executive produce Friday Night Fights. This game show series pitted two teams of players against each other in odd matchups, hosted by Stacy Keebler. </p><p>Ever wanted to find out whether the police or fire department were better at Call of Duty? No? Well, now you could. How about rappers versus rockstars? New York or Boston? Winners would get to trash-talk while receiving a championship belt and a donation to the Call of Duty Endowment charity in their name.</p><p>Each episode boiled down to the two teams meeting their coaches to discuss the game plan (usually just trash-talking, honestly, or incredibly surface-level tips), then sitting down opposite their enemy to insult each other face-to-face and play a few matches of MW3. </p><p>The New York versus Boston episode was basically just the latter team chanting "New York sucks" for the entire 15-minute episode, and occasionally calling the players ugly. You get the vibe—it was very 2011.</p><p>Each player would also get an over-the-top MTV Cribs-esque introduction and profile, telling you their favourite weapon, playstyle, and how many hours of CoD they played a week. I'm sure it was cool back then, but it's certainly dated now.</p><p>Surprisingly, it did quite well and went for three seasons, airing from 2011-2012 before being discontinued. The final season traded celebrities and themed match-ups for a season-long esports tournament setup. It never quite lived up to its oddly serious intro: "In a world where rivalries rule, one game stands alone. How far will you go to win in the ultimate test of survival? One fight, winner takes all. Every shot counts."</p><h2 id="cocked-hammers">Cocked Hammers</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/OaujGZjYBAM" allowfullscreen=""></iframe></div></div><div><blockquote><p>Now which one of you needle dicks called me a eunuch?</p></blockquote></div><p>Created by actors Will Arnett and Jason Bateman, Cocked Hammers is genuinely cool, being an odd half-animated, half-in-game footage Machinima-style skit show. It starred Arnett and Bateman, as well as Peter Giles and Justin Theroux, each with unique player models based on their actors since the story was that the four friends had been sucked into the game like Jumanji. And it played out basically like Halo's iconic Red vs Blue Machinima series but in Call of Duty.</p><p>Again, it's a product of its time. To give you an idea, in one episode, Will Arnett's character discovers they can't pee because they don't have a penis, so they run around the map trying to figure out how to die. Then he accidentally levels up and unlocks the 'premium upgrade Magnum', turns to the other characters, and says "Now which one of you needle dicks called me a eunuch?".</p><p>Cocked Hammers is undoubtedly saved by having Will Arnett and Jason Bateman lead. Simply put, they're good actors so seeing their crudely digitised soldiers interact is good fun even today, and you can tell they're actually trying.</p><h2 id="noob-tube">Noob Tube</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/aSDSdRxFV0Y" allowfullscreen=""></iframe></div></div><div><blockquote><p>Now it looks like a butt cannon that poops grenades.</p></blockquote></div><p>Noob Tube was a community series where actor and comedian Andrew Santino would react to players' gameplay clips. He'd often make a snide remark or dated joke at the player's expense, but this series did hit the mark for a more community-focused show for Call of Duty's new social platform.</p><p>Playing with Santino's experience as a comedian, there were also skits interspersed between the clips. In one episode they did a fake advert for the massage spa on the Bootleg map, and another about the weather forecast on the maps for the week, despite the fact it never changed.</p><p>The jokes were relentless and <em>very</em> hit and miss, but I'll admit that there's still some fun to be had in watching this relic, and not just for nostalgia's sake. Honestly, I kind of miss the lighthearted tone of this show—it wouldn't land the same if it was made today.</p><p>It's pretty easy to hate on all three of these shows, especially given the big names somehow backing them, but they were, and still are, oddly good fun. Sometimes because they're cringe-worthy, and other times because they're genuinely charming.</p><p>Honestly, I think I'd prefer Activision start these weird, creative projects up again rather than pump money into what I can only imagine being the most generic war movie ever produced. I can see Captain Price and co. bending the rules to do what they think is right by playing the campaign. I can't see a confusing mix of celebrities attached to officially home-brewed Machinima animations.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0Rm7X"></div>                            </div>                            <script src="https://kwizly.com/embed/W0Rm7X.js" async=""></script><div class="product"><a data-dimension112="b7e951d2-8508-11f1-98e5-3b7030df8fa9" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="b7e951d2-8508-11f1-98e5-3b7030df8fa9" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Modern Warfare 4 beta dates set for August, and this year Game Pass subscribers get no special treatment ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It's that time of year again: The next Call of Duty is on deck, and Activision's got the beta dates to prove it. Modern Warfare 4 won't hit the streets until late October, but the multiplayer beta begins a full two months ahead of time.</p><p>As usual, Activision is holding two beta weekends: One for those who pre-order the game and one for everyone else.</p><ul><li><strong>Weekend 1 (August 21-25): For those who pre-order Modern Warfare 4 on PC, PS5, or Xbox (no Switch 2 beta)</strong></li><li><strong>Weekend 2 (August 28 to September 1): A proper public beta on all platforms (including Switch 2)</strong></li></ul><p>Fairly expected for a CoD beta calendar, except for a few abnormal details, like how Switch 2 players will be left out of that first weekend (that version might be coming in a little hot compared to the others). There's also the fact that pre-order weekend is five days instead of four—further stretching the definition of "weekend." That means pre-order players can start the same day as the Call of Duty Next livestream and won't have to watch streamers enjoy a 24-hour headstart.</p><p>Less surprising, but surely disappointing for many, is that Game Pass subscribers will not be entitled to early beta access this year. They were for both Black Ops 6 and 7, but apparently Microsoft's decision to <a href="https://www.pcgamer.com/gaming-industry/xbox-game-pass-prices-are-going-down-but-future-call-of-duty-games-wont-be-added-until-about-a-year-after-they-launch/">exclude new CoDs from its service</a> also extends to betas. </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="3iaN2w5dQXKkuuXm8JVGcZ" name="mw beta" alt="modern warfare 4 beta dates" src="https://cdn.mos.cms.futurecdn.net/3iaN2w5dQXKkuuXm8JVGcZ-1920-80.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: Activision Blizzard)</span></figcaption></figure><p>Sounds like the Modern Warfare 4 beta will be a decent tasting menu for the full package. Players can unlock "19 different weapons before deploying into everything from small-scale 3v3 skirmishes to massive tactical battles featuring tanks and more," a <a href="https://www.callofduty.com/blog/2026/07/call-of-duty-modern-warfare-4-open-beta-next-fanatics-fest-recap-serialized-camo-preorder-bonus">blog post</a> published today reads. "Test your mettle across new and returning modes, from Search &amp; Destroy to the brand-new Kill Block, plus the Training Mobility Course."</p><p>Kill Block is a modular multiplayer map made for both small and medium-sized modes. The map is divided into chunks that dynamically swap between rounds. It's the sort of experimental gimmick that seems unlikely to catch on in a big way, but 10v10 Gunfight on Kill Block was a highlight when <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">I played Modern Warfare 4</a> back in May. During one round, the map became a 1:1 recreation of Crash from the original 2007 Modern Warfare—charming.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0Rm7X"></div>                            </div>                            <script src="https://kwizly.com/embed/W0Rm7X.js" async=""></script><div class="product"><a data-dimension112="def3ebe4-8471-11f1-87e1-9352a2170256" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="def3ebe4-8471-11f1-87e1-9352a2170256" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/modern-warfare-4-beta-dates-set-for-august-and-this-year-game-pass-subscribers-get-no-special-treatment/</link>
                                                                            <description>
                            <![CDATA[ Pre-order players get five extra days of playtime. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">s7UHupePEq4ChwxiBNDUkH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 20 Jul 2026 19:33:45 +0000</pubDate>                                                                                                                                <updated>Mon, 20 Jul 2026 19:35:05 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[modern warfare 4]]></media:description>                                                            <media:text><![CDATA[modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It's that time of year again: The next Call of Duty is on deck, and Activision's got the beta dates to prove it. Modern Warfare 4 won't hit the streets until late October, but the multiplayer beta begins a full two months ahead of time.</p><p>As usual, Activision is holding two beta weekends: One for those who pre-order the game and one for everyone else.</p><ul><li><strong>Weekend 1 (August 21-25): For those who pre-order Modern Warfare 4 on PC, PS5, or Xbox (no Switch 2 beta)</strong></li><li><strong>Weekend 2 (August 28 to September 1): A proper public beta on all platforms (including Switch 2)</strong></li></ul><p>Fairly expected for a CoD beta calendar, except for a few abnormal details, like how Switch 2 players will be left out of that first weekend (that version might be coming in a little hot compared to the others). There's also the fact that pre-order weekend is five days instead of four—further stretching the definition of "weekend." That means pre-order players can start the same day as the Call of Duty Next livestream and won't have to watch streamers enjoy a 24-hour headstart.</p><p>Less surprising, but surely disappointing for many, is that Game Pass subscribers will not be entitled to early beta access this year. They were for both Black Ops 6 and 7, but apparently Microsoft's decision to <a href="https://www.pcgamer.com/gaming-industry/xbox-game-pass-prices-are-going-down-but-future-call-of-duty-games-wont-be-added-until-about-a-year-after-they-launch/">exclude new CoDs from its service</a> also extends to betas. </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="3iaN2w5dQXKkuuXm8JVGcZ" name="mw beta" alt="modern warfare 4 beta dates" src="https://cdn.mos.cms.futurecdn.net/3iaN2w5dQXKkuuXm8JVGcZ-1920-80.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: Activision Blizzard)</span></figcaption></figure><p>Sounds like the Modern Warfare 4 beta will be a decent tasting menu for the full package. Players can unlock "19 different weapons before deploying into everything from small-scale 3v3 skirmishes to massive tactical battles featuring tanks and more," a <a href="https://www.callofduty.com/blog/2026/07/call-of-duty-modern-warfare-4-open-beta-next-fanatics-fest-recap-serialized-camo-preorder-bonus">blog post</a> published today reads. "Test your mettle across new and returning modes, from Search &amp; Destroy to the brand-new Kill Block, plus the Training Mobility Course."</p><p>Kill Block is a modular multiplayer map made for both small and medium-sized modes. The map is divided into chunks that dynamically swap between rounds. It's the sort of experimental gimmick that seems unlikely to catch on in a big way, but 10v10 Gunfight on Kill Block was a highlight when <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">I played Modern Warfare 4</a> back in May. During one round, the map became a 1:1 recreation of Crash from the original 2007 Modern Warfare—charming.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0Rm7X"></div>                            </div>                            <script src="https://kwizly.com/embed/W0Rm7X.js" async=""></script><div class="product"><a data-dimension112="def3ebe4-8471-11f1-87e1-9352a2170256" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="def3ebe4-8471-11f1-87e1-9352a2170256" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Activision has confirmed the Call of Duty movie setting, and it's not what I'd have picked ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I'm not sure who thinks we need a <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a> movie, but it's officially a thing, and <a href="https://www.pcgamer.com/movies-tv/the-call-of-duty-movie-is-coming-in-june-of-2028/" target="_blank">it's coming out on June 30, 2028</a>. It's "<a href="https://www.pcgamer.com/movies-tv/call-of-duty-movie-confirmed-activision-and-paramount-promise-an-authentic-and-exciting-experience-for-longtime-fans-and-newcomers-alike/" target="_blank">an authentic and exciting experience for longtime fans and newcomers alike</a>." While this tidbit was confirmed earlier in the year, Activision and Paramount gave us little more than that in the months since. The big question was whether it will be set in the Modern Warfare or Black Ops universe, or something more unexpected, like WW2, Advanced Warfare, or Infinite Warfare (although probably not that last one).</p><p>The answer is it's going to be set in the Modern Warfare timeline, <a href="https://x.com/CallofDuty/status/2078547067577004220" target="_blank">revealed with a very short teaser trailer at FanaticsFest</a> over the weekend. With <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a> coming up this October, presumably a Black Ops game next year, and then another Modern Warfare game in 2028, it lines up. </p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2078547067577004220"><p lang="en" dir="ltr">Director Peter Berg revealed today at @FanaticsFest the @CallOfDutyMovie is set in the Modern Warfare universe.In theaters June 30, 2028. pic.twitter.com/CpdFX7kI9z<a href="https://twitter.com/cantworkitout/status/2078547067577004220">July 18, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Even as far as Call of Duty goes, Modern Warfare is easily the most generic setting Activision and Paramount could have picked. It's basically already a pastiche of bog-standard military films diluted into a game. At least Black Ops plays with perception, history, and tech to add <em>something</em> on top. While we're yet to get any specifics, I bet we'll see the usual Modern Warfare suspects—Captain Price, Ghost, and co.—bending the rules to do what they do best, which is usually a lot of war crimes, truth be told. I wouldn't be surprised to see the actors from the game reprise their roles, even—Captain Price actor Barry Sloane recently popped up as Ser Adrian Redfort in House of the Dragon.</p><p>It's previously been revealed that Peter Berg will be helming the project. I don't expect you to remember, but he directed things like Battleship, Deepwater Horizon, and Spencer Confidential, among others. More notably, he directed Lone Survivor in 2013, which is about a group of soldiers on a mission to eliminate a Taliban leader—sounds rather Call of Duty to me.</p><p>In a 2013 interview, <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-movie-director-once-claimed-he-told-navy-seals-they-were-pathetic-for-playing-call-of-duty/" target="_blank">Berg made his views on military videogames pretty clear</a>, calling them "pathetic."</p><p>"Can't stand it. The only people that I give a Call of Duty get-out-of-jail-free card to is the military. They're out there serving and they're bored and they want to entertain themselves? Okay, maybe. Kids? Uh-uh."</p><p>So despite his track record for making war films portraying the US military as Hollywood heroes, military shooters like Call of Duty aren't up to his standards. But that was 13 years ago, and now he's got a gig turning those games into a movie, so perhaps he's changed his mind.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0Rm7X"></div>                            </div>                            <script src="https://kwizly.com/embed/W0Rm7X.js" async=""></script><div class="product"><a data-dimension112="6dc1f538-8453-11f1-945a-0faccebacccf" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="6dc1f538-8453-11f1-945a-0faccebacccf" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/activision-has-confirmed-the-call-of-duty-movie-setting-and-its-not-what-id-have-picked/</link>
                                                                            <description>
                            <![CDATA[ If we're adapting generic shooters into movies, at least make it Black Ops. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">MwCL69ySKmxDMqQLmweBLH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/diU34JdSV5g2woXjLLsQDP-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 20 Jul 2026 16:00:53 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rory Norris ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LghCxdhyWRKUT4BHYB2D2E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Rory has made the fatal error of playing way too many live service games at once, and somehow still finding time for everything in between. Sure, he’s an expert at Destiny 2, Call of Duty, and more, but at what cost? He’s even sunk 1,000 hours into The Elder Scrolls Online over the years. At least he put all those hours spent grinding challenges to good use over the years as a freelancer and guides editor. In his spare time, he’s also an avid video creator, often breaking down the environmental design of his favourite games. If you can’t track him down, he’s probably lost in a cave with a bunch of dwarves shouting “rock and stone” to no end.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/diU34JdSV5g2woXjLLsQDP-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[call of duty modern warfare captain price]]></media:description>                                                            <media:text><![CDATA[call of duty modern warfare captain price]]></media:text>
                                <media:title type="plain"><![CDATA[call of duty modern warfare captain price]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/diU34JdSV5g2woXjLLsQDP-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I'm not sure who thinks we need a <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a> movie, but it's officially a thing, and <a href="https://www.pcgamer.com/movies-tv/the-call-of-duty-movie-is-coming-in-june-of-2028/" target="_blank">it's coming out on June 30, 2028</a>. It's "<a href="https://www.pcgamer.com/movies-tv/call-of-duty-movie-confirmed-activision-and-paramount-promise-an-authentic-and-exciting-experience-for-longtime-fans-and-newcomers-alike/" target="_blank">an authentic and exciting experience for longtime fans and newcomers alike</a>." While this tidbit was confirmed earlier in the year, Activision and Paramount gave us little more than that in the months since. The big question was whether it will be set in the Modern Warfare or Black Ops universe, or something more unexpected, like WW2, Advanced Warfare, or Infinite Warfare (although probably not that last one).</p><p>The answer is it's going to be set in the Modern Warfare timeline, <a href="https://x.com/CallofDuty/status/2078547067577004220" target="_blank">revealed with a very short teaser trailer at FanaticsFest</a> over the weekend. With <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a> coming up this October, presumably a Black Ops game next year, and then another Modern Warfare game in 2028, it lines up. </p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2078547067577004220"><p lang="en" dir="ltr">Director Peter Berg revealed today at @FanaticsFest the @CallOfDutyMovie is set in the Modern Warfare universe.In theaters June 30, 2028. pic.twitter.com/CpdFX7kI9z<a href="https://twitter.com/cantworkitout/status/2078547067577004220">July 18, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Even as far as Call of Duty goes, Modern Warfare is easily the most generic setting Activision and Paramount could have picked. It's basically already a pastiche of bog-standard military films diluted into a game. At least Black Ops plays with perception, history, and tech to add <em>something</em> on top. While we're yet to get any specifics, I bet we'll see the usual Modern Warfare suspects—Captain Price, Ghost, and co.—bending the rules to do what they do best, which is usually a lot of war crimes, truth be told. I wouldn't be surprised to see the actors from the game reprise their roles, even—Captain Price actor Barry Sloane recently popped up as Ser Adrian Redfort in House of the Dragon.</p><p>It's previously been revealed that Peter Berg will be helming the project. I don't expect you to remember, but he directed things like Battleship, Deepwater Horizon, and Spencer Confidential, among others. More notably, he directed Lone Survivor in 2013, which is about a group of soldiers on a mission to eliminate a Taliban leader—sounds rather Call of Duty to me.</p><p>In a 2013 interview, <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-movie-director-once-claimed-he-told-navy-seals-they-were-pathetic-for-playing-call-of-duty/" target="_blank">Berg made his views on military videogames pretty clear</a>, calling them "pathetic."</p><p>"Can't stand it. The only people that I give a Call of Duty get-out-of-jail-free card to is the military. They're out there serving and they're bored and they want to entertain themselves? Okay, maybe. Kids? Uh-uh."</p><p>So despite his track record for making war films portraying the US military as Hollywood heroes, military shooters like Call of Duty aren't up to his standards. But that was 13 years ago, and now he's got a gig turning those games into a movie, so perhaps he's changed his mind.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0Rm7X"></div>                            </div>                            <script src="https://kwizly.com/embed/W0Rm7X.js" async=""></script><div class="product"><a data-dimension112="6dc1f538-8453-11f1-945a-0faccebacccf" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="6dc1f538-8453-11f1-945a-0faccebacccf" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ No, Modern Warfare 4's Gunny loadout assistant isn't a chatbot, but its developer is using AI elsewhere ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In an attempt to fix the bloated Gunsmith system of recent <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a> games, <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a> is introducing a new feature, Gunny. It's a little widget in the bottom right of the loadout screen that you can use to create loadouts for you. For example, it'll say "Hello, I can help you build a weapon when you have more attachments unlocked. Keep levelling your weapon," if you've got a brand-new weapon.</p><p>Naturally sceptical of a weird widget that communicates with you, Infinity Ward has been accused of using AI for this new system. In a post which instigated a lot of the uproar, retired Call of Duty leaker <a href="https://x.com/TheGhostOfHope/status/2077475850602139835?s=20" target="_blank">TheGhostofHope said</a>: "They got an AI chat bot in the game now to help mfs with their loadouts as if it’s not the same shit used every year."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077822186320986503"><p lang="en" dir="ltr">Wrong (again.)Gunny is hand crafted by our developers, not AI. It recommends builds based on the attachments you’ve unlocked for each weapon. It helps make quick loadout changes between matches.Give it a shot in the Beta.<a href="https://twitter.com/cantworkitout/status/2077822186320986503">July 16, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Infinity Ward fired back, <a href="https://x.com/InfinityWard/status/2077822186320986503?s=20" target="_blank">saying</a> "Wrong (again.) Gunny is handcrafted by our developers, not AI. It recommends builds based on the attachments you’ve unlocked for each weapon. It helps make quick loadout changes between matches. Give it a shot in the Beta." For those out of the loop, that snarky 'again' refers to various incorrect leaks made by Hope which Activision has called out in the past. There's history.</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="WwiE5gVpwGn4j5Qsz6Hxwh" name="mw4 gunny" alt="Modern Warfare 4: The loadout screen for the Axion assault rifle, with Gunny's prompt in the bottom right corner." src="https://cdn.mos.cms.futurecdn.net/WwiE5gVpwGn4j5Qsz6Hxwh-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/WwiE5gVpwGn4j5Qsz6Hxwh-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>I, for one, am glad that Gunny isn't an AI chatbot that can't play Call of Duty, telling me how to play Call of Duty. Instead, it's effectively just a personified auto-equip button that collates dev-made weapon builds for those players who don't want to create their own, or even search online for player-made setups.</p><p>However, it's not the first time that Call of Duty has been accused of using AI. Players had suspected Activision was using AI to generate cosmetics back in Modern Warfare 3 and Black Ops 6, and this was confirmed last year once <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-admits-its-using-generative-ai-to-help-develop-some-in-game-assets-and-suddenly-all-those-poorly-made-calling-cards-make-sense/" target="_blank">Valve's mandated AI disclosure appeared on the Call of Duty Steam page</a>. Later that year, <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-under-fire-for-using-what-sure-looks-like-ai-generated-studio-ghibli-style-calling-card-art/" target="_blank">Black Ops 7 also came under fire after players found what looked like AI-generated art</a>.</p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/CODBlackOps7/comments/1owqr38/so_these_calling_cards_are_definitely_ai">So these calling cards are DEFINITELY AI generated right?</a><figcaption><cite> from <a href="https://www.reddit.com/r/CODBlackOps7">r/CODBlackOps7</a></cite></figcaption></blockquote></figure><script async="" src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>In fact, as <a href="https://www.destructoid.com/mw4-studio-head-ai-game-dev-whatever-tools-we-can/" target="_blank">reported by Destructoid</a> from a group presentation, Infinity Ward co-studio head Mark Grigsby confirmed that the team <em>is </em>using AI in MW4. “We use whatever tools we have to enhance and help our developers to complete [tasks] on time,” explained Grigsby. “For the game, there’s developmental things. We use whatever we can, whatever tools we can [in development].”</p><p>This is backed up by <a href="https://store.steampowered.com/app/4435490/Call_of_Duty_Modern_Warfare_4/" target="_blank">the game's Steam page</a>, which has an AI usage disclosure, reading "Our team uses generative AI tools to help develop some in-game assets."</p><p>So, while Gunny thankfully isn't an AI chatbot despite the vibes, its developer certainly is using this maligned tech elsewhere in its creation. I would not be surprised to see more shoddy AI-generated calling cards popping up in premium bundles once again.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwqNAX"></div>                            </div>                            <script src="https://kwizly.com/embed/WwqNAX.js" async=""></script><div class="product"><a data-dimension112="fa71c18e-81f1-11f1-a7f1-2f0aa4e3213c" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="fa71c18e-81f1-11f1-a7f1-2f0aa4e3213c" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/no-modern-warfare-4s-gunny-loadout-assistant-isnt-a-chatbot-but-its-developer-is-using-ai-elsewhere/</link>
                                                                            <description>
                            <![CDATA[ “We use whatever tools we have to enhance and help our developers to complete [tasks] on time." ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">B2R5zbgoBC72QCSVjyXNoe</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/B9Xn3FVtk9V33MnFZaYtJi-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 17 Jul 2026 15:20:25 +0000</pubDate>                                                                                                                                <updated>Fri, 17 Jul 2026 15:21:48 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rory Norris ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LghCxdhyWRKUT4BHYB2D2E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Rory has made the fatal error of playing way too many live service games at once, and somehow still finding time for everything in between. Sure, he’s an expert at Destiny 2, Call of Duty, and more, but at what cost? He’s even sunk 1,000 hours into The Elder Scrolls Online over the years. At least he put all those hours spent grinding challenges to good use over the years as a freelancer and guides editor. In his spare time, he’s also an avid video creator, often breaking down the environmental design of his favourite games. If you can’t track him down, he’s probably lost in a cave with a bunch of dwarves shouting “rock and stone” to no end.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/B9Xn3FVtk9V33MnFZaYtJi-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Modern Warfare 4: Key art showing two soldiers, weapons at the ready, walking around a corner in an open garage area.]]></media:description>                                                            <media:text><![CDATA[Modern Warfare 4: Key art showing two soldiers, weapons at the ready, walking around a corner in an open garage area.]]></media:text>
                                <media:title type="plain"><![CDATA[Modern Warfare 4: Key art showing two soldiers, weapons at the ready, walking around a corner in an open garage area.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/B9Xn3FVtk9V33MnFZaYtJi-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In an attempt to fix the bloated Gunsmith system of recent <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a> games, <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a> is introducing a new feature, Gunny. It's a little widget in the bottom right of the loadout screen that you can use to create loadouts for you. For example, it'll say "Hello, I can help you build a weapon when you have more attachments unlocked. Keep levelling your weapon," if you've got a brand-new weapon.</p><p>Naturally sceptical of a weird widget that communicates with you, Infinity Ward has been accused of using AI for this new system. In a post which instigated a lot of the uproar, retired Call of Duty leaker <a href="https://x.com/TheGhostOfHope/status/2077475850602139835?s=20" target="_blank">TheGhostofHope said</a>: "They got an AI chat bot in the game now to help mfs with their loadouts as if it’s not the same shit used every year."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077822186320986503"><p lang="en" dir="ltr">Wrong (again.)Gunny is hand crafted by our developers, not AI. It recommends builds based on the attachments you’ve unlocked for each weapon. It helps make quick loadout changes between matches.Give it a shot in the Beta.<a href="https://twitter.com/cantworkitout/status/2077822186320986503">July 16, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Infinity Ward fired back, <a href="https://x.com/InfinityWard/status/2077822186320986503?s=20" target="_blank">saying</a> "Wrong (again.) Gunny is handcrafted by our developers, not AI. It recommends builds based on the attachments you’ve unlocked for each weapon. It helps make quick loadout changes between matches. Give it a shot in the Beta." For those out of the loop, that snarky 'again' refers to various incorrect leaks made by Hope which Activision has called out in the past. There's history.</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="WwiE5gVpwGn4j5Qsz6Hxwh" name="mw4 gunny" alt="Modern Warfare 4: The loadout screen for the Axion assault rifle, with Gunny's prompt in the bottom right corner." src="https://cdn.mos.cms.futurecdn.net/WwiE5gVpwGn4j5Qsz6Hxwh-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/WwiE5gVpwGn4j5Qsz6Hxwh-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>I, for one, am glad that Gunny isn't an AI chatbot that can't play Call of Duty, telling me how to play Call of Duty. Instead, it's effectively just a personified auto-equip button that collates dev-made weapon builds for those players who don't want to create their own, or even search online for player-made setups.</p><p>However, it's not the first time that Call of Duty has been accused of using AI. Players had suspected Activision was using AI to generate cosmetics back in Modern Warfare 3 and Black Ops 6, and this was confirmed last year once <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-admits-its-using-generative-ai-to-help-develop-some-in-game-assets-and-suddenly-all-those-poorly-made-calling-cards-make-sense/" target="_blank">Valve's mandated AI disclosure appeared on the Call of Duty Steam page</a>. Later that year, <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-under-fire-for-using-what-sure-looks-like-ai-generated-studio-ghibli-style-calling-card-art/" target="_blank">Black Ops 7 also came under fire after players found what looked like AI-generated art</a>.</p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/CODBlackOps7/comments/1owqr38/so_these_calling_cards_are_definitely_ai">So these calling cards are DEFINITELY AI generated right?</a><figcaption><cite> from <a href="https://www.reddit.com/r/CODBlackOps7">r/CODBlackOps7</a></cite></figcaption></blockquote></figure><script async="" src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>In fact, as <a href="https://www.destructoid.com/mw4-studio-head-ai-game-dev-whatever-tools-we-can/" target="_blank">reported by Destructoid</a> from a group presentation, Infinity Ward co-studio head Mark Grigsby confirmed that the team <em>is </em>using AI in MW4. “We use whatever tools we have to enhance and help our developers to complete [tasks] on time,” explained Grigsby. “For the game, there’s developmental things. We use whatever we can, whatever tools we can [in development].”</p><p>This is backed up by <a href="https://store.steampowered.com/app/4435490/Call_of_Duty_Modern_Warfare_4/" target="_blank">the game's Steam page</a>, which has an AI usage disclosure, reading "Our team uses generative AI tools to help develop some in-game assets."</p><p>So, while Gunny thankfully isn't an AI chatbot despite the vibes, its developer certainly is using this maligned tech elsewhere in its creation. I would not be surprised to see more shoddy AI-generated calling cards popping up in premium bundles once again.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwqNAX"></div>                            </div>                            <script src="https://kwizly.com/embed/WwqNAX.js" async=""></script><div class="product"><a data-dimension112="fa71c18e-81f1-11f1-a7f1-2f0aa4e3213c" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="fa71c18e-81f1-11f1-a7f1-2f0aa4e3213c" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The blinding muzzle flash in Modern Warfare 4's gameplay premiere was actually a bug ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Before <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4's</a> official hands-on gameplay premiere yesterday, <a href="https://www.pcgamer.com/games/call-of-duty/infinity-ward-aims-to-make-mw4-even-more-immersive-and-its-already-proving-divisive-mouse-and-keyboard-is-officially-dead/" target="_blank">Infinity Ward had to clear the air regarding visual recoil</a>. Effectively, it's aware of the concerns it's buck wild, and will be monitoring feedback during the beta before launch. So what I wasn't expecting soon after was to get blinded by a severe case of muzzle flash every trigger pull while watching the new gameplay yesterday.</p><p>Several content creators were invited to play and livestream an early MW4 alpha build, including the new Kill Block mode. But what's gotten more attention online has been the over-the-top effects whenever you shoot: a bright flash and a big puff of smoke that covers the entire screen, almost warranting sunglasses. It was especially prevalent on high-power weapons like snipers, though it was visible on other weapons too, especially in darker environments. It's hilariously distracting in the clip below, where it feels like it would light up my face like Ben Starr at The Game Awards if I were playing in a dimly lit room.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077835031561506828"><p lang="en" dir="ltr">M4 GAMEPLAY ON MODERN WARFARE 4 pic.twitter.com/ZUugLrmqFk<a href="https://twitter.com/cantworkitout/status/2077835031561506828">July 16, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>After a clip of Skyrroz showcasing it spread around, Infinity Ward once again had to step in to confirm that, no, this isn't intentional. But it sure is a shame that it's marred the first proper hands-on gameplay the community's been privy to.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077847825149235398"><p lang="en" dir="ltr">Seeing #MW4 in the hands of players for the first time has been an exciting milestone for the team.These are pre-release Alpha builds and are still very much a work in progress. The muzzle flash VFX issue in today's Alpha gameplay is a bug that will be fixed for Beta.<a href="https://twitter.com/cantworkitout/status/2077847825149235398">July 16, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"These are pre-release Alpha builds and are still very much a work in progress," <a href="https://x.com/InfinityWard/status/2077847825149235398?s=20" target="_blank">the post</a> reads. "The muzzle flash VFX issue in today's Alpha gameplay is a bug that will be fixed for Beta."</p><p>This is backed up by previous behind-closed-doors hands-on, including by our own <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/" target="_blank">Morgan Park, who played it earlier this year</a>. CoD content creator JGOD also had this to say about that same clip being shared around: "What happened to the version I played and why is he getting flash-banged with every shot?".</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2078113423464743331"><p lang="en" dir="ltr">DMR (fixed) pic.twitter.com/AwKxOupEje<a href="https://twitter.com/cantworkitout/status/2078113423464743331">July 17, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Infinity Ward followed up today with <a href="https://x.com/InfinityWard/status/2078113421623451748?s=20" target="_blank">more details</a>, confirming that this issue was specifically caused by a bugged suppressor attachment. After the feedback, however, it has also decided to reduce the muzzle smoke opacity for <em>all</em> weapons.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077826998437552145"><p lang="en" dir="ltr">Shooting a gun in MW4 pic.twitter.com/sDJ5ZmfIPR<a href="https://twitter.com/cantworkitout/status/2077826998437552145">July 16, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Combined with the already controversial visual recoil, this unfortunate bug has quickly given people the wrong impression. "Nice, need an epilepsy warning to come on every time you shoot a gun," <a href="https://x.com/tyler_elli41204/status/2077820155971665987?s=20" target="_blank">one commenter wrote</a>. "Bruh…..WHAT THE F*CK is that muzzle smoke," <a href="https://x.com/Armostryker/status/2077865938393747687?s=20" target="_blank">said another</a>. <a href="https://x.com/StreetFighttnk/status/2077818052675096990?s=20" target="_blank">Similarly</a>, "That muzzle flash lmfao what im getting flashbanged each shot wtf." You get the picture.</p><p>Hopefully the beta, expected to begin in September, won't suffer any other heinous bugs to further sour the mood. Though that's what a beta's for, I suppose.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwqNAX"></div>                            </div>                            <script src="https://kwizly.com/embed/WwqNAX.js" async=""></script><div class="product"><a data-dimension112="554f78ae-81d3-11f1-9014-7b966a7b48a4" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="554f78ae-81d3-11f1-9014-7b966a7b48a4" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/the-blinding-muzzle-flash-in-modern-warfare-4s-gameplay-premiere-was-actually-a-bug/</link>
                                                                            <description>
                            <![CDATA[ Grab some sunglasses. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">qXzAMtHE4Bhbg2dBKUizZk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/QBugx8tYhWNNBjwbxekqYN-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 17 Jul 2026 11:49:32 +0000</pubDate>                                                                                                                                <updated>Fri, 17 Jul 2026 14:04:16 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rory Norris ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LghCxdhyWRKUT4BHYB2D2E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Rory has made the fatal error of playing way too many live service games at once, and somehow still finding time for everything in between. Sure, he’s an expert at Destiny 2, Call of Duty, and more, but at what cost? He’s even sunk 1,000 hours into The Elder Scrolls Online over the years. At least he put all those hours spent grinding challenges to good use over the years as a freelancer and guides editor. In his spare time, he’s also an avid video creator, often breaking down the environmental design of his favourite games. If you can’t track him down, he’s probably lost in a cave with a bunch of dwarves shouting “rock and stone” to no end.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/QBugx8tYhWNNBjwbxekqYN-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A vertically split image with Ben Starr illuminated with a very strong light on the left side, and a screenshot of MW4 gameplay on the right, showing a player holding an M4.]]></media:description>                                                            <media:text><![CDATA[A vertically split image with Ben Starr illuminated with a very strong light on the left side, and a screenshot of MW4 gameplay on the right, showing a player holding an M4.]]></media:text>
                                <media:title type="plain"><![CDATA[A vertically split image with Ben Starr illuminated with a very strong light on the left side, and a screenshot of MW4 gameplay on the right, showing a player holding an M4.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/QBugx8tYhWNNBjwbxekqYN-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Before <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4's</a> official hands-on gameplay premiere yesterday, <a href="https://www.pcgamer.com/games/call-of-duty/infinity-ward-aims-to-make-mw4-even-more-immersive-and-its-already-proving-divisive-mouse-and-keyboard-is-officially-dead/" target="_blank">Infinity Ward had to clear the air regarding visual recoil</a>. Effectively, it's aware of the concerns it's buck wild, and will be monitoring feedback during the beta before launch. So what I wasn't expecting soon after was to get blinded by a severe case of muzzle flash every trigger pull while watching the new gameplay yesterday.</p><p>Several content creators were invited to play and livestream an early MW4 alpha build, including the new Kill Block mode. But what's gotten more attention online has been the over-the-top effects whenever you shoot: a bright flash and a big puff of smoke that covers the entire screen, almost warranting sunglasses. It was especially prevalent on high-power weapons like snipers, though it was visible on other weapons too, especially in darker environments. It's hilariously distracting in the clip below, where it feels like it would light up my face like Ben Starr at The Game Awards if I were playing in a dimly lit room.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077835031561506828"><p lang="en" dir="ltr">M4 GAMEPLAY ON MODERN WARFARE 4 pic.twitter.com/ZUugLrmqFk<a href="https://twitter.com/cantworkitout/status/2077835031561506828">July 16, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>After a clip of Skyrroz showcasing it spread around, Infinity Ward once again had to step in to confirm that, no, this isn't intentional. But it sure is a shame that it's marred the first proper hands-on gameplay the community's been privy to.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077847825149235398"><p lang="en" dir="ltr">Seeing #MW4 in the hands of players for the first time has been an exciting milestone for the team.These are pre-release Alpha builds and are still very much a work in progress. The muzzle flash VFX issue in today's Alpha gameplay is a bug that will be fixed for Beta.<a href="https://twitter.com/cantworkitout/status/2077847825149235398">July 16, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"These are pre-release Alpha builds and are still very much a work in progress," <a href="https://x.com/InfinityWard/status/2077847825149235398?s=20" target="_blank">the post</a> reads. "The muzzle flash VFX issue in today's Alpha gameplay is a bug that will be fixed for Beta."</p><p>This is backed up by previous behind-closed-doors hands-on, including by our own <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/" target="_blank">Morgan Park, who played it earlier this year</a>. CoD content creator JGOD also had this to say about that same clip being shared around: "What happened to the version I played and why is he getting flash-banged with every shot?".</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2078113423464743331"><p lang="en" dir="ltr">DMR (fixed) pic.twitter.com/AwKxOupEje<a href="https://twitter.com/cantworkitout/status/2078113423464743331">July 17, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Infinity Ward followed up today with <a href="https://x.com/InfinityWard/status/2078113421623451748?s=20" target="_blank">more details</a>, confirming that this issue was specifically caused by a bugged suppressor attachment. After the feedback, however, it has also decided to reduce the muzzle smoke opacity for <em>all</em> weapons.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077826998437552145"><p lang="en" dir="ltr">Shooting a gun in MW4 pic.twitter.com/sDJ5ZmfIPR<a href="https://twitter.com/cantworkitout/status/2077826998437552145">July 16, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Combined with the already controversial visual recoil, this unfortunate bug has quickly given people the wrong impression. "Nice, need an epilepsy warning to come on every time you shoot a gun," <a href="https://x.com/tyler_elli41204/status/2077820155971665987?s=20" target="_blank">one commenter wrote</a>. "Bruh…..WHAT THE F*CK is that muzzle smoke," <a href="https://x.com/Armostryker/status/2077865938393747687?s=20" target="_blank">said another</a>. <a href="https://x.com/StreetFighttnk/status/2077818052675096990?s=20" target="_blank">Similarly</a>, "That muzzle flash lmfao what im getting flashbanged each shot wtf." You get the picture.</p><p>Hopefully the beta, expected to begin in September, won't suffer any other heinous bugs to further sour the mood. Though that's what a beta's for, I suppose.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwqNAX"></div>                            </div>                            <script src="https://kwizly.com/embed/WwqNAX.js" async=""></script><div class="product"><a data-dimension112="554f78ae-81d3-11f1-9014-7b966a7b48a4" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="554f78ae-81d3-11f1-9014-7b966a7b48a4" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Infinity Ward aims to make MW4 even 'more immersive,' and it's already proving divisive: 'Mouse and keyboard is OFFICIALLY DEAD' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Every year, <a href="https://www.pcgamer.com/games/fps/call-of-duty/">Call of Duty</a> either tries to reinvent the wheel, or undo the reinvention it tried last time. With the upcoming <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/">Modern Warfare 4</a>, it's attempting the latter—<a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">Morgan has played MW4 multiplayer</a> at Infinity Ward recently, and he's not convinced it's a leap forward, despite being confident it'll be the best-playing Call of Duty in years.</p><p>MW4 has the monumental task of living up to MW 2019's reinvention of the series, while trying to <a href="https://www.pcgamer.com/games/call-of-duty/4-years-later-infinity-ward-reflects-on-call-of-duty-modern-warfare-2s-controversial-changes-it-came-at-the-cost-of-feel-and-fun/">fix Modern Warfare 2's controversial changes</a>. One of the biggest criticisms was its absurdly strong visual recoil, which made its guns feel, frankly, quite messy and unresponsive. This was somewhat fixed in MW3, but that half-sequel is a whole other can of worms that the devs are steering clear of.</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/hcMEBicsxIU" allowfullscreen=""></iframe></div></div><p>In the latest "From the Ward" developer doc, Infinity Ward has laid out its philosophy with MW4. "We talk a lot about making the game more immersive," explains weapon designer Cody Pierson. "The goal for Modern Warfare 4 is to really put the player in the boots of their operator, make it feel like they're really behind their gun."</p><p>What this means in practice is some admittedly cool features, like more realistic depth of field that's actually a helpful improvement over past games. Most players will likely still turn it off, though. Muzzle effects have been toned down by a creative masking solution, specifically cutting out the cloud of smoke that would typically block your view. Or how about the dynamic weapon position, like lowering your weapon as you approach a wall or angling it against a corner as you poke around. Very cool. Very immersive.</p><p>While I think Infinity Ward's changes are pretty spot on, this deep dive has proven to be divisive. For some, the (seemingly) strong visual recoil and hefty weapon sway are bringing back bad memories of MW2. So much so that the developer has made a statement on the topic in direct response to a fan raising their concerns: </p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077470996026572831"><p lang="en" dir="ltr">We’ve seen the early conversations around visual recoil. The Beta will give players a chance to get hands-on, and we'll be monitoring feedback closely throughout both weekends.<a href="https://twitter.com/cantworkitout/status/2077470996026572831">July 15, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"We’ve seen the early conversations around visual recoil. The Beta will give players a chance to get hands-on, and we'll be monitoring feedback closely throughout both weekends."</p><p>It's a sentiment I've seen shared among the community in the wake of the video. There's been some surprisingly nuanced discussion on the game's Reddit page. It's rightly pointed out that, while smoke and weapon bounce could still be toned down, it's not helped by the lower FOV on display.</p><p>Content creator <a href="https://x.com/TGDefinition/status/2077483542808772786?s=20">TheGamingDefinition</a> posted on social media, saying, "Did you muppets not learn your lesson from MW2022? Fix your game, this visibility is shocking." And to be fair, it's a pretty muddy screengrab. Likewise, <a href="https://x.com/Frizzeyes/status/2077509426353774807">Frizzeyes</a> called MW4 "MWII 2.0".</p><p><a href="https://x.com/Metaaphor/status/2077454142361256207">Metaphor</a>, a <em>very</em> good Warzone player, highlighted the fact that these changes specifically kneecap PC players more: "Insane visual recoil + gun smoke. Mouse and keyboard is OFFICIALLY DEAD."</p><p>Ultimately, I'd say it's too early to know how the guns in MW4 will feel without actually having them in your hands—every weapon is different, and your settings can influence things too. But so far, it's clear that Infinity Ward is aware of the shortcomings of MW2, while still being dedicated to the idea of immersion and realism. It's certainly more passionate about those tenets than its players are, though.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwqNAX"></div>                            </div>                            <script src="https://kwizly.com/embed/WwqNAX.js" async=""></script><div class="product"><a data-dimension112="89d8c3a2-811d-11f1-8c07-f7547f07cc53" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="89d8c3a2-811d-11f1-8c07-f7547f07cc53" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/infinity-ward-aims-to-make-mw4-even-more-immersive-and-its-already-proving-divisive-mouse-and-keyboard-is-officially-dead/</link>
                                                                            <description>
                            <![CDATA[ "We’ve seen the early conversations around visual recoil." ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xNWkmjeE2LpspgUgwMyn7A</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/KW8rUzLvWMN6KAFCwqEeg5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 16 Jul 2026 13:56:12 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rory Norris ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LghCxdhyWRKUT4BHYB2D2E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Rory has made the fatal error of playing way too many live service games at once, and somehow still finding time for everything in between. Sure, he’s an expert at Destiny 2, Call of Duty, and more, but at what cost? He’s even sunk 1,000 hours into The Elder Scrolls Online over the years. At least he put all those hours spent grinding challenges to good use over the years as a freelancer and guides editor. In his spare time, he’s also an avid video creator, often breaking down the environmental design of his favourite games. If you can’t track him down, he’s probably lost in a cave with a bunch of dwarves shouting “rock and stone” to no end.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/KW8rUzLvWMN6KAFCwqEeg5-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Key art for MW4, depicting a Korean soldier cautiously stood next to a wall as a building burns in the background.]]></media:description>                                                            <media:text><![CDATA[Key art for MW4, depicting a Korean soldier cautiously stood next to a wall as a building burns in the background.]]></media:text>
                                <media:title type="plain"><![CDATA[Key art for MW4, depicting a Korean soldier cautiously stood next to a wall as a building burns in the background.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/KW8rUzLvWMN6KAFCwqEeg5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Every year, <a href="https://www.pcgamer.com/games/fps/call-of-duty/">Call of Duty</a> either tries to reinvent the wheel, or undo the reinvention it tried last time. With the upcoming <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/">Modern Warfare 4</a>, it's attempting the latter—<a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">Morgan has played MW4 multiplayer</a> at Infinity Ward recently, and he's not convinced it's a leap forward, despite being confident it'll be the best-playing Call of Duty in years.</p><p>MW4 has the monumental task of living up to MW 2019's reinvention of the series, while trying to <a href="https://www.pcgamer.com/games/call-of-duty/4-years-later-infinity-ward-reflects-on-call-of-duty-modern-warfare-2s-controversial-changes-it-came-at-the-cost-of-feel-and-fun/">fix Modern Warfare 2's controversial changes</a>. One of the biggest criticisms was its absurdly strong visual recoil, which made its guns feel, frankly, quite messy and unresponsive. This was somewhat fixed in MW3, but that half-sequel is a whole other can of worms that the devs are steering clear of.</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/hcMEBicsxIU" allowfullscreen=""></iframe></div></div><p>In the latest "From the Ward" developer doc, Infinity Ward has laid out its philosophy with MW4. "We talk a lot about making the game more immersive," explains weapon designer Cody Pierson. "The goal for Modern Warfare 4 is to really put the player in the boots of their operator, make it feel like they're really behind their gun."</p><p>What this means in practice is some admittedly cool features, like more realistic depth of field that's actually a helpful improvement over past games. Most players will likely still turn it off, though. Muzzle effects have been toned down by a creative masking solution, specifically cutting out the cloud of smoke that would typically block your view. Or how about the dynamic weapon position, like lowering your weapon as you approach a wall or angling it against a corner as you poke around. Very cool. Very immersive.</p><p>While I think Infinity Ward's changes are pretty spot on, this deep dive has proven to be divisive. For some, the (seemingly) strong visual recoil and hefty weapon sway are bringing back bad memories of MW2. So much so that the developer has made a statement on the topic in direct response to a fan raising their concerns: </p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2077470996026572831"><p lang="en" dir="ltr">We’ve seen the early conversations around visual recoil. The Beta will give players a chance to get hands-on, and we'll be monitoring feedback closely throughout both weekends.<a href="https://twitter.com/cantworkitout/status/2077470996026572831">July 15, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"We’ve seen the early conversations around visual recoil. The Beta will give players a chance to get hands-on, and we'll be monitoring feedback closely throughout both weekends."</p><p>It's a sentiment I've seen shared among the community in the wake of the video. There's been some surprisingly nuanced discussion on the game's Reddit page. It's rightly pointed out that, while smoke and weapon bounce could still be toned down, it's not helped by the lower FOV on display.</p><p>Content creator <a href="https://x.com/TGDefinition/status/2077483542808772786?s=20">TheGamingDefinition</a> posted on social media, saying, "Did you muppets not learn your lesson from MW2022? Fix your game, this visibility is shocking." And to be fair, it's a pretty muddy screengrab. Likewise, <a href="https://x.com/Frizzeyes/status/2077509426353774807">Frizzeyes</a> called MW4 "MWII 2.0".</p><p><a href="https://x.com/Metaaphor/status/2077454142361256207">Metaphor</a>, a <em>very</em> good Warzone player, highlighted the fact that these changes specifically kneecap PC players more: "Insane visual recoil + gun smoke. Mouse and keyboard is OFFICIALLY DEAD."</p><p>Ultimately, I'd say it's too early to know how the guns in MW4 will feel without actually having them in your hands—every weapon is different, and your settings can influence things too. But so far, it's clear that Infinity Ward is aware of the shortcomings of MW2, while still being dedicated to the idea of immersion and realism. It's certainly more passionate about those tenets than its players are, though.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwqNAX"></div>                            </div>                            <script src="https://kwizly.com/embed/WwqNAX.js" async=""></script><div class="product"><a data-dimension112="89d8c3a2-811d-11f1-8c07-f7547f07cc53" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="89d8c3a2-811d-11f1-8c07-f7547f07cc53" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Modern Warfare 4 lead isn't scared of the GTA 6 black hole: 'It’s a little head-to-head, that’s great' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Every <a href="https://www.pcgamer.com/games/grand-theft-auto/publishers-dont-want-to-be-anywhere-near-grand-theft-auto-6-when-it-launches-its-proving-to-be-very-stressful/" target="_blank">publisher and developer has been trying to avoid the black hole</a> that is <a href="https://www.pcgamer.com/grand-theft-auto-6/" target="_blank">Grand Theft Auto 6</a>—easier said than done, given that Rockstar has shifted the <a href="https://www.pcgamer.com/grand-theft-auto/gta-6-guide/" target="_blank">GTA 6 release date</a> several times now just to bait the entire industry. Even <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a> is giving it a wide berth, with <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a> opting for a late October launch rather than the typical November debut, though it's not a first for the series.</p><p>But Call of Duty's got nothing to worry about—at the very least, one of the <a href="https://www.pcgamer.com/games/fps/xbox-marketing-takes-embarrassing-turn-with-new-call-of-duty-ads-loudly-disclaiming-not-on-xbox-game-pass-this-year/" target="_blank">best-selling games every year isn't 'free' on Game Pass anymore</a>. After all, it's still one of the behemoths that rolls around every year, GTA 6 be damned. In an <a href="https://www.destructoid.com/mw4-studio-head-doesnt-feel-added-pressure-gta-6-looming/" target="_blank">interview with Destructoid</a>, co-studio head of Infinity Ward, Mark Grigsby, said going head-to-head with arguably the biggest game in the industry's history isn't any extra pressure.</p><p>"I always feel pressure. I’ve been in this industry for 28 years, and every product that I have put out, I have the weight of the world, even not as a studio head, as a developer," Grigsby explained. "It’s a lot of pressure to make sure that you’re creative enough to entertain the masses."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwqNAX"></div>                            </div>                            <script src="https://kwizly.com/embed/WwqNAX.js" async=""></script><p>"I’ve been a fan of GTA since the top-down [games] back in the day. And I’m looking forward to playing it. Afraid of it? No … I think it’s healthy for the industry to have juggernauts like Grand Theft Auto and Call of Duty and Fortnite, and whatever other major studio or product that comes out, to uplift … And, you know, it’s a little head-to-head, that’s great."</p><p>"Pressure is pressure," Grigsby adds, "but we’re always trying to maintain and make sure that we are delivering a top-notch, top-of-the-line product."</p><p>Our own <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/" target="_blank">Morgan Park got to play Modern Warfare 4 multiplayer</a> at Infinity Ward recently, and while he's not convinced it's a leap forward, he's confident it'll be the best-playing Call of Duty in years. At the very least, it's trying to <a href="https://www.pcgamer.com/games/call-of-duty/4-years-later-infinity-ward-reflects-on-call-of-duty-modern-warfare-2s-controversial-changes-it-came-at-the-cost-of-feel-and-fun/" target="_blank">fix Modern Warfare 2's controversial changes</a>.</p><div class="product"><a data-dimension112="501240cc-810d-11f1-b0d5-779482ed6782" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="501240cc-810d-11f1-b0d5-779482ed6782" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/modern-warfare-4-lead-isnt-scared-of-the-gta-6-black-hole-its-a-little-head-to-head-thats-great/</link>
                                                                            <description>
                            <![CDATA[ "It’s a lot of pressure to make sure that you’re creative enough to entertain the masses." ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ps5vzKKvdjtkHg7LjRK7bc</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/kKd7W45EDMpPEudAWRN3z9-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 16 Jul 2026 12:00:06 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rory Norris ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LghCxdhyWRKUT4BHYB2D2E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Rory has made the fatal error of playing way too many live service games at once, and somehow still finding time for everything in between. Sure, he’s an expert at Destiny 2, Call of Duty, and more, but at what cost? He’s even sunk 1,000 hours into The Elder Scrolls Online over the years. At least he put all those hours spent grinding challenges to good use over the years as a freelancer and guides editor. In his spare time, he’s also an avid video creator, often breaking down the environmental design of his favourite games. If you can’t track him down, he’s probably lost in a cave with a bunch of dwarves shouting “rock and stone” to no end.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/kKd7W45EDMpPEudAWRN3z9-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision/Rockstar]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A vertically split image with Captain Price from Modern Warfare 4 on the left and Jason from GTA 6 on the right.]]></media:description>                                                            <media:text><![CDATA[A vertically split image with Captain Price from Modern Warfare 4 on the left and Jason from GTA 6 on the right.]]></media:text>
                                <media:title type="plain"><![CDATA[A vertically split image with Captain Price from Modern Warfare 4 on the left and Jason from GTA 6 on the right.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/kKd7W45EDMpPEudAWRN3z9-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Every <a href="https://www.pcgamer.com/games/grand-theft-auto/publishers-dont-want-to-be-anywhere-near-grand-theft-auto-6-when-it-launches-its-proving-to-be-very-stressful/" target="_blank">publisher and developer has been trying to avoid the black hole</a> that is <a href="https://www.pcgamer.com/grand-theft-auto-6/" target="_blank">Grand Theft Auto 6</a>—easier said than done, given that Rockstar has shifted the <a href="https://www.pcgamer.com/grand-theft-auto/gta-6-guide/" target="_blank">GTA 6 release date</a> several times now just to bait the entire industry. Even <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a> is giving it a wide berth, with <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-4/" target="_blank">Modern Warfare 4</a> opting for a late October launch rather than the typical November debut, though it's not a first for the series.</p><p>But Call of Duty's got nothing to worry about—at the very least, one of the <a href="https://www.pcgamer.com/games/fps/xbox-marketing-takes-embarrassing-turn-with-new-call-of-duty-ads-loudly-disclaiming-not-on-xbox-game-pass-this-year/" target="_blank">best-selling games every year isn't 'free' on Game Pass anymore</a>. After all, it's still one of the behemoths that rolls around every year, GTA 6 be damned. In an <a href="https://www.destructoid.com/mw4-studio-head-doesnt-feel-added-pressure-gta-6-looming/" target="_blank">interview with Destructoid</a>, co-studio head of Infinity Ward, Mark Grigsby, said going head-to-head with arguably the biggest game in the industry's history isn't any extra pressure.</p><p>"I always feel pressure. I’ve been in this industry for 28 years, and every product that I have put out, I have the weight of the world, even not as a studio head, as a developer," Grigsby explained. "It’s a lot of pressure to make sure that you’re creative enough to entertain the masses."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwqNAX"></div>                            </div>                            <script src="https://kwizly.com/embed/WwqNAX.js" async=""></script><p>"I’ve been a fan of GTA since the top-down [games] back in the day. And I’m looking forward to playing it. Afraid of it? No … I think it’s healthy for the industry to have juggernauts like Grand Theft Auto and Call of Duty and Fortnite, and whatever other major studio or product that comes out, to uplift … And, you know, it’s a little head-to-head, that’s great."</p><p>"Pressure is pressure," Grigsby adds, "but we’re always trying to maintain and make sure that we are delivering a top-notch, top-of-the-line product."</p><p>Our own <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/" target="_blank">Morgan Park got to play Modern Warfare 4 multiplayer</a> at Infinity Ward recently, and while he's not convinced it's a leap forward, he's confident it'll be the best-playing Call of Duty in years. At the very least, it's trying to <a href="https://www.pcgamer.com/games/call-of-duty/4-years-later-infinity-ward-reflects-on-call-of-duty-modern-warfare-2s-controversial-changes-it-came-at-the-cost-of-feel-and-fun/" target="_blank">fix Modern Warfare 2's controversial changes</a>.</p><div class="product"><a data-dimension112="501240cc-810d-11f1-b0d5-779482ed6782" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="501240cc-810d-11f1-b0d5-779482ed6782" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty fans surprised to discover new Black Ops 2 port preserves the emblem editor, not surprised to find swastikas being made with it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Amongst all the news of <a href="https://www.pcgamer.com/gaming-industry/the-games-industry-reacts-to-xbox-layoffs-we-are-clearly-at-a-turning-point/">brutal layoffs</a>, studio divestments, and <a href="https://www.pcgamer.com/gaming-industry/us-federal-reserve-taps-xbox-ceo-asha-sharma-who-just-laid-off-3-200-employees-to-lead-task-force-on-jobs/">ironic task force appointments</a> at Microsoft this week, over in the Call of Duty corner of the megacorp, something kinda cool happened. Activision released updated ports of Call of Duty: Black Ops (2010) and Black Ops 2 (2012).</p><p>They come with caveats, of course: At $40 a pop, the Call of Duty tax is firmly affixed to these elderly shooters. They're also PlayStation only, sadly, so the millions of fans who originally played them on PC are cut off from the reinvigorated scene. But they are nearly complete updates of those original games, now upscaled to 1080p, with few exceptions. Players were especially surprised to learn that even the emblem editor—a beloved and somewhat controversial feature of Treyarch's early games—made the cut.</p><p>Because, well, people are making swastika emblems with it. And depictions of 9/11. And Charlie Kirk's assassination. And a KKK member. And that's just all that fit into <a href="https://x.com/JakeSucky/status/2075679203014435258?s=20">this tweet</a> from influencer JakeSucky.</p><p>As you can see, the emblem editor is surprisingly powerful—its stock of primitive shapes, symbols, colors, and layers let dedicated thumbstickers depict just about anything. Most often, custom emblems ended up looking like the trash bin of an early South Park animator, but it was a regular occurrence to glance at a profile and be treated to a remarkably convincing Mona Lisa, <a href="https://www.reddit.com/r/blackops2/s/aAqGIY11dz">cartoon character</a>, or yes, something naughty.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2075679203014435258"><p lang="en" dir="ltr">Black Ops 2 emblem editor going just about as expected pic.twitter.com/Hss1aO8SGh<a href="https://twitter.com/cantworkitout/status/2075679203014435258">July 10, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>I'm also quite surprised the feature made the cut. Even with player moderation, there's no policing photoshop, so a tool that allows for high expression assumes that sometimes your killer will flash you with cartoon racism. There are normal, cool, creative emblems being made as well, but in keeping with the Call of Duty community, terrible behavior is more the norm.</p><p>As others have pointed out, they should've done the work to let people turn off custom emblems entirely—there wasn't an option back in 2010 and there isn't one now.</p><p>Weirdly, the only major change to the ports is the omission of some modes. Wager matches are gone from Black Ops 1, so clearly developer Iron Galaxy did some surgery here, but you won't find modern options like FOV sliders or high refresh rates. Pretty barebones ports, all told.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYdAvO"></div>                            </div>                            <script src="https://kwizly.com/embed/XYdAvO.js" async=""></script><div class="product"><a data-dimension112="c5164176-7cbb-11f1-9462-275baf4c580e" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="c5164176-7cbb-11f1-9462-275baf4c580e" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-fans-surprised-to-discover-new-black-ops-2-port-preserves-the-emblem-editor-not-surprised-to-find-swastikas-being-made-with-it/</link>
                                                                            <description>
                            <![CDATA[ The new PlayStation ports have preserved a controversial feature of the originals. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wm4buxNhC6gP7iT3jBCX2k</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/eLQwoD3iDy7MeM6cBfi9UG-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 11 Jul 2026 00:04:16 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/eLQwoD3iDy7MeM6cBfi9UG-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[black ops 2]]></media:description>                                                            <media:text><![CDATA[black ops 2]]></media:text>
                                <media:title type="plain"><![CDATA[black ops 2]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/eLQwoD3iDy7MeM6cBfi9UG-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Amongst all the news of <a href="https://www.pcgamer.com/gaming-industry/the-games-industry-reacts-to-xbox-layoffs-we-are-clearly-at-a-turning-point/">brutal layoffs</a>, studio divestments, and <a href="https://www.pcgamer.com/gaming-industry/us-federal-reserve-taps-xbox-ceo-asha-sharma-who-just-laid-off-3-200-employees-to-lead-task-force-on-jobs/">ironic task force appointments</a> at Microsoft this week, over in the Call of Duty corner of the megacorp, something kinda cool happened. Activision released updated ports of Call of Duty: Black Ops (2010) and Black Ops 2 (2012).</p><p>They come with caveats, of course: At $40 a pop, the Call of Duty tax is firmly affixed to these elderly shooters. They're also PlayStation only, sadly, so the millions of fans who originally played them on PC are cut off from the reinvigorated scene. But they are nearly complete updates of those original games, now upscaled to 1080p, with few exceptions. Players were especially surprised to learn that even the emblem editor—a beloved and somewhat controversial feature of Treyarch's early games—made the cut.</p><p>Because, well, people are making swastika emblems with it. And depictions of 9/11. And Charlie Kirk's assassination. And a KKK member. And that's just all that fit into <a href="https://x.com/JakeSucky/status/2075679203014435258?s=20">this tweet</a> from influencer JakeSucky.</p><p>As you can see, the emblem editor is surprisingly powerful—its stock of primitive shapes, symbols, colors, and layers let dedicated thumbstickers depict just about anything. Most often, custom emblems ended up looking like the trash bin of an early South Park animator, but it was a regular occurrence to glance at a profile and be treated to a remarkably convincing Mona Lisa, <a href="https://www.reddit.com/r/blackops2/s/aAqGIY11dz">cartoon character</a>, or yes, something naughty.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2075679203014435258"><p lang="en" dir="ltr">Black Ops 2 emblem editor going just about as expected pic.twitter.com/Hss1aO8SGh<a href="https://twitter.com/cantworkitout/status/2075679203014435258">July 10, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>I'm also quite surprised the feature made the cut. Even with player moderation, there's no policing photoshop, so a tool that allows for high expression assumes that sometimes your killer will flash you with cartoon racism. There are normal, cool, creative emblems being made as well, but in keeping with the Call of Duty community, terrible behavior is more the norm.</p><p>As others have pointed out, they should've done the work to let people turn off custom emblems entirely—there wasn't an option back in 2010 and there isn't one now.</p><p>Weirdly, the only major change to the ports is the omission of some modes. Wager matches are gone from Black Ops 1, so clearly developer Iron Galaxy did some surgery here, but you won't find modern options like FOV sliders or high refresh rates. Pretty barebones ports, all told.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYdAvO"></div>                            </div>                            <script src="https://kwizly.com/embed/XYdAvO.js" async=""></script><div class="product"><a data-dimension112="c5164176-7cbb-11f1-9462-275baf4c580e" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="c5164176-7cbb-11f1-9462-275baf4c580e" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Extraction shooter peak is finally returning and all you Arc Raiders players should definitely take note ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I'm not <em>really </em>a Call of Duty player for the most part. Sure, I've played the hits like anyone who enjoys a good shooter, and have fond memories of the first, second, and third, plus the Modern Warfare games and the original Black Ops, but besides those, modern CoD has mostly alienated me. Or at least it did until 2022 when I found myself putting hundreds of hours into a new Warzone mode: DMZ.</p><p>To this day, I genuinely think DMZ is one of the most underrated extraction shooters around, plus one of the best things modern Call of Duty has ever produced. It's not necessarily for the hardcore crowd, but for those who prefer more PvE-centric play. Back before DMZ, I felt alienated by the genre. I personally love extraction shooters like Hunt: Showdown—it's a fantastic concept, but for me its world and setting (which I wanted to explore) were hampered by the fact I'd get sniped whenever I attempted to do 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:1693px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="SHKw23inmXikUNGyncfDen" name="dmz-2-0-building" alt="DMZ 2.0 - Soldier in building" src="https://cdn.mos.cms.futurecdn.net/SHKw23inmXikUNGyncfDen-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1693" height="952" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/SHKw23inmXikUNGyncfDen-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><p>I love PvP, but more as an interlude, as a tasty little morsel of encounter that occurs between exploration and PvE. And this is one of the reasons <a href="https://www.pcgamer.com/this-year-warzone-2-dmz-turned-me-into-a-key-hoarding-weasel/"><u>DMZ was so good</u></a>. The giant city-wide map of Al Mazrah, flush with locked buildings to explore, loot rooms to raid, vehicles, events, and even boss-type enemies felt so liberating. Sometimes you'd encounter other players, sometimes you wouldn't, but when you did, its team-based mechanics made these encounters all the better.</p><p>Not just proximity chat, but the ability to gamble on betraying your team to join another, or even recruit other teams you'd just wiped, giving you a better chance at clearing harder areas. And to clarify, I'm not talking about an unofficial alliance Marathon-style, you could literally join other teams to tackle harder content. Stuff like the Koschei Complex—an entire indoor mode with loot vaults and bosses you could only matchmake for <em>in </em>Al Mazrah itself.</p><p>Building 21 was a fantastic concept, too, channeling many of the same ideas as Marathon's Cryo Archive years before. To enter this hardcore mode, you required a special keycard loot item you could only find in Al Mazrah, which would give you a single run when the mode was periodically active. This was a great way to incentivise players to bring their best gear, especially as the building was filled with puzzles, dangerous enemies, valuable loot, and bosses like the grenade launcher-wielding Velikan.</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:1705px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Qh4FuYZRWxX2GTvhasweYn" name="dmz-2-0-extract" alt="DMZ 2.0 - Extract" src="https://cdn.mos.cms.futurecdn.net/Qh4FuYZRWxX2GTvhasweYn-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1705" height="959" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/Qh4FuYZRWxX2GTvhasweYn-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><p>Defeating him was the only way to get this extremely powerful gun in DMZ and my proudest moment in the mode might be when I managed to kill him and snatch it. All of this is to say, DMZ was filled with really smart ideas, and for me, it was my Arc Raiders <em>before </em>Arc Raiders.</p><p>Sure, it wasn't perfect, and sometimes a match would devolve into teams of six riding around ganking everyone in sight. DMZ has also progressively gotten more sweaty since its release (as shooters generally do), but especially after Activision stopped supporting the mode in 2023. That's why I'm excited for a fresh start. As you've probably seen, <a href="https://www.pcgamer.com/games/call-of-duty/call-of-dutys-new-dmz-extraction-mode-is-a-full-featured-game-within-modern-warfare-4/" target="_blank">DMZ 2.0 is set to arrive</a> with <a href="https://store.steampowered.com/agecheck/app/4435490/" target="_blank">Modern Warfare 4</a>, and not as a beta like the previous iteration, but a fully-fledged mode. </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/qmkmQ1AWPVE" allowfullscreen=""></iframe></div></div><p>You can watch the reveal trailer above, plus a developer deep dive on the COD Podcast where they discuss <a href="https://www.callofduty.com/blog/2026/06/call-of-duty-modern-warfare-4-dmz-deep-dive" target="_blank">DMZ 2.0</a>'s development, but it sounds pretty great. There's a new stealth system, dynamic weather, the option to bring vehicles into the mode, but the biggest green flag for me is that they're talking about accessibility and accommodating all the different player experiences they observed in the original DMZ. </p><p>There are also new deployment options that allow you to matchmake with people who want to do similar stuff, avoiding that classic DMZ experience of one player running off in a completely different direction. The story missions also sound much cooler. No more picking up three bandages and exfiling—one of the missions they describe involves robbing a casino vault.</p><p>Perhaps my favorite addition is the "star system", an almost GTA-style escalation as you're discovered and continue to loudly kill enemies. The higher your stars, the more enemies will be drawn to you, including "deathstalkers" and "hunt squads" neither of which sound particularly friendly. In general, though, it sounds like DMZ 2.0 will be much more reactive towards your team's playstyle.</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:1692px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="coUbqWuTiuFrDD9jLtTgjT" name="dmz-2-0-gunfight" alt="DMZ 2.0 - Gunfight in server room" src="https://cdn.mos.cms.futurecdn.net/coUbqWuTiuFrDD9jLtTgjT-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1692" height="952" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/coUbqWuTiuFrDD9jLtTgjT-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><p>When I first watched the trailer, I was a little nervous that Infinity Ward was pushing the experience purely towards PvP, but from what I've read and what's been said by the developer, it genuinely seems like it's building on what makes the original DMZ such a fantastic extraction shooter. Essentially upgrading every part of the experience as it becomes a fully-fledged mode versus its beta predecessor. </p><p>Either way, if you're an Arc Raiders player who loves its PvE-focused elements, but maybe want to try your hand at a little more PvP, I think DMZ 2.0 is set to be pretty special. Especially if it manages to retain DNA of the original when it releases in October.</p><div class="product"><a data-dimension112="00d6bbc8-ccb2-4b0d-ab63-b961046a5f34" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="00d6bbc8-ccb2-4b0d-ab63-b961046a5f34" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/extraction-shooter-peak-is-finally-returning-and-all-you-arc-raiders-players-should-definitely-take-note/</link>
                                                                            <description>
                            <![CDATA[ DMZ was doing the whole "accessible PvE-centric extraction shooter" thing long before Arc was. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">iBxQT4dqWDDYj5yjsEgVN9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/FShtLk5FyuFYxeXx77cEin-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 11 Jun 2026 14:30:55 +0000</pubDate>                                                                                                                                <updated>Thu, 11 Jun 2026 16:29:08 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Sean Martin ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/rw7hUY3Y2mxZJtwx3ePdwF-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/FShtLk5FyuFYxeXx77cEin-1920-80.jpg">
                                                            <media:credit><![CDATA[Infinity Ward]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[DMZ 2.0 - Soldiers]]></media:description>                                                            <media:text><![CDATA[DMZ 2.0 - Soldiers]]></media:text>
                                <media:title type="plain"><![CDATA[DMZ 2.0 - Soldiers]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/FShtLk5FyuFYxeXx77cEin-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I'm not <em>really </em>a Call of Duty player for the most part. Sure, I've played the hits like anyone who enjoys a good shooter, and have fond memories of the first, second, and third, plus the Modern Warfare games and the original Black Ops, but besides those, modern CoD has mostly alienated me. Or at least it did until 2022 when I found myself putting hundreds of hours into a new Warzone mode: DMZ.</p><p>To this day, I genuinely think DMZ is one of the most underrated extraction shooters around, plus one of the best things modern Call of Duty has ever produced. It's not necessarily for the hardcore crowd, but for those who prefer more PvE-centric play. Back before DMZ, I felt alienated by the genre. I personally love extraction shooters like Hunt: Showdown—it's a fantastic concept, but for me its world and setting (which I wanted to explore) were hampered by the fact I'd get sniped whenever I attempted to do 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:1693px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="SHKw23inmXikUNGyncfDen" name="dmz-2-0-building" alt="DMZ 2.0 - Soldier in building" src="https://cdn.mos.cms.futurecdn.net/SHKw23inmXikUNGyncfDen-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1693" height="952" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/SHKw23inmXikUNGyncfDen-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><p>I love PvP, but more as an interlude, as a tasty little morsel of encounter that occurs between exploration and PvE. And this is one of the reasons <a href="https://www.pcgamer.com/this-year-warzone-2-dmz-turned-me-into-a-key-hoarding-weasel/"><u>DMZ was so good</u></a>. The giant city-wide map of Al Mazrah, flush with locked buildings to explore, loot rooms to raid, vehicles, events, and even boss-type enemies felt so liberating. Sometimes you'd encounter other players, sometimes you wouldn't, but when you did, its team-based mechanics made these encounters all the better.</p><p>Not just proximity chat, but the ability to gamble on betraying your team to join another, or even recruit other teams you'd just wiped, giving you a better chance at clearing harder areas. And to clarify, I'm not talking about an unofficial alliance Marathon-style, you could literally join other teams to tackle harder content. Stuff like the Koschei Complex—an entire indoor mode with loot vaults and bosses you could only matchmake for <em>in </em>Al Mazrah itself.</p><p>Building 21 was a fantastic concept, too, channeling many of the same ideas as Marathon's Cryo Archive years before. To enter this hardcore mode, you required a special keycard loot item you could only find in Al Mazrah, which would give you a single run when the mode was periodically active. This was a great way to incentivise players to bring their best gear, especially as the building was filled with puzzles, dangerous enemies, valuable loot, and bosses like the grenade launcher-wielding Velikan.</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:1705px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Qh4FuYZRWxX2GTvhasweYn" name="dmz-2-0-extract" alt="DMZ 2.0 - Extract" src="https://cdn.mos.cms.futurecdn.net/Qh4FuYZRWxX2GTvhasweYn-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1705" height="959" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/Qh4FuYZRWxX2GTvhasweYn-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><p>Defeating him was the only way to get this extremely powerful gun in DMZ and my proudest moment in the mode might be when I managed to kill him and snatch it. All of this is to say, DMZ was filled with really smart ideas, and for me, it was my Arc Raiders <em>before </em>Arc Raiders.</p><p>Sure, it wasn't perfect, and sometimes a match would devolve into teams of six riding around ganking everyone in sight. DMZ has also progressively gotten more sweaty since its release (as shooters generally do), but especially after Activision stopped supporting the mode in 2023. That's why I'm excited for a fresh start. As you've probably seen, <a href="https://www.pcgamer.com/games/call-of-duty/call-of-dutys-new-dmz-extraction-mode-is-a-full-featured-game-within-modern-warfare-4/" target="_blank">DMZ 2.0 is set to arrive</a> with <a href="https://store.steampowered.com/agecheck/app/4435490/" target="_blank">Modern Warfare 4</a>, and not as a beta like the previous iteration, but a fully-fledged mode. </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/qmkmQ1AWPVE" allowfullscreen=""></iframe></div></div><p>You can watch the reveal trailer above, plus a developer deep dive on the COD Podcast where they discuss <a href="https://www.callofduty.com/blog/2026/06/call-of-duty-modern-warfare-4-dmz-deep-dive" target="_blank">DMZ 2.0</a>'s development, but it sounds pretty great. There's a new stealth system, dynamic weather, the option to bring vehicles into the mode, but the biggest green flag for me is that they're talking about accessibility and accommodating all the different player experiences they observed in the original DMZ. </p><p>There are also new deployment options that allow you to matchmake with people who want to do similar stuff, avoiding that classic DMZ experience of one player running off in a completely different direction. The story missions also sound much cooler. No more picking up three bandages and exfiling—one of the missions they describe involves robbing a casino vault.</p><p>Perhaps my favorite addition is the "star system", an almost GTA-style escalation as you're discovered and continue to loudly kill enemies. The higher your stars, the more enemies will be drawn to you, including "deathstalkers" and "hunt squads" neither of which sound particularly friendly. In general, though, it sounds like DMZ 2.0 will be much more reactive towards your team's playstyle.</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:1692px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="coUbqWuTiuFrDD9jLtTgjT" name="dmz-2-0-gunfight" alt="DMZ 2.0 - Gunfight in server room" src="https://cdn.mos.cms.futurecdn.net/coUbqWuTiuFrDD9jLtTgjT-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1692" height="952" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/coUbqWuTiuFrDD9jLtTgjT-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Infinity Ward)</span></figcaption></figure><p>When I first watched the trailer, I was a little nervous that Infinity Ward was pushing the experience purely towards PvP, but from what I've read and what's been said by the developer, it genuinely seems like it's building on what makes the original DMZ such a fantastic extraction shooter. Essentially upgrading every part of the experience as it becomes a fully-fledged mode versus its beta predecessor. </p><p>Either way, if you're an Arc Raiders player who loves its PvE-focused elements, but maybe want to try your hand at a little more PvP, I think DMZ 2.0 is set to be pretty special. Especially if it manages to retain DNA of the original when it releases in October.</p><div class="product"><a data-dimension112="00d6bbc8-ccb2-4b0d-ab63-b961046a5f34" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="00d6bbc8-ccb2-4b0d-ab63-b961046a5f34" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty: Black Ops 7, Season 4 adds a mode that removes OmniMovement and a gun that aims for you ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.callofduty.com/patchnotes/2026/06/call-of-duty-black-ops-7-season-04-patch-notes" target="_blank">Season 4</a> of Black Ops 7 brings the FPS equivalent of an easy chair into the game: a gun that essentially aims for you.</p><p>The update bolsters Black Ops 7's arsenal with several new weapons, including the rapid-fire VX Compact Assault Rifle, and the battle pass exclusive CBRS-3 SMG and KRS-7.62 Marksman Rifle. But it's Grimhawk that stands out. Available as a weekly challenge reward, this fully automatic rifle fires low-velocity rounds that home in on targets firing at you. Activision stresses that these are "light" homing rounds, so they won't do <em>all </em>the work for you. Nonetheless, supercharged aim assist is a <em>pretty </em>big advantage in a multiplayer FPS.</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/1QZ7pMRBASs" allowfullscreen=""></iframe></div></div><p>Alongside this, Season 4 adds a new mode called 'Black Ops Classic' which removes the Omnimovement system first added in Black Ops 6 while also featuring "streamlined" loadouts and a "throwback" map roster. That means no wall jumping, no sliding, no acrobatics of any kind.</p><p>Basically, it's Black Ops for FPS pensioners—old fashioned, sensible deathmatch with no <em>larking about</em>. You don't even have to aim properly if you've got the Grimhawk equipped.</p><p>On the subject of scorestreaks, season 4 adds a new one called "Iron Rain", basically a big drone that lets you track enemies on the ground and then pummel them with aerial artillery. It also adds a new 6v6 map called Primetime, brings back another Black Ops 2 map called Vertigo, and sees the return of the Gunfight game mode in 6v6 form.</p><p>Black Ops 7, Season 4 is available to play now. Personally though, my eyes have turned to the next entry in Call of Duty. Microsoft has formally raised the curtain on<a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/"> Modern Warfare 4</a>, which heralds the return of Infinity Ward and has been cooking for four years—a long time in Call of Duty terms. Morgan Park<a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/"> got hands on</a> with it last month, and while he wasn't sold on its map roster, he thought the gunplay was sublime. "In terms of raw FPS craft, this is immediately head and shoulders above the previous pair of Black Ops—games that look and sound fine. It really does matter who makes Call of Duty."</p><div class="product"><a data-dimension112="955ed692-d3bd-4f8b-b7e7-de60140583bb" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="955ed692-d3bd-4f8b-b7e7-de60140583bb" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-black-ops-7-season-4-adds-a-mode-that-removes-omnimovement-and-a-gun-that-aims-for-you-perfect-for-players-who-cant-be-bothered-to-play-anymore/</link>
                                                                            <description>
                            <![CDATA[ Black Ops classic offers "streamlined" loadouts and a "throwback" map roster. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">CMXaPDt5aywS7igTx4LvL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/uZsg6FxQY6TT64vE6AE4vj-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 07 Jun 2026 12:00:00 +0000</pubDate>                                                                                                                                <updated>Tue, 09 Jun 2026 17:43:18 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rick Lane ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ &lt;p&gt;Rick has been fascinated by PC gaming since he was seven years old, when he used to sneak into his dad&#039;s home office for covert sessions of Doom. He grew up on a diet of similarly unsuitable games, with favourites including Quake, Thief, Half-Life and Deus Ex. Between 2013 and 2022, Rick was games editor of Custom PC magazine and associated website &lt;a href=&quot;http://bit-tech.net/&quot; target=&quot;_blank&quot;&gt;bit-tech.net&lt;/a&gt;. But he&#039;s always kept one foot in freelance games journalism, writing for publications like Edge, Eurogamer, the Guardian and, naturally, PC Gamer. While he&#039;ll play anything that can be controlled with a keyboard and mouse, he has a particular passion for first-person shooters and immersive sims.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/uZsg6FxQY6TT64vE6AE4vj-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A player wields the Grimhawk in Call of Duty: Black Ops 7]]></media:description>                                                            <media:text><![CDATA[A player wields the Grimhawk in Call of Duty: Black Ops 7]]></media:text>
                                <media:title type="plain"><![CDATA[A player wields the Grimhawk in Call of Duty: Black Ops 7]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/uZsg6FxQY6TT64vE6AE4vj-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.callofduty.com/patchnotes/2026/06/call-of-duty-black-ops-7-season-04-patch-notes" target="_blank">Season 4</a> of Black Ops 7 brings the FPS equivalent of an easy chair into the game: a gun that essentially aims for you.</p><p>The update bolsters Black Ops 7's arsenal with several new weapons, including the rapid-fire VX Compact Assault Rifle, and the battle pass exclusive CBRS-3 SMG and KRS-7.62 Marksman Rifle. But it's Grimhawk that stands out. Available as a weekly challenge reward, this fully automatic rifle fires low-velocity rounds that home in on targets firing at you. Activision stresses that these are "light" homing rounds, so they won't do <em>all </em>the work for you. Nonetheless, supercharged aim assist is a <em>pretty </em>big advantage in a multiplayer FPS.</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/1QZ7pMRBASs" allowfullscreen=""></iframe></div></div><p>Alongside this, Season 4 adds a new mode called 'Black Ops Classic' which removes the Omnimovement system first added in Black Ops 6 while also featuring "streamlined" loadouts and a "throwback" map roster. That means no wall jumping, no sliding, no acrobatics of any kind.</p><p>Basically, it's Black Ops for FPS pensioners—old fashioned, sensible deathmatch with no <em>larking about</em>. You don't even have to aim properly if you've got the Grimhawk equipped.</p><p>On the subject of scorestreaks, season 4 adds a new one called "Iron Rain", basically a big drone that lets you track enemies on the ground and then pummel them with aerial artillery. It also adds a new 6v6 map called Primetime, brings back another Black Ops 2 map called Vertigo, and sees the return of the Gunfight game mode in 6v6 form.</p><p>Black Ops 7, Season 4 is available to play now. Personally though, my eyes have turned to the next entry in Call of Duty. Microsoft has formally raised the curtain on<a href="https://www.pcgamer.com/uk/call-of-duty-modern-warfare-4/"> Modern Warfare 4</a>, which heralds the return of Infinity Ward and has been cooking for four years—a long time in Call of Duty terms. Morgan Park<a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/"> got hands on</a> with it last month, and while he wasn't sold on its map roster, he thought the gunplay was sublime. "In terms of raw FPS craft, this is immediately head and shoulders above the previous pair of Black Ops—games that look and sound fine. It really does matter who makes Call of Duty."</p><div class="product"><a data-dimension112="955ed692-d3bd-4f8b-b7e7-de60140583bb" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="955ed692-d3bd-4f8b-b7e7-de60140583bb" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty's new DMZ extraction mode is a 'full-featured game within Modern Warfare 4' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>"We actually made a proper DMZ this time," said Modern Warfare 4 multiplayer creative director Geoff Smith to a room of press in May.</p><p>Last month I visited Infinity Ward to play Modern Warfare 4, the first Call of Duty in four years made by the studio that started it all. I had a fun time with what <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">could be the best Call of Duty multiplayer this decade</a>, but what I really wanted to try was DMZ, the new extraction mode that Infinity Ward talked up a lot throughout the day.</p><p>This is the studio's second try at extraction. The first DMZ, a mode within Modern Warfare 2 (2022), was an accessible but shallow take on the Escape From Tarkov-style extraction loop. It received updates throughout 2023 before getting placed on a shelf with innumerable other Call of Duty experiments. Now DMZ is back, and Infinity Ward ain't calling this one a beta.</p><p><strong>DMZ quick facts:</strong></p><ul><li><strong>The map:</strong> Haijin, a war-torn nuclear exclusion zone on the border of North and South Korea with several towns and settlements</li><li><strong>You play</strong> as an off-the-books CIA asset, self-funded and tasked with finding valuable military technology</li><li><strong>Persistent gear:</strong> Loot extracted from Haijin can be sold or used for upgrades and crafting</li><li><strong>FOB:</strong> A hub that players upgrade over time with work stations and benches</li><li><strong>Story missions:</strong> DMZ will have story missions that take place during live matches</li><li><strong>Dynamic operations &amp; Free roam:</strong> The other two ways to play DMZ. These sounded like repeatable missions with randomized steps that you can either commit to before a match or pick up during free roam.</li><li><strong>Loadouts:</strong> Gunsmith designs can be carried over from Multiplayer, but attachments have be purchased</li></ul><p>"We've learned a lot about what resonates with players and what we were lacking in our beta. All of that knowledge and those action items became this foundation for us as we're shaping this new vision of DMZ from the ground up," Smith said.</p><p>"DMZ offers a rich standbox with escalating AI threats, dangerous bosses, environmental puzzles, raid-like operations, and narrative-driven story missions. It's really more than just a third mode. It's a full-featured game inside Modern Warfare."</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/9mLo6n9o8SBME2brfbM3e6-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/7uy7mRUNGTRbTpwaFJJ337-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/qBLmi3wh4LL7nChbiS2qc6-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/XkntMPqKi3ap5exfLmhgV6-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/8MCNZJoj8VG6dbYRdWRNv5-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/KXUGrXwWY3dWvMAesbKuX5-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/xtaMqfdxv8JQenbw4y6jT5-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure></figure><p>To that end, DMZ has its own progression systems and inventories that don't touch 6v6 multiplayer. Operators that function purely as skins within 6v6 have distinct inventories in DMZ. Your Gunsmith setups do carry over, but you have to buy the necessary attachments to actually build them.</p><p>Another interesting tidbit from the presentation: DMZ will have a bounty system that takes your reputation into account. Killing a lot of players over time will eventually place a bounty on your head that other players within your match can take on. Global leaderboards will memorialize the top 50 killers and top 50 bounty hunters each week.</p><p>It sounds pretty substantial for what will likely be the third option on Modern Warfare 4's main menu. I didn't get to play DMZ, sadly, so jury's out on if it can find a place within my diet of Arc Raiders and Marathon.</p><p>DMZ will launch as part of Modern Warfare 4 on October 23. It will not be free-to-play.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Wnmnqe"></div>                            </div>                            <script src="https://kwizly.com/embed/Wnmnqe.js" async=""></script><div class="product"><a data-dimension112="bf6b657d-e92f-4b93-af2b-56da8953e092" data-action="Deal Block" data-label="the show's Steam page" data-dimension48="the show's Steam page" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3036px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="uNGNHZpBcLTeLdsxSFkkBC" name="pcgs_2026_logo v4" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/uNGNHZpBcLTeLdsxSFkkBC-1920-80.png" mos="" align="middle" fullscreen="" width="3036" height="3036" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong>The PC Gaming Show returns</strong> <strong>Sunday, June 7 at 12 pm PDT! </strong>Visit <a href="https://store.steampowered.com/curator/1850-PC-Gamer/sale/pcgamingshow2026" target="_blank" data-dimension112="bf6b657d-e92f-4b93-af2b-56da8953e092" data-action="Deal Block" data-label="the show's Steam page" data-dimension48="the show's Steam page" data-dimension25="">the show's Steam page</a> to wishlist your most anticipated games and get more information on how to tune in for the big reveals.</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-dutys-new-dmz-extraction-mode-is-a-full-featured-game-within-modern-warfare-4/</link>
                                                                            <description>
                            <![CDATA[ Complete with quests, story missions, and a home base you build up over time. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yk7QDrrLJNsD3vrSCJKRUG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 06 Jun 2026 15:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[modern warfare 4]]></media:description>                                                            <media:text><![CDATA[modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cVjMH6DYTqWjxyLVZXJrj6-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>"We actually made a proper DMZ this time," said Modern Warfare 4 multiplayer creative director Geoff Smith to a room of press in May.</p><p>Last month I visited Infinity Ward to play Modern Warfare 4, the first Call of Duty in four years made by the studio that started it all. I had a fun time with what <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">could be the best Call of Duty multiplayer this decade</a>, but what I really wanted to try was DMZ, the new extraction mode that Infinity Ward talked up a lot throughout the day.</p><p>This is the studio's second try at extraction. The first DMZ, a mode within Modern Warfare 2 (2022), was an accessible but shallow take on the Escape From Tarkov-style extraction loop. It received updates throughout 2023 before getting placed on a shelf with innumerable other Call of Duty experiments. Now DMZ is back, and Infinity Ward ain't calling this one a beta.</p><p><strong>DMZ quick facts:</strong></p><ul><li><strong>The map:</strong> Haijin, a war-torn nuclear exclusion zone on the border of North and South Korea with several towns and settlements</li><li><strong>You play</strong> as an off-the-books CIA asset, self-funded and tasked with finding valuable military technology</li><li><strong>Persistent gear:</strong> Loot extracted from Haijin can be sold or used for upgrades and crafting</li><li><strong>FOB:</strong> A hub that players upgrade over time with work stations and benches</li><li><strong>Story missions:</strong> DMZ will have story missions that take place during live matches</li><li><strong>Dynamic operations &amp; Free roam:</strong> The other two ways to play DMZ. These sounded like repeatable missions with randomized steps that you can either commit to before a match or pick up during free roam.</li><li><strong>Loadouts:</strong> Gunsmith designs can be carried over from Multiplayer, but attachments have be purchased</li></ul><p>"We've learned a lot about what resonates with players and what we were lacking in our beta. All of that knowledge and those action items became this foundation for us as we're shaping this new vision of DMZ from the ground up," Smith said.</p><p>"DMZ offers a rich standbox with escalating AI threats, dangerous bosses, environmental puzzles, raid-like operations, and narrative-driven story missions. It's really more than just a third mode. It's a full-featured game inside Modern Warfare."</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/9mLo6n9o8SBME2brfbM3e6-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/7uy7mRUNGTRbTpwaFJJ337-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/qBLmi3wh4LL7nChbiS2qc6-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/XkntMPqKi3ap5exfLmhgV6-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/8MCNZJoj8VG6dbYRdWRNv5-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/KXUGrXwWY3dWvMAesbKuX5-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/xtaMqfdxv8JQenbw4y6jT5-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure></figure><p>To that end, DMZ has its own progression systems and inventories that don't touch 6v6 multiplayer. Operators that function purely as skins within 6v6 have distinct inventories in DMZ. Your Gunsmith setups do carry over, but you have to buy the necessary attachments to actually build them.</p><p>Another interesting tidbit from the presentation: DMZ will have a bounty system that takes your reputation into account. Killing a lot of players over time will eventually place a bounty on your head that other players within your match can take on. Global leaderboards will memorialize the top 50 killers and top 50 bounty hunters each week.</p><p>It sounds pretty substantial for what will likely be the third option on Modern Warfare 4's main menu. I didn't get to play DMZ, sadly, so jury's out on if it can find a place within my diet of Arc Raiders and Marathon.</p><p>DMZ will launch as part of Modern Warfare 4 on October 23. It will not be free-to-play.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Wnmnqe"></div>                            </div>                            <script src="https://kwizly.com/embed/Wnmnqe.js" async=""></script><div class="product"><a data-dimension112="bf6b657d-e92f-4b93-af2b-56da8953e092" data-action="Deal Block" data-label="the show's Steam page" data-dimension48="the show's Steam page" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3036px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="uNGNHZpBcLTeLdsxSFkkBC" name="pcgs_2026_logo v4" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/uNGNHZpBcLTeLdsxSFkkBC-1920-80.png" mos="" align="middle" fullscreen="" width="3036" height="3036" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong>The PC Gaming Show returns</strong> <strong>Sunday, June 7 at 12 pm PDT! </strong>Visit <a href="https://store.steampowered.com/curator/1850-PC-Gamer/sale/pcgamingshow2026" target="_blank" data-dimension112="bf6b657d-e92f-4b93-af2b-56da8953e092" data-action="Deal Block" data-label="the show's Steam page" data-dimension48="the show's Steam page" data-dimension25="">the show's Steam page</a> to wishlist your most anticipated games and get more information on how to tune in for the big reveals.</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty yet again promises 'no clowny skins' for Modern Warfare 4, but we've been burned before ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Infinity Ward has once again promised that it will keep its skins and cosmetics thematic and grounded in Call of Duty: Modern Warfare 4, a commitment that it has repeatedly asserted as part of the rollout for this anticipated return of Infinity Ward CoD.</p><p>The promise came as part of <a href="https://x.com/CallofDuty/status/2061114869437624737?s=20" target="_blank">an exchange on X, The Everything App</a>. User Hellz Broadcast Network shared an AI-generated image contrasting the speculative buttoned up, tacticool operator types of Modern Warfare 4's first season with the rainbow-colored, Nerf-armored counterparts players feel are all but inevitable from season 2 onward. The post garnered 23 thousand likes, prompting a response from the official Call of Duty account.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2061114869437624737"><p lang="en" dir="ltr">We got the feedback. No BS. This is all about staying true to Modern Warfare. No clowny skins for launch and seasons beyond.<a href="https://twitter.com/cantworkitout/status/2061114869437624737">May 31, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"We got the feedback. No BS," the official Call of Duty account replied. "This is all about staying true to Modern Warfare. No clowny skins for launch and seasons beyond." This echoes <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-promises-more-grounded-cosmetics-and-i-feel-like-ive-heard-this-before/" target="_blank">a similar statement</a> from the official Call of Duty account just a few days ago.</p><p>The only problem? <a href="https://www.pcgamer.com/games/fps/activision-finally-acknowledges-call-of-duty-skins-problem-decides-cosmetics-wont-carry-forward-in-black-ops-7-some-of-you-have-said-weve-drifted-from-what-made-call-of-duty-unique-in-the-first-place-that-feedback-hits-home/" target="_blank">Activision said the same thing about last year's Call of Duty: Black Ops 7</a> before introducing <a href="https://www.pcgamer.com/games/fps/after-promising-black-ops-7-skins-would-feel-authentic-to-call-of-duty-and-its-setting-fallout-has-arrived-in-call-of-duty/" target="_blank">premium Fallout TV show skins</a>. The Fortnitification of everything has been getting to us for a long time: Features producer Mollie Taylor <a href="https://www.pcgamer.com/games/battle-royale/the-fortnitification-of-every-videogame-is-really-starting-to-grate-on-me/" target="_blank">wrote about it last August</a>, but news writer Morgan Park has been <a href="https://www.pcgamer.com/every-time-a-new-shooter-launches-i-start-a-countdown-until-it-becomes-a-clown-show-of-brands-and-hideous-skins/" target="_blank">banging this drum since 2023</a>.</p><p>It's become a popular gripe among CoD's most vocal fans, and one has to wonder if that's been accompanied by declining skin sales. Odds are strong that there are well-meaning developers pushing for anti-wack skin promises before a sales or marketing department immediately makes them look like chumps, but the fact remains: Trust is low, and we'll believe it when we see it. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVG3W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVG3W.js" async=""></script><p>The frequency and vociferousness of the promises this time around has me optimistic, at least: Activision risks damaging its precious brand to renege at this stage. If you're gonna let people be the epic chicken from Family Guy or something anyway, the smart play would be to not say anything.</p><p>This is a big moment for the CoD empire: Modern Warfare 3 and back-to-back Black Ops entries have proven critical flops, and while they've still sold enough to make any other studio's wildest dreams come true, they've underperformed for the juggernaut series, and fan morale seems to be at a real low. </p><p>This all comes as Microsoft's been eager to see strong profits come from its historic Activision Blizzard purchase, and taking it out on beloved studios when they fail to materialize.</p><p>Modern Warfare 4 also faces a non-trivial obstacle in Xbox's continued status as a <a href="https://bdsmovement.net/news/boycott-microsofts-xbox" target="_blank">target of the Boycott, Divestment, and Sanctions (BDS) movement</a>. BDS has called for consumers to boycott all Microsoft gaming products⁠—including Game Pass and Call of Duty⁠—in response to Microsoft's business relationship with the Israel Defense Forces (IDF).</p><p>Microsoft has instituted a <a href="https://www.pcgamer.com/gaming-industry/microsoft-fires-head-of-israeli-subsidiary-and-other-managers-over-surveillance-of-palestinians/" target="_blank">leadership shakeup at its Israeli subsidiary</a> and <a href="https://www.pcgamer.com/games/microsoft-blocks-israeli-military-from-some-services-after-investigation-finds-evidence-that-supports-allegations-of-mass-surveillance-in-gaza/" target="_blank">canceled a major contract</a> offering cloud service support in the surveillance of Palestinians, but the company is reportedly still keen to renew its other contracts with the IDF.</p><div class="product"><a data-dimension112="ab2715cc-8611-456e-b909-5a4592c2a258" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="ab2715cc-8611-456e-b909-5a4592c2a258" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-yet-again-promises-no-clowny-skins-for-modern-warfare-4-but-weve-been-burned-before/</link>
                                                                            <description>
                            <![CDATA[ Pinky promise. For realsies this time. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZnQfUMkgydNAxZgXFC7GAT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/f8NU8sJk6WZxTmD667tEfA-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 31 May 2026 21:15:22 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ ted.litchfield@futurenet.com (Ted Litchfield) ]]></author>                    <dc:creator><![CDATA[ Ted Litchfield ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8DyQVBz7FCynDY9QiJyH9D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/f8NU8sJk6WZxTmD667tEfA-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Call of Duty&#039;s Ghost looking tired and dejected in split frame with Stan American Dad CoD skin saluting]]></media:description>                                                            <media:text><![CDATA[Call of Duty&#039;s Ghost looking tired and dejected in split frame with Stan American Dad CoD skin saluting]]></media:text>
                                <media:title type="plain"><![CDATA[Call of Duty&#039;s Ghost looking tired and dejected in split frame with Stan American Dad CoD skin saluting]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/f8NU8sJk6WZxTmD667tEfA-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Infinity Ward has once again promised that it will keep its skins and cosmetics thematic and grounded in Call of Duty: Modern Warfare 4, a commitment that it has repeatedly asserted as part of the rollout for this anticipated return of Infinity Ward CoD.</p><p>The promise came as part of <a href="https://x.com/CallofDuty/status/2061114869437624737?s=20" target="_blank">an exchange on X, The Everything App</a>. User Hellz Broadcast Network shared an AI-generated image contrasting the speculative buttoned up, tacticool operator types of Modern Warfare 4's first season with the rainbow-colored, Nerf-armored counterparts players feel are all but inevitable from season 2 onward. The post garnered 23 thousand likes, prompting a response from the official Call of Duty account.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2061114869437624737"><p lang="en" dir="ltr">We got the feedback. No BS. This is all about staying true to Modern Warfare. No clowny skins for launch and seasons beyond.<a href="https://twitter.com/cantworkitout/status/2061114869437624737">May 31, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"We got the feedback. No BS," the official Call of Duty account replied. "This is all about staying true to Modern Warfare. No clowny skins for launch and seasons beyond." This echoes <a href="https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-promises-more-grounded-cosmetics-and-i-feel-like-ive-heard-this-before/" target="_blank">a similar statement</a> from the official Call of Duty account just a few days ago.</p><p>The only problem? <a href="https://www.pcgamer.com/games/fps/activision-finally-acknowledges-call-of-duty-skins-problem-decides-cosmetics-wont-carry-forward-in-black-ops-7-some-of-you-have-said-weve-drifted-from-what-made-call-of-duty-unique-in-the-first-place-that-feedback-hits-home/" target="_blank">Activision said the same thing about last year's Call of Duty: Black Ops 7</a> before introducing <a href="https://www.pcgamer.com/games/fps/after-promising-black-ops-7-skins-would-feel-authentic-to-call-of-duty-and-its-setting-fallout-has-arrived-in-call-of-duty/" target="_blank">premium Fallout TV show skins</a>. The Fortnitification of everything has been getting to us for a long time: Features producer Mollie Taylor <a href="https://www.pcgamer.com/games/battle-royale/the-fortnitification-of-every-videogame-is-really-starting-to-grate-on-me/" target="_blank">wrote about it last August</a>, but news writer Morgan Park has been <a href="https://www.pcgamer.com/every-time-a-new-shooter-launches-i-start-a-countdown-until-it-becomes-a-clown-show-of-brands-and-hideous-skins/" target="_blank">banging this drum since 2023</a>.</p><p>It's become a popular gripe among CoD's most vocal fans, and one has to wonder if that's been accompanied by declining skin sales. Odds are strong that there are well-meaning developers pushing for anti-wack skin promises before a sales or marketing department immediately makes them look like chumps, but the fact remains: Trust is low, and we'll believe it when we see it. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVG3W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVG3W.js" async=""></script><p>The frequency and vociferousness of the promises this time around has me optimistic, at least: Activision risks damaging its precious brand to renege at this stage. If you're gonna let people be the epic chicken from Family Guy or something anyway, the smart play would be to not say anything.</p><p>This is a big moment for the CoD empire: Modern Warfare 3 and back-to-back Black Ops entries have proven critical flops, and while they've still sold enough to make any other studio's wildest dreams come true, they've underperformed for the juggernaut series, and fan morale seems to be at a real low. </p><p>This all comes as Microsoft's been eager to see strong profits come from its historic Activision Blizzard purchase, and taking it out on beloved studios when they fail to materialize.</p><p>Modern Warfare 4 also faces a non-trivial obstacle in Xbox's continued status as a <a href="https://bdsmovement.net/news/boycott-microsofts-xbox" target="_blank">target of the Boycott, Divestment, and Sanctions (BDS) movement</a>. BDS has called for consumers to boycott all Microsoft gaming products⁠—including Game Pass and Call of Duty⁠—in response to Microsoft's business relationship with the Israel Defense Forces (IDF).</p><p>Microsoft has instituted a <a href="https://www.pcgamer.com/gaming-industry/microsoft-fires-head-of-israeli-subsidiary-and-other-managers-over-surveillance-of-palestinians/" target="_blank">leadership shakeup at its Israeli subsidiary</a> and <a href="https://www.pcgamer.com/games/microsoft-blocks-israeli-military-from-some-services-after-investigation-finds-evidence-that-supports-allegations-of-mass-surveillance-in-gaza/" target="_blank">canceled a major contract</a> offering cloud service support in the surveillance of Palestinians, but the company is reportedly still keen to renew its other contracts with the IDF.</p><div class="product"><a data-dimension112="ab2715cc-8611-456e-b909-5a4592c2a258" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="ab2715cc-8611-456e-b909-5a4592c2a258" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty: Modern Warfare 4 promises more 'grounded' cosmetics, and I feel like I've heard this before ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In recent years, <a href="https://www.pcgamer.com/uk/games/fps/call-of-duty/" target="_blank">Call of Duty</a> has been suffering from <a href="https://www.pcgamer.com/games/battle-royale/the-fortnitification-of-every-videogame-is-really-starting-to-grate-on-me/" target="_blank">what I lamented last year to be a severe case of Fortnitification</a>—you know, just about every game you know and love amalgamating and morphing into a multimedia glob where some bozo from a TV show can gun down a real-life celebrity and then proceed to be revived by their teammate donning the skin of some anime protagonist.</p><p>While I don't exactly mind it in Fortnite, it always felt that little bit off in Call of Duty. Something doesn't sit right with me about setting up my loadout on Nicki Minaj, or a frighteningly realistic Levi Ackerman doing a 360 no-scope. I certainly cannot grasp what the hell Skeletor is doing there.</p><p>Well, it looks like Infinity Ward wants to walk back some of that baffling incoherence with Modern Warfare 4, which was revealed earlier this week. "Every aspect of Modern Warfare 4 is anchored in the game's narrative," a post from the <a href="https://x.com/InfinityWard/status/2060108836116349291?s=20" target="_blank">Infinity Ward X account</a> reads. "Every feature, every decision needs to feel authentic to what Modern Warfare is, and that includes cosmetics and collabs. We're committed to keeping it grounded and transparent, and we want to hear from you on what you'd like to see in our game."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2060108836116349291"><p lang="en" dir="ltr">Every aspect of Modern Warfare 4 is anchored in the game's narrative. Every feature, every decision needs to feel authentic to what Modern Warfare is, and that includes cosmetics and collabs. We're committed to keeping it grounded and transparent, and we want to hear from you on… pic.twitter.com/6hwcX9bWt1<a href="https://twitter.com/cantworkitout/status/2060108836116349291">May 28, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>That sounds like it's not ruling out collaborations entirely, mind. There's still room for some of that delicious crossover money to be made. But it seems like Infinity Ward is being more mindful about ensuring that whatever makes its way into the game is more tonally appropriate. Rather than, you know, Beavis and Butthead sniping you. For what reason? I don't know, man. I love Beavis and Butthead but I am perfectly okay with them not being Cornholio or needing TP for their bungholes anywhere near my shooters.</p><p>Of course, this isn't the first time we've heard this. Activision said essentially the same thing about Black Ops 7 in 2025, <a href="https://www.pcgamer.com/games/fps/activision-finally-acknowledges-call-of-duty-skins-problem-decides-cosmetics-wont-carry-forward-in-black-ops-7-some-of-you-have-said-weve-drifted-from-what-made-call-of-duty-unique-in-the-first-place-that-feedback-hits-home/" target="_blank">acknowledging complaints about Call of Duty skins</a> and promising that skins will "be crafted to fit in the Black Ops identity." Five months later, <a href="https://www.pcgamer.com/games/fps/after-promising-black-ops-7-skins-would-feel-authentic-to-call-of-duty-and-its-setting-fallout-has-arrived-in-call-of-duty/">Fallout arrived</a>.</p><p>You'll be able to enjoy this more modern, transparent entry into the Call of Duty series when Modern Warfare drops on October 23 later this year. Our very own FPS fanatic Morgan Park got <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/" target="_blank">some time with the multiplayer mode</a> recently, and while he's "not convinced it's a major leap forward" for the series, he's "confident that Modern Warfare 4 will be the best-playing Call of Duty in years."</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-modern-warfare-4-promises-more-grounded-cosmetics-and-i-feel-like-ive-heard-this-before/</link>
                                                                            <description>
                            <![CDATA[ Find TP for your bunghole anywhere but in COD. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">BUbMnwgC3nsaA8VNFsYQJa</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/KrRzBnayqiRFf2muv3iRcC-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 29 May 2026 16:23:21 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Mollie Taylor ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/W9VNF2qWSreZXDkwcVR2tF-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/KrRzBnayqiRFf2muv3iRcC-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Nicki Minaj in Call of Duty]]></media:description>                                                            <media:text><![CDATA[Nicki Minaj in Call of Duty]]></media:text>
                                <media:title type="plain"><![CDATA[Nicki Minaj in Call of Duty]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/KrRzBnayqiRFf2muv3iRcC-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In recent years, <a href="https://www.pcgamer.com/uk/games/fps/call-of-duty/" target="_blank">Call of Duty</a> has been suffering from <a href="https://www.pcgamer.com/games/battle-royale/the-fortnitification-of-every-videogame-is-really-starting-to-grate-on-me/" target="_blank">what I lamented last year to be a severe case of Fortnitification</a>—you know, just about every game you know and love amalgamating and morphing into a multimedia glob where some bozo from a TV show can gun down a real-life celebrity and then proceed to be revived by their teammate donning the skin of some anime protagonist.</p><p>While I don't exactly mind it in Fortnite, it always felt that little bit off in Call of Duty. Something doesn't sit right with me about setting up my loadout on Nicki Minaj, or a frighteningly realistic Levi Ackerman doing a 360 no-scope. I certainly cannot grasp what the hell Skeletor is doing there.</p><p>Well, it looks like Infinity Ward wants to walk back some of that baffling incoherence with Modern Warfare 4, which was revealed earlier this week. "Every aspect of Modern Warfare 4 is anchored in the game's narrative," a post from the <a href="https://x.com/InfinityWard/status/2060108836116349291?s=20" target="_blank">Infinity Ward X account</a> reads. "Every feature, every decision needs to feel authentic to what Modern Warfare is, and that includes cosmetics and collabs. We're committed to keeping it grounded and transparent, and we want to hear from you on what you'd like to see in our game."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2060108836116349291"><p lang="en" dir="ltr">Every aspect of Modern Warfare 4 is anchored in the game's narrative. Every feature, every decision needs to feel authentic to what Modern Warfare is, and that includes cosmetics and collabs. We're committed to keeping it grounded and transparent, and we want to hear from you on… pic.twitter.com/6hwcX9bWt1<a href="https://twitter.com/cantworkitout/status/2060108836116349291">May 28, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>That sounds like it's not ruling out collaborations entirely, mind. There's still room for some of that delicious crossover money to be made. But it seems like Infinity Ward is being more mindful about ensuring that whatever makes its way into the game is more tonally appropriate. Rather than, you know, Beavis and Butthead sniping you. For what reason? I don't know, man. I love Beavis and Butthead but I am perfectly okay with them not being Cornholio or needing TP for their bungholes anywhere near my shooters.</p><p>Of course, this isn't the first time we've heard this. Activision said essentially the same thing about Black Ops 7 in 2025, <a href="https://www.pcgamer.com/games/fps/activision-finally-acknowledges-call-of-duty-skins-problem-decides-cosmetics-wont-carry-forward-in-black-ops-7-some-of-you-have-said-weve-drifted-from-what-made-call-of-duty-unique-in-the-first-place-that-feedback-hits-home/" target="_blank">acknowledging complaints about Call of Duty skins</a> and promising that skins will "be crafted to fit in the Black Ops identity." Five months later, <a href="https://www.pcgamer.com/games/fps/after-promising-black-ops-7-skins-would-feel-authentic-to-call-of-duty-and-its-setting-fallout-has-arrived-in-call-of-duty/">Fallout arrived</a>.</p><p>You'll be able to enjoy this more modern, transparent entry into the Call of Duty series when Modern Warfare drops on October 23 later this year. Our very own FPS fanatic Morgan Park got <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/" target="_blank">some time with the multiplayer mode</a> recently, and while he's "not convinced it's a major leap forward" for the series, he's "confident that Modern Warfare 4 will be the best-playing Call of Duty in years."</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 4 years later, Infinity Ward reflects on Call of Duty: Modern Warfare 2's controversial changes: 'It came at the cost of feel and fun' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It's the fall of 2022, and everyone is reacting to the Call of Duty: Modern Warfare 2 open beta. Infinity Ward's reboot sequel made a lot of movement changes that seemed subtle, but angered a lot of folks. The idea was to make Call of Duty more deliberate and consistent by slowing down the action: unintended movement techniques were stifled, silenced weapons were hidden from minimap pings, and red nametags were gone.</p><p><a href="https://www.pcgamer.com/call-of-duty-is-changing-for-the-better-but-its-loudest-fans-arent-happy-about-it/">I liked it</a>. Most people didn't have a strong opinion about it. But Call of Duty's most active players resoundingly rejected it. Infinity Ward would eventually reverse some of these changes before launch, and the next year's Modern Warfare 3 (developed by a different team) scored points by moving in the opposite direction.</p><p>Speaking to PC Gamer in Los Angeles last week, Infinity Ward devs reflected on the gameplay changes that have come to define Modern Warfare 2's reputation.</p><p>"In Modern Warfare 2, we made some changes that were maybe healthier for the game and the way it played, but created friction and removed fun for some players," said multiplayer creative director Joe Cecot.</p><p>"What we had pushed on was to make the game feel more tactical," added multiplayer design lead Jack Reynolds, "but I think it came at the cost of some of the feel and some of the fun."</p><p>It's those learnings that informed Modern Warfare 4's revamped movement. Infinity Ward isn't bringing over wall bouncing or omnimovement from the last two Black Ops games, but it is embracing fluidity in sprinting, sliding, climbing, and mantling. Traditional mechanics, like red dot spotting on the minimap, are back. It's about refinement, not reinvention.</p><p>"What we tried to do when building [Modern Warfare 4] is take these points of friction that make the game feel off or sluggish and improve on them—rebuild them from the ground up so that you get that fluidity and that feel back, while also maintaining the kind of grit, the groundedness, and the tactical play that we are known for," said Reynolds.</p><p>Some of those changes, according to Cecot, were the result of Modern Warfare 3.</p><p>"I think that some of the changes that Modern Warfare 3 made actually felt good, and so we took a step back, looked at where we had gone from MW2019 to MW2 and said we really want to make mantle feel good, not just faster. So we rewrote the mantle system and made sure that, one: Now it maintains your momentum, two: You can now strafe in it, and three: You can now mantle right into slide. We pushed hard toward making it feel like an extension of movement—like you never lost control."</p><p>I tried Modern Warfare 4's rebuilt movement for myself, and while a <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">handful of matches</a> wasn't enough to fully judge the results, I did notice an emphasis on momentum. Getting around is effortless and cool. But my crowd was undeniably casual—the true test will be that inevitable open beta later this year, when the actual movement sickos enter the ring.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVG3W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVG3W.js" async=""></script><div class="product"><a data-dimension112="13426170-142b-4523-966d-7949efe527b0" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="13426170-142b-4523-966d-7949efe527b0" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/4-years-later-infinity-ward-reflects-on-call-of-duty-modern-warfare-2s-controversial-changes-it-came-at-the-cost-of-feel-and-fun/</link>
                                                                            <description>
                            <![CDATA[ Infinity Ward 'rewrote' its traversal systems after the response to Modern Warfare 3. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9xqgFRBVsMWseuevse4fTZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Mfm9mvTkJtZyWkoMKJxXtX-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 28 May 2026 19:26:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Mfm9mvTkJtZyWkoMKJxXtX-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[modern warfare 4]]></media:description>                                                            <media:text><![CDATA[modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Mfm9mvTkJtZyWkoMKJxXtX-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It's the fall of 2022, and everyone is reacting to the Call of Duty: Modern Warfare 2 open beta. Infinity Ward's reboot sequel made a lot of movement changes that seemed subtle, but angered a lot of folks. The idea was to make Call of Duty more deliberate and consistent by slowing down the action: unintended movement techniques were stifled, silenced weapons were hidden from minimap pings, and red nametags were gone.</p><p><a href="https://www.pcgamer.com/call-of-duty-is-changing-for-the-better-but-its-loudest-fans-arent-happy-about-it/">I liked it</a>. Most people didn't have a strong opinion about it. But Call of Duty's most active players resoundingly rejected it. Infinity Ward would eventually reverse some of these changes before launch, and the next year's Modern Warfare 3 (developed by a different team) scored points by moving in the opposite direction.</p><p>Speaking to PC Gamer in Los Angeles last week, Infinity Ward devs reflected on the gameplay changes that have come to define Modern Warfare 2's reputation.</p><p>"In Modern Warfare 2, we made some changes that were maybe healthier for the game and the way it played, but created friction and removed fun for some players," said multiplayer creative director Joe Cecot.</p><p>"What we had pushed on was to make the game feel more tactical," added multiplayer design lead Jack Reynolds, "but I think it came at the cost of some of the feel and some of the fun."</p><p>It's those learnings that informed Modern Warfare 4's revamped movement. Infinity Ward isn't bringing over wall bouncing or omnimovement from the last two Black Ops games, but it is embracing fluidity in sprinting, sliding, climbing, and mantling. Traditional mechanics, like red dot spotting on the minimap, are back. It's about refinement, not reinvention.</p><p>"What we tried to do when building [Modern Warfare 4] is take these points of friction that make the game feel off or sluggish and improve on them—rebuild them from the ground up so that you get that fluidity and that feel back, while also maintaining the kind of grit, the groundedness, and the tactical play that we are known for," said Reynolds.</p><p>Some of those changes, according to Cecot, were the result of Modern Warfare 3.</p><p>"I think that some of the changes that Modern Warfare 3 made actually felt good, and so we took a step back, looked at where we had gone from MW2019 to MW2 and said we really want to make mantle feel good, not just faster. So we rewrote the mantle system and made sure that, one: Now it maintains your momentum, two: You can now strafe in it, and three: You can now mantle right into slide. We pushed hard toward making it feel like an extension of movement—like you never lost control."</p><p>I tried Modern Warfare 4's rebuilt movement for myself, and while a <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/">handful of matches</a> wasn't enough to fully judge the results, I did notice an emphasis on momentum. Getting around is effortless and cool. But my crowd was undeniably casual—the true test will be that inevitable open beta later this year, when the actual movement sickos enter the ring.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVG3W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVG3W.js" async=""></script><div class="product"><a data-dimension112="13426170-142b-4523-966d-7949efe527b0" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="13426170-142b-4523-966d-7949efe527b0" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I played Modern Warfare 4 at Infinity Ward, let's talk about it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>This year's Call of Duty is, officially, Modern Warfare 4. It takes place <a href="https://www.pcgamer.com/games/call-of-duty/the-next-call-of-duty-is-modern-warfare-4-infinity-wards-first-game-in-4-years" target="_blank">primarily in South Korea</a>, it'll have a regular campaign, and they're bringing back the DMZ extraction mode. But for many, Modern Warfare 4 is significant for one big reason: This is the first Infinity Ward game in four years.</p><p>That's the longest that the original Call of Duty makers have gone without making their mark on the series, and a lot has happened in the years between: Activision became an organ of Microsoft, which has been hard at work destroying its reputation with <a href="https://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/">full-breathed AI mania</a> and <a href="https://www.pcgamer.com/gaming-industry/microsoft-fires-head-of-israeli-subsidiary-and-other-managers-over-surveillance-of-palestinians/">cooperation with Israel's genocide in Gaza</a>. All the while, Call of Duty has fallen into another rut: Modern Warfare 3 was an unpopular, rushed sequel made by a different team. That was followed by Black Ops 6, which was well-liked, but its own quick followup Black Ops 7 immediately squandered that goodwill. </p><p>Those factors leave Infinity Ward in a similar situation as it was in 2019, when Call of Duty's relevance was waning and its Modern Warfare reboot singlehandedly revitalized the series. Will Modern Warfare 4 do it again? After 90 minutes with its multiplayer, I'm not convinced it's a major leap forward, but I am confident that Modern Warfare 4 will be the best-playing Call of Duty in years. A few quickfire topics from my demo:</p><h2 id="gunplay-sublime">Gunplay: Sublime</h2><p>When it comes to the little things that are important to longtime fans, they're nailing it. Modern Warfare 4's audio, animations, and feedback are exceptional. I shot a revolver that was so loud that I flinched in my seat. Later, I test drove a bolt-action rifle so bassy and powerful that I temporarily became a sniper guy. Sometimes the yearly Call of Duty grind can get boring. I don't care about camos or stickers or even prestige, so for me, it's the fundamentals that elevate an FPS and keep things interesting for dozens of hours. I'm going to max out the revolver because it's exciting to shoot, not because of a checklist.</p><p>In terms of raw FPS craft, this is immediately head and shoulders above the previous pair of Black Ops—games that look and sound fine. It <a href="https://www.pcgamer.com/games/call-of-duty/the-call-of-duty-schism-why-fans-are-trapped-in-a-forever-war-with-each-other/">really does matter who makes Call of Duty</a>.</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="A43L8bTi4yUd3nxpB75i3H" name="mw5" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/A43L8bTi4yUd3nxpB75i3H-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="apex-attachments-very-cool">Apex attachments: Very cool</h2><p>Modern Warfare is finally embracing attachments that actually change a gun's identity. Similar to Black Ops 7's prestige attachments, apex attachments are sidegrades unique to each gun that unlock when it's fully leveled up. Each gun has at least one apex attachment, but some have two.</p><p>They're kinda wild. Examples include:</p><ul><li>A shotgun with explosive rounds</li><li>A revolver with a grip that lets you fan the hammer</li><li>A sniper rifle with side-mounted throwing knives that you "flick" at players</li><li>A prototype North Korean silenced SMG that's quieter than anything else in the game</li><li>An airburst launcher for the AK that can kill behind cover</li><li>An SMG conversion mod for the M4 that brings back the P90-style magazine from MW2</li><li>Ammo that spots enemies</li></ul><div><blockquote><p>Literally anything, that makes attachments more meaningful than moving sliders up and down is a positive change.</p></blockquote></div><p>Anything, literally <em>anything</em>, that makes attachments more meaningful than moving sliders up and down is a positive change, though I'm bummed that unlocking even one of these requires using a gun for a long time. They were all unlocked in the demo build and it was a blast to goof around with the airburst AK and the cowboy-style revolver. I also love that these attachments are designed for the specific weapons they were made for—a choice that could give guns a role beyond their weapon class. Apex attachments use their own slot in Gunsmith, so you won't have to sacrifice your favorite stock or sight unless there's an unavoidable conflict (like the attachment is itself a sight).</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="s2XnwRHV5tEWFPFc5VSMWH" name="mw9" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/s2XnwRHV5tEWFPFc5VSMWH-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="movement-fluid-but-maybe-too-fast">Movement: Fluid but maybe too fast</h2><p>Infinity Ward talked a lot about movement. It feels so long ago now that we were all arguing about sprint speeds and slide cancelling in Modern Warfare 2, and the studio has been reckoning with that feedback behind the scenes for years. The result is a faster and less restrictive movement system than its last game—something closer to Sledgehammer's adjustments in Modern Warfare 3—but nothing as drastic or athletic as Treyarch's omnimovement.</p><p>Mantling is now extremely fast and fluid, so toppling over cars or climbing low walls now barely slows you down. Sprinting out of slides is smoother, and Modern Warfare 4 should be kinder to those who've gotten used to jumping or sliding around corners. That all sounds like a step in the wrong direction, personally—Call of Duty's map design and heavy aim assist make these techniques more annoying than expressive—but they weren't on display in my room of mostly press.</p><h2 id="maps-meh">Maps: Meh</h2><p>Pretty, but otherwise exactly what you'd expect. We played a handful of the 6v6 maps launching with Modern Warfare 4 plus one special Gunfight map with sections that change from round to round (more on that below). The standard maps followed Call of Duty's tired three-lane formula with only glimpses of verticality. Still, they at least feel closer to real places than Treyarch's maps tend to.</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="52NhDQEhJiYLUymK2daJ3H" name="mw1" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/52NhDQEhJiYLUymK2daJ3H-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="10v10-gunfight">10v10 Gunfight: 👍</h2><div><blockquote><p>You never know when the center of the battlefield will suddenly be Crash from Call of Duty 4, or Killhouse, or a bunch of World War 1 trenches.</p></blockquote></div><p>Like it says on the tin, it's Gunfight with bigger teams on bigger maps. Teams spawn with identical loadouts for single-life elimination rounds—clear the other team or capture a flag at the center to win. Gunfight might be the single best side mode Call of Duty has produced in a decade and it scales up well. </p><p>This is where we got to try Kill Block, a map broken up into one-third chunks that change between rounds. Many of these map chunks are based on classic Modern Warfare maps, so you never know when the center of the battlefield will suddenly be Crash from Call of Duty 4, or Killhouse, or a bunch of World War 1 trenches. It's a neat idea, and it apparently supports over 500 combinations. Infinity Ward mentioned that Kill Block will be used for more than just Gunfight.</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="xr5MJdUCHWqzhVjSnBwhuG" name="mw4" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/xr5MJdUCHWqzhVjSnBwhuG-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="details-fov-depth-of-field-muzzle-smoke-hipfire">Details: FOV, depth of field, muzzle smoke, hipfire</h2><p>A surprisingly large stretch of Infinity Ward's presentation was focused on relatively small quality-of-life updates that were possible because of Modern Warfare 4's extra dev time. If they hadn't pointed this stuff out specifically, I'm not sure I would've noticed:</p><p><strong>Enhanced FOV:</strong> This wasn't in the demo, but apparently Modern Warfare 4 will pull some camera trickery so players will benefit from the spatial awareness of a high FOV without making targets smaller on screen as a result.</p><p><strong>Depth of field:</strong> Infinity Ward admitted that most CoD players turn off depth of field because the blurring effect on iron sights can also obscure targets. No longer: They've adjusted the effect so it doesn't do that, which sounds more like a bug fix to me.</p><p><strong>Muzzle smoke/flash:</strong> Folks complained that Modern Warfare's muzzle flashes and smoke are too big and get in the way of accuracy, so now muzzle flash and smoke will subtly disappear at the center of the view to keep sightlines clear.</p><p><strong>Hipfire:</strong> This one was a bit confusing. Infinity Ward says Modern Warfare 4 won't have recoil bloom. Bullets will always go where the gun is pointing. That made me think that maybe hipfire will be more accurate overall, but in practice, this seems to be largely a visual change: hipfire is as inaccurate as ever (subject to attachments), but your on-screen model will now always match where the bullets end up. Essentially, your gun shakes wildly to better communicate what's happening with recoil, which does make underbarrel lasers more useful.</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="FVXuDUaajdxkJnM6oi77BH" name="mw7" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/FVXuDUaajdxkJnM6oi77BH-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="loadouts-one-change-i-love">Loadouts: One change I love</h2><p>In Modern Warfare fashion, loadouts have been simplified since last year. Guns take five attachments, all of which have positives and negatives. It's a standard three perk system with no combo abilities or wildcards. </p><p>The only change worth calling out is one I'm surprised hasn't happened until now: both killstreaks and operator skins are equipped per-class. That means you can design a loadout around stealth, support play, or whatever, and then pick skin that matches it. It's a minor thing, but I can see the personalization making my classes feel more custom.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it/</link>
                                                                            <description>
                            <![CDATA[ 90 minutes with Call of Duty: Modern Warfare 4 multiplayer. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">vrFMYBCPBWwmWrsgkP7kL4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Npybiax8a2CYL3h89CFfuG-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 28 May 2026 15:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Npybiax8a2CYL3h89CFfuG-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[modern warfare 4]]></media:description>                                                            <media:text><![CDATA[modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Npybiax8a2CYL3h89CFfuG-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>This year's Call of Duty is, officially, Modern Warfare 4. It takes place <a href="https://www.pcgamer.com/games/call-of-duty/the-next-call-of-duty-is-modern-warfare-4-infinity-wards-first-game-in-4-years" target="_blank">primarily in South Korea</a>, it'll have a regular campaign, and they're bringing back the DMZ extraction mode. But for many, Modern Warfare 4 is significant for one big reason: This is the first Infinity Ward game in four years.</p><p>That's the longest that the original Call of Duty makers have gone without making their mark on the series, and a lot has happened in the years between: Activision became an organ of Microsoft, which has been hard at work destroying its reputation with <a href="https://www.pcgamer.com/software/ai/microsofts-head-of-ai-doesnt-understand-why-people-dont-like-ai-and-i-dont-understand-why-he-doesnt-understand-because-its-pretty-obvious/">full-breathed AI mania</a> and <a href="https://www.pcgamer.com/gaming-industry/microsoft-fires-head-of-israeli-subsidiary-and-other-managers-over-surveillance-of-palestinians/">cooperation with Israel's genocide in Gaza</a>. All the while, Call of Duty has fallen into another rut: Modern Warfare 3 was an unpopular, rushed sequel made by a different team. That was followed by Black Ops 6, which was well-liked, but its own quick followup Black Ops 7 immediately squandered that goodwill. </p><p>Those factors leave Infinity Ward in a similar situation as it was in 2019, when Call of Duty's relevance was waning and its Modern Warfare reboot singlehandedly revitalized the series. Will Modern Warfare 4 do it again? After 90 minutes with its multiplayer, I'm not convinced it's a major leap forward, but I am confident that Modern Warfare 4 will be the best-playing Call of Duty in years. A few quickfire topics from my demo:</p><h2 id="gunplay-sublime">Gunplay: Sublime</h2><p>When it comes to the little things that are important to longtime fans, they're nailing it. Modern Warfare 4's audio, animations, and feedback are exceptional. I shot a revolver that was so loud that I flinched in my seat. Later, I test drove a bolt-action rifle so bassy and powerful that I temporarily became a sniper guy. Sometimes the yearly Call of Duty grind can get boring. I don't care about camos or stickers or even prestige, so for me, it's the fundamentals that elevate an FPS and keep things interesting for dozens of hours. I'm going to max out the revolver because it's exciting to shoot, not because of a checklist.</p><p>In terms of raw FPS craft, this is immediately head and shoulders above the previous pair of Black Ops—games that look and sound fine. It <a href="https://www.pcgamer.com/games/call-of-duty/the-call-of-duty-schism-why-fans-are-trapped-in-a-forever-war-with-each-other/">really does matter who makes Call of Duty</a>.</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="A43L8bTi4yUd3nxpB75i3H" name="mw5" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/A43L8bTi4yUd3nxpB75i3H-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="apex-attachments-very-cool">Apex attachments: Very cool</h2><p>Modern Warfare is finally embracing attachments that actually change a gun's identity. Similar to Black Ops 7's prestige attachments, apex attachments are sidegrades unique to each gun that unlock when it's fully leveled up. Each gun has at least one apex attachment, but some have two.</p><p>They're kinda wild. Examples include:</p><ul><li>A shotgun with explosive rounds</li><li>A revolver with a grip that lets you fan the hammer</li><li>A sniper rifle with side-mounted throwing knives that you "flick" at players</li><li>A prototype North Korean silenced SMG that's quieter than anything else in the game</li><li>An airburst launcher for the AK that can kill behind cover</li><li>An SMG conversion mod for the M4 that brings back the P90-style magazine from MW2</li><li>Ammo that spots enemies</li></ul><div><blockquote><p>Literally anything, that makes attachments more meaningful than moving sliders up and down is a positive change.</p></blockquote></div><p>Anything, literally <em>anything</em>, that makes attachments more meaningful than moving sliders up and down is a positive change, though I'm bummed that unlocking even one of these requires using a gun for a long time. They were all unlocked in the demo build and it was a blast to goof around with the airburst AK and the cowboy-style revolver. I also love that these attachments are designed for the specific weapons they were made for—a choice that could give guns a role beyond their weapon class. Apex attachments use their own slot in Gunsmith, so you won't have to sacrifice your favorite stock or sight unless there's an unavoidable conflict (like the attachment is itself a sight).</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="s2XnwRHV5tEWFPFc5VSMWH" name="mw9" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/s2XnwRHV5tEWFPFc5VSMWH-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="movement-fluid-but-maybe-too-fast">Movement: Fluid but maybe too fast</h2><p>Infinity Ward talked a lot about movement. It feels so long ago now that we were all arguing about sprint speeds and slide cancelling in Modern Warfare 2, and the studio has been reckoning with that feedback behind the scenes for years. The result is a faster and less restrictive movement system than its last game—something closer to Sledgehammer's adjustments in Modern Warfare 3—but nothing as drastic or athletic as Treyarch's omnimovement.</p><p>Mantling is now extremely fast and fluid, so toppling over cars or climbing low walls now barely slows you down. Sprinting out of slides is smoother, and Modern Warfare 4 should be kinder to those who've gotten used to jumping or sliding around corners. That all sounds like a step in the wrong direction, personally—Call of Duty's map design and heavy aim assist make these techniques more annoying than expressive—but they weren't on display in my room of mostly press.</p><h2 id="maps-meh">Maps: Meh</h2><p>Pretty, but otherwise exactly what you'd expect. We played a handful of the 6v6 maps launching with Modern Warfare 4 plus one special Gunfight map with sections that change from round to round (more on that below). The standard maps followed Call of Duty's tired three-lane formula with only glimpses of verticality. Still, they at least feel closer to real places than Treyarch's maps tend to.</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="52NhDQEhJiYLUymK2daJ3H" name="mw1" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/52NhDQEhJiYLUymK2daJ3H-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="10v10-gunfight">10v10 Gunfight: 👍</h2><div><blockquote><p>You never know when the center of the battlefield will suddenly be Crash from Call of Duty 4, or Killhouse, or a bunch of World War 1 trenches.</p></blockquote></div><p>Like it says on the tin, it's Gunfight with bigger teams on bigger maps. Teams spawn with identical loadouts for single-life elimination rounds—clear the other team or capture a flag at the center to win. Gunfight might be the single best side mode Call of Duty has produced in a decade and it scales up well. </p><p>This is where we got to try Kill Block, a map broken up into one-third chunks that change between rounds. Many of these map chunks are based on classic Modern Warfare maps, so you never know when the center of the battlefield will suddenly be Crash from Call of Duty 4, or Killhouse, or a bunch of World War 1 trenches. It's a neat idea, and it apparently supports over 500 combinations. Infinity Ward mentioned that Kill Block will be used for more than just Gunfight.</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="xr5MJdUCHWqzhVjSnBwhuG" name="mw4" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/xr5MJdUCHWqzhVjSnBwhuG-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="details-fov-depth-of-field-muzzle-smoke-hipfire">Details: FOV, depth of field, muzzle smoke, hipfire</h2><p>A surprisingly large stretch of Infinity Ward's presentation was focused on relatively small quality-of-life updates that were possible because of Modern Warfare 4's extra dev time. If they hadn't pointed this stuff out specifically, I'm not sure I would've noticed:</p><p><strong>Enhanced FOV:</strong> This wasn't in the demo, but apparently Modern Warfare 4 will pull some camera trickery so players will benefit from the spatial awareness of a high FOV without making targets smaller on screen as a result.</p><p><strong>Depth of field:</strong> Infinity Ward admitted that most CoD players turn off depth of field because the blurring effect on iron sights can also obscure targets. No longer: They've adjusted the effect so it doesn't do that, which sounds more like a bug fix to me.</p><p><strong>Muzzle smoke/flash:</strong> Folks complained that Modern Warfare's muzzle flashes and smoke are too big and get in the way of accuracy, so now muzzle flash and smoke will subtly disappear at the center of the view to keep sightlines clear.</p><p><strong>Hipfire:</strong> This one was a bit confusing. Infinity Ward says Modern Warfare 4 won't have recoil bloom. Bullets will always go where the gun is pointing. That made me think that maybe hipfire will be more accurate overall, but in practice, this seems to be largely a visual change: hipfire is as inaccurate as ever (subject to attachments), but your on-screen model will now always match where the bullets end up. Essentially, your gun shakes wildly to better communicate what's happening with recoil, which does make underbarrel lasers more useful.</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="FVXuDUaajdxkJnM6oi77BH" name="mw7" alt="modern warfare 4" src="https://cdn.mos.cms.futurecdn.net/FVXuDUaajdxkJnM6oi77BH-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="loadouts-one-change-i-love">Loadouts: One change I love</h2><p>In Modern Warfare fashion, loadouts have been simplified since last year. Guns take five attachments, all of which have positives and negatives. It's a standard three perk system with no combo abilities or wildcards. </p><p>The only change worth calling out is one I'm surprised hasn't happened until now: both killstreaks and operator skins are equipped per-class. That means you can design a loadout around stealth, support play, or whatever, and then pick skin that matches it. It's a minor thing, but I can see the personalization making my classes feel more custom.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The next Call of Duty is Modern Warfare 4, Infinity Ward's first game in 4 years ]]></title>
                                                                                                <dc:content><![CDATA[ <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/jLbst85USN8" allowfullscreen=""></iframe></div></div><p>It's that time of year again. The sun is out, air conditioners are on, and the next Call of Duty is public knowledge. Activision announced that this year's game is, as we suspected, Modern Warfare 4. This is the first Infinity Ward-led Call of Duty in four years—a fact that matters to longtime fans who prefer the studio's approach to military shooters.</p><p>In a room full of press at the Infinity Ward offices last week, studio heads Mark Grigsby and Jack O'Hara introduced Modern Warfare 4's primary settings: North and South Korea. The campaign follows a squad of South Korean marines (plus one embedded American) in a "zero to hero" story in the wake of a North Korean invasion of Seoul. Grigsby and O'Hara were influenced by their love of Korean rap (featured prominently in trailers), and more broadly the spread of Korean culture, citing the popularity of Korean cinema and music in the West. </p><p>"Our cultures are melding and there's a lot of references there for all of us," O'Hara said. "But the curious thing about North Korea and South Korea is they have been deadlocked since the Korean War."</p><p>The next slide showed a map of the North/South Korean border illustrating the dozens of artillery batteries pointed at the city of Seoul at all times. This is the next iteration of Infinity Ward's "ripped from the headlines" approach to campaigns. That has often proven a double-edged sword for Infinity Ward, whose fast-and-loose depictions of reality once led it to <a href="https://www.polygon.com/2019/10/30/20938550/call-of-duty-modern-warfare-highway-of-death-controversy/">recast blame for an American war crime</a>. Perhaps in an attempt to temper Modern Warfare's edgy reputation, O'Hara expanded further on the mantra:</p><p>"We want to make sure that we live in this pocket that we call 'ripped from the headlines' when it comes to our universe. What that means is, when you see our game, you should feel like it could be in the headlines, not necessarily that it came from the headlines, but it could be."</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/s2XnwRHV5tEWFPFc5VSMWH-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/FVXuDUaajdxkJnM6oi77BH-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/RfQr9jdqBngFetCg6i9r6H-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/wdU5kba38ycWMHwSKPN45H-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/A43L8bTi4yUd3nxpB75i3H-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/52NhDQEhJiYLUymK2daJ3H-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/xr5MJdUCHWqzhVjSnBwhuG-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Npybiax8a2CYL3h89CFfuG-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure></figure><p>It also wouldn't be Modern Warfare without Captain Price, who reenters the story on the run after executing a general at the end of Modern Warfare 3. I wouldn't blame you for forgetting or never seeing that major plot development, as <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-3-2023-review/">Modern Warfare 3</a> was widely considered a low point for the series.</p><p>During the campaign presentation, some talking points seemed indirectly aimed at the unpopular 2023 sequel Infinity Ward did not make (it was actually developed primarily by Sledgehammer Games), as well as Black Ops 7's co-op campaign that was criticized for playing more like a series of Zombies arenas than a traditional Call of Duty adventure. O'Hara walked us through the premise of each of its dozen-plus campaign missions (including several spoilers), as if to communicate that Modern Warfare 4 will have a normal, linear story mode.</p><p>I also played around 90 minutes of Modern Warfare 4 multiplayer, which you can <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it" target="_blank">read about in full</a>. Long story short: Infinity Ward is picking up where it left off in 2022. Ominimovement is gone. Wall-jumps are out. The audio is unbelievable, animation is top-notch, and they've sped up mantling and sliding to make twitchy players happy (boo). It's fun, but not at all surprising.</p><p>The third big mode of Modern Warfare 4 is a proper sequel to DMZ, Call of Duty's extraction mode that debuted in Modern Warfare 2 (2022). Activision is staying tight-lipped on details for now, but describes the mode as a "living combat sandbox" with "changing weather, dynamic military objectives, and hostile forces moving throughout the zone."</p><p>Modern Warfare 4 is out on October 23. That's a perfectly normal week to release Call of Duty, though this year it has the added significance of being a full month before the release of Grand Theft Auto 6.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVG3W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVG3W.js" async=""></script><div class="product"><a data-dimension112="79c5fea6-4481-48ca-aa33-0313fc6e3a9f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="79c5fea6-4481-48ca-aa33-0313fc6e3a9f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/the-next-call-of-duty-is-modern-warfare-4-infinity-wards-first-game-in-4-years/</link>
                                                                            <description>
                            <![CDATA[ Infinity Ward sleeps no longer. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">YZ3hFnK59ygEFHZdg5pi4F</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YeudBGcnGtMdQHmXzd4r7H-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 28 May 2026 15:00:00 +0000</pubDate>                                                                                                                                <updated>Thu, 28 May 2026 16:41:49 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YeudBGcnGtMdQHmXzd4r7H-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[modern warfare 4]]></media:description>                                                            <media:text><![CDATA[modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YeudBGcnGtMdQHmXzd4r7H-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <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/jLbst85USN8" allowfullscreen=""></iframe></div></div><p>It's that time of year again. The sun is out, air conditioners are on, and the next Call of Duty is public knowledge. Activision announced that this year's game is, as we suspected, Modern Warfare 4. This is the first Infinity Ward-led Call of Duty in four years—a fact that matters to longtime fans who prefer the studio's approach to military shooters.</p><p>In a room full of press at the Infinity Ward offices last week, studio heads Mark Grigsby and Jack O'Hara introduced Modern Warfare 4's primary settings: North and South Korea. The campaign follows a squad of South Korean marines (plus one embedded American) in a "zero to hero" story in the wake of a North Korean invasion of Seoul. Grigsby and O'Hara were influenced by their love of Korean rap (featured prominently in trailers), and more broadly the spread of Korean culture, citing the popularity of Korean cinema and music in the West. </p><p>"Our cultures are melding and there's a lot of references there for all of us," O'Hara said. "But the curious thing about North Korea and South Korea is they have been deadlocked since the Korean War."</p><p>The next slide showed a map of the North/South Korean border illustrating the dozens of artillery batteries pointed at the city of Seoul at all times. This is the next iteration of Infinity Ward's "ripped from the headlines" approach to campaigns. That has often proven a double-edged sword for Infinity Ward, whose fast-and-loose depictions of reality once led it to <a href="https://www.polygon.com/2019/10/30/20938550/call-of-duty-modern-warfare-highway-of-death-controversy/">recast blame for an American war crime</a>. Perhaps in an attempt to temper Modern Warfare's edgy reputation, O'Hara expanded further on the mantra:</p><p>"We want to make sure that we live in this pocket that we call 'ripped from the headlines' when it comes to our universe. What that means is, when you see our game, you should feel like it could be in the headlines, not necessarily that it came from the headlines, but it could be."</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/s2XnwRHV5tEWFPFc5VSMWH-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/FVXuDUaajdxkJnM6oi77BH-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/RfQr9jdqBngFetCg6i9r6H-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/wdU5kba38ycWMHwSKPN45H-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/A43L8bTi4yUd3nxpB75i3H-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/52NhDQEhJiYLUymK2daJ3H-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/xr5MJdUCHWqzhVjSnBwhuG-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Npybiax8a2CYL3h89CFfuG-1920-80.jpg" alt="modern warfare 4" /><figcaption><small role="credit">Activision Blizzard</small></figcaption></figure></figure><p>It also wouldn't be Modern Warfare without Captain Price, who reenters the story on the run after executing a general at the end of Modern Warfare 3. I wouldn't blame you for forgetting or never seeing that major plot development, as <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-3-2023-review/">Modern Warfare 3</a> was widely considered a low point for the series.</p><p>During the campaign presentation, some talking points seemed indirectly aimed at the unpopular 2023 sequel Infinity Ward did not make (it was actually developed primarily by Sledgehammer Games), as well as Black Ops 7's co-op campaign that was criticized for playing more like a series of Zombies arenas than a traditional Call of Duty adventure. O'Hara walked us through the premise of each of its dozen-plus campaign missions (including several spoilers), as if to communicate that Modern Warfare 4 will have a normal, linear story mode.</p><p>I also played around 90 minutes of Modern Warfare 4 multiplayer, which you can <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it" target="_blank">read about in full</a>. Long story short: Infinity Ward is picking up where it left off in 2022. Ominimovement is gone. Wall-jumps are out. The audio is unbelievable, animation is top-notch, and they've sped up mantling and sliding to make twitchy players happy (boo). It's fun, but not at all surprising.</p><p>The third big mode of Modern Warfare 4 is a proper sequel to DMZ, Call of Duty's extraction mode that debuted in Modern Warfare 2 (2022). Activision is staying tight-lipped on details for now, but describes the mode as a "living combat sandbox" with "changing weather, dynamic military objectives, and hostile forces moving throughout the zone."</p><p>Modern Warfare 4 is out on October 23. That's a perfectly normal week to release Call of Duty, though this year it has the added significance of being a full month before the release of Grand Theft Auto 6.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVG3W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVG3W.js" async=""></script><div class="product"><a data-dimension112="79c5fea6-4481-48ca-aa33-0313fc6e3a9f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="79c5fea6-4481-48ca-aa33-0313fc6e3a9f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Modern Warfare 4 will bring back DMZ, Call of Duty's extraction shooter ]]></title>
                                                                                                <dc:content><![CDATA[ <p>DMZ is coming back.</p><p>The Call of Duty extraction mode, which debuted in Modern Warfare 2 (2022), will have another go-around when <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it" target="_blank">Modern Warfare 4</a> releases in October. DMZ was among the first big-budget attempts at the extraction genre—three years before Arc Raiders became a phenomenon. </p><p>Activision is not talking in detail about the new DMZ, but provided a top level description to press:</p><p>"DMZ is the definitive Call of Duty extraction experience, a living combat sandbox where every deployment is a new story. Deploy solo or with a squad into a volatile conflict zone as an off-the-books asset tasked with recovering advanced military technology left in the wake of war. The conditions in the exclusion zone are always shifting, with changing weather, dynamic military objectives, and hostile forces moving throughout the zone.  </p><p>"Loot, fight, negotiate, betray, and extract with whatever you can carry. The harder you push, the harder the world pushes back. Every run is a risk, every encounter is a choice, and no two deployments play out the same way."</p><p>Not much to be gleaned from that other than "yep, sounds like an extraction shooter," though talk of being an "off the books asset" does make it sound thematically consistent with Escape From Tarkov.</p><p>The original DMZ had familiar elements of extraction shooters—gear fear, proximity chat, backpacks, contracts—but was criticized for lacking depth. It was casual, but bland, and you could tell it was more of an offshoot of Warzone than its own game. Infinity Ward supported DMZ with updates throughout 2023, but ultimately retired the mode, calling it a successful beta.</p><p>We do know a bit more about Modern Warfare 4's multiplayer, which <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it" target="_blank">I played at the Infinity Ward offices</a> last week. It's not surprising, but Infinity Ward still makes the best Call of Duty guns.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVG3W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVG3W.js" async=""></script><div class="product"><a data-dimension112="9690e94f-9f93-4965-b46f-b7d02cf07f1f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="9690e94f-9f93-4965-b46f-b7d02cf07f1f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/modern-warfare-4-will-bring-back-dmz-call-of-dutys-extraction-shooter/</link>
                                                                            <description>
                            <![CDATA[ Call of Duty reenters the extraction genre. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">zbUiBWPBDfD3j3bKkpJdHb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/A43L8bTi4yUd3nxpB75i3H-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 28 May 2026 15:00:00 +0000</pubDate>                                                                                                                                <updated>Mon, 15 Jun 2026 14:56:11 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/A43L8bTi4yUd3nxpB75i3H-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[modern warfare 4]]></media:description>                                                            <media:text><![CDATA[modern warfare 4]]></media:text>
                                <media:title type="plain"><![CDATA[modern warfare 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/A43L8bTi4yUd3nxpB75i3H-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>DMZ is coming back.</p><p>The Call of Duty extraction mode, which debuted in Modern Warfare 2 (2022), will have another go-around when <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it" target="_blank">Modern Warfare 4</a> releases in October. DMZ was among the first big-budget attempts at the extraction genre—three years before Arc Raiders became a phenomenon. </p><p>Activision is not talking in detail about the new DMZ, but provided a top level description to press:</p><p>"DMZ is the definitive Call of Duty extraction experience, a living combat sandbox where every deployment is a new story. Deploy solo or with a squad into a volatile conflict zone as an off-the-books asset tasked with recovering advanced military technology left in the wake of war. The conditions in the exclusion zone are always shifting, with changing weather, dynamic military objectives, and hostile forces moving throughout the zone.  </p><p>"Loot, fight, negotiate, betray, and extract with whatever you can carry. The harder you push, the harder the world pushes back. Every run is a risk, every encounter is a choice, and no two deployments play out the same way."</p><p>Not much to be gleaned from that other than "yep, sounds like an extraction shooter," though talk of being an "off the books asset" does make it sound thematically consistent with Escape From Tarkov.</p><p>The original DMZ had familiar elements of extraction shooters—gear fear, proximity chat, backpacks, contracts—but was criticized for lacking depth. It was casual, but bland, and you could tell it was more of an offshoot of Warzone than its own game. Infinity Ward supported DMZ with updates throughout 2023, but ultimately retired the mode, calling it a successful beta.</p><p>We do know a bit more about Modern Warfare 4's multiplayer, which <a href="https://www.pcgamer.com/games/call-of-duty/i-played-modern-warfare-4-at-infinity-ward-lets-talk-about-it" target="_blank">I played at the Infinity Ward offices</a> last week. It's not surprising, but Infinity Ward still makes the best Call of Duty guns.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVG3W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVG3W.js" async=""></script><div class="product"><a data-dimension112="9690e94f-9f93-4965-b46f-b7d02cf07f1f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="9690e94f-9f93-4965-b46f-b7d02cf07f1f" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty movie director once claimed he told Navy SEALs they were 'pathetic' for playing Call of Duty ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Call of Duty movie in development at Paramount will be directed by Peter Berg, one of the guys that studios call when it's time to portray the US military as big screen heroes.</p><p>Adapting the most popular military shooter in the world to film is seemingly the perfect gig for Berg, whose past work includes Lone Survivor, Patriots Day, and the adaptation of grandpa-approved board game Battleship. But the last time Call of Duty came up in his presence, before he'd been cut a significant check, he made it clear that videogames are a waste of time, and that those who play them often are "pathetic" and "weak."</p><p>That's according to a <a href="https://www.esquire.com/entertainment/interviews/a26257/peter-berg-interview/">2013 interview</a> Berg did with Esquire, which was recently unearthed by a <a href="https://www.resetera.com/threads/peter-berg-director-of-upcoming-cod-film-said-in-2013-that-playing-video-games-is-pathetic-and-weak.1501840/#post-154199923">ResetEra thread</a> and subsequently shared by <a href="https://www.gamesradar.com/entertainment/action-movies/call-of-duty-movie-director-once-said-people-who-play-war-video-games-are-weak-and-pathetic/">GamesRadar</a>.</p><p>In the Q&amp;A-style interview, Esquire's Julian Sancton picked Berg's brain about masculinity, sports, and videogames (at the time, Berg was promoting his Navy SEALs movie Lone Survivor and had just released Battleship the previous year). When military games and Call of Duty came up, Berg didn't hold back:</p><p><em>ESQ: As a guy who's become a public advocate of American manhood, what's your take on war video games?</em></p><p><em>PB: Pathetic. Pathetic. Keyboard courage. Can't stand it. The only people that I give a Call of Duty get-out-of-jail-free card to is the military. They're out there serving and they're bored and they want to entertain themselves? Okay, maybe. Kids? Uh-uh.</em></p><p><em>ESQ: Navy SEALs have a standing invitation to your house in Montana, and you've spent a lot of time with them. Do they play those games?</em></p><p><em>PB: Some of them do. But I tell them I think it's pathetic. I think anyone that sits around playing video games for four hours... It's weak. Get out, do something.</em></p><p>Tell us how you really feel, Pete!</p><p>As Call of Duty isn't Berg's first adaptation, surely he knows how to set aside his feelings about the hobby to make a <del>good </del>movie, but it does suggest the co-writer and director probably isn't approaching the project with Call of Duty affection.</p><p>But hey, 13 years was a long time ago. Maybe he's eased up on games since, or even played a round of Warzone in the 2020 lockdown. If so, we could bury this beef once and for all with a 1v1 on Rust. Intervention snipers. Quick-scopes only.</p><div class="product"><a data-dimension112="f743463a-19b6-4a72-8d14-0c0879331c36" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="f743463a-19b6-4a72-8d14-0c0879331c36" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/call-of-duty-movie-director-once-claimed-he-told-navy-seals-they-were-pathetic-for-playing-call-of-duty/</link>
                                                                            <description>
                            <![CDATA[ In the 2013 interview, Berg's feelings on videogames were not ambiguous. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">mYe7aVXmmVpE54iQ6TsYSb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nEW5UiCGwZ4H78M3sebVv8-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 27 Apr 2026 22:46:52 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/nEW5UiCGwZ4H78M3sebVv8-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Modern Warfare 2 KD ratio - a sniper in a ghillie suit]]></media:description>                                                            <media:text><![CDATA[Modern Warfare 2 KD ratio - a sniper in a ghillie suit]]></media:text>
                                <media:title type="plain"><![CDATA[Modern Warfare 2 KD ratio - a sniper in a ghillie suit]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nEW5UiCGwZ4H78M3sebVv8-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Call of Duty movie in development at Paramount will be directed by Peter Berg, one of the guys that studios call when it's time to portray the US military as big screen heroes.</p><p>Adapting the most popular military shooter in the world to film is seemingly the perfect gig for Berg, whose past work includes Lone Survivor, Patriots Day, and the adaptation of grandpa-approved board game Battleship. But the last time Call of Duty came up in his presence, before he'd been cut a significant check, he made it clear that videogames are a waste of time, and that those who play them often are "pathetic" and "weak."</p><p>That's according to a <a href="https://www.esquire.com/entertainment/interviews/a26257/peter-berg-interview/">2013 interview</a> Berg did with Esquire, which was recently unearthed by a <a href="https://www.resetera.com/threads/peter-berg-director-of-upcoming-cod-film-said-in-2013-that-playing-video-games-is-pathetic-and-weak.1501840/#post-154199923">ResetEra thread</a> and subsequently shared by <a href="https://www.gamesradar.com/entertainment/action-movies/call-of-duty-movie-director-once-said-people-who-play-war-video-games-are-weak-and-pathetic/">GamesRadar</a>.</p><p>In the Q&amp;A-style interview, Esquire's Julian Sancton picked Berg's brain about masculinity, sports, and videogames (at the time, Berg was promoting his Navy SEALs movie Lone Survivor and had just released Battleship the previous year). When military games and Call of Duty came up, Berg didn't hold back:</p><p><em>ESQ: As a guy who's become a public advocate of American manhood, what's your take on war video games?</em></p><p><em>PB: Pathetic. Pathetic. Keyboard courage. Can't stand it. The only people that I give a Call of Duty get-out-of-jail-free card to is the military. They're out there serving and they're bored and they want to entertain themselves? Okay, maybe. Kids? Uh-uh.</em></p><p><em>ESQ: Navy SEALs have a standing invitation to your house in Montana, and you've spent a lot of time with them. Do they play those games?</em></p><p><em>PB: Some of them do. But I tell them I think it's pathetic. I think anyone that sits around playing video games for four hours... It's weak. Get out, do something.</em></p><p>Tell us how you really feel, Pete!</p><p>As Call of Duty isn't Berg's first adaptation, surely he knows how to set aside his feelings about the hobby to make a <del>good </del>movie, but it does suggest the co-writer and director probably isn't approaching the project with Call of Duty affection.</p><p>But hey, 13 years was a long time ago. Maybe he's eased up on games since, or even played a round of Warzone in the 2020 lockdown. If so, we could bury this beef once and for all with a 1v1 on Rust. Intervention snipers. Quick-scopes only.</p><div class="product"><a data-dimension112="f743463a-19b6-4a72-8d14-0c0879331c36" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="f743463a-19b6-4a72-8d14-0c0879331c36" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I feel like my screenshots are coming to life through the oil paintings created by ArtbyEri ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Never in my life have I felt like the screenshots I take while playing games are worth printing out and displaying on the wall. They're barely good enough to stick under a magnet on the fridge, mostly because they're things like map locations or places I promise myself I'll come back to and never do. But occasionally I'll take a snap of a pretty in-game landscape, or the odd cute critter (the most recent example being the shrimp from RuneScape: Dragonwilds—don't ask) to shake things up. Again, these don't breach the containment of my Steam account, but at least they're more visually appealing. </p><p>I never really considered a screenshot of a game to be aesthetically pleasing, which is where the wonderful work of Erika Epperly (available under the website <a href="https://www.artbyeri.com/shop" target="_blank">ArtbyEri</a>) comes in to prove me wrong. In fact, this artist specialises in bringing screenshots to life through oil painting, which sounds obscene on paper I'm sure, but when you see them, you'll see just how impressive they really are. </p><div  class="fancy-box"><div class="fancy_box-title">Character Select</div><div class="fancy_box_body"><p class="fancy-box__body-text">Welcome to <a data-analytics-id="inline-link" href="https://www.pcgamer.com/uk/tag/character-select/" target="_blank">Character Select</a>, a weekly column where PC Gamer takes a look at the art and cosplay created by you. Each week, I'll highlight a few of my favourite pieces, spotlight and interview creators and artists, or generally just chew your ear off about the talents of the gaming community.</p></div></div><p>The vast majority of paintings by Epperly are from first person shooters, which I think is a hilarious decision to make. Screenshots from games like <a href="https://www.artbyeri.com/shop/p/pearl-pre-order-poster">Valorant</a>, and <a href="https://www.artbyeri.com/shop/p/rust-original-painting">Call of Duty</a> have been taken and turned into genuinely impressive works of art, including a brighter colour palette and some girlypop additions like weapon charms and decals, or the odd sprinkle of glitter. This in turn has made me question if maybe I do want to display what is essentially a videogame screenshot around my house. </p><p>If you'd rather not have these pretty in pink versions, you've still got the option to have more authentic screens too. For example, Epperly has recreated areas from both <a href="https://www.artbyeri.com/shop/p/halo-3-print">Halo 3</a> and <a href="https://www.artbyeri.com/shop/p/halo-reach-print">Halo Reach</a> in their standard colours and appearances without all the additions. If first person shooters aren't your style at all, fret not. Epperly has ventured into recreating screenshots from games like <a href="https://www.artbyeri.com/shop/p/hello-kitty-island-adventure-poster">Hello Kitty Island Adventure</a>, specifically inside of Hello Kitty's cafe after baking a strawberry shortcake, or a character amongst the blossom trees in <a href="https://www.artbyeri.com/shop/p/animal-crossing-print">Animal Crossing New Horizons</a> as well. </p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@eazyeri/video/7603392602272009502" data-video-id="7603392602272009502" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@eazyeri" href="https://www.tiktok.com/@eazyeri">@eazyeri</a>                            <p></p><a target="_blank" title="♬ Pretty - TiaCorine &amp; Saweetie" href="https://www.tiktok.com/music/Pretty-7558589200859432977">♬ Pretty - TiaCorine &amp; Saweetie</a></section>                    </blockquote></div>                <p>My favourite piece, however, is an oil painting based on The Sims 4 listed under the name <a href="https://www.artbyeri.com/shop/p/just-5-more-minutes-pre-order-poster">"Just 5 more minutes"</a> on their shop. Unlike the other pieces, I'm not sure if this was directly based on a screenshot from the game or if Epperly took some creative liberties with the overall design, but it shows a Sim hunched over their keyboard playing Minecraft on their PC which is something I relate to a little bit too closely to, especially with the yellow Plumbob above their head suggesting that their needs aren't quite met for them to be comfortable. </p><p>This is definitely one of the more subtle paintings, since the only giveaway that it's based on The Sims is the colourful Plumbob, which is probably why it's my favourite of the bunch. I already mentioned how much I love more subtle videogame art when I shared the work of <a href="https://www.pcgamer.com/games/im-determined-to-turn-my-house-into-a-museum-with-these-stunning-wildlife-identification-paintings-from-holly-sweet-illustration/">Holly Sweet Illustration</a> with you, and this painting definitely fits into that category. It certainly helps that I can see a bit of myself in the character within the painting too, through the messy desk, Hatsune Miku drawing, and Rilakkuma plushie tucked away. </p><p>Epperly shares the entire process of bringing these paintings together through Tiktok videos too, under the username <a href="https://www.tiktok.com/@eazyeri" target="_blank">@eazyeri</a> which I've spent far more time than I like to admit scrolling through. When you see the colours on a palette, it's hard to picture what they'll turn out to be, but it's certainly never disappointing. Maybe I have been too quick to judge my screenshots, and all I needed was an artist's perspective to make something more displayable. Or a load of adorable decals and charms on my weapons—that might also help. </p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/i-feel-like-my-screenshots-are-coming-to-life-through-the-oil-paintings-created-by-artbyeri/</link>
                                                                            <description>
                            <![CDATA[ Art imitates virtual life. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hBoCLqZNvhUHnvaw5SB94L</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/hHzyixrkYvZGroSBCspWYo-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 26 Apr 2026 15:00:00 +0000</pubDate>                                                                                                                                <updated>Mon, 27 Apr 2026 15:05:43 +0000</updated>
                                                                                                                                            <category><![CDATA[Games]]></category>
                                                                                                                    <dc:creator><![CDATA[ Kara Phillips ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/XRZDZcf8JTFbGkVwfLBtAZ-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Kara is an evergreen writer. Having spent five years as a games journalist guiding, reviewing, or generally waffling about the weird and wonderful, she’s more than happy to tell you all about which obscure indie games she’s managed to sink hours into this week. When she’s not raising a dodo army in Ark: Survival Evolved or taking huge losses in Tekken, you’ll find her helplessly trawling the internet for the next best birdwatching game because who wants to step outside and experience the real thing when you can so easily do it from the comfort of your living room. Right?&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/hHzyixrkYvZGroSBCspWYo-1920-80.jpg">
                                                            <media:credit><![CDATA[Erika Epperly]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The lotus painting done by Erika Epperly (ArtbyEri)]]></media:description>                                                            <media:text><![CDATA[The lotus painting done by Erika Epperly (ArtbyEri)]]></media:text>
                                <media:title type="plain"><![CDATA[The lotus painting done by Erika Epperly (ArtbyEri)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/hHzyixrkYvZGroSBCspWYo-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Never in my life have I felt like the screenshots I take while playing games are worth printing out and displaying on the wall. They're barely good enough to stick under a magnet on the fridge, mostly because they're things like map locations or places I promise myself I'll come back to and never do. But occasionally I'll take a snap of a pretty in-game landscape, or the odd cute critter (the most recent example being the shrimp from RuneScape: Dragonwilds—don't ask) to shake things up. Again, these don't breach the containment of my Steam account, but at least they're more visually appealing. </p><p>I never really considered a screenshot of a game to be aesthetically pleasing, which is where the wonderful work of Erika Epperly (available under the website <a href="https://www.artbyeri.com/shop" target="_blank">ArtbyEri</a>) comes in to prove me wrong. In fact, this artist specialises in bringing screenshots to life through oil painting, which sounds obscene on paper I'm sure, but when you see them, you'll see just how impressive they really are. </p><div  class="fancy-box"><div class="fancy_box-title">Character Select</div><div class="fancy_box_body"><p class="fancy-box__body-text">Welcome to <a data-analytics-id="inline-link" href="https://www.pcgamer.com/uk/tag/character-select/" target="_blank">Character Select</a>, a weekly column where PC Gamer takes a look at the art and cosplay created by you. Each week, I'll highlight a few of my favourite pieces, spotlight and interview creators and artists, or generally just chew your ear off about the talents of the gaming community.</p></div></div><p>The vast majority of paintings by Epperly are from first person shooters, which I think is a hilarious decision to make. Screenshots from games like <a href="https://www.artbyeri.com/shop/p/pearl-pre-order-poster">Valorant</a>, and <a href="https://www.artbyeri.com/shop/p/rust-original-painting">Call of Duty</a> have been taken and turned into genuinely impressive works of art, including a brighter colour palette and some girlypop additions like weapon charms and decals, or the odd sprinkle of glitter. This in turn has made me question if maybe I do want to display what is essentially a videogame screenshot around my house. </p><p>If you'd rather not have these pretty in pink versions, you've still got the option to have more authentic screens too. For example, Epperly has recreated areas from both <a href="https://www.artbyeri.com/shop/p/halo-3-print">Halo 3</a> and <a href="https://www.artbyeri.com/shop/p/halo-reach-print">Halo Reach</a> in their standard colours and appearances without all the additions. If first person shooters aren't your style at all, fret not. Epperly has ventured into recreating screenshots from games like <a href="https://www.artbyeri.com/shop/p/hello-kitty-island-adventure-poster">Hello Kitty Island Adventure</a>, specifically inside of Hello Kitty's cafe after baking a strawberry shortcake, or a character amongst the blossom trees in <a href="https://www.artbyeri.com/shop/p/animal-crossing-print">Animal Crossing New Horizons</a> as well. </p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@eazyeri/video/7603392602272009502" data-video-id="7603392602272009502" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@eazyeri" href="https://www.tiktok.com/@eazyeri">@eazyeri</a>                            <p></p><a target="_blank" title="♬ Pretty - TiaCorine &amp; Saweetie" href="https://www.tiktok.com/music/Pretty-7558589200859432977">♬ Pretty - TiaCorine &amp; Saweetie</a></section>                    </blockquote></div>                <p>My favourite piece, however, is an oil painting based on The Sims 4 listed under the name <a href="https://www.artbyeri.com/shop/p/just-5-more-minutes-pre-order-poster">"Just 5 more minutes"</a> on their shop. Unlike the other pieces, I'm not sure if this was directly based on a screenshot from the game or if Epperly took some creative liberties with the overall design, but it shows a Sim hunched over their keyboard playing Minecraft on their PC which is something I relate to a little bit too closely to, especially with the yellow Plumbob above their head suggesting that their needs aren't quite met for them to be comfortable. </p><p>This is definitely one of the more subtle paintings, since the only giveaway that it's based on The Sims is the colourful Plumbob, which is probably why it's my favourite of the bunch. I already mentioned how much I love more subtle videogame art when I shared the work of <a href="https://www.pcgamer.com/games/im-determined-to-turn-my-house-into-a-museum-with-these-stunning-wildlife-identification-paintings-from-holly-sweet-illustration/">Holly Sweet Illustration</a> with you, and this painting definitely fits into that category. It certainly helps that I can see a bit of myself in the character within the painting too, through the messy desk, Hatsune Miku drawing, and Rilakkuma plushie tucked away. </p><p>Epperly shares the entire process of bringing these paintings together through Tiktok videos too, under the username <a href="https://www.tiktok.com/@eazyeri" target="_blank">@eazyeri</a> which I've spent far more time than I like to admit scrolling through. When you see the colours on a palette, it's hard to picture what they'll turn out to be, but it's certainly never disappointing. Maybe I have been too quick to judge my screenshots, and all I needed was an artist's perspective to make something more displayable. Or a load of adorable decals and charms on my weapons—that might also help. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Older Call of Duty games are coming to Game Pass in 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>New Xbox boss Asha Sharma had some good and bad news for Game Pass subscribers yesterday: the <a href="https://www.pcgamer.com/gaming-industry/xbox-game-pass-prices-are-going-down-but-future-call-of-duty-games-wont-be-added-until-about-a-year-after-they-launch/">service is now cheaper</a>, but new Call of Duty games will no longer be included with the service at release. They'll now arrive a year later, around the time that they're inevitably replaced by the next Call of Duty.</p><p>The change is one of the first major shakeups from Sharma, who takes up Phil Spencer's mantle following a <a href="https://www.pcgamer.com/gaming-industry/microsofts-year-of-shame/">truly shameful year for Microsoft</a> in which Xbox was the least of its fumbles.</p><p>Xbox's two-year run of giving away its single biggest money-maker to subscribers is over, which Activision seems keen to move on from, as Call of Duty's wider availability reportedly dealt a huge blow to the profitability of Black Ops 6 in 2024 and Black Ops 7 in 2025. </p><p>Reactions to the news among fans swung between disappointment and understanding, but among them was a specific request: "They should release all legacy Call of Duty games on game pass like today," wrote <a href="https://x.com/Stallion83/status/2046648170990494010?s=20">Stallion83</a> on X.</p><p>Perhaps not every Call of Duty, but a source at Activision told PC Gamer it plans to add more of Call of Duty's back catalog to Game Pass this year.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBxYkO"></div>                            </div>                            <script src="https://kwizly.com/embed/eBxYkO.js" async=""></script><p>Currently, only the last handful of entries are available on the service's Ultimate tier—the oldest being 2017's Call of Duty: WW2. The availability of classics like Modern Warfare 2 and Black Ops would be a genuine draw, especially because as the console and PC versions of many older games still go for $30 to $60 (and a few never came to PC at all):</p><ul><li>Call of Duty (2003)</li><li>Call of Duty 2 (2005)</li><li>Call of Duty 2: Big Red One (2005)</li><li>Call of Duty 3 (2006)</li><li>Call of Duty 4: Modern Warfare (2007)</li><li>Call of Duty: World at War (2008)</li><li>Call of Duty: Modern Warfare 2 (2009)</li><li>Call of Duty: Black Ops (2010)</li><li>Call of Duty: Modern Warfare 3 (2011)</li><li>Call of Duty: Black Ops 2 (2012)</li><li>Call of Duty: Ghosts (2013)</li><li>Call of Duty: Advanced Warfare (2014)</li><li>Call of Duty: Black Ops 3 (2015)</li><li>Call of Duty: Infinite Warfare (2016)</li><li>Call of Duty: Vanguard (2021)</li></ul><p>I had to double check, but yes, 2021's oft-forgotten Vanguard has also been forgotten by Game Pass. Maybe Treyarch's Big Red One (the even more forgotten version of Call of Duty 2 for the original Xbox/PS2) will finally gets its day in the sun.</p><div class="product"><a data-dimension112="e13e4bfb-c16a-4f07-af50-bb1e1a45272d" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="e13e4bfb-c16a-4f07-af50-bb1e1a45272d" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/older-call-of-duty-games-are-coming-to-game-pass-in-2026/</link>
                                                                            <description>
                            <![CDATA[ The series isn't day-one on Game Pass anymore, but there's hope for the back catalog. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rNrjVTTUmDUqTSk4FidGHf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/3DNjKVtbZ7jeA4tBjmCiiY-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 22 Apr 2026 20:09:47 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/3DNjKVtbZ7jeA4tBjmCiiY-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/3DNjKVtbZ7jeA4tBjmCiiY-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>New Xbox boss Asha Sharma had some good and bad news for Game Pass subscribers yesterday: the <a href="https://www.pcgamer.com/gaming-industry/xbox-game-pass-prices-are-going-down-but-future-call-of-duty-games-wont-be-added-until-about-a-year-after-they-launch/">service is now cheaper</a>, but new Call of Duty games will no longer be included with the service at release. They'll now arrive a year later, around the time that they're inevitably replaced by the next Call of Duty.</p><p>The change is one of the first major shakeups from Sharma, who takes up Phil Spencer's mantle following a <a href="https://www.pcgamer.com/gaming-industry/microsofts-year-of-shame/">truly shameful year for Microsoft</a> in which Xbox was the least of its fumbles.</p><p>Xbox's two-year run of giving away its single biggest money-maker to subscribers is over, which Activision seems keen to move on from, as Call of Duty's wider availability reportedly dealt a huge blow to the profitability of Black Ops 6 in 2024 and Black Ops 7 in 2025. </p><p>Reactions to the news among fans swung between disappointment and understanding, but among them was a specific request: "They should release all legacy Call of Duty games on game pass like today," wrote <a href="https://x.com/Stallion83/status/2046648170990494010?s=20">Stallion83</a> on X.</p><p>Perhaps not every Call of Duty, but a source at Activision told PC Gamer it plans to add more of Call of Duty's back catalog to Game Pass this year.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBxYkO"></div>                            </div>                            <script src="https://kwizly.com/embed/eBxYkO.js" async=""></script><p>Currently, only the last handful of entries are available on the service's Ultimate tier—the oldest being 2017's Call of Duty: WW2. The availability of classics like Modern Warfare 2 and Black Ops would be a genuine draw, especially because as the console and PC versions of many older games still go for $30 to $60 (and a few never came to PC at all):</p><ul><li>Call of Duty (2003)</li><li>Call of Duty 2 (2005)</li><li>Call of Duty 2: Big Red One (2005)</li><li>Call of Duty 3 (2006)</li><li>Call of Duty 4: Modern Warfare (2007)</li><li>Call of Duty: World at War (2008)</li><li>Call of Duty: Modern Warfare 2 (2009)</li><li>Call of Duty: Black Ops (2010)</li><li>Call of Duty: Modern Warfare 3 (2011)</li><li>Call of Duty: Black Ops 2 (2012)</li><li>Call of Duty: Ghosts (2013)</li><li>Call of Duty: Advanced Warfare (2014)</li><li>Call of Duty: Black Ops 3 (2015)</li><li>Call of Duty: Infinite Warfare (2016)</li><li>Call of Duty: Vanguard (2021)</li></ul><p>I had to double check, but yes, 2021's oft-forgotten Vanguard has also been forgotten by Game Pass. Maybe Treyarch's Big Red One (the even more forgotten version of Call of Duty 2 for the original Xbox/PS2) will finally gets its day in the sun.</p><div class="product"><a data-dimension112="e13e4bfb-c16a-4f07-af50-bb1e1a45272d" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="e13e4bfb-c16a-4f07-af50-bb1e1a45272d" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ A decade ago, Call of Duty sidelined its iconic progression system to dabble in gacha instead, and I was glad I'd forgotten ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Besides the moment-to-moment shooting, what's the one thing that's made <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a> the success that it is today? If you ask me, it's the progression. You level up your account, unlocking new guns as you go, which pulls you into the camo grind, all for you to prestige and do it all over again. It's a dopamine rush that worms its way deep into your brain. I still remember the incredibly obnoxious (but admittedly cool) level-up sounds from the original Modern Warfare trilogy era.</p><p>Point is, you don't mess with the bones of Call of Duty's finely-tuned progression system. A slice of advice that I wished 2014's Advanced Warfare would have heeded. But instead it threw the progression system out of balance. A sin so heinous, I'd clearly expunged it from my mind at some point in the decade since for my own sanity, only to be reminded of it watching YouTuber <a href="https://www.youtube.com/@ReplayMode" target="_blank">Replay Mode's</a> retrospective videos.</p><p>Advanced Warfare introduced the short-lived weapon variants feature. Basically, you'd unlock weapons like you normally would by leveling up, but each gun also had a handful of tiered variants that significantly tweaked their performance. They were similar to today's cosmetic-only weapon blueprints but with a very real impact on their stats and performance.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/oUmbNcjjQMwQSfjS8cJfAG-1920-80.jpg" alt="Advanced Warfare: The MP11 Goliath elite weapon variant." /><figcaption><small role="credit">Activision</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/rrHX7c7zPZH6z8Fi2JgFBG-1920-80.jpg" alt="Advanced Warfare: The Bal-27 Obsidian Steed elite weapon variant." /><figcaption><small role="credit">Activision</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/gh3PXUq2MoJhZp3YwPDQAG-1920-80.jpg" alt="Advanced Warfare: The M1-Irons elite weapon variant." /><figcaption><small role="credit">Activision</small></figcaption></figure></figure><p>For example, the MP11 Goliath variant gave this SMG bonus damage at the cost of handling, which resulted in a bafflingly quick time-to-kill in close range. Likewise, the Bal-27 Obsidian Steed gained bonus damage and mobility but reduced accuracy, handling, and rate of fire compared to its base counterpart. And no variant was more iconic (or infamous) than the ASM1 Speakeasy, which turned this SMG into a Tommy Gun that absolutely ripped.</p><div><blockquote><p>Try your luck in the free Supply Drops, or pay a few bucks to still try your luck at getting some of the strongest guns.</p></blockquote></div><p>It was an interesting idea, in all honesty. If you didn't like a base weapon, perhaps you would like one of its variants instead. And it also led to some pretty cool designs, like the aforementioned Speakeasy. The only issue was that weapon variants were inextricably linked to gacha mechanics.</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/tbf4Tr8RjIA" allowfullscreen=""></iframe></div></div><p>One of Advanced Warfare's biggest contributions to Call of Duty history was Supply Drops. A brand-new way to monetise the series known for being the best-selling shooter every year, because releasing paid map packs, and the ill-fated Elite subscription just weren't cutting it anymore.</p><p>Supply Drops would hand out purely cosmetic clothing items (this is still my favourite customisation system the series has seen), and most importantly, weapon variants. </p><p>Everyone wanted the ASM1 Speakeasy variant, but it wasn't down to you, it was all on RNG's shoulders. Maybe you'd get lucky and snag the Speakeasy on your first Supply Drop and be set for life, or maybe you'd get it 100 Supply Drops down the line. Or if you were me, you'd never get it while your friends were having a blast shoving it in your face.</p><p>You'd earn Supply Drops every 45 minutes of in-game time, but surprise, surprise, you could purchase <em>Advanced</em> Supply Drops from the store which had better odds. All the best weapon variants were the rarest, of course. Try your luck in the free Supply Drops, or pay a few bucks to still try your luck at getting some of the strongest guns. Hell, you could even get duplicates, which were worthless.</p><p>That's gacha mechanics right there, complete with power creep as legendary elite weapon variants were basically always better (and cooler-looking) than lower quality ones. You could buy one crate for just $1.99, or upwards of $39.99 for 28 boxes, which is tame by today's standards but was still quite outlandish for 2014.</p><p>Supply Drops were tweaked in subsequent titles—<a href="https://www.pcgamer.com/call-of-duty-black-ops-3/" target="_blank">Black Ops 3's</a> handed out exclusive weapons, <a href="https://www.pcgamer.com/call-of-duty-infinite-warfare/" target="_blank">Infinite Warfare's</a> returned to variants but this time they had unique perks instead of stat changes, and <a href="https://www.pcgamer.com/call-of-duty-wwii/" target="_blank">WWII</a> even gave you a hub area to open loot boxes in front of other players. Revolutionary, really. The system was eventually removed in favour of a battle pass in <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-2019/" target="_blank">Modern Warfare 2019</a>, reflecting a shift in monetisation strategies across the gaming landscape.</p><p>Looking back on this system over a decade later, it's still infuriating that Activision made such a drastic, obviously-in-game-gambling decision with Advanced Warfare—dragging down one of the best Call of Duty games in the name of monetisation. If only Advanced Warfare was a blip or cautionary tale. But let's be honest, little's changed when it comes to excessive monetisation in Call of Duty games.</p><div class="product"><a data-dimension112="218fdedc-5fd5-49d4-b40f-a45986001ecf" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="218fdedc-5fd5-49d4-b40f-a45986001ecf" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/a-decade-ago-call-of-duty-sidelined-its-iconic-progression-system-to-dabble-in-gacha-instead-and-i-was-glad-id-forgotten/</link>
                                                                            <description>
                            <![CDATA[ Welcome to the Supply Drop era. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xsDXuL6A8ki8zNUtoLpAXn</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/4SPZDJR3y4RooRztfrt3HG-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 07 Apr 2026 16:24:22 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rory Norris ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/LghCxdhyWRKUT4BHYB2D2E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Rory has made the fatal error of playing way too many live service games at once, and somehow still finding time for everything in between. Sure, he’s an expert at Destiny 2, Call of Duty, and more, but at what cost? He’s even sunk 1,000 hours into The Elder Scrolls Online over the years. At least he put all those hours spent grinding challenges to good use over the years as a freelancer and guides editor. In his spare time, he’s also an avid video creator, often breaking down the environmental design of his favourite games. If you can’t track him down, he’s probably lost in a cave with a bunch of dwarves shouting “rock and stone” to no end.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/4SPZDJR3y4RooRztfrt3HG-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Advanced Warfare: A soldier using a riot shot to block gunfire from another player jumping from a staircase with dual-wield machine guns.]]></media:description>                                                            <media:text><![CDATA[Advanced Warfare: A soldier using a riot shot to block gunfire from another player jumping from a staircase with dual-wield machine guns.]]></media:text>
                                <media:title type="plain"><![CDATA[Advanced Warfare: A soldier using a riot shot to block gunfire from another player jumping from a staircase with dual-wield machine guns.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/4SPZDJR3y4RooRztfrt3HG-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Besides the moment-to-moment shooting, what's the one thing that's made <a href="https://www.pcgamer.com/games/fps/call-of-duty/" target="_blank">Call of Duty</a> the success that it is today? If you ask me, it's the progression. You level up your account, unlocking new guns as you go, which pulls you into the camo grind, all for you to prestige and do it all over again. It's a dopamine rush that worms its way deep into your brain. I still remember the incredibly obnoxious (but admittedly cool) level-up sounds from the original Modern Warfare trilogy era.</p><p>Point is, you don't mess with the bones of Call of Duty's finely-tuned progression system. A slice of advice that I wished 2014's Advanced Warfare would have heeded. But instead it threw the progression system out of balance. A sin so heinous, I'd clearly expunged it from my mind at some point in the decade since for my own sanity, only to be reminded of it watching YouTuber <a href="https://www.youtube.com/@ReplayMode" target="_blank">Replay Mode's</a> retrospective videos.</p><p>Advanced Warfare introduced the short-lived weapon variants feature. Basically, you'd unlock weapons like you normally would by leveling up, but each gun also had a handful of tiered variants that significantly tweaked their performance. They were similar to today's cosmetic-only weapon blueprints but with a very real impact on their stats and performance.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/oUmbNcjjQMwQSfjS8cJfAG-1920-80.jpg" alt="Advanced Warfare: The MP11 Goliath elite weapon variant." /><figcaption><small role="credit">Activision</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/rrHX7c7zPZH6z8Fi2JgFBG-1920-80.jpg" alt="Advanced Warfare: The Bal-27 Obsidian Steed elite weapon variant." /><figcaption><small role="credit">Activision</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/gh3PXUq2MoJhZp3YwPDQAG-1920-80.jpg" alt="Advanced Warfare: The M1-Irons elite weapon variant." /><figcaption><small role="credit">Activision</small></figcaption></figure></figure><p>For example, the MP11 Goliath variant gave this SMG bonus damage at the cost of handling, which resulted in a bafflingly quick time-to-kill in close range. Likewise, the Bal-27 Obsidian Steed gained bonus damage and mobility but reduced accuracy, handling, and rate of fire compared to its base counterpart. And no variant was more iconic (or infamous) than the ASM1 Speakeasy, which turned this SMG into a Tommy Gun that absolutely ripped.</p><div><blockquote><p>Try your luck in the free Supply Drops, or pay a few bucks to still try your luck at getting some of the strongest guns.</p></blockquote></div><p>It was an interesting idea, in all honesty. If you didn't like a base weapon, perhaps you would like one of its variants instead. And it also led to some pretty cool designs, like the aforementioned Speakeasy. The only issue was that weapon variants were inextricably linked to gacha mechanics.</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/tbf4Tr8RjIA" allowfullscreen=""></iframe></div></div><p>One of Advanced Warfare's biggest contributions to Call of Duty history was Supply Drops. A brand-new way to monetise the series known for being the best-selling shooter every year, because releasing paid map packs, and the ill-fated Elite subscription just weren't cutting it anymore.</p><p>Supply Drops would hand out purely cosmetic clothing items (this is still my favourite customisation system the series has seen), and most importantly, weapon variants. </p><p>Everyone wanted the ASM1 Speakeasy variant, but it wasn't down to you, it was all on RNG's shoulders. Maybe you'd get lucky and snag the Speakeasy on your first Supply Drop and be set for life, or maybe you'd get it 100 Supply Drops down the line. Or if you were me, you'd never get it while your friends were having a blast shoving it in your face.</p><p>You'd earn Supply Drops every 45 minutes of in-game time, but surprise, surprise, you could purchase <em>Advanced</em> Supply Drops from the store which had better odds. All the best weapon variants were the rarest, of course. Try your luck in the free Supply Drops, or pay a few bucks to still try your luck at getting some of the strongest guns. Hell, you could even get duplicates, which were worthless.</p><p>That's gacha mechanics right there, complete with power creep as legendary elite weapon variants were basically always better (and cooler-looking) than lower quality ones. You could buy one crate for just $1.99, or upwards of $39.99 for 28 boxes, which is tame by today's standards but was still quite outlandish for 2014.</p><p>Supply Drops were tweaked in subsequent titles—<a href="https://www.pcgamer.com/call-of-duty-black-ops-3/" target="_blank">Black Ops 3's</a> handed out exclusive weapons, <a href="https://www.pcgamer.com/call-of-duty-infinite-warfare/" target="_blank">Infinite Warfare's</a> returned to variants but this time they had unique perks instead of stat changes, and <a href="https://www.pcgamer.com/call-of-duty-wwii/" target="_blank">WWII</a> even gave you a hub area to open loot boxes in front of other players. Revolutionary, really. The system was eventually removed in favour of a battle pass in <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-2019/" target="_blank">Modern Warfare 2019</a>, reflecting a shift in monetisation strategies across the gaming landscape.</p><p>Looking back on this system over a decade later, it's still infuriating that Activision made such a drastic, obviously-in-game-gambling decision with Advanced Warfare—dragging down one of the best Call of Duty games in the name of monetisation. If only Advanced Warfare was a blip or cautionary tale. But let's be honest, little's changed when it comes to excessive monetisation in Call of Duty games.</p><div class="product"><a data-dimension112="218fdedc-5fd5-49d4-b40f-a45986001ecf" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" 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:98.94%;"><img id="6offQUY4CXebir2TC27dMd" name="kingdom come 2 square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6offQUY4CXebir2TC27dMd-1920-80.jpg" mos="" align="middle" fullscreen="" width="661" height="654" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank" data-dimension112="218fdedc-5fd5-49d4-b40f-a45986001ecf" data-action="Deal Block" data-label="2026 games" data-dimension48="2026 games" data-dimension25=""><strong>2026 games</strong></a>: All the upcoming games<br /><a href="https://www.pcgamer.com/the-best-pc-games/" target="_blank"><strong>Best PC games</strong></a>: Our all-time favorites<br /><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: Freebie fest<br /><a href="https://www.pcgamer.com/best-fps-games/" target="_blank"><strong>Best FPS games</strong></a>: Finest gunplay<br /><a href="https://www.pcgamer.com/best-rpgs-of-all-time/" target="_blank"><strong>Best RPGs</strong></a>: Grand adventures<br /><a href="https://www.pcgamer.com/the-best-co-op-games/" target="_blank"><strong>Best co-op games</strong></a>: Better together</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Revisiting the last truly great Call of Duty ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">MORGAN PARK, STAFF WRITER</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="excrnTqz7DD8L2BUsMyu36" name="me" caption="" alt="Morgan Park" src="https://cdn.mos.cms.futurecdn.net/excrnTqz7DD8L2BUsMyu36-1920-80.png" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p class="fancy-box__body-text"><strong>This week:</strong> Extracted a purple sniper rifle from a Marathon run, then promptly lost it to a knife rush.</p></div></div><p>When I heard Call of Duty: Modern Warfare 2019 was back in the limelight thanks to an <a href="https://www.pcgamesn.com/call-of-duty-modern-warfare/steam-sale-discount-player-count">unusually steep $6 sale</a> on Steam, I wasn't too surprised. Infinity Ward's Modern Warfare reboot was extremely popular in its day, reinvigorating a series that tread water through the mid-2010s and ushering in an era of followups that'd build on its reimagined progression and class systems.</p><p>MW2019 was the best these games had ever played, looked, or sounded at the time. Coming back to it now, it's obvious Call of Duty hasn't been meaningfully better since.</p><p>The first thing I noticed jumping into a match in 2026 (which only took a few seconds, as it's still popular) is how knockout gorgeous this thing still is. Like seriously, look at this seven-year-old videogame next to 2025's Black Ops 7:</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Q4YNFm6uq4DUTmozXEyfYU" name="MixCollage-02-Apr-2026-11-47-AM-4381" alt="modern warfare 2019" src="https://cdn.mos.cms.futurecdn.net/Q4YNFm6uq4DUTmozXEyfYU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Both look good, but Modern Warfare immediately wins on atmosphere. The cracks in the asphalt, the way those tree leaves are catching the light, the wildly detailed texture work on the aging buildings—what black magic was Infinity Ward up to making this work on an Xbox One?</p><p>Sound is still a standout, too. Assault rifles erupt with ear-splitting explosions followed by steel-on-steel cycling, and my kitted out revolver from launch sounds more powerful than its equivalent in BO7. Guns are appropriately loud in the sound mix—so loud that they can drown out the barks of the in-match announcer or interrupt the level-up guitar riff. Last night a teammate firing a Kar-98 rifle from behind caused me to violently flinch in my chair.</p><p>I'm reminded that this was Call of Duty redoubling down on grounded "realism" after years of wallrunning and jetpacks. Infinity Ward harnessed the immersive presentational qualities of a milsim within the confines of an arcadey shooter, and it's just as effective now as it was then. It's worth pointing out that this past streak of games helmed by Treyarch, Sledgehammer, and Raven just do not sound or look like this, even when it's clear they're trying to get close.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="D6DSNCszHKP7KbN6rrVCiU" name="Screenshot 2026-04-02 11-04-44" alt="modern warfare 2019" src="https://cdn.mos.cms.futurecdn.net/D6DSNCszHKP7KbN6rrVCiU-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>When folks say <a href="https://www.pcgamer.com/games/call-of-duty/the-call-of-duty-schism-why-fans-are-trapped-in-a-forever-war-with-each-other/">Infinity Ward's games are better made than Treyarch's</a>, this is the stuff they're talking about. This game really checked all the boxes—excellent gunplay, memorable maps, sticky progression, and a campaign that doesn't suck (though that <a href="https://www.polygon.com/2019/10/30/20938550/call-of-duty-modern-warfare-highway-of-death-controversy/">Highway of Death</a> mission sure does). </p><p>Playing the last few nights, I'm taken by Modern Warfare's subdued Create-a-Class. You only get the basics—three perks, grenades, and two guns with five attachments. It's a bit limiting compared to the Swiss-army-knife-like monstrosities you can throw together in BO7, but that's appealing in its own way. When I can only modify a gun in so many aspects, I'm forced to embrace its intended strengths and weaknesses.</p><p>There's this observable pattern in competitive shooters with customizable guns, but especially Call of Duty, where everybody wants to create the same laserbeam. Whatever combination of grips, stocks, or barrels that lower recoil while juicing velocity or fire rate makes that gun objectively better, and therefore the most popular configuration. Modern Warfare's attachments are designed so that you can't boost those key stats without accepting tradeoffs in other areas like movement speed or ADS time.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zD3F4hqp8HxKeEVtBiMcAW" name="Screenshot 2026-04-02 11-02-55" alt="modern warfare 2019" src="https://cdn.mos.cms.futurecdn.net/zD3F4hqp8HxKeEVtBiMcAW-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Treyarch and Sledgehammer have loosened those restrictions on attachments in recent years, allowing up to 10 slots on each gun and mostly eliminating the downsides of making a laserbeam. The result is that every gun in Black Ops is pretty much the same. Modern Warfare isn't perfect in this regard either, but its launch lineup of weapons at least have standout qualities, like the M4A1's balanced damage and range offset by jittery visual recoil.</p><p>It's also nice to play Call of Duty from a time before it became a <a href="https://www.pcgamer.com/every-time-a-new-shooter-launches-i-start-a-countdown-until-it-becomes-a-clown-show-of-brands-and-hideous-skins/">clown show of ugly skins</a>. Modern Warfare still mostly looks like Modern Warfare, and it may be the last Call of Duty we'll ever be able to say that about. Modern Warfare 3 and Black Ops 6 will be forever besmirched by Nicki Minaj, American Dad, TMNT, and The Boys collaborations. Even after committing to <a href="https://www.pcgamer.com/games/fps/activision-finally-acknowledges-call-of-duty-skins-problem-decides-cosmetics-wont-carry-forward-in-black-ops-7-some-of-you-have-said-weve-drifted-from-what-made-call-of-duty-unique-in-the-first-place-that-feedback-hits-home/">chilling out on the tacky crap</a> in Black Ops 7, Activision has proven this was a flat-out lie, with recent collaborations including Fallout and Dave Chappelle (yikes).</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="Px46HqFu6mguw8ETJ8yDBC" name="spr rifle.jpg" alt="modern warfare" src="https://cdn.mos.cms.futurecdn.net/Px46HqFu6mguw8ETJ8yDBC-1920-80.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: Activision)</span></figcaption></figure><p>The irony is that MW2019 is both the last great Call of Duty and the one that kicked off its new worst era. Back in 2020, just a few months after it launched, Warzone hit the scene. A year later, the reboot was <a href="https://www.pcgamer.com/call-of-duty-warzone-has-eaten-modern-warfare/">forcibly gobbled up</a> by the battle royale behemoth that Infinity Ward co-created before giving the keys to Raven and saying "see ya."</p><p>We're still in this period where "premium" Call of Duty multiplayer is intertwined with Warzone—sharing weapons, classes, and roadmaps—in ways that are frequently a detriment to both games. The ultimate example of this is the modern Call of Duty launcher: a slow, grating layer of annoyware that inflicts extra steps upon those seeking to play it.</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="5ifT6apFMktYJ5fRu32pfG" name="codgraph7.jpg" alt="modern warfare" src="https://cdn.mos.cms.futurecdn.net/5ifT6apFMktYJ5fRu32pfG-1920-80.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: Future)</span></figcaption></figure><p>The only mercy today is that MW2019 was eventually decoupled from Warzone back into its own standalone product, though for some reason you still have to select it from a smaller launcher that also includes Modern Warfare 2 (2022), even if you don't own it or want it.</p><p>It speaks volumes of this particular chapter of Modern Warfare that it's worth the launcher hurdle. Seven years later, this is still the Call of Duty to beat (in retrospect, even better than the sequel I gave a higher score).</p><p>I imagine this is the sort of rekindled excitement Activision was angling for with the big discount, as 2026 is Infinity Ward's chance yet again to drag the series it created back to the forefront.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/revisiting-the-last-truly-great-call-of-duty/</link>
                                                                            <description>
                            <![CDATA[ Why a lot of people are playing a seven-year-old CoD again. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">87da8ufRMrdHwPYAFWWxiJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Pxgg4MYcYfsXfmMikJeRH7-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 02 Apr 2026 21:49:23 +0000</pubDate>                                                                                                                                <updated>Mon, 13 Apr 2026 09:34:24 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Pxgg4MYcYfsXfmMikJeRH7-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Pxgg4MYcYfsXfmMikJeRH7-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">MORGAN PARK, STAFF WRITER</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="excrnTqz7DD8L2BUsMyu36" name="me" caption="" alt="Morgan Park" src="https://cdn.mos.cms.futurecdn.net/excrnTqz7DD8L2BUsMyu36-1920-80.png" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p class="fancy-box__body-text"><strong>This week:</strong> Extracted a purple sniper rifle from a Marathon run, then promptly lost it to a knife rush.</p></div></div><p>When I heard Call of Duty: Modern Warfare 2019 was back in the limelight thanks to an <a href="https://www.pcgamesn.com/call-of-duty-modern-warfare/steam-sale-discount-player-count">unusually steep $6 sale</a> on Steam, I wasn't too surprised. Infinity Ward's Modern Warfare reboot was extremely popular in its day, reinvigorating a series that tread water through the mid-2010s and ushering in an era of followups that'd build on its reimagined progression and class systems.</p><p>MW2019 was the best these games had ever played, looked, or sounded at the time. Coming back to it now, it's obvious Call of Duty hasn't been meaningfully better since.</p><p>The first thing I noticed jumping into a match in 2026 (which only took a few seconds, as it's still popular) is how knockout gorgeous this thing still is. Like seriously, look at this seven-year-old videogame next to 2025's Black Ops 7:</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Q4YNFm6uq4DUTmozXEyfYU" name="MixCollage-02-Apr-2026-11-47-AM-4381" alt="modern warfare 2019" src="https://cdn.mos.cms.futurecdn.net/Q4YNFm6uq4DUTmozXEyfYU-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Both look good, but Modern Warfare immediately wins on atmosphere. The cracks in the asphalt, the way those tree leaves are catching the light, the wildly detailed texture work on the aging buildings—what black magic was Infinity Ward up to making this work on an Xbox One?</p><p>Sound is still a standout, too. Assault rifles erupt with ear-splitting explosions followed by steel-on-steel cycling, and my kitted out revolver from launch sounds more powerful than its equivalent in BO7. Guns are appropriately loud in the sound mix—so loud that they can drown out the barks of the in-match announcer or interrupt the level-up guitar riff. Last night a teammate firing a Kar-98 rifle from behind caused me to violently flinch in my chair.</p><p>I'm reminded that this was Call of Duty redoubling down on grounded "realism" after years of wallrunning and jetpacks. Infinity Ward harnessed the immersive presentational qualities of a milsim within the confines of an arcadey shooter, and it's just as effective now as it was then. It's worth pointing out that this past streak of games helmed by Treyarch, Sledgehammer, and Raven just do not sound or look like this, even when it's clear they're trying to get close.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="D6DSNCszHKP7KbN6rrVCiU" name="Screenshot 2026-04-02 11-04-44" alt="modern warfare 2019" src="https://cdn.mos.cms.futurecdn.net/D6DSNCszHKP7KbN6rrVCiU-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>When folks say <a href="https://www.pcgamer.com/games/call-of-duty/the-call-of-duty-schism-why-fans-are-trapped-in-a-forever-war-with-each-other/">Infinity Ward's games are better made than Treyarch's</a>, this is the stuff they're talking about. This game really checked all the boxes—excellent gunplay, memorable maps, sticky progression, and a campaign that doesn't suck (though that <a href="https://www.polygon.com/2019/10/30/20938550/call-of-duty-modern-warfare-highway-of-death-controversy/">Highway of Death</a> mission sure does). </p><p>Playing the last few nights, I'm taken by Modern Warfare's subdued Create-a-Class. You only get the basics—three perks, grenades, and two guns with five attachments. It's a bit limiting compared to the Swiss-army-knife-like monstrosities you can throw together in BO7, but that's appealing in its own way. When I can only modify a gun in so many aspects, I'm forced to embrace its intended strengths and weaknesses.</p><p>There's this observable pattern in competitive shooters with customizable guns, but especially Call of Duty, where everybody wants to create the same laserbeam. Whatever combination of grips, stocks, or barrels that lower recoil while juicing velocity or fire rate makes that gun objectively better, and therefore the most popular configuration. Modern Warfare's attachments are designed so that you can't boost those key stats without accepting tradeoffs in other areas like movement speed or ADS time.</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zD3F4hqp8HxKeEVtBiMcAW" name="Screenshot 2026-04-02 11-02-55" alt="modern warfare 2019" src="https://cdn.mos.cms.futurecdn.net/zD3F4hqp8HxKeEVtBiMcAW-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>Treyarch and Sledgehammer have loosened those restrictions on attachments in recent years, allowing up to 10 slots on each gun and mostly eliminating the downsides of making a laserbeam. The result is that every gun in Black Ops is pretty much the same. Modern Warfare isn't perfect in this regard either, but its launch lineup of weapons at least have standout qualities, like the M4A1's balanced damage and range offset by jittery visual recoil.</p><p>It's also nice to play Call of Duty from a time before it became a <a href="https://www.pcgamer.com/every-time-a-new-shooter-launches-i-start-a-countdown-until-it-becomes-a-clown-show-of-brands-and-hideous-skins/">clown show of ugly skins</a>. Modern Warfare still mostly looks like Modern Warfare, and it may be the last Call of Duty we'll ever be able to say that about. Modern Warfare 3 and Black Ops 6 will be forever besmirched by Nicki Minaj, American Dad, TMNT, and The Boys collaborations. Even after committing to <a href="https://www.pcgamer.com/games/fps/activision-finally-acknowledges-call-of-duty-skins-problem-decides-cosmetics-wont-carry-forward-in-black-ops-7-some-of-you-have-said-weve-drifted-from-what-made-call-of-duty-unique-in-the-first-place-that-feedback-hits-home/">chilling out on the tacky crap</a> in Black Ops 7, Activision has proven this was a flat-out lie, with recent collaborations including Fallout and Dave Chappelle (yikes).</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="Px46HqFu6mguw8ETJ8yDBC" name="spr rifle.jpg" alt="modern warfare" src="https://cdn.mos.cms.futurecdn.net/Px46HqFu6mguw8ETJ8yDBC-1920-80.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: Activision)</span></figcaption></figure><p>The irony is that MW2019 is both the last great Call of Duty and the one that kicked off its new worst era. Back in 2020, just a few months after it launched, Warzone hit the scene. A year later, the reboot was <a href="https://www.pcgamer.com/call-of-duty-warzone-has-eaten-modern-warfare/">forcibly gobbled up</a> by the battle royale behemoth that Infinity Ward co-created before giving the keys to Raven and saying "see ya."</p><p>We're still in this period where "premium" Call of Duty multiplayer is intertwined with Warzone—sharing weapons, classes, and roadmaps—in ways that are frequently a detriment to both games. The ultimate example of this is the modern Call of Duty launcher: a slow, grating layer of annoyware that inflicts extra steps upon those seeking to play it.</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="5ifT6apFMktYJ5fRu32pfG" name="codgraph7.jpg" alt="modern warfare" src="https://cdn.mos.cms.futurecdn.net/5ifT6apFMktYJ5fRu32pfG-1920-80.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: Future)</span></figcaption></figure><p>The only mercy today is that MW2019 was eventually decoupled from Warzone back into its own standalone product, though for some reason you still have to select it from a smaller launcher that also includes Modern Warfare 2 (2022), even if you don't own it or want it.</p><p>It speaks volumes of this particular chapter of Modern Warfare that it's worth the launcher hurdle. Seven years later, this is still the Call of Duty to beat (in retrospect, even better than the sequel I gave a higher score).</p><p>I imagine this is the sort of rekindled excitement Activision was angling for with the big discount, as 2026 is Infinity Ward's chance yet again to drag the series it created back to the forefront.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Call of Duty schism: Why fans are trapped in a forever war with each other ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">MORGAN PARK, STAFF WRITER</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="excrnTqz7DD8L2BUsMyu36" name="me" caption="" alt="Morgan Park" src="https://cdn.mos.cms.futurecdn.net/excrnTqz7DD8L2BUsMyu36-1920-80.png" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p class="fancy-box__body-text"><strong>This week:</strong> Made progress in Warhammer 40,000: Boltgun, the best throwback FPS I've ever played.</p></div></div><p>When a casual FPS enjoyer expresses a preference for a particular feature of Call of Duty, they are unknowingly picking a side. The way soldiers run, how attachments work, the shape of the maps—seemingly minor details are live ammo in a 20 year war between factions of gaming's strangest fandom.</p><p>A normal long-running game series is likely to have a singular direction—a continuity or consensus that determines what present and future iterations will look like. When Assassin's Creed shifted from stealth action games to lite RPGs in 2017, that became the direction for all of Ubisoft's studios making Assassin's Creed games. Not Call of Duty: it has a coalition of 11 studios working around the clock to produce a $70 videogame every 12 months, and those studios are rarely on the same page. Activision's fiefdoms collaborate to varying degrees to get the job done, but its two lead studios have very different, often opposing ideas of how Call of Duty should look, play, and evolve. </p><p>As Call of Duty attempts to rebound from its <a href="https://www.pcgamer.com/games/fps/the-only-way-call-of-duty-ever-gets-better-is-if-we-stop-playing-it/">weakest year in a decade</a>, it's worth examining this unusual arrangement. Activision's stringent schedule and widening creative differences, now spanning two decades, have created a splintered series mirrored in its increasingly tribalistic players. It's the Call of Duty schism, and it's <em>fascinating</em>.</p><h2 id="the-divide">The divide</h2><p>Generally speaking, there are two studios steering Call of Duty's creative direction: Infinity Ward, the OG creators of the series and Modern Warfare, and Treyarch, the creators of Black Ops. The pair have taken turns with their takes on the bestselling military shooter since 2006, when Treyarch was tapped to make Call of Duty 3 (as well as 2005's Big Red One) while Infinity Ward took extra time on the first Modern Warfare (2007).</p><p>While it's fair to say Treyarch was the "secondary" Call of Duty studio in those early days, Black Ops (2010) changed that. With its campy Cold War spy story, non-traditional guns, and party modes, Black Ops established Treyarch as the "fun" Call of Duty studio. Maybe it couldn't match Infinity Ward in terms of raw craft, but the first Black Ops was an even bigger sales hit than Modern Warfare, and distinguished itself by loosening restraints and not taking these silly blockbuster shooters so seriously.</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:2334px;"><p class="vanilla-image-block" style="padding-top:42.72%;"><img id="D3vxjUwpak53MGV5LaFVTP" name="cod studios" alt="Call of Duty studios" src="https://cdn.mos.cms.futurecdn.net/D3vxjUwpak53MGV5LaFVTP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2334" height="997" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Activision's full Call of Duty arsenal. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>I didn't know it at the time (being 14 and all), but this was the beginning of the schism. Black Ops is the first time I can remember heated arguments at school over whether this Call of Duty was better than the previous year's Modern Warfare 2—a talking point that defines Call of Duty discourse in 2026.</p><p>The specific design choices that folks argue over have changed alongside the FPS genre as a whole, but the core of the studio debate remains remarkably consistent. There's nuance to these perspectives, of course, and there are some who don't really care either way, but there's a much louder contingent of fans who firmly believe one studio is killing Call of Duty and the other is its savior. Let's talk about the two camps.</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="cF6jFfN7PWu4jfTX6erqrT" name="CoD01.jpg" alt="Call of Duty Modern Warfare Night" src="https://cdn.mos.cms.futurecdn.net/cF6jFfN7PWu4jfTX6erqrT-1920-80.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: Activision)</span></figcaption></figure><h2 id="the-infinity-ward-argument">The Infinity Ward argument</h2><p>Fans of Modern Warfare believe Infinity Ward's games:</p><ul><li>Look better</li><li>Sound better</li><li>Move Call of Duty forward</li><li>Are more grounded and mature</li><li>Produce standout campaigns</li></ul><p>Those who prefer Infinity Ward's take on Call of Duty are likely to cite a higher qualitative bar. The Modern Warfare series tends to be less flashy and adventurous than Treyarch's Black Ops, but what you get in return are the best-looking and -playing versions of Call of Duty. Infinity Ward excels at the "little" things—weapon sounds, reload animations, bullet feedback—that make Call of Duty a fundamentally satisfying shooter. The Modern Warfare "level up" stinger is the iconic example: </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/nkQblVXrbUQ" allowfullscreen=""></iframe></div></div><p>This sticking point goes all the way back to the early 2010s, when a new Black Ops would arrive looking less impressive than the Modern Warfare that came before it, with the exception of Treyarch's superior fire tech. While Treyarch has narrowed the gap on sound and animations over the years (especially after it switched to Infinity Ward's engine in 2024) the difference is still plain enough to see that most Treyarch fans won't argue this point.</p><a class="card card--standard card--rows-2 card--align-inline" href="https://www.pcgamer.com/call-of-duty-modern-warfare-review/"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/XnxdNTLbyUW3NNW8BuFLqX.jpg" alt="how to use call of duty modern warfare blueprints" /></p></div><div class="card__content"><h3 class="card__title">Flashback: Modern Warfare (2019) review (80%)</h3></div></a><a class="card card--standard card--rows-2 card--align-inline" href="https://www.pcgamer.com/call-of-duty-black-ops-cold-war-review/"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/yR8aEwd9bBQxYdWVz7qmnT.jpg" alt="Call of Duty: Black Ops" /></p></div><div class="card__content"><h3 class="card__title">Flashback: Black Ops Cold War review (69%)</h3></div></a><p>Modern Warfare enjoyers may also prefer the way Infinity Ward does a campaign, a style marked by international task forces, NATO alphabet barks, and Captain Price's dependable mustache. These, too, aren't as ostentatious as a Black Ops romp where characters hallucinate a zombie horde or infiltrate a Clinton rally, but deliver more grounded, often jingohistic fantasies—stealthy sniper missions, AC-130 bombardments, night vision raids in foreign countries, etc.</p><p>There's also no denying that Infinity Ward still sets the tone for Call of Duty's future. The first Modern Warfare established the series' blueprint in 2007, and even at the peak of Black Ops, you could argue Treyarch's games are largely variations on Infinity Ward's designs. When Call of Duty's relevance waned between 2016 and 2018, it was the technical advancements and excellent gunplay of the Modern Warfare reboot that reinvigorated the series.</p><p>Does Infinity Ward only achieve these leaps because Activision gives it a longer leash and more time?A fair question, but it nevertheless contributes to the perception that a new Infinity Ward game is a special occasion.</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/OPTOVQFRggI" allowfullscreen=""></iframe></div></div><h2 id="the-treyarch-argument">The Treyarch argument</h2><p>Fans of Black Ops enjoy that Treyarch's games have:</p><ul><li>Faster movement</li><li>Longer time-to-kill</li><li>3-lane multiplayer maps</li><li>Better campaigns</li><li>Zombies</li></ul><p>The Treyarch crowd undeniably skews hardcore. Many are especially active Call of Duty players, streamers, or content creators who take the competition seriously and are hungry for evolution specific to their interests. Treyarch has recognized these interests throughout the Black Ops series, designing and marketing its games around gameplay adjustments for high-skill players: fast movement, expressive sliding techniques, double jumping, jetpacks, and most recently <a href="https://www.pcgamer.com/games/call-of-duty/after-warring-with-fans-for-years-black-ops-7-will-finally-ditch-aggressive-skill-based-matchmaking-our-team-feels-strongly-about-providing-players-with-a-more-varied-experience/">non-skill-based matchmaking</a>.</p><p>A Black Ops enjoyer might believe the Modern Warfare games are too slow, low skill, or less balanced while championing the strides Treyarch makes toward consistent and competitive Call of Duty multiplayer: less visual recoil, standardized <a href="https://www.pcgamer.com/games/fps/call-of-duty-could-learn-a-thing-or-two-from-battlefield-6s-smallest-map/">3-lane maps</a>, and detailed weapon stats.</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="V6bDCcie5TtD8ZGc7UQmKY" name="bo6 dive edit" alt="black ops 6 nuketown" src="https://cdn.mos.cms.futurecdn.net/V6bDCcie5TtD8ZGc7UQmKY-1920-80.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: Activision Blizzard)</span></figcaption></figure><div><blockquote><p>The Treyarch crowd undeniably skews hardcore.</p></blockquote></div><p>In recent years Treyarch has also distinguished itself by taking Infinity Ward's Gunsmith customization system and expanding on it with "prestige attachments" that dramatically change a gun's behavior. Revolvers can become sniper rifles. ARs can have underbarrel flamethrowers. There are few rules.</p><p>The casual Treyarch diehard also appreciates the Black Ops series' playful playlists—Modern Warfare will sometimes indulge in offbeat modes, but it's got nothing on Black Ops mainstays like Prop Hunt, One in the Chamber, Sticks and Stones, and Gun Game. Then there's Zombies: the beloved co-op mode of Treyarch's creation that's ballooned in scope over time to have its own lore and dedicated fans, all of which has no equal in Modern Warfare.</p><p>It doesn't go unnoticed by Treyarch fans that when the Black Ops series makes universally popular changes, Infinity Ward might ignore or drop them in its next game. This contributes to the perception that Treyarch makes games "for the fans" while Infinity Ward only listens to itself.</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.30%;"><img id="eoSHhnUNScxBV3DgCUzrvZ" name="fallout cod 1" alt="black ops 7 fallout crossover" src="https://cdn.mos.cms.futurecdn.net/eoSHhnUNScxBV3DgCUzrvZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1081" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><h2 id="what-about-sledgehammer-and-raven">What about Sledgehammer and Raven?</h2><p>Sledgehammer Games also makes its own Call of Duty games. Or at least, it used to: For a time, it was the "third" Call of Duty studio slotted into the rotation to accommodate ballooning development times across the industry. Its first standalone project, 2014's Advanced Warfare, was popular, but its two World War 2-themed followups were not. Since Call of Duty: Vanguard, Sledgehammer has seemingly been demoted to support studio, assisting on and co-developing yearly releases.</p><p>Recently, Sledgehammer stepped in to co-develop Modern Warfare 3 (2023), a rushed sequel to Modern Warfare 2 (2022) that Infinity Ward wasn't involved with. It reviewed poorly and didn't sell much better, but it was popular with hardcore players for the ways it backtracked on <a href="https://www.pcgamer.com/call-of-duty-is-changing-for-the-better-but-its-loudest-fans-arent-happy-about-it/">Infinity Ward's decision to slow Call of Duty back down</a> a year prior.</p><p>Raven Software is the other major series contributor. The storied FPS developer behind classics like Hexen and Star Wars: Jedi Knight was conscripted to full-time Call of Duty work in the 2010s, serving as co-developers on all of Treyarch's recent Black Ops games and battle royale spinoff Warzone. The studio has never gotten the chance to lead a project, but the influence of Warzone and its integration into "premium" Call of Duty has catapulted the series into a free-to-play juggernaut.</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="hGu3JV2B69LY6YtJzyxH3U" name="Black Ops 6 q" alt="Call of Duty: Black Ops" src="https://cdn.mos.cms.futurecdn.net/hGu3JV2B69LY6YtJzyxH3U-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="the-studio-imbalance">The studio imbalance</h2><p>Sledgehammer's fate is emblematic of an imbalance within Activision's Call of Duty factory. What used to be a predictable two-to-three year cycle with clean handoffs between studios has become a mad dash to make whatever is possible by a deadline—a workload that has disproportionately fallen to Treyarch, Raven, and Sledgehammer in the 2020s.</p><p>Look at the last six years of Call of Duty and you'll see what I mean:</p><ul><li>Black Ops Cold War: <strong>Treyarch (lead)</strong>, Raven Software (Campaign), Sledgehammer (assisting)</li><li>Vanguard: <strong>Sledgehammer (lead)</strong>, Raven Software (assisting)</li><li>Modern Warfare 2:<strong> Infinity Ward (lead)</strong>, Sledgehammer/Raven (assisting)</li><li>Modern Warfare 3: <strong>Sledgehammer (lead)</strong>, Raven/Treyarch/Infinity Ward (assisting)</li><li>Black Ops 6: <strong>Treyarch (lead)</strong>, Raven (Campaign), Sledgehammer (assisting)</li><li>Black Ops 7: <strong>Treyarch and Raven (co-lead)</strong>, Sledgehammer/Infinity Ward (assisting)</li></ul><p>So far this decade, Infinity Ward has made exactly one Modern Warfare sequel while Treyarch, Raven, and Sledgehammer have upped their pace. This is not how it used to work and, I imagine, not ideal to the frontline developers.</p><p>When I zoom out, I see that Call of Duty has actually been on two cycles all along: once a year there's a new Call of Duty, and once a decade there's a point where that unrealistic pace catches up to Activision, and the series adopts a posture of desperation—new features are less new, old maps are added to new games to pad out a <a href="https://www.pcgamer.com/games/fps/the-many-boxed-roadmap-represents-everything-i-hate-about-shooters-right-now/">many-boxed roadmap</a>, and player sentiment tanks. We've been at that point since Modern Warfare 3.</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="hxPM2vxKKDh8oVdFJ547Q" name="Guild Strikes" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/hxPM2vxKKDh8oVdFJ547Q-1920-80.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: Activision)</span></figcaption></figure><div><blockquote><p>Modern Warfare loyalists can't wait for Infinity Ward to be back in control, while the loudest Treyarch fans believe Call of Duty has been better off without them.</p></blockquote></div><p>From the outside, it's an arrangement that seemingly casts Infinity Ward as the flagship studio afforded as many years as it needs to make the next evolutionary Modern Warfare, while Treyarch, Sledgehammer, and Raven are tasked with keeping the lights on with quickly-made sequels that suffer diminishing returns.</p><p>This setup may work for Activision, which gets to sell boatloads of $70 boxes every Fall without fail, but it further fuels the schism. Nobody can agree on what "peak" Call of Duty is, and what used to be fun changings of the guard are now treated like existential threats—Modern Warfare loyalists can't wait for Infinity Ward to be back in control, while the loudest Treyarch fans believe Call of Duty has been better off without them.</p><p>That makes 2026 a big year for all involved. Four years since Modern Warfare 2, it's finally Infinity Ward's turn again. This year's Call of Duty will presumably have had the longest development period in series history, and it's coming on the heels of a Black Ops sequel that not even the Treyarch crowd is playing. That sets expectations sky high: Will Infinity Ward revive Call of Duty once more, or prove that Treyarch has become its new masters? </p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/the-call-of-duty-schism-why-fans-are-trapped-in-a-forever-war-with-each-other/</link>
                                                                            <description>
                            <![CDATA[ For longtime fans, the name at the bottom of the box is everything. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ed9SAp3KXVQX8E4ANBjKh9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8kgN6CQ6BmnBm3GfBccMqb-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 31 Mar 2026 22:50:13 +0000</pubDate>                                                                                                                                <updated>Wed, 15 Apr 2026 21:47:53 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ morgan.park@futurenet.com (Morgan Park) ]]></author>                    <dc:creator><![CDATA[ Morgan Park ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/VVB5GCgA3xLhkX8FVAWw5D-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8kgN6CQ6BmnBm3GfBccMqb-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[call of duty modern warfare vs. black ops]]></media:description>                                                            <media:text><![CDATA[call of duty modern warfare vs. black ops]]></media:text>
                                <media:title type="plain"><![CDATA[call of duty modern warfare vs. black ops]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8kgN6CQ6BmnBm3GfBccMqb-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">MORGAN PARK, STAFF WRITER</div><div class="fancy_box_body"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' ><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="excrnTqz7DD8L2BUsMyu36" name="me" caption="" alt="Morgan Park" src="https://cdn.mos.cms.futurecdn.net/excrnTqz7DD8L2BUsMyu36-1920-80.png" mos="" link="" align="" fullscreen="" width="" height="" attribution="" endorsement="" class="pinterest-pin-exclude" /></p></div></div><figcaption itemprop="caption description" class=""><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p class="fancy-box__body-text"><strong>This week:</strong> Made progress in Warhammer 40,000: Boltgun, the best throwback FPS I've ever played.</p></div></div><p>When a casual FPS enjoyer expresses a preference for a particular feature of Call of Duty, they are unknowingly picking a side. The way soldiers run, how attachments work, the shape of the maps—seemingly minor details are live ammo in a 20 year war between factions of gaming's strangest fandom.</p><p>A normal long-running game series is likely to have a singular direction—a continuity or consensus that determines what present and future iterations will look like. When Assassin's Creed shifted from stealth action games to lite RPGs in 2017, that became the direction for all of Ubisoft's studios making Assassin's Creed games. Not Call of Duty: it has a coalition of 11 studios working around the clock to produce a $70 videogame every 12 months, and those studios are rarely on the same page. Activision's fiefdoms collaborate to varying degrees to get the job done, but its two lead studios have very different, often opposing ideas of how Call of Duty should look, play, and evolve. </p><p>As Call of Duty attempts to rebound from its <a href="https://www.pcgamer.com/games/fps/the-only-way-call-of-duty-ever-gets-better-is-if-we-stop-playing-it/">weakest year in a decade</a>, it's worth examining this unusual arrangement. Activision's stringent schedule and widening creative differences, now spanning two decades, have created a splintered series mirrored in its increasingly tribalistic players. It's the Call of Duty schism, and it's <em>fascinating</em>.</p><h2 id="the-divide">The divide</h2><p>Generally speaking, there are two studios steering Call of Duty's creative direction: Infinity Ward, the OG creators of the series and Modern Warfare, and Treyarch, the creators of Black Ops. The pair have taken turns with their takes on the bestselling military shooter since 2006, when Treyarch was tapped to make Call of Duty 3 (as well as 2005's Big Red One) while Infinity Ward took extra time on the first Modern Warfare (2007).</p><p>While it's fair to say Treyarch was the "secondary" Call of Duty studio in those early days, Black Ops (2010) changed that. With its campy Cold War spy story, non-traditional guns, and party modes, Black Ops established Treyarch as the "fun" Call of Duty studio. Maybe it couldn't match Infinity Ward in terms of raw craft, but the first Black Ops was an even bigger sales hit than Modern Warfare, and distinguished itself by loosening restraints and not taking these silly blockbuster shooters so seriously.</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:2334px;"><p class="vanilla-image-block" style="padding-top:42.72%;"><img id="D3vxjUwpak53MGV5LaFVTP" name="cod studios" alt="Call of Duty studios" src="https://cdn.mos.cms.futurecdn.net/D3vxjUwpak53MGV5LaFVTP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2334" height="997" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Activision's full Call of Duty arsenal. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><p>I didn't know it at the time (being 14 and all), but this was the beginning of the schism. Black Ops is the first time I can remember heated arguments at school over whether this Call of Duty was better than the previous year's Modern Warfare 2—a talking point that defines Call of Duty discourse in 2026.</p><p>The specific design choices that folks argue over have changed alongside the FPS genre as a whole, but the core of the studio debate remains remarkably consistent. There's nuance to these perspectives, of course, and there are some who don't really care either way, but there's a much louder contingent of fans who firmly believe one studio is killing Call of Duty and the other is its savior. Let's talk about the two camps.</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="cF6jFfN7PWu4jfTX6erqrT" name="CoD01.jpg" alt="Call of Duty Modern Warfare Night" src="https://cdn.mos.cms.futurecdn.net/cF6jFfN7PWu4jfTX6erqrT-1920-80.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: Activision)</span></figcaption></figure><h2 id="the-infinity-ward-argument">The Infinity Ward argument</h2><p>Fans of Modern Warfare believe Infinity Ward's games:</p><ul><li>Look better</li><li>Sound better</li><li>Move Call of Duty forward</li><li>Are more grounded and mature</li><li>Produce standout campaigns</li></ul><p>Those who prefer Infinity Ward's take on Call of Duty are likely to cite a higher qualitative bar. The Modern Warfare series tends to be less flashy and adventurous than Treyarch's Black Ops, but what you get in return are the best-looking and -playing versions of Call of Duty. Infinity Ward excels at the "little" things—weapon sounds, reload animations, bullet feedback—that make Call of Duty a fundamentally satisfying shooter. The Modern Warfare "level up" stinger is the iconic example: </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/nkQblVXrbUQ" allowfullscreen=""></iframe></div></div><p>This sticking point goes all the way back to the early 2010s, when a new Black Ops would arrive looking less impressive than the Modern Warfare that came before it, with the exception of Treyarch's superior fire tech. While Treyarch has narrowed the gap on sound and animations over the years (especially after it switched to Infinity Ward's engine in 2024) the difference is still plain enough to see that most Treyarch fans won't argue this point.</p><a class="card card--standard card--rows-2 card--align-inline" href="https://www.pcgamer.com/call-of-duty-modern-warfare-review/"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/XnxdNTLbyUW3NNW8BuFLqX.jpg" alt="how to use call of duty modern warfare blueprints" /></p></div><div class="card__content"><h3 class="card__title">Flashback: Modern Warfare (2019) review (80%)</h3></div></a><a class="card card--standard card--rows-2 card--align-inline" href="https://www.pcgamer.com/call-of-duty-black-ops-cold-war-review/"><div class="card-image-widthsetter"><p class="vanilla-image-block"  style="padding-top:56.25%;"><img style="width: 100%" class="card__image" src="https://cdn.mos.cms.futurecdn.net/yR8aEwd9bBQxYdWVz7qmnT.jpg" alt="Call of Duty: Black Ops" /></p></div><div class="card__content"><h3 class="card__title">Flashback: Black Ops Cold War review (69%)</h3></div></a><p>Modern Warfare enjoyers may also prefer the way Infinity Ward does a campaign, a style marked by international task forces, NATO alphabet barks, and Captain Price's dependable mustache. These, too, aren't as ostentatious as a Black Ops romp where characters hallucinate a zombie horde or infiltrate a Clinton rally, but deliver more grounded, often jingohistic fantasies—stealthy sniper missions, AC-130 bombardments, night vision raids in foreign countries, etc.</p><p>There's also no denying that Infinity Ward still sets the tone for Call of Duty's future. The first Modern Warfare established the series' blueprint in 2007, and even at the peak of Black Ops, you could argue Treyarch's games are largely variations on Infinity Ward's designs. When Call of Duty's relevance waned between 2016 and 2018, it was the technical advancements and excellent gunplay of the Modern Warfare reboot that reinvigorated the series.</p><p>Does Infinity Ward only achieve these leaps because Activision gives it a longer leash and more time?A fair question, but it nevertheless contributes to the perception that a new Infinity Ward game is a special occasion.</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/OPTOVQFRggI" allowfullscreen=""></iframe></div></div><h2 id="the-treyarch-argument">The Treyarch argument</h2><p>Fans of Black Ops enjoy that Treyarch's games have:</p><ul><li>Faster movement</li><li>Longer time-to-kill</li><li>3-lane multiplayer maps</li><li>Better campaigns</li><li>Zombies</li></ul><p>The Treyarch crowd undeniably skews hardcore. Many are especially active Call of Duty players, streamers, or content creators who take the competition seriously and are hungry for evolution specific to their interests. Treyarch has recognized these interests throughout the Black Ops series, designing and marketing its games around gameplay adjustments for high-skill players: fast movement, expressive sliding techniques, double jumping, jetpacks, and most recently <a href="https://www.pcgamer.com/games/call-of-duty/after-warring-with-fans-for-years-black-ops-7-will-finally-ditch-aggressive-skill-based-matchmaking-our-team-feels-strongly-about-providing-players-with-a-more-varied-experience/">non-skill-based matchmaking</a>.</p><p>A Black Ops enjoyer might believe the Modern Warfare games are too slow, low skill, or less balanced while championing the strides Treyarch makes toward consistent and competitive Call of Duty multiplayer: less visual recoil, standardized <a href="https://www.pcgamer.com/games/fps/call-of-duty-could-learn-a-thing-or-two-from-battlefield-6s-smallest-map/">3-lane maps</a>, and detailed weapon stats.</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="V6bDCcie5TtD8ZGc7UQmKY" name="bo6 dive edit" alt="black ops 6 nuketown" src="https://cdn.mos.cms.futurecdn.net/V6bDCcie5TtD8ZGc7UQmKY-1920-80.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: Activision Blizzard)</span></figcaption></figure><div><blockquote><p>The Treyarch crowd undeniably skews hardcore.</p></blockquote></div><p>In recent years Treyarch has also distinguished itself by taking Infinity Ward's Gunsmith customization system and expanding on it with "prestige attachments" that dramatically change a gun's behavior. Revolvers can become sniper rifles. ARs can have underbarrel flamethrowers. There are few rules.</p><p>The casual Treyarch diehard also appreciates the Black Ops series' playful playlists—Modern Warfare will sometimes indulge in offbeat modes, but it's got nothing on Black Ops mainstays like Prop Hunt, One in the Chamber, Sticks and Stones, and Gun Game. Then there's Zombies: the beloved co-op mode of Treyarch's creation that's ballooned in scope over time to have its own lore and dedicated fans, all of which has no equal in Modern Warfare.</p><p>It doesn't go unnoticed by Treyarch fans that when the Black Ops series makes universally popular changes, Infinity Ward might ignore or drop them in its next game. This contributes to the perception that Treyarch makes games "for the fans" while Infinity Ward only listens to itself.</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.30%;"><img id="eoSHhnUNScxBV3DgCUzrvZ" name="fallout cod 1" alt="black ops 7 fallout crossover" src="https://cdn.mos.cms.futurecdn.net/eoSHhnUNScxBV3DgCUzrvZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1081" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision Blizzard)</span></figcaption></figure><h2 id="what-about-sledgehammer-and-raven">What about Sledgehammer and Raven?</h2><p>Sledgehammer Games also makes its own Call of Duty games. Or at least, it used to: For a time, it was the "third" Call of Duty studio slotted into the rotation to accommodate ballooning development times across the industry. Its first standalone project, 2014's Advanced Warfare, was popular, but its two World War 2-themed followups were not. Since Call of Duty: Vanguard, Sledgehammer has seemingly been demoted to support studio, assisting on and co-developing yearly releases.</p><p>Recently, Sledgehammer stepped in to co-develop Modern Warfare 3 (2023), a rushed sequel to Modern Warfare 2 (2022) that Infinity Ward wasn't involved with. It reviewed poorly and didn't sell much better, but it was popular with hardcore players for the ways it backtracked on <a href="https://www.pcgamer.com/call-of-duty-is-changing-for-the-better-but-its-loudest-fans-arent-happy-about-it/">Infinity Ward's decision to slow Call of Duty back down</a> a year prior.</p><p>Raven Software is the other major series contributor. The storied FPS developer behind classics like Hexen and Star Wars: Jedi Knight was conscripted to full-time Call of Duty work in the 2010s, serving as co-developers on all of Treyarch's recent Black Ops games and battle royale spinoff Warzone. The studio has never gotten the chance to lead a project, but the influence of Warzone and its integration into "premium" Call of Duty has catapulted the series into a free-to-play juggernaut.</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="hGu3JV2B69LY6YtJzyxH3U" name="Black Ops 6 q" alt="Call of Duty: Black Ops" src="https://cdn.mos.cms.futurecdn.net/hGu3JV2B69LY6YtJzyxH3U-1920-80.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: Activision Blizzard)</span></figcaption></figure><h2 id="the-studio-imbalance">The studio imbalance</h2><p>Sledgehammer's fate is emblematic of an imbalance within Activision's Call of Duty factory. What used to be a predictable two-to-three year cycle with clean handoffs between studios has become a mad dash to make whatever is possible by a deadline—a workload that has disproportionately fallen to Treyarch, Raven, and Sledgehammer in the 2020s.</p><p>Look at the last six years of Call of Duty and you'll see what I mean:</p><ul><li>Black Ops Cold War: <strong>Treyarch (lead)</strong>, Raven Software (Campaign), Sledgehammer (assisting)</li><li>Vanguard: <strong>Sledgehammer (lead)</strong>, Raven Software (assisting)</li><li>Modern Warfare 2:<strong> Infinity Ward (lead)</strong>, Sledgehammer/Raven (assisting)</li><li>Modern Warfare 3: <strong>Sledgehammer (lead)</strong>, Raven/Treyarch/Infinity Ward (assisting)</li><li>Black Ops 6: <strong>Treyarch (lead)</strong>, Raven (Campaign), Sledgehammer (assisting)</li><li>Black Ops 7: <strong>Treyarch and Raven (co-lead)</strong>, Sledgehammer/Infinity Ward (assisting)</li></ul><p>So far this decade, Infinity Ward has made exactly one Modern Warfare sequel while Treyarch, Raven, and Sledgehammer have upped their pace. This is not how it used to work and, I imagine, not ideal to the frontline developers.</p><p>When I zoom out, I see that Call of Duty has actually been on two cycles all along: once a year there's a new Call of Duty, and once a decade there's a point where that unrealistic pace catches up to Activision, and the series adopts a posture of desperation—new features are less new, old maps are added to new games to pad out a <a href="https://www.pcgamer.com/games/fps/the-many-boxed-roadmap-represents-everything-i-hate-about-shooters-right-now/">many-boxed roadmap</a>, and player sentiment tanks. We've been at that point since Modern Warfare 3.</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="hxPM2vxKKDh8oVdFJ547Q" name="Guild Strikes" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/hxPM2vxKKDh8oVdFJ547Q-1920-80.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: Activision)</span></figcaption></figure><div><blockquote><p>Modern Warfare loyalists can't wait for Infinity Ward to be back in control, while the loudest Treyarch fans believe Call of Duty has been better off without them.</p></blockquote></div><p>From the outside, it's an arrangement that seemingly casts Infinity Ward as the flagship studio afforded as many years as it needs to make the next evolutionary Modern Warfare, while Treyarch, Sledgehammer, and Raven are tasked with keeping the lights on with quickly-made sequels that suffer diminishing returns.</p><p>This setup may work for Activision, which gets to sell boatloads of $70 boxes every Fall without fail, but it further fuels the schism. Nobody can agree on what "peak" Call of Duty is, and what used to be fun changings of the guard are now treated like existential threats—Modern Warfare loyalists can't wait for Infinity Ward to be back in control, while the loudest Treyarch fans believe Call of Duty has been better off without them.</p><p>That makes 2026 a big year for all involved. Four years since Modern Warfare 2, it's finally Infinity Ward's turn again. This year's Call of Duty will presumably have had the longest development period in series history, and it's coming on the heels of a Black Ops sequel that not even the Treyarch crowd is playing. That sets expectations sky high: Will Infinity Ward revive Call of Duty once more, or prove that Treyarch has become its new masters? </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Call of Duty: Black Ops 7 content hub ]]></title>
                                                                                                <dc:content><![CDATA[ <div class="ceros-embed-wrapper">        <div style="position: relative;width: auto;padding: 0 0 631.25% ;height: 0;top: 0;left: 0;bottom: 0;right: 0;margin: 0;border: 0 none"        id="experience-693fe12be7ea2" data-aspectratio="0.15841584" data-mobile-aspectratio="">        <iframe        allowfullscreen=""        src="https://view.ceros.com/kiplinger/pcg-cod7-hub?heightOverride=10100"        style="position: absolute;top: 0;left: 0;bottom: 0;right: 0;margin: 0;padding: 0;border: 0 none;height: 1px;width: 1px;min-height: 100%;min-width: 100%"        frameborder="0" class="ceros-experience" title="PC Gamer Call of Duty: Black Ops 7 Hub"        scrolling="no"></iframe>    </div>    <script type="text/javascript" src="https://view.ceros.com/scroll-proxy.min.js" data-ceros-origin-domains="view.ceros.com"></script></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/black-ops-7-content-hub/</link>
                                                                            <description>
                            <![CDATA[ Call of Duty: Black Ops 7 content hub ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5BMQTrGgRYH52b5MeHcwFS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Rn4ScfjR3x4S3owBmqUZFo-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 11 Feb 2026 16:08:26 +0000</pubDate>                                                                                                                                <updated>Wed, 11 Feb 2026 19:26:46 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ PC Gamer ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/FAbmGzkJSSZP5TYHJQjcLT-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Rn4ScfjR3x4S3owBmqUZFo-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Black Ops 7 Season 2 screenshot]]></media:description>                                                            <media:text><![CDATA[Black Ops 7 Season 2 screenshot]]></media:text>
                                <media:title type="plain"><![CDATA[Black Ops 7 Season 2 screenshot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Rn4ScfjR3x4S3owBmqUZFo-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="ceros-embed-wrapper">        <div style="position: relative;width: auto;padding: 0 0 631.25% ;height: 0;top: 0;left: 0;bottom: 0;right: 0;margin: 0;border: 0 none"        id="experience-693fe12be7ea2" data-aspectratio="0.15841584" data-mobile-aspectratio="">        <iframe        allowfullscreen=""        src="https://view.ceros.com/kiplinger/pcg-cod7-hub?heightOverride=10100"        style="position: absolute;top: 0;left: 0;bottom: 0;right: 0;margin: 0;padding: 0;border: 0 none;height: 1px;width: 1px;min-height: 100%;min-width: 100%"        frameborder="0" class="ceros-experience" title="PC Gamer Call of Duty: Black Ops 7 Hub"        scrolling="no"></iframe>    </div>    <script type="text/javascript" src="https://view.ceros.com/scroll-proxy.min.js" data-ceros-origin-domains="view.ceros.com"></script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Black Ops 7's best loadout is this rapid-fire ricochet assault rifle ]]></title>
                                                                                                <dc:content><![CDATA[ <p>New weapons are always exciting in a Call of Duty game, but sometimes the new stuff ends up being a little <em>too</em> strong. The EGRT-17 assault rifle in Black Ops 7 is the latest example of this, and it's the best weapon you can use right now across all game modes.</p><p>This assault rifle combines the firing rate of the Peacekeeper with the damage and range of the AK-27, cementing its place at the top of its class. It's already a monster without any attachments, but with the right loadout, you can basically eliminate all of its weaknesses.</p><h3 class="article-body__section" id="section-best-egrt-17-loadout-in-black-ops-7"><span>Best EGRT-17 Loadout in Black Ops 7</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hkdFxKHCpnLqJTAAkvLkuG" name="EGRT 17 Attachments" alt="An EGRT-17 assault rifle with a full loadout of the best attachments" src="https://cdn.mos.cms.futurecdn.net/hkdFxKHCpnLqJTAAkvLkuG-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/hkdFxKHCpnLqJTAAkvLkuG-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><ul><li><strong>Muzzle:</strong> Redwell Shade-X Suppressor</li><li><strong>Barrel:</strong> 17.9" EAM Planar Barrel</li><li><strong>Underbarrel:</strong> Bowen Sentry Foregrip</li><li><strong>Magazine:</strong> Verto Flip Mag</li><li><strong>Rear Grip:</strong> EAM Capacitor Grip</li><li><strong>Stock:</strong> Frigate Control Stock</li><li><strong>Laser:</strong> 3MW Motion Strike Laser</li><li><strong>Fire Mods:</strong> Buffer Springs</li></ul><p>Here's the build code so you can import it into your game: <strong>A07-BMVTZ-R5L31</strong>. Just open the loadout menu, select the Carbon 57, and select the little gun icon next to the "create new build" button.</p><p>This build focuses on improving the EGRT-17's accuracy at long range without sacrificing too much handling or close range performance. With these attachments, this gun will shred anything you put in front of it while still being capable of nailing long-distance eliminations.</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="vRFqtrtTdWqJdQLfELM8bV" name="EAM Planar Barrel" alt="An EGRT-17 assault rifle with a 17.9" EAM planar barrel attachment" src="https://cdn.mos.cms.futurecdn.net/vRFqtrtTdWqJdQLfELM8bV-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/vRFqtrtTdWqJdQLfELM8bV-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>The <strong>Redwell Shade-X Suppressor </strong>kicks things off in the Muzzle slot, stabilizing the gun's recoil and keeping you hidden from the minimap. Combined with the <strong>17.9" EAM Planar Barrel</strong>, which boosts damage range and bullet velocity, you'll already see an improvement at range with the EGRT-17.</p><p>To keep things steady, the <strong>Bowen Sentry Foregrip </strong>reduces horizontal recoil so you'll have an easier time staying on target. The <strong>Frigate Control Stock </strong>increases both vertical and horizontal recoil control as well, further improving the EGRT-17's stability.</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="ZxC4uJkeB8VJaL6hemgQta" name="Verto Flip Mag" alt="A verto flip mag attachment" src="https://cdn.mos.cms.futurecdn.net/ZxC4uJkeB8VJaL6hemgQta-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/ZxC4uJkeB8VJaL6hemgQta-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>You don't want to ignore the weapon's innate close-range strengths though, which is why the <strong>Verto Flip Mag </strong>boosts this build's reload speed so you don't get caught in a bad spot. The <strong>EAM Capacitor Grip </strong>also reduces overall ADS speed, which is always a nice touch.</p><p>To cap things off, the <strong>3MW Motion Strike Laser </strong>greatly improves recoil stabilization and damage range. The laser will be visible in ADS, but this thing has such a fast time-to-kill that it really doesn't matter. Finally, <strong>Buffer Springs </strong>will seriously smooth out your recoil, serving as the cherry on top for this build.</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="tH3r594xFGGYjmrV3gtfth" name="MFS Heated Echo Rounds" alt="An EGRT-17 assault rifle with MFS heated echo rounds" src="https://cdn.mos.cms.futurecdn.net/tH3r594xFGGYjmrV3gtfth-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/tH3r594xFGGYjmrV3gtfth-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>If you don't want a laser on your weapon, feel free to add an <strong>Optic </strong>of your choice. The EGRT-17's iron sights are fine enough on their own, so this loadout skips a scope. You can also swap out the Buffer Spring for <strong>MFS Heated Echo Rounds</strong>, which are the EGRT-17's prestige attachment. They make the gun's bullets ricochet three times while also boosting range and bullet velocity at the cost of recoil.</p><h3 class="article-body__section" id="section-black-ops-7-best-egrt-17-class-setup"><span>Black Ops 7 Best EGRT-17 Class Setup</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="764zipxzk38vNsn9CVVMP6" name="Class Setup" alt="The best EGRT-17 class setup" src="https://cdn.mos.cms.futurecdn.net/764zipxzk38vNsn9CVVMP6-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/764zipxzk38vNsn9CVVMP6-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><ul><li><strong>Wildcard: </strong>Gunfighter</li><li><strong>Field Upgrade: </strong>Scrambler</li><li><strong>Tactical: </strong>Stim Shot</li><li><strong>Lethal: </strong>Semtex</li><li><strong>Perk 1: </strong>Ghost</li><li><strong>Perk 2: </strong>Fast Hands</li><li><strong>Perk 3: </strong>Cold-Blooded</li></ul><p><strong>Gunfighter </strong>is one of BO7's best Wildcards, and it's a necessity in this build so you can trick out the EGRT-17 with the best attachments. You can also run whatever Field Upgrade you like with this build, but the <strong>Scrambler </strong>is best for aggressive play on small maps.</p><p>As for equipment, the <strong>Stim Shot </strong>should be your Tactical of choice. Since you'll be constantly pushing with the EGRT-17, that health boost can save your life. You can use whatever Lethal you like, but <strong>Semtex </strong>is a solid all-around choice.</p><p>For perks, start with <strong>Ghost </strong>in the first slot so you can stay hidden from enemies. <strong>Fast Hands</strong> in the Perk 2 slot will offset the EGRT-17's slow reload time, but you can swap it out for something else if needed. Finally, <strong>Cold-Blooded</strong> rounds things out, keeping you off the grid and protected from streaks.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/black-ops-7s-best-loadout-is-this-rapid-fire-ricochet-assault-rifle/</link>
                                                                            <description>
                            <![CDATA[ Get the most out of the best weapon in Black Ops 7. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">7QfuWVWei3rh2biQ5AVazP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WiZ8BB8HPnbF7cUCYFPPW6-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 11 Feb 2026 03:53:27 +0000</pubDate>                                                                                                                                <updated>Wed, 11 Feb 2026 05:32:58 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Diego Perez ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WiZ8BB8HPnbF7cUCYFPPW6-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[An EGRT-17 assault rifle]]></media:description>                                                            <media:text><![CDATA[An EGRT-17 assault rifle]]></media:text>
                                <media:title type="plain"><![CDATA[An EGRT-17 assault rifle]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WiZ8BB8HPnbF7cUCYFPPW6-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>New weapons are always exciting in a Call of Duty game, but sometimes the new stuff ends up being a little <em>too</em> strong. The EGRT-17 assault rifle in Black Ops 7 is the latest example of this, and it's the best weapon you can use right now across all game modes.</p><p>This assault rifle combines the firing rate of the Peacekeeper with the damage and range of the AK-27, cementing its place at the top of its class. It's already a monster without any attachments, but with the right loadout, you can basically eliminate all of its weaknesses.</p><h3 class="article-body__section" id="section-best-egrt-17-loadout-in-black-ops-7"><span>Best EGRT-17 Loadout in Black Ops 7</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hkdFxKHCpnLqJTAAkvLkuG" name="EGRT 17 Attachments" alt="An EGRT-17 assault rifle with a full loadout of the best attachments" src="https://cdn.mos.cms.futurecdn.net/hkdFxKHCpnLqJTAAkvLkuG-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/hkdFxKHCpnLqJTAAkvLkuG-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><ul><li><strong>Muzzle:</strong> Redwell Shade-X Suppressor</li><li><strong>Barrel:</strong> 17.9" EAM Planar Barrel</li><li><strong>Underbarrel:</strong> Bowen Sentry Foregrip</li><li><strong>Magazine:</strong> Verto Flip Mag</li><li><strong>Rear Grip:</strong> EAM Capacitor Grip</li><li><strong>Stock:</strong> Frigate Control Stock</li><li><strong>Laser:</strong> 3MW Motion Strike Laser</li><li><strong>Fire Mods:</strong> Buffer Springs</li></ul><p>Here's the build code so you can import it into your game: <strong>A07-BMVTZ-R5L31</strong>. Just open the loadout menu, select the Carbon 57, and select the little gun icon next to the "create new build" button.</p><p>This build focuses on improving the EGRT-17's accuracy at long range without sacrificing too much handling or close range performance. With these attachments, this gun will shred anything you put in front of it while still being capable of nailing long-distance eliminations.</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="vRFqtrtTdWqJdQLfELM8bV" name="EAM Planar Barrel" alt="An EGRT-17 assault rifle with a 17.9" EAM planar barrel attachment" src="https://cdn.mos.cms.futurecdn.net/vRFqtrtTdWqJdQLfELM8bV-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/vRFqtrtTdWqJdQLfELM8bV-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>The <strong>Redwell Shade-X Suppressor </strong>kicks things off in the Muzzle slot, stabilizing the gun's recoil and keeping you hidden from the minimap. Combined with the <strong>17.9" EAM Planar Barrel</strong>, which boosts damage range and bullet velocity, you'll already see an improvement at range with the EGRT-17.</p><p>To keep things steady, the <strong>Bowen Sentry Foregrip </strong>reduces horizontal recoil so you'll have an easier time staying on target. The <strong>Frigate Control Stock </strong>increases both vertical and horizontal recoil control as well, further improving the EGRT-17's stability.</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="ZxC4uJkeB8VJaL6hemgQta" name="Verto Flip Mag" alt="A verto flip mag attachment" src="https://cdn.mos.cms.futurecdn.net/ZxC4uJkeB8VJaL6hemgQta-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/ZxC4uJkeB8VJaL6hemgQta-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>You don't want to ignore the weapon's innate close-range strengths though, which is why the <strong>Verto Flip Mag </strong>boosts this build's reload speed so you don't get caught in a bad spot. The <strong>EAM Capacitor Grip </strong>also reduces overall ADS speed, which is always a nice touch.</p><p>To cap things off, the <strong>3MW Motion Strike Laser </strong>greatly improves recoil stabilization and damage range. The laser will be visible in ADS, but this thing has such a fast time-to-kill that it really doesn't matter. Finally, <strong>Buffer Springs </strong>will seriously smooth out your recoil, serving as the cherry on top for this build.</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="tH3r594xFGGYjmrV3gtfth" name="MFS Heated Echo Rounds" alt="An EGRT-17 assault rifle with MFS heated echo rounds" src="https://cdn.mos.cms.futurecdn.net/tH3r594xFGGYjmrV3gtfth-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/tH3r594xFGGYjmrV3gtfth-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><p>If you don't want a laser on your weapon, feel free to add an <strong>Optic </strong>of your choice. The EGRT-17's iron sights are fine enough on their own, so this loadout skips a scope. You can also swap out the Buffer Spring for <strong>MFS Heated Echo Rounds</strong>, which are the EGRT-17's prestige attachment. They make the gun's bullets ricochet three times while also boosting range and bullet velocity at the cost of recoil.</p><h3 class="article-body__section" id="section-black-ops-7-best-egrt-17-class-setup"><span>Black Ops 7 Best EGRT-17 Class Setup</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:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="764zipxzk38vNsn9CVVMP6" name="Class Setup" alt="The best EGRT-17 class setup" src="https://cdn.mos.cms.futurecdn.net/764zipxzk38vNsn9CVVMP6-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1920" height="1080" attribution="" endorsement="" class="inline expandable" /><a href='https://cdn.mos.cms.futurecdn.net/764zipxzk38vNsn9CVVMP6-1920-80.jpg' target='_blank' class='expand-button icon-expand-image icon' ></a></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Activision)</span></figcaption></figure><ul><li><strong>Wildcard: </strong>Gunfighter</li><li><strong>Field Upgrade: </strong>Scrambler</li><li><strong>Tactical: </strong>Stim Shot</li><li><strong>Lethal: </strong>Semtex</li><li><strong>Perk 1: </strong>Ghost</li><li><strong>Perk 2: </strong>Fast Hands</li><li><strong>Perk 3: </strong>Cold-Blooded</li></ul><p><strong>Gunfighter </strong>is one of BO7's best Wildcards, and it's a necessity in this build so you can trick out the EGRT-17 with the best attachments. You can also run whatever Field Upgrade you like with this build, but the <strong>Scrambler </strong>is best for aggressive play on small maps.</p><p>As for equipment, the <strong>Stim Shot </strong>should be your Tactical of choice. Since you'll be constantly pushing with the EGRT-17, that health boost can save your life. You can use whatever Lethal you like, but <strong>Semtex </strong>is a solid all-around choice.</p><p>For perks, start with <strong>Ghost </strong>in the first slot so you can stay hidden from enemies. <strong>Fast Hands</strong> in the Perk 2 slot will offset the EGRT-17's slow reload time, but you can swap it out for something else if needed. Finally, <strong>Cold-Blooded</strong> rounds things out, keeping you off the grid and protected from streaks.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Black Ops 7 Season 2's new weapons shred the meta with rapid-fire TTK ]]></title>
                                                                                                <dc:content><![CDATA[ <p>New guns are always going to be powerful when a new Call of Duty season drops, but some of the new weapons introduced in Black Ops 7 Season 2 are crazy strong.</p><p>Black Ops 7 Season 2 is filled with all-new maps and modes plus returning fan favorites like Safeguard and Slums, but the new guns available at the launch of the season are easily the stars of the show. The REV-46 SMG and EGRT-17 assault rifle are dominating lobbies right now, and upcoming changes could make them even more impactful to the BO7 meta.</p><h2 id="moving-away-from-the-maddox">Moving Away from the Maddox</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="xw9qasbgf49KxjxJ6RiYVK" name="Maddox RFB" alt="The Maddox RFB rifle on a black background" src="https://cdn.mos.cms.futurecdn.net/xw9qasbgf49KxjxJ6RiYVK-1920-80.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: Activision)</span></figcaption></figure><p>If you played Black Ops 7 last season, then you've probably seen the Maddox RFB assault rifle in most of your matches. A returning weapon from Black Ops 4, the Maddox dominated BO7 with its close-range power and long-range accuracy.</p><p>The Maddox got nerfed during Season 1, but it's still one of the best assault rifles in the game. Now, Season 2's new weapons have taken its spot at the top of the food chain. With Season 2 balance changes coming later than usual so the development team can monitor weapon performance in the live game, the REV-46 and EGRT-17 are the best of the best for the foreseeable future.</p><h2 id="explaining-the-egrt-17">Explaining the EGRT-17</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="UpKfjamwoTDU59seW3bKpU" name="EGRT-17" alt="The EGRT-17 rifle from Black Ops 7" src="https://cdn.mos.cms.futurecdn.net/UpKfjamwoTDU59seW3bKpU-1920-80.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: Activision)</span></figcaption></figure><p>The problem weapon last season was the Maddox, an assault rifle that shredded at close-range and could have basically zero recoil at long-range. This season, Treyarch added the EGRT-17, an assault rifle that shreds at close-range and can have basically zero recoil at long-range. See the problem there?</p><p>Granted, the EGRT-17 isn't as accurate as the Maddox at long distances. However, it's significantly stronger up close, so it just trades one thing for another.</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="AYGovB8ubkZixNtCdjJqRc" name="EGRT-17 Gameplay" alt="The EGRT-17 rifle from Black Ops 7 in action" src="https://cdn.mos.cms.futurecdn.net/AYGovB8ubkZixNtCdjJqRc-1920-80.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: Activision)</span></figcaption></figure><p>The EGRT-17 boasts the second-highest fire rate in its class—losing only to the rapid-fire Peacekeeper—but it still has an easily controllable recoil pattern despite being a certified bullet hose. With the right attachments, it becomes a laser beam. The only thing holding it back is a slower-than-average reload speed, but that can easily be offset with attachments as well.</p><p>As if the weapon couldn't get any stronger, its bullets also <em>ricochet off surfaces</em>. If you prestige the EGRT-17, you then unlock an attachment that makes the bullets ricochet <em>three times</em>. That attachment also offers a huge improvement to both damage range and bullet velocity, which makes the gun even easier to control.</p><h2 id="the-stock-switching-smg">The Stock-Switching SMG</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="AKpYeKLuLY4XeG6Z24oc8n" name="REV-46" alt="The REV-46 SMG from Black Ops 7 in action" src="https://cdn.mos.cms.futurecdn.net/AKpYeKLuLY4XeG6Z24oc8n-1920-80.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: Activision)</span></figcaption></figure><p>This season's new SMG is just as strong. The REV-46 is the fastest-firing SMG in Black Ops 7 by a wide margin, and that's just one reason why this gun is so popular in BO7 right now.</p><p>A weapon that can shred enemies at close range is already going to be strong in any Call of Duty game just by virtue of its fire rate, but the REV-46 has a unique trick up its sleeve: a folding stock. It's the only weapon in the game with a folding stock mechanic, and its stats change drastically depending on the configuration.</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="NKuheHdhMY4xS9Zad7iTg6" name="REV-46 Stock" alt="The REV-46 SMG from Black Ops 7 in action" src="https://cdn.mos.cms.futurecdn.net/NKuheHdhMY4xS9Zad7iTg6-1920-80.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: Activision)</span></figcaption></figure><p>Using the typical fire-select button, you can retract or deploy the REV-46's stock at any time. With the stock folded, the REV-46 has unmatched handling with blazing fast ADS and sprint-to-fire speeds. Once you unfold the stock, the gun gains reduced recoil and a significantly tighter hipfire reticle.</p><p>It's the best of both worlds for SMG lovers, and the REV-46's prestige attachment sweetens the deal even further. Once equipped, the stock dramatically boosts movement and ADS speed while extended at the cost of some additional recoil. It's really not that harsh of a tradeoff, though, and it makes the REV-46 capable of both hipfire shreds and room-clearing strafes simultaneously.</p><h2 id="bringing-back-blackout">Bringing Back Blackout</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="HFMuK2GJWWGcpHp6KKuGmH" name="Warzone S2" alt="A helicoper hovers over a large factory roof where people stand shooting" src="https://cdn.mos.cms.futurecdn.net/HFMuK2GJWWGcpHp6KKuGmH-1920-80.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: Activision)</span></figcaption></figure><p>These weapons are already strong in their current state—and things could easily change once balance patches start to roll out— but the EGRT-17 and REV-46 make me really excited for something else on Season 2's roadmap.</p><p>Both guns are already proving popular with the Warzone crowd, but Black Ops 7 Season 2 is bringing back the fan-favorite Blackout mode introduced in Black Ops 4. Blackout beat Warzone to the punch by a full year, and it was a much more enjoyable experience for casual sessions. </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="oF8YAcFXXKrHqrYeNkWU8S" name="Blackout" alt="A figure drops via wingsuit into a warzone" src="https://cdn.mos.cms.futurecdn.net/oF8YAcFXXKrHqrYeNkWU8S-1920-80.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: Activision)</span></figcaption></figure><p>Blackout was fast-paced and designed with fast-paced action in mind, so I can see the EGRT-17 and REV-46 sitting comfortably at the top of the new Blackout meta. It may not be a one-to-one translation of BO4's battle royale since this is being touted as a "new battle royale experience" that "draws inspiration" from Blackout, but if the core mechanics are the same, finding these two guns will be like finding a gold SCAR in OG Fortnite.</p><p>Blackout won't be coming back until Season 2 Reloaded, so there's still plenty of time for these guns to get nerfed into the ground. For now, the EGRT-17 and REV-46 are very much worth grinding the battle pass for.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/black-ops-7-season-2s-new-weapons-shred-the-meta-with-rapid-fire-ttk/</link>
                                                                            <description>
                            <![CDATA[ Goodbye, Maddox. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">tyrJpmQMmCnQWzTesJiScd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9fvrgGhQrek3HrJFzAFY48-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 11 Feb 2026 03:53:19 +0000</pubDate>                                                                                                                                <updated>Wed, 11 Feb 2026 05:33:36 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Diego Perez ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9fvrgGhQrek3HrJFzAFY48-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Three stylishly dressed soldiers show off their weapons in a warzone]]></media:description>                                                            <media:text><![CDATA[Three stylishly dressed soldiers show off their weapons in a warzone]]></media:text>
                                <media:title type="plain"><![CDATA[Three stylishly dressed soldiers show off their weapons in a warzone]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9fvrgGhQrek3HrJFzAFY48-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>New guns are always going to be powerful when a new Call of Duty season drops, but some of the new weapons introduced in Black Ops 7 Season 2 are crazy strong.</p><p>Black Ops 7 Season 2 is filled with all-new maps and modes plus returning fan favorites like Safeguard and Slums, but the new guns available at the launch of the season are easily the stars of the show. The REV-46 SMG and EGRT-17 assault rifle are dominating lobbies right now, and upcoming changes could make them even more impactful to the BO7 meta.</p><h2 id="moving-away-from-the-maddox">Moving Away from the Maddox</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="xw9qasbgf49KxjxJ6RiYVK" name="Maddox RFB" alt="The Maddox RFB rifle on a black background" src="https://cdn.mos.cms.futurecdn.net/xw9qasbgf49KxjxJ6RiYVK-1920-80.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: Activision)</span></figcaption></figure><p>If you played Black Ops 7 last season, then you've probably seen the Maddox RFB assault rifle in most of your matches. A returning weapon from Black Ops 4, the Maddox dominated BO7 with its close-range power and long-range accuracy.</p><p>The Maddox got nerfed during Season 1, but it's still one of the best assault rifles in the game. Now, Season 2's new weapons have taken its spot at the top of the food chain. With Season 2 balance changes coming later than usual so the development team can monitor weapon performance in the live game, the REV-46 and EGRT-17 are the best of the best for the foreseeable future.</p><h2 id="explaining-the-egrt-17">Explaining the EGRT-17</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="UpKfjamwoTDU59seW3bKpU" name="EGRT-17" alt="The EGRT-17 rifle from Black Ops 7" src="https://cdn.mos.cms.futurecdn.net/UpKfjamwoTDU59seW3bKpU-1920-80.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: Activision)</span></figcaption></figure><p>The problem weapon last season was the Maddox, an assault rifle that shredded at close-range and could have basically zero recoil at long-range. This season, Treyarch added the EGRT-17, an assault rifle that shreds at close-range and can have basically zero recoil at long-range. See the problem there?</p><p>Granted, the EGRT-17 isn't as accurate as the Maddox at long distances. However, it's significantly stronger up close, so it just trades one thing for another.</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="AYGovB8ubkZixNtCdjJqRc" name="EGRT-17 Gameplay" alt="The EGRT-17 rifle from Black Ops 7 in action" src="https://cdn.mos.cms.futurecdn.net/AYGovB8ubkZixNtCdjJqRc-1920-80.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: Activision)</span></figcaption></figure><p>The EGRT-17 boasts the second-highest fire rate in its class—losing only to the rapid-fire Peacekeeper—but it still has an easily controllable recoil pattern despite being a certified bullet hose. With the right attachments, it becomes a laser beam. The only thing holding it back is a slower-than-average reload speed, but that can easily be offset with attachments as well.</p><p>As if the weapon couldn't get any stronger, its bullets also <em>ricochet off surfaces</em>. If you prestige the EGRT-17, you then unlock an attachment that makes the bullets ricochet <em>three times</em>. That attachment also offers a huge improvement to both damage range and bullet velocity, which makes the gun even easier to control.</p><h2 id="the-stock-switching-smg">The Stock-Switching SMG</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="AKpYeKLuLY4XeG6Z24oc8n" name="REV-46" alt="The REV-46 SMG from Black Ops 7 in action" src="https://cdn.mos.cms.futurecdn.net/AKpYeKLuLY4XeG6Z24oc8n-1920-80.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: Activision)</span></figcaption></figure><p>This season's new SMG is just as strong. The REV-46 is the fastest-firing SMG in Black Ops 7 by a wide margin, and that's just one reason why this gun is so popular in BO7 right now.</p><p>A weapon that can shred enemies at close range is already going to be strong in any Call of Duty game just by virtue of its fire rate, but the REV-46 has a unique trick up its sleeve: a folding stock. It's the only weapon in the game with a folding stock mechanic, and its stats change drastically depending on the configuration.</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="NKuheHdhMY4xS9Zad7iTg6" name="REV-46 Stock" alt="The REV-46 SMG from Black Ops 7 in action" src="https://cdn.mos.cms.futurecdn.net/NKuheHdhMY4xS9Zad7iTg6-1920-80.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: Activision)</span></figcaption></figure><p>Using the typical fire-select button, you can retract or deploy the REV-46's stock at any time. With the stock folded, the REV-46 has unmatched handling with blazing fast ADS and sprint-to-fire speeds. Once you unfold the stock, the gun gains reduced recoil and a significantly tighter hipfire reticle.</p><p>It's the best of both worlds for SMG lovers, and the REV-46's prestige attachment sweetens the deal even further. Once equipped, the stock dramatically boosts movement and ADS speed while extended at the cost of some additional recoil. It's really not that harsh of a tradeoff, though, and it makes the REV-46 capable of both hipfire shreds and room-clearing strafes simultaneously.</p><h2 id="bringing-back-blackout">Bringing Back Blackout</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="HFMuK2GJWWGcpHp6KKuGmH" name="Warzone S2" alt="A helicoper hovers over a large factory roof where people stand shooting" src="https://cdn.mos.cms.futurecdn.net/HFMuK2GJWWGcpHp6KKuGmH-1920-80.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: Activision)</span></figcaption></figure><p>These weapons are already strong in their current state—and things could easily change once balance patches start to roll out— but the EGRT-17 and REV-46 make me really excited for something else on Season 2's roadmap.</p><p>Both guns are already proving popular with the Warzone crowd, but Black Ops 7 Season 2 is bringing back the fan-favorite Blackout mode introduced in Black Ops 4. Blackout beat Warzone to the punch by a full year, and it was a much more enjoyable experience for casual sessions. </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="oF8YAcFXXKrHqrYeNkWU8S" name="Blackout" alt="A figure drops via wingsuit into a warzone" src="https://cdn.mos.cms.futurecdn.net/oF8YAcFXXKrHqrYeNkWU8S-1920-80.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: Activision)</span></figcaption></figure><p>Blackout was fast-paced and designed with fast-paced action in mind, so I can see the EGRT-17 and REV-46 sitting comfortably at the top of the new Blackout meta. It may not be a one-to-one translation of BO4's battle royale since this is being touted as a "new battle royale experience" that "draws inspiration" from Blackout, but if the core mechanics are the same, finding these two guns will be like finding a gold SCAR in OG Fortnite.</p><p>Blackout won't be coming back until Season 2 Reloaded, so there's still plenty of time for these guns to get nerfed into the ground. For now, the EGRT-17 and REV-46 are very much worth grinding the battle pass for.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Black Ops 7's new best mode is a returning classic ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Call of Duty: Black Ops 7 isn't shy about its inspirations. It's no secret that the game pulls a lot from the Black Ops golden age, and the launch of Season 2 brings back an all timer in the form of Safeguard.</p><p>Originally introduced in Black Ops 3, Safeguard tasks two teams with escorting a robot across the map. It's one of the best modes in that game and its sequel, but it shines like never before in Black Ops 7.</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="o2bRvp9Zy4baNcRknxrHGV" name="Safeguard Robot" alt="Black Ops 7 safeguard screenshot" src="https://cdn.mos.cms.futurecdn.net/o2bRvp9Zy4baNcRknxrHGV-1920-80.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: Activision)</span></figcaption></figure><p>Safeguard feels right at home in Black Ops 7, so much so that it feels like it should've been a launch mode. It's nonstop action—like a never-ending Hardpoint—and it's perfect for casual players and camo grinders alike. Plus, with Black Ops 7's less restrictive open matchmaking, this new iteration of Safeguard takes me right back to the good old days.</p><p>Black Ops 7's fancy movement techniques let you get back into the action faster, preventing either side from controlling the robot for too long. Plus, BO7's high-tech gadgets like explosive Needle Drones and defensive Point Turrets can easily dislocate campers and push a dominant team off of the objective. Victory never feels out of reach.</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="MJMBXEqHjfhtu4DjWX6gGV" name="Safeguard Gameplay" alt="Black Ops 7 safeguard screenshot" src="https://cdn.mos.cms.futurecdn.net/MJMBXEqHjfhtu4DjWX6gGV-1920-80.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: Activision)</span></figcaption></figure><p>It also helps that Black Ops 7 features some of the most refined gunplay the series has ever seen. Safeguard hasn't been around since Black Ops 4, so we haven't seen it in roughly eight years (not counting COD Mobile). COD's gameplay has come a long way since then, and battling over that bot has never felt so good.</p><p>The feel of Safeguard has always varied from map to map, but I think the mode feels great on pretty much every Black Ops 7 map. Season 2 also added some Black Ops 2 nostalgia by bringing back the classic Slums map, and it feels perfect for Safeguard. One of BO3's best modes, one of BO2's best maps, and BO7's satisfying gunplay are a match made in heaven. Black Ops 2's Yemen is also returning mid-season (renamed Cliff Town), and I'm stoked to see what Safeguard plays like there.</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="WJcaN2h5Q8hBwNoKwGqUvV" name="Slums Map" alt="Black Ops 7 safeguard screenshot" src="https://cdn.mos.cms.futurecdn.net/WJcaN2h5Q8hBwNoKwGqUvV-1920-80.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: Activision)</span></figcaption></figure><p>Black Ops 7 is at its best when you're playing objective-based game modes. The maps flow incredibly well, and being able to predict spawns and keep track of enemy movement is a core part of the game. Sometimes, you just want to kick back with a fast-paced mode like TDM, though.</p><p>Safeguard is the best of both worlds. It gives you something to focus on, a place where the action always concentrates. Despite that, there's no need to worry about the other team spawn trapping you like in Domination or a sweaty six-stack constantly rotating to the next Hardpoint. Safeguard is the ultimate mode to chill with your friends or work on your camo grind.</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="rxzcDymPuJy4tTa3dnRTGV" name="Safeguard Gameplay 2" alt="Black Ops 7 safeguard screenshot" src="https://cdn.mos.cms.futurecdn.net/rxzcDymPuJy4tTa3dnRTGV-1920-80.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: Activision)</span></figcaption></figure><p>With Season 2, Black Ops 7 continues a trend of bringing back classic Black Ops maps and modes, but unlike some other recent COD games, there's also no shortage of original stuff. The returning content isn't just a crutch to fill a checklist, and they really feel like bonus goodies instead of seasonal filler. It's the difference between "oh, Safeguard is back…" and "oh, Safeguard is back!"</p><p>There's still more exciting stuff on the horizon for Black Ops 7, including a reimagined Blackout battle royale experience, and I highly recommend giving the new season a chance.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/black-ops-7s-new-best-mode-is-a-returning-classic/</link>
                                                                            <description>
                            <![CDATA[ An all-timer from Black Ops 3 returns in Season 2, but Safeguard feels less like a throwback and more like the multiplayer’s new main event. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hER9dtDMzid9qyGy4VzNS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/6t5As7SEZdCVjzqXZza6wV-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 11 Feb 2026 03:52:25 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Diego Perez ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/6t5As7SEZdCVjzqXZza6wV-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Black Ops 7 safeguard screenshot]]></media:description>                                                            <media:text><![CDATA[Black Ops 7 safeguard screenshot]]></media:text>
                                <media:title type="plain"><![CDATA[Black Ops 7 safeguard screenshot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/6t5As7SEZdCVjzqXZza6wV-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Call of Duty: Black Ops 7 isn't shy about its inspirations. It's no secret that the game pulls a lot from the Black Ops golden age, and the launch of Season 2 brings back an all timer in the form of Safeguard.</p><p>Originally introduced in Black Ops 3, Safeguard tasks two teams with escorting a robot across the map. It's one of the best modes in that game and its sequel, but it shines like never before in Black Ops 7.</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="o2bRvp9Zy4baNcRknxrHGV" name="Safeguard Robot" alt="Black Ops 7 safeguard screenshot" src="https://cdn.mos.cms.futurecdn.net/o2bRvp9Zy4baNcRknxrHGV-1920-80.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: Activision)</span></figcaption></figure><p>Safeguard feels right at home in Black Ops 7, so much so that it feels like it should've been a launch mode. It's nonstop action—like a never-ending Hardpoint—and it's perfect for casual players and camo grinders alike. Plus, with Black Ops 7's less restrictive open matchmaking, this new iteration of Safeguard takes me right back to the good old days.</p><p>Black Ops 7's fancy movement techniques let you get back into the action faster, preventing either side from controlling the robot for too long. Plus, BO7's high-tech gadgets like explosive Needle Drones and defensive Point Turrets can easily dislocate campers and push a dominant team off of the objective. Victory never feels out of reach.</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="MJMBXEqHjfhtu4DjWX6gGV" name="Safeguard Gameplay" alt="Black Ops 7 safeguard screenshot" src="https://cdn.mos.cms.futurecdn.net/MJMBXEqHjfhtu4DjWX6gGV-1920-80.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: Activision)</span></figcaption></figure><p>It also helps that Black Ops 7 features some of the most refined gunplay the series has ever seen. Safeguard hasn't been around since Black Ops 4, so we haven't seen it in roughly eight years (not counting COD Mobile). COD's gameplay has come a long way since then, and battling over that bot has never felt so good.</p><p>The feel of Safeguard has always varied from map to map, but I think the mode feels great on pretty much every Black Ops 7 map. Season 2 also added some Black Ops 2 nostalgia by bringing back the classic Slums map, and it feels perfect for Safeguard. One of BO3's best modes, one of BO2's best maps, and BO7's satisfying gunplay are a match made in heaven. Black Ops 2's Yemen is also returning mid-season (renamed Cliff Town), and I'm stoked to see what Safeguard plays like there.</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="WJcaN2h5Q8hBwNoKwGqUvV" name="Slums Map" alt="Black Ops 7 safeguard screenshot" src="https://cdn.mos.cms.futurecdn.net/WJcaN2h5Q8hBwNoKwGqUvV-1920-80.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: Activision)</span></figcaption></figure><p>Black Ops 7 is at its best when you're playing objective-based game modes. The maps flow incredibly well, and being able to predict spawns and keep track of enemy movement is a core part of the game. Sometimes, you just want to kick back with a fast-paced mode like TDM, though.</p><p>Safeguard is the best of both worlds. It gives you something to focus on, a place where the action always concentrates. Despite that, there's no need to worry about the other team spawn trapping you like in Domination or a sweaty six-stack constantly rotating to the next Hardpoint. Safeguard is the ultimate mode to chill with your friends or work on your camo grind.</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="rxzcDymPuJy4tTa3dnRTGV" name="Safeguard Gameplay 2" alt="Black Ops 7 safeguard screenshot" src="https://cdn.mos.cms.futurecdn.net/rxzcDymPuJy4tTa3dnRTGV-1920-80.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: Activision)</span></figcaption></figure><p>With Season 2, Black Ops 7 continues a trend of bringing back classic Black Ops maps and modes, but unlike some other recent COD games, there's also no shortage of original stuff. The returning content isn't just a crutch to fill a checklist, and they really feel like bonus goodies instead of seasonal filler. It's the difference between "oh, Safeguard is back…" and "oh, Safeguard is back!"</p><p>There's still more exciting stuff on the horizon for Black Ops 7, including a reimagined Blackout battle royale experience, and I highly recommend giving the new season a chance.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Two seasons later, this Black Ops 7 gun is still the Zombies king ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Even after a dozen new additions to its arsenal, one gun still stands at the top of Black Ops 7 Zombies. No matter the map, no matter the Cursed Relics, and no matter the squad size, the M34 Novaline is <em>the </em>weapon to wield in BO7 Zombies.</p><p>As a humble marksman rifle, the M34 Novaline tends to get overlooked by plenty of casual Zombies players in favor of rapid-fire SMGs and reliable assault rifles, especially since people have gotten used to custom Zombies loadouts after their introduction in Black Ops 4. The Novaline still easily outclasses just about everything in BO7's armory, however.</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="TgpV2ChTpkTvXhx9ZN36pm" name="Novaline Gameplay" alt="Black Ops 7 zombies guns" src="https://cdn.mos.cms.futurecdn.net/TgpV2ChTpkTvXhx9ZN36pm-1920-80.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: Activision)</span></figcaption></figure><p>Marksman rifles have high critical damage—making them perfect for attacking bosses and special enemies with high health pools—but their slow fire rates and low ammo capacity make them impractical for large hordes at first glance. </p><p>After all, it's COD Zombies. You're going to spend your time running in circles and turning around every now and then to shoot at the horde trailing behind you. Something like an SMG is better suited for that.  Marksman rifles and other situational weapons just don't feel <em>right</em> outside of your secondary slot (or tertiary with Mule Kick).</p><p>The M34 Novaline already has a leg up on other marksman rifles because of its two-round burst and decent handling, but sticking with it rewards you with something even greater. When you Pack-a-Punch the M34 Novaline, it becomes fully automatic.</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="MmgEAmqcQetyoE4nog8hnm" name="Novaline Pack a Punch" alt="Black Ops 7 zombies guns" src="https://cdn.mos.cms.futurecdn.net/MmgEAmqcQetyoE4nog8hnm-1920-80.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: Activision)</span></figcaption></figure><p>That's where everything clicks. You basically get an assault rifle with the damage output of a marksman rifle, and if you add attachments to your Novaline loadout with that in mind, it'll handle so smoothly that you'll forget it's a marksman rifle in the first place. It doesn't have any weaknesses, and you'll be hard pressed to find something stronger that's not a Wonder Weapon.</p><p>To make the deal even sweeter, the M34 Novaline is available as a pretty common Mystery Box weapon if you're playing Cursed or you'd rather just start with another weapon. It's also a Wall Buy on both Ashes of the Damned and Astra Malorum if you're using a Cursed Relic that disables the Mystery Box. It'll also probably be a Wall Buy on any future BO7 Zombies maps, too, so you'll never have to worry about missing it.</p><p>Even with the fully-automatic upgrade, the M34 Novaline still packs quite a punch (pun not intended). Renamed to the Desecrated Dualist, the Novaline doesn't lose any stopping power. Every bullet still hits just as hard as you'd expect for a marksman rifle. You can even switch it back to semi-auto if you need some accuracy in a pinch.</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="aRNjDD3cr7eokk2NpCSYsm" name="Uber Klaus" alt="Black Ops 7 zombies guns" src="https://cdn.mos.cms.futurecdn.net/aRNjDD3cr7eokk2NpCSYsm-1920-80.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: Activision)</span></figcaption></figure><p>Keeping a Pack-a-Punched sniper or something similar in your back pocket isn't unheard of for Zombies players, especially if you want a specialized tool to take out Elites like Manglers, Doppelghasts, or Zursas. </p><p>With the Novaline, there's no need. It shreds Uber Klaus' shoulder shields, destroys Mangler cannons and armor, and even embarrasses main bosses like Veytharion and Caltheris.</p><p>There are some things to consider, however. Firstly, the M34 Novaline really needs the Cyclops-03 Barrel attachment to maximize its damage. Without it, headshots and critical shots won't deal nearly as much damage.</p><p>There's also a new contender on the block: the M8A1. This four-round burst rifle is a returning favorite from Black Ops 2, and with a new Conversion Kit, it can become fully automatic just like the Novaline. It won't deal as much damage, but the better handling and larger magazine size can make it a better choice in some situations.</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="t7drsv8osnQ24vEiYck8mm" name="M8A1 Conversion Kit" alt="Black Ops 7 zombies guns" src="https://cdn.mos.cms.futurecdn.net/t7drsv8osnQ24vEiYck8mm-1920-80.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: Activision)</span></figcaption></figure><p>Still, even with new weapons, attachments, and Conversion Kits constantly dropping, the M34 Novaline remains the king of Black Ops 7 Zombies. Try it out in your next game and see for yourself.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/black-ops-7-m34-novaline/</link>
                                                                            <description>
                            <![CDATA[ Overlooked at first glance, the M34 Novaline transforms into a powerhouse once Pack-a-Punched—shredding bosses and staking its claim as Black Ops 7 Zombies’ most reliable non–Wonder Weapon. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">KiPhMRQMyowPN5rDXRMhpM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/84oCfDkkVtcRGQWfDi43Wn-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 11 Feb 2026 03:40:58 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Diego Perez ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/84oCfDkkVtcRGQWfDi43Wn-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Black Ops 7 zombies guns]]></media:description>                                                            <media:text><![CDATA[Black Ops 7 zombies guns]]></media:text>
                                <media:title type="plain"><![CDATA[Black Ops 7 zombies guns]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/84oCfDkkVtcRGQWfDi43Wn-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Even after a dozen new additions to its arsenal, one gun still stands at the top of Black Ops 7 Zombies. No matter the map, no matter the Cursed Relics, and no matter the squad size, the M34 Novaline is <em>the </em>weapon to wield in BO7 Zombies.</p><p>As a humble marksman rifle, the M34 Novaline tends to get overlooked by plenty of casual Zombies players in favor of rapid-fire SMGs and reliable assault rifles, especially since people have gotten used to custom Zombies loadouts after their introduction in Black Ops 4. The Novaline still easily outclasses just about everything in BO7's armory, however.</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="TgpV2ChTpkTvXhx9ZN36pm" name="Novaline Gameplay" alt="Black Ops 7 zombies guns" src="https://cdn.mos.cms.futurecdn.net/TgpV2ChTpkTvXhx9ZN36pm-1920-80.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: Activision)</span></figcaption></figure><p>Marksman rifles have high critical damage—making them perfect for attacking bosses and special enemies with high health pools—but their slow fire rates and low ammo capacity make them impractical for large hordes at first glance. </p><p>After all, it's COD Zombies. You're going to spend your time running in circles and turning around every now and then to shoot at the horde trailing behind you. Something like an SMG is better suited for that.  Marksman rifles and other situational weapons just don't feel <em>right</em> outside of your secondary slot (or tertiary with Mule Kick).</p><p>The M34 Novaline already has a leg up on other marksman rifles because of its two-round burst and decent handling, but sticking with it rewards you with something even greater. When you Pack-a-Punch the M34 Novaline, it becomes fully automatic.</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="MmgEAmqcQetyoE4nog8hnm" name="Novaline Pack a Punch" alt="Black Ops 7 zombies guns" src="https://cdn.mos.cms.futurecdn.net/MmgEAmqcQetyoE4nog8hnm-1920-80.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: Activision)</span></figcaption></figure><p>That's where everything clicks. You basically get an assault rifle with the damage output of a marksman rifle, and if you add attachments to your Novaline loadout with that in mind, it'll handle so smoothly that you'll forget it's a marksman rifle in the first place. It doesn't have any weaknesses, and you'll be hard pressed to find something stronger that's not a Wonder Weapon.</p><p>To make the deal even sweeter, the M34 Novaline is available as a pretty common Mystery Box weapon if you're playing Cursed or you'd rather just start with another weapon. It's also a Wall Buy on both Ashes of the Damned and Astra Malorum if you're using a Cursed Relic that disables the Mystery Box. It'll also probably be a Wall Buy on any future BO7 Zombies maps, too, so you'll never have to worry about missing it.</p><p>Even with the fully-automatic upgrade, the M34 Novaline still packs quite a punch (pun not intended). Renamed to the Desecrated Dualist, the Novaline doesn't lose any stopping power. Every bullet still hits just as hard as you'd expect for a marksman rifle. You can even switch it back to semi-auto if you need some accuracy in a pinch.</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="aRNjDD3cr7eokk2NpCSYsm" name="Uber Klaus" alt="Black Ops 7 zombies guns" src="https://cdn.mos.cms.futurecdn.net/aRNjDD3cr7eokk2NpCSYsm-1920-80.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: Activision)</span></figcaption></figure><p>Keeping a Pack-a-Punched sniper or something similar in your back pocket isn't unheard of for Zombies players, especially if you want a specialized tool to take out Elites like Manglers, Doppelghasts, or Zursas. </p><p>With the Novaline, there's no need. It shreds Uber Klaus' shoulder shields, destroys Mangler cannons and armor, and even embarrasses main bosses like Veytharion and Caltheris.</p><p>There are some things to consider, however. Firstly, the M34 Novaline really needs the Cyclops-03 Barrel attachment to maximize its damage. Without it, headshots and critical shots won't deal nearly as much damage.</p><p>There's also a new contender on the block: the M8A1. This four-round burst rifle is a returning favorite from Black Ops 2, and with a new Conversion Kit, it can become fully automatic just like the Novaline. It won't deal as much damage, but the better handling and larger magazine size can make it a better choice in some situations.</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="t7drsv8osnQ24vEiYck8mm" name="M8A1 Conversion Kit" alt="Black Ops 7 zombies guns" src="https://cdn.mos.cms.futurecdn.net/t7drsv8osnQ24vEiYck8mm-1920-80.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: Activision)</span></figcaption></figure><p>Still, even with new weapons, attachments, and Conversion Kits constantly dropping, the M34 Novaline remains the king of Black Ops 7 Zombies. Try it out in your next game and see for yourself.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Everything in Black Ops 7 Season 2 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Season 2 of Call of Duty: Black Ops 7 brings a ton of new stuff across multiplayer, Zombies, and Endgame, including fan-favorite maps and weapons from classic Black Ops games. </p><p>There's a lot to keep track of this season, and not everything is releasing all at once. To make things easier to follow, here's a breakdown of everything that's arrived in this season in Black Ops 7.</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="8BakNFnfu7BbubyKArhJ6" name="Weapons s2" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/8BakNFnfu7BbubyKArhJ6-1920-80.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: Activision)</span></figcaption></figure><p>Seven new weapons are coming to Black Ops 7 during Season 2.</p><ul><li>REV-46 SMG</li><li>ERGT-17 Assault Rifle</li><li>H311-SAW Melee</li><li>GDL Havoc Launcher</li><li>SG-12 Shotgun</li><li>Voyak KT-3 Assault Rifle</li><li>Swordfish A1 Marksman Rifle</li></ul><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="ZjyCcduGVwzgFPkWxmdg5" name="REV-46" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/ZjyCcduGVwzgFPkWxmdg5-1920-80.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: Activision)</span></figcaption></figure><p>At launch, you can expect two brand-new normal guns and two special weapons. The REV-46 has the fastest fire rate of any BO7 SMG, and it looks like it'll absolutely shred anything you put in front of it. </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="yKhj76gPh3zVjs5FjimY9" name="ERGT-17" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/yKhj76gPh3zVjs5FjimY9-1920-80.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: Activision)</span></figcaption></figure><p>The ERGT-17 is another fast-firing weapon—only beaten by the Peacekeeper in fire rate— and its superheated rounds ricochet off walls for stylish kills.</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="rqv9j87qjhaRYyB9hgEw" name="H311-SAW" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/rqv9j87qjhaRYyB9hgEw-1920-80.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: Activision)</span></figcaption></figure><p>The H311-SAW is the season's new melee weapon, a deadly rotating saw that has longer range than the standard knife.</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="Gckt975vyXQHHVUFhdJQG" name="GDL Havoc" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/Gckt975vyXQHHVUFhdJQG-1920-80.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: Activision)</span></figcaption></figure><p>For people with more explosive taste, the GDL Havoc grenade launcher shoots sticky bombs that can be remotely detonated. Perfect for holding objectives.</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="W8nAaWm9ZZgyufCxz8VpD" name="SG-12" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/W8nAaWm9ZZgyufCxz8VpD-1920-80.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: Activision)</span></figcaption></figure><p>Later in Season 2, the SG-12 shotgun will deliver rapid-fire semi-auto blasts with the longest damage range in its class. </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="eRiGv7bjsziuKzMZkXRR6" name="Voyak KT-3" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/eRiGv7bjsziuKzMZkXRR6-1920-80.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: Activision)</span></figcaption></figure><p>It'll be followed by the Voyak KT-3, a mix between the AK-27 and Peacekeeper that boasts impressive stopping power at close range.</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="MWwAaGVDjqevGJwybmmPUo" name="Swordfish A1" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/MWwAaGVDjqevGJwybmmPUo-1920-80.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: Activision)</span></figcaption></figure><p>Finally, the four-round burst Swordfish is returning from Black Ops 4 later this season. It's like the M8A1's more lethal cousin, dealing more damage with a longer delay between bursts.</p><h2 id="multiplayer">Multiplayer</h2><ul><li>Maps<ul><li>Torment</li><li>Sake</li><li>Nexus</li><li>Slums</li><li>Torque</li><li>Cliff Town</li><li>Grind</li><li>Firing Range</li><li>Mission: Peak</li></ul></li></ul><ul><li>Modes<ul><li>Safeguard</li><li>Overdrive</li><li>Luck Confirmed</li><li>Solo Hearts Moshpit</li><li>Third Wheel Gunfight</li><li>Gauntlet</li><li>Infected</li></ul></li></ul><p>So many Black Ops 2 maps are coming back this season, and I'm stoked to see Slums, Grind, and Cliff Town (Yemen) on the list! Firing Range is another classic that no Black Ops game would be complete without, and the new maps like Torment and Sake look like they'll be just as good as Black Ops 7's other original maps.</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="Zbwuako9SMwD5vFVCsSNM" name="Slums" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/Zbwuako9SMwD5vFVCsSNM-1920-80.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: Activision)</span></figcaption></figure><p>As for modes, Overdrive places a stylish twist on Team Deathmatch, rewarding you with buffs for scoring sweet kills. Safeguard also returns this season for the first time since Black Ops 4! Escorting the robot on Slums is going to take me straight back to 2012.</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="KibaSHMHPyFDokCqwZvwQ" name="Safeguard" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/KibaSHMHPyFDokCqwZvwQ-1920-80.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: Activision)</span></figcaption></figure><p>This season also features limited-time modes for Lunar New Year like Luck Confirmed, which replaces dog tags with Lucky Pouches that reward bonus points. On Valentine's Day, you can queue up for the 3v3 Third Wheel Gunfight or the solo-only Solo Hearts Moshpit playlists as well.</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="NxKLXsZUNKh2rUXtSrDsC" name="Solo Hearts" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/NxKLXsZUNKh2rUXtSrDsC-1920-80.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: Activision)</span></figcaption></figure><p>Gauntlet is a brand-new mode coming sometime mid-season, and it's similar to Black Ops 6's Pentathlon mode. Secure the W by outperforming the same team in five different back-to-back game modes that change every few minutes.</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="ttQUbUEEpg4okXgkNB6zH" name="Gauntlet" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/ttQUbUEEpg4okXgkNB6zH-1920-80.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: Activision)</span></figcaption></figure><p>Finally, Infected will make its return to Black Ops 7 in a mid-season update. The Fallout-themed Ghoul playlist was just a test run! Infected will be a permanent playlist, so you don't have to worry about it leaving this time.</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="mcJMotAzEJnXeLxcek7DM" name="Infected" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/mcJMotAzEJnXeLxcek7DM-1920-80.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: Activision)</span></figcaption></figure><p>To top things off, Season 2 will add a new Scorestreak called the Lockshot. It's a smart pistol that can lock onto and kill multiple enemies with a single pull of the trigger, and it already looks like a ton of fun.</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="hs4UbkPVWXB3fnwMcsXMA" name="Lockshot" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/hs4UbkPVWXB3fnwMcsXMA-1920-80.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: Activision)</span></figcaption></figure><p>Season 2 will also introduce a new set of multiplayer events, rewarding new camo patterns and weapon blueprints. Some of these are just leaderboard events, but the Escalation Direction event will let you grind for eight universal camos by completing challenges across all game modes.</p><h2 id="zombies">Zombies</h2><ul><li>Mars Survival Map</li><li>Cursed Survival Mode</li><li>Starting Room Mode</li><li>Paradox Junction Map</li><li>Turncoat Gobblegum</li></ul><p>At launch, the Mars section of Astra Malorum will be released as a standalone Survival map. Survival maps aren't super exciting, but it's better than nothing. A fully-fledged new map is coming sometime during the season, though!</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="wQ7JyiuSP487AniBLo3pU" name="Cursed Survival" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/wQ7JyiuSP487AniBLo3pU-1920-80.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: Activision)</span></figcaption></figure><p>To tide you over until then, Cursed mode will be available on Survival maps starting with Season 2, letting you make things even harder. There's also a new Starting Room mode that limits you to the spawn area of either Ashes of the Damned or Astra Malorum, basically turning it into a little Survival map.</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="FXjggd47z4La5QNz3iyWE" name="Turncoat Gobblegum" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/FXjggd47z4La5QNz3iyWE-1920-80.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: Activision)</span></figcaption></figure><p>Later in the season, the Turncoat Gobblegum will also be added to the Zombies rewards pool. This one charms nearby Zombies and makes them fight on your behalf, buying you some breathing room in tough situations.</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="cU2TwUUmwLPfTGgghZQRF" name="Endgame S2" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/cU2TwUUmwLPfTGgghZQRF-1920-80.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: Activision)</span></figcaption></figure><p>Season 2 kicks up the intensity of Black Ops 7's co-op Endgame mode with a new level of difficulty above Tier IV, new Skill Tracks to earn, and more.</p><ul><li>Guild Strikes</li><li>Eagle Eye Skill Track</li><li>Sentinel Protocol Ability</li><li>Blood Burner Ability</li><li>Glitches</li><li>Exotic Fabricator</li></ul><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="hxPM2vxKKDh8oVdFJ547Q" name="Guild Strikes" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/hxPM2vxKKDh8oVdFJ547Q-1920-80.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: Activision)</span></figcaption></figure><p>Guild Strikes are the big new feature for Endgame in Season 2. These can happen at any time during a match, transforming a part of the map into a Nightmare Zone that's even deadlier than Tier IV areas.</p><p>Later in the season, Nightmare Zones will become even more dangerous with the addition of Glitches. After defeating the Strike Boss at the heart of a Nightmare Zone, you can deploy to an off-map zone and survive against waves of enemies. Killing the Glitch Boss in the final wave will reward you with new Nightmare Skills that can be equipped in a new slot alongside Exotic Skills.</p><p>If you're still leveling up your operators, then you can keep an eye out for the new Eagle Eye Skill Track. As the name suggests, this one is all about sniping and landing headshots. You'll get better critical damage, increased damage after rapid killstreaks, and more.</p><p>You can also customize your loadout with two new operator Abilities this season. The Sentinel Protocol Major Ability lets you call in a Guild robot for backup, and the Blood Burner Minor Ability lets you summon a motorcycle to help you get around the map (or run over enemies). The bike can even ride on water!</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="TEsmZvoFhfPe7SpnARrzA" name="Blood Burner" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/TEsmZvoFhfPe7SpnARrzA-1920-80.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: Activision)</span></figcaption></figure><p>Lastly, Avalon is getting Exotic Fabricators mid-season. You can use these stations to upgrade your loadout with new Exotic weapons or even upgrade your existing Exotics to roll for new effects. Fabricators will be rewarded for taking down Strike Bosses in Nightmare Zones, so you'll need a kitted out character to reach them!</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/black-ops-7-season-2-content-list/</link>
                                                                            <description>
                            <![CDATA[ The new maps, weapons, and content that's arrived across all modes of Call of Duty: Black Ops 7 - Season 2. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">oVDWBgBH2ZuUXpFCMDozZd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Rn4ScfjR3x4S3owBmqUZFo-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 05 Feb 2026 21:18:43 +0000</pubDate>                                                                                                                                <updated>Mon, 09 Feb 2026 16:06:51 +0000</updated>
                                                                                                                                            <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                                    <dc:creator><![CDATA[ Diego Perez ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Rn4ScfjR3x4S3owBmqUZFo-1920-80.jpg">
                                                            <media:credit><![CDATA[Activision]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Black Ops 7 Season 2 screenshot]]></media:description>                                                            <media:text><![CDATA[Black Ops 7 Season 2 screenshot]]></media:text>
                                <media:title type="plain"><![CDATA[Black Ops 7 Season 2 screenshot]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Rn4ScfjR3x4S3owBmqUZFo-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Season 2 of Call of Duty: Black Ops 7 brings a ton of new stuff across multiplayer, Zombies, and Endgame, including fan-favorite maps and weapons from classic Black Ops games. </p><p>There's a lot to keep track of this season, and not everything is releasing all at once. To make things easier to follow, here's a breakdown of everything that's arrived in this season in Black Ops 7.</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="8BakNFnfu7BbubyKArhJ6" name="Weapons s2" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/8BakNFnfu7BbubyKArhJ6-1920-80.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: Activision)</span></figcaption></figure><p>Seven new weapons are coming to Black Ops 7 during Season 2.</p><ul><li>REV-46 SMG</li><li>ERGT-17 Assault Rifle</li><li>H311-SAW Melee</li><li>GDL Havoc Launcher</li><li>SG-12 Shotgun</li><li>Voyak KT-3 Assault Rifle</li><li>Swordfish A1 Marksman Rifle</li></ul><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="ZjyCcduGVwzgFPkWxmdg5" name="REV-46" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/ZjyCcduGVwzgFPkWxmdg5-1920-80.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: Activision)</span></figcaption></figure><p>At launch, you can expect two brand-new normal guns and two special weapons. The REV-46 has the fastest fire rate of any BO7 SMG, and it looks like it'll absolutely shred anything you put in front of it. </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="yKhj76gPh3zVjs5FjimY9" name="ERGT-17" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/yKhj76gPh3zVjs5FjimY9-1920-80.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: Activision)</span></figcaption></figure><p>The ERGT-17 is another fast-firing weapon—only beaten by the Peacekeeper in fire rate— and its superheated rounds ricochet off walls for stylish kills.</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="rqv9j87qjhaRYyB9hgEw" name="H311-SAW" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/rqv9j87qjhaRYyB9hgEw-1920-80.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: Activision)</span></figcaption></figure><p>The H311-SAW is the season's new melee weapon, a deadly rotating saw that has longer range than the standard knife.</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="Gckt975vyXQHHVUFhdJQG" name="GDL Havoc" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/Gckt975vyXQHHVUFhdJQG-1920-80.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: Activision)</span></figcaption></figure><p>For people with more explosive taste, the GDL Havoc grenade launcher shoots sticky bombs that can be remotely detonated. Perfect for holding objectives.</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="W8nAaWm9ZZgyufCxz8VpD" name="SG-12" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/W8nAaWm9ZZgyufCxz8VpD-1920-80.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: Activision)</span></figcaption></figure><p>Later in Season 2, the SG-12 shotgun will deliver rapid-fire semi-auto blasts with the longest damage range in its class. </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="eRiGv7bjsziuKzMZkXRR6" name="Voyak KT-3" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/eRiGv7bjsziuKzMZkXRR6-1920-80.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: Activision)</span></figcaption></figure><p>It'll be followed by the Voyak KT-3, a mix between the AK-27 and Peacekeeper that boasts impressive stopping power at close range.</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="MWwAaGVDjqevGJwybmmPUo" name="Swordfish A1" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/MWwAaGVDjqevGJwybmmPUo-1920-80.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: Activision)</span></figcaption></figure><p>Finally, the four-round burst Swordfish is returning from Black Ops 4 later this season. It's like the M8A1's more lethal cousin, dealing more damage with a longer delay between bursts.</p><h2 id="multiplayer">Multiplayer</h2><ul><li>Maps<ul><li>Torment</li><li>Sake</li><li>Nexus</li><li>Slums</li><li>Torque</li><li>Cliff Town</li><li>Grind</li><li>Firing Range</li><li>Mission: Peak</li></ul></li></ul><ul><li>Modes<ul><li>Safeguard</li><li>Overdrive</li><li>Luck Confirmed</li><li>Solo Hearts Moshpit</li><li>Third Wheel Gunfight</li><li>Gauntlet</li><li>Infected</li></ul></li></ul><p>So many Black Ops 2 maps are coming back this season, and I'm stoked to see Slums, Grind, and Cliff Town (Yemen) on the list! Firing Range is another classic that no Black Ops game would be complete without, and the new maps like Torment and Sake look like they'll be just as good as Black Ops 7's other original maps.</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="Zbwuako9SMwD5vFVCsSNM" name="Slums" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/Zbwuako9SMwD5vFVCsSNM-1920-80.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: Activision)</span></figcaption></figure><p>As for modes, Overdrive places a stylish twist on Team Deathmatch, rewarding you with buffs for scoring sweet kills. Safeguard also returns this season for the first time since Black Ops 4! Escorting the robot on Slums is going to take me straight back to 2012.</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="KibaSHMHPyFDokCqwZvwQ" name="Safeguard" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/KibaSHMHPyFDokCqwZvwQ-1920-80.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: Activision)</span></figcaption></figure><p>This season also features limited-time modes for Lunar New Year like Luck Confirmed, which replaces dog tags with Lucky Pouches that reward bonus points. On Valentine's Day, you can queue up for the 3v3 Third Wheel Gunfight or the solo-only Solo Hearts Moshpit playlists as well.</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="NxKLXsZUNKh2rUXtSrDsC" name="Solo Hearts" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/NxKLXsZUNKh2rUXtSrDsC-1920-80.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: Activision)</span></figcaption></figure><p>Gauntlet is a brand-new mode coming sometime mid-season, and it's similar to Black Ops 6's Pentathlon mode. Secure the W by outperforming the same team in five different back-to-back game modes that change every few minutes.</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="ttQUbUEEpg4okXgkNB6zH" name="Gauntlet" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/ttQUbUEEpg4okXgkNB6zH-1920-80.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: Activision)</span></figcaption></figure><p>Finally, Infected will make its return to Black Ops 7 in a mid-season update. The Fallout-themed Ghoul playlist was just a test run! Infected will be a permanent playlist, so you don't have to worry about it leaving this time.</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="mcJMotAzEJnXeLxcek7DM" name="Infected" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/mcJMotAzEJnXeLxcek7DM-1920-80.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: Activision)</span></figcaption></figure><p>To top things off, Season 2 will add a new Scorestreak called the Lockshot. It's a smart pistol that can lock onto and kill multiple enemies with a single pull of the trigger, and it already looks like a ton of fun.</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="hs4UbkPVWXB3fnwMcsXMA" name="Lockshot" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/hs4UbkPVWXB3fnwMcsXMA-1920-80.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: Activision)</span></figcaption></figure><p>Season 2 will also introduce a new set of multiplayer events, rewarding new camo patterns and weapon blueprints. Some of these are just leaderboard events, but the Escalation Direction event will let you grind for eight universal camos by completing challenges across all game modes.</p><h2 id="zombies">Zombies</h2><ul><li>Mars Survival Map</li><li>Cursed Survival Mode</li><li>Starting Room Mode</li><li>Paradox Junction Map</li><li>Turncoat Gobblegum</li></ul><p>At launch, the Mars section of Astra Malorum will be released as a standalone Survival map. Survival maps aren't super exciting, but it's better than nothing. A fully-fledged new map is coming sometime during the season, though!</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="wQ7JyiuSP487AniBLo3pU" name="Cursed Survival" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/wQ7JyiuSP487AniBLo3pU-1920-80.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: Activision)</span></figcaption></figure><p>To tide you over until then, Cursed mode will be available on Survival maps starting with Season 2, letting you make things even harder. There's also a new Starting Room mode that limits you to the spawn area of either Ashes of the Damned or Astra Malorum, basically turning it into a little Survival map.</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="FXjggd47z4La5QNz3iyWE" name="Turncoat Gobblegum" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/FXjggd47z4La5QNz3iyWE-1920-80.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: Activision)</span></figcaption></figure><p>Later in the season, the Turncoat Gobblegum will also be added to the Zombies rewards pool. This one charms nearby Zombies and makes them fight on your behalf, buying you some breathing room in tough situations.</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="cU2TwUUmwLPfTGgghZQRF" name="Endgame S2" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/cU2TwUUmwLPfTGgghZQRF-1920-80.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: Activision)</span></figcaption></figure><p>Season 2 kicks up the intensity of Black Ops 7's co-op Endgame mode with a new level of difficulty above Tier IV, new Skill Tracks to earn, and more.</p><ul><li>Guild Strikes</li><li>Eagle Eye Skill Track</li><li>Sentinel Protocol Ability</li><li>Blood Burner Ability</li><li>Glitches</li><li>Exotic Fabricator</li></ul><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="hxPM2vxKKDh8oVdFJ547Q" name="Guild Strikes" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/hxPM2vxKKDh8oVdFJ547Q-1920-80.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: Activision)</span></figcaption></figure><p>Guild Strikes are the big new feature for Endgame in Season 2. These can happen at any time during a match, transforming a part of the map into a Nightmare Zone that's even deadlier than Tier IV areas.</p><p>Later in the season, Nightmare Zones will become even more dangerous with the addition of Glitches. After defeating the Strike Boss at the heart of a Nightmare Zone, you can deploy to an off-map zone and survive against waves of enemies. Killing the Glitch Boss in the final wave will reward you with new Nightmare Skills that can be equipped in a new slot alongside Exotic Skills.</p><p>If you're still leveling up your operators, then you can keep an eye out for the new Eagle Eye Skill Track. As the name suggests, this one is all about sniping and landing headshots. You'll get better critical damage, increased damage after rapid killstreaks, and more.</p><p>You can also customize your loadout with two new operator Abilities this season. The Sentinel Protocol Major Ability lets you call in a Guild robot for backup, and the Blood Burner Minor Ability lets you summon a motorcycle to help you get around the map (or run over enemies). The bike can even ride on water!</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="TEsmZvoFhfPe7SpnARrzA" name="Blood Burner" alt="Black Ops 7 Season 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/TEsmZvoFhfPe7SpnARrzA-1920-80.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: Activision)</span></figcaption></figure><p>Lastly, Avalon is getting Exotic Fabricators mid-season. You can use these stations to upgrade your loadout with new Exotic weapons or even upgrade your existing Exotics to roll for new effects. Fabricators will be rewarded for taking down Strike Bosses in Nightmare Zones, so you'll need a kitted out character to reach them!</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Russian politician calls for Call of Duty ban and home-grown alternative because 'you're almost always shooting at Russian soldiers' in the Modern Warfare games ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Russian government is prepared to support the development of a homegrown military shooter akin to Call of Duty through measures including reduced corporate tax rates and insurance premiums for developers who make it. Confirmation of those potential incentives comes a month after a Russian lawmaker called for a ban on the Call of Duty series in the country, accusing Western nations of using it to spread "Russophobic propaganda."</p><p>The commitment comes from a <a href="https://www.gazeta.ru/social/news/2026/01/20/27657577.shtml?utm_auth=false" target="_blank">Gazeta.ru</a> report (<a href="https://www-gazeta-ru.translate.goog/social/news/2026/01/20/27657577.shtml?utm_auth=false&amp;_x_tr_sl=ru&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US&amp;_x_tr_pto=wapp" target="_blank">Google translated</a>, via <a href="https://insider-gaming.com/russia-call-of-duty-10-billion-rubles-government-ready/" target="_blank">Insider Gaming</a>), which quotes the Ministry of Digital Development as saying, "if the [government] receives an application for funding for the development of a game on the topic specified in your letter, it will be reviewed in accordance with the established procedure and within the framework of existing competitive mechanisms." </p><p>The Ministry cited existing government support for IT companies and game developers including "a reduced corporate income tax rate of 5%, reduced insurance premium rates, and a partial VAT exemption in certain cases."</p><p>This is all extremely normal and unremarkable. Canada's videogame industry is a powerhouse largely because provincial governments throw generous tax breaks and funding options to game studios: Ubisoft has <a href="https://tinyurl.com/bddf5vx6" target="_blank">more offices in Canada</a> than it does in France (or the US) and it's not because Yves Guillemot is a big fan of poutine. </p><p>And of course it's not just the game industry that rolls this way. Despite the self-professed genius and self-reliance of their leaders and structures, most corporations rely on <a href="https://www.pcgamer.com/nvidia-and-amd-arent-thrilled-about-pending-law-that-stands-to-give-intel-dollar20-billion/">government largesse</a> to some extent. It's just how things are done, and the fact that Russia plays essentially the same game ranks alongside green grass and blue sky.</p><p>What makes this case interesting is what prompted the comment in the first place. Shortly after <a href="https://www.pcgamer.com/games/russia-bans-roblox-over-extremist-content-and-lgbt-propaganda/">Russia banned Roblox</a> in December 2025 over extremist content and "LGBT propaganda," Mikhail Delyagin, deputy head of the State Duma’s economic policy committee, requested that Roskomnadzor—the agency that monitors and controls mass media in the country—review the Call of Duty: Modern Warfare series and, if warranted, ban them as well.</p><p>Delyagin "was absolutely horrified," according to a <a href="https://www-gazeta-ru.translate.goog/social/news/2025/12/10/27376129.shtml?utm_auth=false&amp;_x_tr_sl=ru&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US&amp;_x_tr_pto=wapp" target="_blank">separate Gazeta report</a>. "You're almost always shooting at Russian soldiers. It's a very unpleasant experience for any citizen of our country, a kind of horrific masochism.</p><p>"The only positive Russians in the story are those who collaborate with American and British saboteurs. In the current context, when we're in a proxy war with these countries, this is especially horrific."</p><p>Delyagin, who said his request to investigate Call of Duty was initially sparked by complaints from Russian citizens—something we've <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-angers-russians-who-call-it-propaganda/">seen in the past</a>—also sent a letter to Russia's Ministry of Digital Development, according to a since-removed report that remains available via the <a href="https://web-archive-org.translate.goog/web/20251222124853/https://www.gazeta.ru/social/news/2025/12/22/27472033.shtml?updated&amp;utm_auth=false&amp;_x_tr_sl=ru&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US&amp;_x_tr_pto=wapp" target="_blank">Wayback Machine</a> (you're going to have to translate the text yourself, sorry, we've gone too deep here), He asked that it develop a comparable big-budget shooter in which the player is a member of the Russian military or intelligent, "and the antagonists and targets are representatives of unfriendly countries (Ukraine, Great Britain, the United States, France, and others)." </p><p>He said the massive budgets of such projects—the Gazeta report estimated the cost of developing a Russian Call of Duty equivalent could be as much as 10 billion rubles, which works out to nearly $130 million—would likely put it out of the reach of domestic developers without "additional support" from the Russian government.</p><p>Which brings us to now: Nobody has stepped forward to say they're working on a Russian Call of Duty, but if someone does, they'll enjoy the same sort of benefits that Activision, Ubisoft, Electronic Arts, and all the rest get from Western governments.</p><p>Delyagin is correct in saying that Russians are the traditional enemies of the West in the post-World War 2 world (and <a href="https://www.youtube.com/watch?v=WvAeWtyZ-uE" target="_blank">not just in videogames</a>), only stepping out of that role when covertly collaborating with Western forces—typically against Russian or Russian-aligned enemies. And US cultural hegemony means that if Russian gamers want to play the biggest and most popular military shooters in the world, well, they're probably going to be shooting at their own boys.</p><p>Russia has made similar game-related noises in the past: In 2022, for instance, an exodus of Western tech companies following Russia's full-scale invasion of Ukraine prompted the country to explore the possibility of making a "<a href="https://www.pcgamer.com/after-the-tech-exodus-russian-state-prepares-to-fund-its-own-national-game-engine/">national game engine</a>." That idea was eventually <a href="https://www.pcgamer.com/russian-government-collides-with-reality-rejects-plans-to-fund-a-national-game-engine/">dropped</a> over the expense involved, although an unnamed private investor reportedly stepped in to keep the project moving forward. </p><p>Whether Russia can actually pull off a credible Call of Duty competitor is another question entirely, but it certainly isn't alone in wanting to portray its military forces in a more flattering light. If anything, it's late to the party: In 2013, the Chinese military released a military shooter called <a href="https://www.reuters.com/article/2013/08/01/us-china-game-idUSBRE9700OS20130801/" target="_blank">Glorious Mission</a>, which was apparently a big hit in the country.</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/XvPPthGWoac" allowfullscreen=""></iframe></div></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/call-of-duty/russian-politician-calls-for-call-of-duty-ban-and-home-grown-alternative-because-youre-almost-always-shooting-at-russian-soldiers-in-the-modern-warfare-games/</link>
                                                                            <description>
                            <![CDATA[ The Russian government says it will support developers working on CoD-style projects with tax breaks and other incentives. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pk4LHRNwhS4tuMY3xGy4i</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/NENnr9TvGifaU9zK4RK4na-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 20 Jan 2026 21:53:07 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Call of Duty]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[FPS]]></category>
                                                                                                <author><![CDATA[ andy.chalk@pcgamer.com (Andy Chalk) ]]></author>                    <dc:creator><![CDATA[ Andy Chalk ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/fhJSYUb92TCEtsz4ZL8UZL-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/NENnr9TvGifaU9zK4RK4na-1920-80.jpg">
                                                            <media:credit><![CDATA[null]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/NENnr9TvGifaU9zK4RK4na-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Russian government is prepared to support the development of a homegrown military shooter akin to Call of Duty through measures including reduced corporate tax rates and insurance premiums for developers who make it. Confirmation of those potential incentives comes a month after a Russian lawmaker called for a ban on the Call of Duty series in the country, accusing Western nations of using it to spread "Russophobic propaganda."</p><p>The commitment comes from a <a href="https://www.gazeta.ru/social/news/2026/01/20/27657577.shtml?utm_auth=false" target="_blank">Gazeta.ru</a> report (<a href="https://www-gazeta-ru.translate.goog/social/news/2026/01/20/27657577.shtml?utm_auth=false&amp;_x_tr_sl=ru&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US&amp;_x_tr_pto=wapp" target="_blank">Google translated</a>, via <a href="https://insider-gaming.com/russia-call-of-duty-10-billion-rubles-government-ready/" target="_blank">Insider Gaming</a>), which quotes the Ministry of Digital Development as saying, "if the [government] receives an application for funding for the development of a game on the topic specified in your letter, it will be reviewed in accordance with the established procedure and within the framework of existing competitive mechanisms." </p><p>The Ministry cited existing government support for IT companies and game developers including "a reduced corporate income tax rate of 5%, reduced insurance premium rates, and a partial VAT exemption in certain cases."</p><p>This is all extremely normal and unremarkable. Canada's videogame industry is a powerhouse largely because provincial governments throw generous tax breaks and funding options to game studios: Ubisoft has <a href="https://tinyurl.com/bddf5vx6" target="_blank">more offices in Canada</a> than it does in France (or the US) and it's not because Yves Guillemot is a big fan of poutine. </p><p>And of course it's not just the game industry that rolls this way. Despite the self-professed genius and self-reliance of their leaders and structures, most corporations rely on <a href="https://www.pcgamer.com/nvidia-and-amd-arent-thrilled-about-pending-law-that-stands-to-give-intel-dollar20-billion/">government largesse</a> to some extent. It's just how things are done, and the fact that Russia plays essentially the same game ranks alongside green grass and blue sky.</p><p>What makes this case interesting is what prompted the comment in the first place. Shortly after <a href="https://www.pcgamer.com/games/russia-bans-roblox-over-extremist-content-and-lgbt-propaganda/">Russia banned Roblox</a> in December 2025 over extremist content and "LGBT propaganda," Mikhail Delyagin, deputy head of the State Duma’s economic policy committee, requested that Roskomnadzor—the agency that monitors and controls mass media in the country—review the Call of Duty: Modern Warfare series and, if warranted, ban them as well.</p><p>Delyagin "was absolutely horrified," according to a <a href="https://www-gazeta-ru.translate.goog/social/news/2025/12/10/27376129.shtml?utm_auth=false&amp;_x_tr_sl=ru&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US&amp;_x_tr_pto=wapp" target="_blank">separate Gazeta report</a>. "You're almost always shooting at Russian soldiers. It's a very unpleasant experience for any citizen of our country, a kind of horrific masochism.</p><p>"The only positive Russians in the story are those who collaborate with American and British saboteurs. In the current context, when we're in a proxy war with these countries, this is especially horrific."</p><p>Delyagin, who said his request to investigate Call of Duty was initially sparked by complaints from Russian citizens—something we've <a href="https://www.pcgamer.com/call-of-duty-modern-warfare-angers-russians-who-call-it-propaganda/">seen in the past</a>—also sent a letter to Russia's Ministry of Digital Development, according to a since-removed report that remains available via the <a href="https://web-archive-org.translate.goog/web/20251222124853/https://www.gazeta.ru/social/news/2025/12/22/27472033.shtml?updated&amp;utm_auth=false&amp;_x_tr_sl=ru&amp;_x_tr_tl=en&amp;_x_tr_hl=en-US&amp;_x_tr_pto=wapp" target="_blank">Wayback Machine</a> (you're going to have to translate the text yourself, sorry, we've gone too deep here), He asked that it develop a comparable big-budget shooter in which the player is a member of the Russian military or intelligent, "and the antagonists and targets are representatives of unfriendly countries (Ukraine, Great Britain, the United States, France, and others)." </p><p>He said the massive budgets of such projects—the Gazeta report estimated the cost of developing a Russian Call of Duty equivalent could be as much as 10 billion rubles, which works out to nearly $130 million—would likely put it out of the reach of domestic developers without "additional support" from the Russian government.</p><p>Which brings us to now: Nobody has stepped forward to say they're working on a Russian Call of Duty, but if someone does, they'll enjoy the same sort of benefits that Activision, Ubisoft, Electronic Arts, and all the rest get from Western governments.</p><p>Delyagin is correct in saying that Russians are the traditional enemies of the West in the post-World War 2 world (and <a href="https://www.youtube.com/watch?v=WvAeWtyZ-uE" target="_blank">not just in videogames</a>), only stepping out of that role when covertly collaborating with Western forces—typically against Russian or Russian-aligned enemies. And US cultural hegemony means that if Russian gamers want to play the biggest and most popular military shooters in the world, well, they're probably going to be shooting at their own boys.</p><p>Russia has made similar game-related noises in the past: In 2022, for instance, an exodus of Western tech companies following Russia's full-scale invasion of Ukraine prompted the country to explore the possibility of making a "<a href="https://www.pcgamer.com/after-the-tech-exodus-russian-state-prepares-to-fund-its-own-national-game-engine/">national game engine</a>." That idea was eventually <a href="https://www.pcgamer.com/russian-government-collides-with-reality-rejects-plans-to-fund-a-national-game-engine/">dropped</a> over the expense involved, although an unnamed private investor reportedly stepped in to keep the project moving forward. </p><p>Whether Russia can actually pull off a credible Call of Duty competitor is another question entirely, but it certainly isn't alone in wanting to portray its military forces in a more flattering light. If anything, it's late to the party: In 2013, the Chinese military released a military shooter called <a href="https://www.reuters.com/article/2013/08/01/us-china-game-idUSBRE9700OS20130801/" target="_blank">Glorious Mission</a>, which was apparently a big hit in the country.</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/XvPPthGWoac" allowfullscreen=""></iframe></div></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>