<?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 href="https://airedale.futurecdn.net/feeds/en_feed_96a4cb95.rss-fse?nb_results=50" rel="self" type="application/rss+xml" />
                            <title><![CDATA[ PCGamer latest ]]></title>
                <link>https://www.pcgamer.com</link>
        <description><![CDATA[  ]]></description>
                                    <lastBuildDate>Thu, 22 Oct 2026 22:29:10 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ My GOTY is $7 and has 253 Steam reviews ]]></title>
                                                                                                <dc:content><![CDATA[ <p><em>Fast-paced. 3D Platformer. Parkour. First-Person. Racing.</em></p><p>Those are the tags affixed to the Steam page for <a href="https://store.steampowered.com/app/2999500/STUNTBOOST/">Stuntboost</a>, a game that I've had trouble summing up with a clean label when asked about it. Stuntboost is a skateboarding game that sometimes features a car, a platformer with a speedometer, an ode to those shrunken bedroom maps popularized by early FPS modders. </p><p>It's also, quite easily, my favorite game of 2026 so far.</p><p>Yet, Stuntboost could've easily slipped under my radar. It's been out for a month and hasn't made a big splash on Steam—it's rated "Very Positive" with 253 reviews. I only found it through a friend's recommendation, and even then, the art style didn't immediately suggest it was my thing.</p><p>Stunboost's toy fingerboards and cardboard circuits give the impression of a chill, Hot Wheels-adjacent racer your child could enjoy, but unless that child is accomplished with a mouse and keyboard, that ain't happening. This is the only skateboarding game with a warning that suggests you play with a mouse, and it's immediately obvious why.</p><p>Once you learn a few techniques, Stuntboost looks like this:</p><iframe src="https://content.jwplatform.com/players/B4RIikCM.html" id="B4RIikCM" title="Stuntboost (2)" width="600" height="338" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>And this.</p><iframe src="https://content.jwplatform.com/players/ZTEyhuUc.html" id="ZTEyhuUc" title="Stuntboost (3)" width="600" height="338" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>And this.</p><iframe src="https://content.jwplatform.com/players/mGXFJZQs.html" id="mGXFJZQs" title="Stuntboost (6)" width="600" height="338" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>Despite its choice of vehicles, this thing's for FPS movement sickos—an exercise in precision camera control and first-person platforming. It's essentially a three button game (jump, crouch, grind) about gaining and maintaining speed. Many of its tracks are non-linear obstacle courses that ask you to find your own way across, and the devs actively encourage looking for shortcuts.</p><p>I've been obsessed (a word I'm not using lightly) with Stuntboost's 40+ levels for weeks now, replaying tracks and cutting seconds off my times to score the top medals. And once I have those medals, I get to work shaving hundredths of seconds to take the number one spot on my friend leaderboard. Oh man, this is a <em>dangerous</em> game for a friendly rivalry. I now live in fear of a Discord DM informing me that the PB I spent hours honing has been shattered.</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.29%;"><img id="BjqjdjoD5LB67khBv36Bse" name="20261022151726_1" alt="Stuntboost" src="https://cdn.mos.cms.futurecdn.net/BjqjdjoD5LB67khBv36Bse-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Byting Games)</span></figcaption></figure><p>But I honestly welcome the excuse to replay tracks, because Stuntboost's movement is fundamentally thrilling, and its maps are masterfully crafted with standard and absurd routing in mind. Its wide ramps, massive jumps, and daring speeds remind me a lot of Trackmania—my favorite racing series—but more specifically, a subset of "full speed" community tracks that never ask you to brake. </p><p>Stuntboost also nails a lot of little quality-of-life features that you rarely see in games with way larger budgets. Information about a track is revealed in stages: I can't see friends' times until I've beaten the track once, and global leaderboards are locked until I get the diamond medal. The ghost of my best time appears automatically, but I can also turn on the ghosts of my friends or anyone else on the leaderboard. I can even watch anyone's replay in full as long as I've discovered the same shortcuts they used—a smart touch (possibly inspired by <a href="https://www.pcgamer.com/neon-white-review/" target="_blank">Neon White</a>) that prevents spoilers and entices me to search for what I've missed.</p><div class="card card--standard card--rows-3 card--align-center"><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/qwmkUSoNZhCSZUyjK4UWuR.jpg" alt="Neon White tips guide"></p></div><div class="card__content"><h3 class="card__title">&quot;It&#39;s like Neon White&quot;</h3><div class="card__description-wrapper"><div class="card__description"><ul><li>Layered leaderboards</li><li>Shortcuts</li><li>First-person platforming</li></ul></div><div class="card__description"><p><strong>BUT:</strong> I never finished Neon White because the levels got overwhelming. Juggling cards and shooting mandatory targets sometimes made levels feel strict and suffocating. Stuntboost is simpler, faster, and improvisational.</p></div></div></div></div><p>Watching replays is a big deal, too, because it's primarily how I picked up on community techniques that opened my third eye: varial kickflips, grind hopping, speed storage. Every sloped surface is an opportunity for just a <em>bit </em>more speed and every ramp-shaped object—be it a plate, playing card, or three-ring binder—is a springboard that could send me across the map. The variability of a single track can be staggering.</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.29%;"><img id="XW5Wb4LJHEfZh9jtHjJwqe" name="20261022151745_1" alt="Stuntboost" src="https://cdn.mos.cms.futurecdn.net/XW5Wb4LJHEfZh9jtHjJwqe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Byting Games)</span></figcaption></figure><p>Later worlds (which visit other rooms of the same house) expand beyond the skateboard with car levels that revolve around drifting, free roam scooter levels with S-K-A-T-E collectibles, and a longboard that can't jump. Some of these are just a neat palate cleanser, but the car levels are particularly spectacular for how they force me to relearn how I turn and, eventually, hit sick drifts that're impossible on the skateboard.</p><div class="card card--standard card--rows-2 card--align-center"><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/urWVNfAoSis6yuvJpbEgVZ.jpg" alt="Trackmania"></p></div><div class="card__content"><h3 class="card__title">&quot;It&#39;s like Trackmania&quot;</h3><div class="card__description-wrapper"><div class="card__description"><ul><li>Ghosts</li><li>High speed</li><li>Wild tracks</li></ul></div><div class="card__description"><p><strong>BUT: </strong>Trackmania is a proper driving game, and Stuntboost is its own thing. Where Trackmania demands braking and cornering to improve track times, Stuntboost has no brake, lets you turn on a dime whenever, and encourages max speed at all costs. If I made a Trackmania, it'd be just like this.</p></div></div></div></div><p>Every level has a hidden tape that unlocks a free cam (excellent for scouting) and contributes to unlocking a set of bonus levels. I haven't played all of these yet, but I'm told there's a huge tower gauntlet with a fierce leaderboard race. There's also a speedrun mode that times a run of the complete game, board skins, and a daily challenge.</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.29%;"><img id="8e2VQoY7MCWFB4Vc8T9rve" name="20261022151559_1" alt="Stuntboost" src="https://cdn.mos.cms.futurecdn.net/8e2VQoY7MCWFB4Vc8T9rve-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Byting Games)</span></figcaption></figure><p>I am in awe of how unique and fun and fully-featured this thing is, and for $7. Frankly, it's an injustice that Stuntboost isn't one of the year's big indie success stories, but that's nothing new. The indie games that click for me always gravitate toward <a href="https://www.pcgamer.com/games/fps/the-best-fps-of-2024-so-far-is-echo-point-nova-a-usd25-hyper-mobile-co-op-shooter-i-cant-put-down/">interesting movement mechanics</a> or use of physics, and that rarely intersects with what PC gamers are currently going wild about (deckbuilders, autoshooters, and city builders mostly).</p><p>I've played lots of those—what I want are more games that make me feel alive and dangerous. Stuntboost has me vibrating in place, leaning into high-speed turns, and cursing a god I don't believe in. It's an intoxicating rush on a level I have not experienced before, and you should absolutely play it.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/racing/my-goty-is-usd7-and-has-253-steam-reviews/</link>
                                                                            <description>
                            <![CDATA[ Stuntboost is a racing game for FPS movement sickos. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Sj2Ra9wjGDMhnbXcutoLec</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Vo86zsDQwNRKRhdfHbVscG-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 22:29:10 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 23:21:26 +0000</updated>
                                                                                                                                            <category><![CDATA[Racing]]></category>
                                                    <category><![CDATA[Games]]></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/Vo86zsDQwNRKRhdfHbVscG-1920-80.jpg">
                                                            <media:credit><![CDATA[Byting Games]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Stuntboost]]></media:description>                                                            <media:text><![CDATA[Stuntboost]]></media:text>
                                <media:title type="plain"><![CDATA[Stuntboost]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Vo86zsDQwNRKRhdfHbVscG-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><em>Fast-paced. 3D Platformer. Parkour. First-Person. Racing.</em></p><p>Those are the tags affixed to the Steam page for <a href="https://store.steampowered.com/app/2999500/STUNTBOOST/">Stuntboost</a>, a game that I've had trouble summing up with a clean label when asked about it. Stuntboost is a skateboarding game that sometimes features a car, a platformer with a speedometer, an ode to those shrunken bedroom maps popularized by early FPS modders. </p><p>It's also, quite easily, my favorite game of 2026 so far.</p><p>Yet, Stuntboost could've easily slipped under my radar. It's been out for a month and hasn't made a big splash on Steam—it's rated "Very Positive" with 253 reviews. I only found it through a friend's recommendation, and even then, the art style didn't immediately suggest it was my thing.</p><p>Stunboost's toy fingerboards and cardboard circuits give the impression of a chill, Hot Wheels-adjacent racer your child could enjoy, but unless that child is accomplished with a mouse and keyboard, that ain't happening. This is the only skateboarding game with a warning that suggests you play with a mouse, and it's immediately obvious why.</p><p>Once you learn a few techniques, Stuntboost looks like this:</p><iframe src="https://content.jwplatform.com/players/B4RIikCM.html" id="B4RIikCM" title="Stuntboost (2)" width="600" height="338" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>And this.</p><iframe src="https://content.jwplatform.com/players/ZTEyhuUc.html" id="ZTEyhuUc" title="Stuntboost (3)" width="600" height="338" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>And this.</p><iframe src="https://content.jwplatform.com/players/mGXFJZQs.html" id="mGXFJZQs" title="Stuntboost (6)" width="600" height="338" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>Despite its choice of vehicles, this thing's for FPS movement sickos—an exercise in precision camera control and first-person platforming. It's essentially a three button game (jump, crouch, grind) about gaining and maintaining speed. Many of its tracks are non-linear obstacle courses that ask you to find your own way across, and the devs actively encourage looking for shortcuts.</p><p>I've been obsessed (a word I'm not using lightly) with Stuntboost's 40+ levels for weeks now, replaying tracks and cutting seconds off my times to score the top medals. And once I have those medals, I get to work shaving hundredths of seconds to take the number one spot on my friend leaderboard. Oh man, this is a <em>dangerous</em> game for a friendly rivalry. I now live in fear of a Discord DM informing me that the PB I spent hours honing has been shattered.</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.29%;"><img id="BjqjdjoD5LB67khBv36Bse" name="20261022151726_1" alt="Stuntboost" src="https://cdn.mos.cms.futurecdn.net/BjqjdjoD5LB67khBv36Bse-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Byting Games)</span></figcaption></figure><p>But I honestly welcome the excuse to replay tracks, because Stuntboost's movement is fundamentally thrilling, and its maps are masterfully crafted with standard and absurd routing in mind. Its wide ramps, massive jumps, and daring speeds remind me a lot of Trackmania—my favorite racing series—but more specifically, a subset of "full speed" community tracks that never ask you to brake. </p><p>Stuntboost also nails a lot of little quality-of-life features that you rarely see in games with way larger budgets. Information about a track is revealed in stages: I can't see friends' times until I've beaten the track once, and global leaderboards are locked until I get the diamond medal. The ghost of my best time appears automatically, but I can also turn on the ghosts of my friends or anyone else on the leaderboard. I can even watch anyone's replay in full as long as I've discovered the same shortcuts they used—a smart touch (possibly inspired by <a href="https://www.pcgamer.com/neon-white-review/" target="_blank">Neon White</a>) that prevents spoilers and entices me to search for what I've missed.</p><div class="card card--standard card--rows-3 card--align-center"><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/qwmkUSoNZhCSZUyjK4UWuR.jpg" alt="Neon White tips guide"></p></div><div class="card__content"><h3 class="card__title">&quot;It&#39;s like Neon White&quot;</h3><div class="card__description-wrapper"><div class="card__description"><ul><li>Layered leaderboards</li><li>Shortcuts</li><li>First-person platforming</li></ul></div><div class="card__description"><p><strong>BUT:</strong> I never finished Neon White because the levels got overwhelming. Juggling cards and shooting mandatory targets sometimes made levels feel strict and suffocating. Stuntboost is simpler, faster, and improvisational.</p></div></div></div></div><p>Watching replays is a big deal, too, because it's primarily how I picked up on community techniques that opened my third eye: varial kickflips, grind hopping, speed storage. Every sloped surface is an opportunity for just a <em>bit </em>more speed and every ramp-shaped object—be it a plate, playing card, or three-ring binder—is a springboard that could send me across the map. The variability of a single track can be staggering.</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.29%;"><img id="XW5Wb4LJHEfZh9jtHjJwqe" name="20261022151745_1" alt="Stuntboost" src="https://cdn.mos.cms.futurecdn.net/XW5Wb4LJHEfZh9jtHjJwqe-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Byting Games)</span></figcaption></figure><p>Later worlds (which visit other rooms of the same house) expand beyond the skateboard with car levels that revolve around drifting, free roam scooter levels with S-K-A-T-E collectibles, and a longboard that can't jump. Some of these are just a neat palate cleanser, but the car levels are particularly spectacular for how they force me to relearn how I turn and, eventually, hit sick drifts that're impossible on the skateboard.</p><div class="card card--standard card--rows-2 card--align-center"><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/urWVNfAoSis6yuvJpbEgVZ.jpg" alt="Trackmania"></p></div><div class="card__content"><h3 class="card__title">&quot;It&#39;s like Trackmania&quot;</h3><div class="card__description-wrapper"><div class="card__description"><ul><li>Ghosts</li><li>High speed</li><li>Wild tracks</li></ul></div><div class="card__description"><p><strong>BUT: </strong>Trackmania is a proper driving game, and Stuntboost is its own thing. Where Trackmania demands braking and cornering to improve track times, Stuntboost has no brake, lets you turn on a dime whenever, and encourages max speed at all costs. If I made a Trackmania, it'd be just like this.</p></div></div></div></div><p>Every level has a hidden tape that unlocks a free cam (excellent for scouting) and contributes to unlocking a set of bonus levels. I haven't played all of these yet, but I'm told there's a huge tower gauntlet with a fierce leaderboard race. There's also a speedrun mode that times a run of the complete game, board skins, and a daily challenge.</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.29%;"><img id="8e2VQoY7MCWFB4Vc8T9rve" name="20261022151559_1" alt="Stuntboost" src="https://cdn.mos.cms.futurecdn.net/8e2VQoY7MCWFB4Vc8T9rve-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Byting Games)</span></figcaption></figure><p>I am in awe of how unique and fun and fully-featured this thing is, and for $7. Frankly, it's an injustice that Stuntboost isn't one of the year's big indie success stories, but that's nothing new. The indie games that click for me always gravitate toward <a href="https://www.pcgamer.com/games/fps/the-best-fps-of-2024-so-far-is-echo-point-nova-a-usd25-hyper-mobile-co-op-shooter-i-cant-put-down/">interesting movement mechanics</a> or use of physics, and that rarely intersects with what PC gamers are currently going wild about (deckbuilders, autoshooters, and city builders mostly).</p><p>I've played lots of those—what I want are more games that make me feel alive and dangerous. Stuntboost has me vibrating in place, leaning into high-speed turns, and cursing a god I don't believe in. It's an intoxicating rush on a level I have not experienced before, and you should absolutely play it.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ A new Fallout 4 mod adds an entire town, but more importantly, it lets you join a gang ]]></title>
                                                                                                <dc:content><![CDATA[ <p>There's nothing I like more in a Fallout game then stumbling across some weird little settlement filled with oddball characters. So when I saw that this mod for Fallout 4 added <a href="https://www.nexusmods.com/fallout4/mods/109732?tab=description">a whole new town called Detour</a> that's built on top of an overpass near Bedford Station, that was an instant download.</p><p>Better yet, the mod features new quests and over a dozen new characters voiced by real people—no AI was used!</p><p>But there's something better than <em>that</em>, even. I was delighted to discover that the town of Detour <em>has its own gang</em>. It's a small gang, sure: the overpass Detour is built on isn't particularly big and the town itself is pretty tiny, so there's not a whole lot of room for different factions to spring up. But that doesn't stop the members of the Detour Degens from occupying one little corner of the town where they hang out in matching jackets, smoking cigs, chugging from beer bottles, and looking tough.</p><p>Sort of. Look, the Detour Degens are no Tunnel Snakes, that's for sure. But they live on an overpass. They're doing their best.</p><p>There are a few different types of missions you can do to raise your reputation with the town of Detour, and besides helping out the sheriff with bounties and recovering stolen goods for a few of the merchants, you can also get in good with the gang. The two members of the Degens I met told me that the third member, their leader, was locked up and they wanted me to spring him.</p><p>Yeah, there's a total of three members of the gang. Like I said, they're doing their best.</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:2166px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="7ctHB2pmW86ygpKYFSrxyS" name="gang1" alt="Gang members in Fallout 4" src="https://cdn.mos.cms.futurecdn.net/7ctHB2pmW86ygpKYFSrxyS-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2166" height="1218" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/7ctHB2pmW86ygpKYFSrxyS-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: Bethesda)</span></figcaption></figure><p>It was sort of amusing because the gang leader was locked up maybe 15 feet away from the gang's turf in an itty bitty jail cell in the cramped sheriff's office. But in keeping with Fallout tradition, there are a few ways to get the Degen's leader out of the clink. </p><p>Another gang mission was to tag various places around town with the Degen logo, which was also kinda cute. I don't really know why you'd need to advertise your gang in a town that small: surely, everyone knows you by now.</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="9iJMq82qcnfyeNzDiJM2Me" name="1" alt="A town built on an overpass" src="https://cdn.mos.cms.futurecdn.net/9iJMq82qcnfyeNzDiJM2Me-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: Bethesda)</span></figcaption></figure><p>But I still did it because I wanna be in the smallest gang in Fallout history (except for maybe <a href="https://fallout.wiki/wiki/Maud%27s_Muggers">Maud's Muggers</a>). Once I tagged the town (it took maybe two minutes) they invited me to join them in a proper criminal quest. I won't spoil it, but like all good heists it went a little wrong in the middle and turned out fine in the end. Plus, the Detour Degens now have a new member, bringing the roster up to four people! I'll wear my new leather jacket proudly from now on.</p><p>You can download the <a href="https://www.nexusmods.com/fallout4/mods/109732?tab=description">Detour mod here</a>, and I'll just point out again that it's been made without the use of AI, something that feels less and less common in the modding scene these days.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/fallout/a-new-fallout-4-mod-adds-an-entire-town-but-more-importantly-it-lets-you-join-a-gang/</link>
                                                                            <description>
                            <![CDATA[ They're not the Tunnel Snakes, but they're trying. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">YZS33ajYFzfLS4CZAsb5eK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/rKPhj32cokdeEyPpNizGJT-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 22:22:04 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fallout]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[RPG]]></category>
                                                                                                <author><![CDATA[ clivingston@pcgamer.com (Christopher Livingston) ]]></author>                    <dc:creator><![CDATA[ Christopher Livingston ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/vMPWcamtj9aoVBYFtt2Hp7-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/rKPhj32cokdeEyPpNizGJT-1920-80.jpg">
                                                            <media:credit><![CDATA[Bethesda]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Gang members in Fallout 4]]></media:description>                                                            <media:text><![CDATA[Gang members in Fallout 4]]></media:text>
                                <media:title type="plain"><![CDATA[Gang members in Fallout 4]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/rKPhj32cokdeEyPpNizGJT-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There's nothing I like more in a Fallout game then stumbling across some weird little settlement filled with oddball characters. So when I saw that this mod for Fallout 4 added <a href="https://www.nexusmods.com/fallout4/mods/109732?tab=description">a whole new town called Detour</a> that's built on top of an overpass near Bedford Station, that was an instant download.</p><p>Better yet, the mod features new quests and over a dozen new characters voiced by real people—no AI was used!</p><p>But there's something better than <em>that</em>, even. I was delighted to discover that the town of Detour <em>has its own gang</em>. It's a small gang, sure: the overpass Detour is built on isn't particularly big and the town itself is pretty tiny, so there's not a whole lot of room for different factions to spring up. But that doesn't stop the members of the Detour Degens from occupying one little corner of the town where they hang out in matching jackets, smoking cigs, chugging from beer bottles, and looking tough.</p><p>Sort of. Look, the Detour Degens are no Tunnel Snakes, that's for sure. But they live on an overpass. They're doing their best.</p><p>There are a few different types of missions you can do to raise your reputation with the town of Detour, and besides helping out the sheriff with bounties and recovering stolen goods for a few of the merchants, you can also get in good with the gang. The two members of the Degens I met told me that the third member, their leader, was locked up and they wanted me to spring him.</p><p>Yeah, there's a total of three members of the gang. Like I said, they're doing their best.</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:2166px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="7ctHB2pmW86ygpKYFSrxyS" name="gang1" alt="Gang members in Fallout 4" src="https://cdn.mos.cms.futurecdn.net/7ctHB2pmW86ygpKYFSrxyS-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2166" height="1218" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/7ctHB2pmW86ygpKYFSrxyS-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: Bethesda)</span></figcaption></figure><p>It was sort of amusing because the gang leader was locked up maybe 15 feet away from the gang's turf in an itty bitty jail cell in the cramped sheriff's office. But in keeping with Fallout tradition, there are a few ways to get the Degen's leader out of the clink. </p><p>Another gang mission was to tag various places around town with the Degen logo, which was also kinda cute. I don't really know why you'd need to advertise your gang in a town that small: surely, everyone knows you by now.</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="9iJMq82qcnfyeNzDiJM2Me" name="1" alt="A town built on an overpass" src="https://cdn.mos.cms.futurecdn.net/9iJMq82qcnfyeNzDiJM2Me-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: Bethesda)</span></figcaption></figure><p>But I still did it because I wanna be in the smallest gang in Fallout history (except for maybe <a href="https://fallout.wiki/wiki/Maud%27s_Muggers">Maud's Muggers</a>). Once I tagged the town (it took maybe two minutes) they invited me to join them in a proper criminal quest. I won't spoil it, but like all good heists it went a little wrong in the middle and turned out fine in the end. Plus, the Detour Degens now have a new member, bringing the roster up to four people! I'll wear my new leather jacket proudly from now on.</p><p>You can download the <a href="https://www.nexusmods.com/fallout4/mods/109732?tab=description">Detour mod here</a>, and I'll just point out again that it's been made without the use of AI, something that feels less and less common in the modding scene these days.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Epic announces game jam where you have to use AI, then walks back the requirement ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Unreal Engine maker Epic Games is running a game jam in November with thousands of dollars in prizes up for grabs. Contrary to so many art contests which ban the use of AI, participants in Epic's event are highly encouraged to use AI.</p><p>The theme of the <a href="https://www.unrealengine.com/news/2026-epic-ai-megajam" target="_blank">2026 Epic AI MegaJam </a>will be revealed on November 11, and participating individuals and teams will then have from November 12–15 to produce their games with the help of AI tools.</p><p>Some will work in-person at a San Francisco event space, and there will be daily livestreams with progress updates. The winners in three categories will each receive $7,500, with smaller cash prizes for second and third place winners, as well as additional categories like "best team." Also on the table are "Development Continuation Grants of up to $50,000 per team."</p><p>Epic extended the invitation with a reference to The Matrix's 'red pill' scene, presenting red-pilled AI-driven development as an opportunity to "ship awesome games in a weekend," while old-fashioned blue-pilled development would have you "wait months to prototype."  The hand offering the red pill features an extra finger, a reference to the common mistake made by AI image generators. </p><p>The choice follows a recent pattern from Epic of aloofness and defiance directed at AI critics. Last week, the company <a href="https://www.pcgamer.com/software/platforms/epic-says-its-new-vibe-coded-epic-games-store-launcher-is-faster-than-steam/">referred to</a> its new Epic Games Store launcher as "vibe coded," sending the message that it's not ashamed to rely heavily on AI for software development.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113347611080151105"><p lang="en" dir="ltr">Vibe your way to 50K.  The 2026 Epic AI MegaJam begins Nov 12: https://t.co/aAXEqj7zmE https://t.co/h3Kgs9Y5zH<a href="https://twitter.com/cantworkitout/status/2113347611080151105">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Following <a href="https://www.pcgamer.com/gaming-industry/game-development/our-humble-goal-is-to-survive-the-ai-revolution-says-epic-games-ceo-as-its-star-wars-and-marvel-crossover-pivots-to-ai-first-development/">a report </a>that Epic directed a team working on a Star Wars and Marvel crossover to pivot to "AI first" development, Epic founder and CEO Tim Sweeney said that the company is "moving developers around to retool for maximum AI acceleration."</p><p>The CEO is bullish on AI not just for coding, but for other fields as well, <a href="https://x.com/TimSweeneyEpic/status/2111640459718074479?s=20" target="_blank">saying </a>that he expects creative work to become more about "direction" than manual creation. </p><p>"Developers who are getting value from AI should speak up," Sweeney <a href="https://x.com/TimSweeneyEpic/status/2111644950341558389?s=20" target="_blank">posted recently</a>. "There's safety in numbers. MOST developers are doing it and loving it—and if they're not talking about it it's mostly out of fear for haters attacking them, their product, and their company."</p><p>Sweeney and Epic have received support for their AI positivity on X, but despite the platform's concentration of Grok users and aspiring AI entrepreneurs, substantial resistance also shows up in the replies.</p><p>"So do yall think you invented the concept of a game jam or what?" <a href="https://x.com/Alyx_Gr/status/2113352956431212917?s=20" target="_blank">said one poster</a> in response to the AI MegaJam announcement. "The ludum dare game jam was only 24 hours in 2002, so like, a quarter of the time as your game jam. but you want to make it look like its only possible with AI with this 'wait months to prototype.'"</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/software/ai/epic-announces-game-jam-where-you-have-to-use-ai/</link>
                                                                            <description>
                            <![CDATA[ The Unreal Engine and Fortnite company has extended the public a many-fingered invitation. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9JFFTSRzcnCGvvvVQXDRxU</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/kcoLy3wUGtqe8Xvfo3fa5U-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 21:39:30 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 22:06:56 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                                                                <author><![CDATA[ tyler@pcgamer.com (Tyler Wilde) ]]></author>                    <dc:creator><![CDATA[ Tyler Wilde ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/rGvfSUkSBEPzBAVS3jRh9E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Tyler grew up in Silicon Valley during the &#039;80s and &#039;90s, playing games like Zork and Arkanoid on early PCs. He was later captivated by Myst, SimCity, Civilization, Command &amp; Conquer, all the shooters they call &quot;boomer shooters&quot; now, and PS1 classic Bushido Blade (that&#039;s right: he had Bleem!). Tyler joined PC Gamer in 2011, and today he&#039;s focused on the site&#039;s news coverage. His hobbies include amateur boxing and adding to his 1,200-plus hours in Rocket League.&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/kcoLy3wUGtqe8Xvfo3fa5U-1920-80.jpg">
                                                            <media:credit><![CDATA[Epic Games]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[2026 Epic AI MegaJam promotional image with a six-fingered hand offering the opportunity to &quot;ship awesome games in a weekend.&quot;]]></media:description>                                                            <media:text><![CDATA[2026 Epic AI MegaJam promotional image with a six-fingered hand offering the opportunity to &quot;ship awesome games in a weekend.&quot;]]></media:text>
                                <media:title type="plain"><![CDATA[2026 Epic AI MegaJam promotional image with a six-fingered hand offering the opportunity to &quot;ship awesome games in a weekend.&quot;]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/kcoLy3wUGtqe8Xvfo3fa5U-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Unreal Engine maker Epic Games is running a game jam in November with thousands of dollars in prizes up for grabs. Contrary to so many art contests which ban the use of AI, participants in Epic's event are highly encouraged to use AI.</p><p>The theme of the <a href="https://www.unrealengine.com/news/2026-epic-ai-megajam" target="_blank">2026 Epic AI MegaJam </a>will be revealed on November 11, and participating individuals and teams will then have from November 12–15 to produce their games with the help of AI tools.</p><p>Some will work in-person at a San Francisco event space, and there will be daily livestreams with progress updates. The winners in three categories will each receive $7,500, with smaller cash prizes for second and third place winners, as well as additional categories like "best team." Also on the table are "Development Continuation Grants of up to $50,000 per team."</p><p>Epic extended the invitation with a reference to The Matrix's 'red pill' scene, presenting red-pilled AI-driven development as an opportunity to "ship awesome games in a weekend," while old-fashioned blue-pilled development would have you "wait months to prototype."  The hand offering the red pill features an extra finger, a reference to the common mistake made by AI image generators. </p><p>The choice follows a recent pattern from Epic of aloofness and defiance directed at AI critics. Last week, the company <a href="https://www.pcgamer.com/software/platforms/epic-says-its-new-vibe-coded-epic-games-store-launcher-is-faster-than-steam/">referred to</a> its new Epic Games Store launcher as "vibe coded," sending the message that it's not ashamed to rely heavily on AI for software development.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113347611080151105"><p lang="en" dir="ltr">Vibe your way to 50K.  The 2026 Epic AI MegaJam begins Nov 12: https://t.co/aAXEqj7zmE https://t.co/h3Kgs9Y5zH<a href="https://twitter.com/cantworkitout/status/2113347611080151105">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Following <a href="https://www.pcgamer.com/gaming-industry/game-development/our-humble-goal-is-to-survive-the-ai-revolution-says-epic-games-ceo-as-its-star-wars-and-marvel-crossover-pivots-to-ai-first-development/">a report </a>that Epic directed a team working on a Star Wars and Marvel crossover to pivot to "AI first" development, Epic founder and CEO Tim Sweeney said that the company is "moving developers around to retool for maximum AI acceleration."</p><p>The CEO is bullish on AI not just for coding, but for other fields as well, <a href="https://x.com/TimSweeneyEpic/status/2111640459718074479?s=20" target="_blank">saying </a>that he expects creative work to become more about "direction" than manual creation. </p><p>"Developers who are getting value from AI should speak up," Sweeney <a href="https://x.com/TimSweeneyEpic/status/2111644950341558389?s=20" target="_blank">posted recently</a>. "There's safety in numbers. MOST developers are doing it and loving it—and if they're not talking about it it's mostly out of fear for haters attacking them, their product, and their company."</p><p>Sweeney and Epic have received support for their AI positivity on X, but despite the platform's concentration of Grok users and aspiring AI entrepreneurs, substantial resistance also shows up in the replies.</p><p>"So do yall think you invented the concept of a game jam or what?" <a href="https://x.com/Alyx_Gr/status/2113352956431212917?s=20" target="_blank">said one poster</a> in response to the AI MegaJam announcement. "The ludum dare game jam was only 24 hours in 2002, so like, a quarter of the time as your game jam. but you want to make it look like its only possible with AI with this 'wait months to prototype.'"</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Canadian politician calls on government to help BioWare employees buy the studio and run it themselves ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">closure of BioWare</a> is a tremendous loss, not just for gamers but for Canada: The Edmonton-based studio was named one of the country's best places to work multiple times over the years, even <a href="https://blog.bioware.com/2017/11/09/bioware-named-one-of-canadas-top-employers/" target="_blank">after the Electronic Arts acquisition</a> that ultimately spelled its doom. It's not entirely surprising, then, that its shutdown caught the attention of one of the country's top politicians, who had some harsh words for Electronic Arts about it.</p><p>"This is private equity, this is what it does. Buy up businesses, run them into the ground, and rip them apart for short-term profit," Avi Lewis, leader of the New Democratic Party—traditionally Canada's third-largest political party, although it's run aground a bit over the past several years—wrote on social media. </p><p>"The developers at BioWare know how to run the studio. They know how to make the games we all love. They should be given the first opportunity—and the federal support—to buy it and run it themselves. And if we want to avoid the Mass Effect effect in Canada, we should be keeping private equity out, not welcoming it in."</p><p>The NDP are a center-left party, although the ol' Overton window has resulted in a more centrist style in recent years—a drift Lewis was elected specifically to correct. He's been fairly forceful on that front, speaking out in support of anti-fascist causes and calling for the nationalization of vital industries in Canada that have been swallowed up by larger international interests. Predictably, that led some of his followers to jokingly (I think) call for BioWare to be nationalized.</p><blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:idsofvph6jyjtkumhhla6n5e/app.bsky.feed.post/3myfzwfphok2s" data-bluesky-cid="bafyreic6fsauzexhgfrs2m4fevbnvcjb6ipqtt7ulwvidym7rqvhok7mgy" cite="https://bsky.app/profile/avilewis.ca/post/3myfzwfphok2s"><p lang="en">This is private equity, this is what it does.Buy up businesses, run them into the ground, and rip them apart for short-term profit.www.pcgamer.com/gaming-indus...</p>— @avilewis.ca (<a href="https://bsky.app/profile/did:plc:idsofvph6jyjtkumhhla6n5e?ref_src=embed">@avilewis.ca.bsky.social</a>) <a href="https://bsky.app/profile/avilewis.ca/post/3myfzwfphok2s">2026-10-22T21:26:28.216Z</a></blockquote><p>While the "Mass Effect effect" line is a bit of a clunker, Lewis showed off his gamer cred in response to an inquiry on <a href="https://x.com/avilewis/status/2113020503044874454" target="_blank">X</a>: When asked who he romanced in Mass Effect 2, he replied, "If I'm honest, I'm a Mass Effect 1 on the PS3 type of guy."</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:1010px;"><p class="vanilla-image-block" style="padding-top:72.77%;"><img id="LsxRA5ZQMNDqaqVEUywbDL" name="avi" alt="If I'm honest, I'm a Mass Effect 1 on the PS3 type of guy." src="https://cdn.mos.cms.futurecdn.net/LsxRA5ZQMNDqaqVEUywbDL-1920-80.png" mos="" align="middle" fullscreen="1" width="1010" height="735" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/LsxRA5ZQMNDqaqVEUywbDL-1920-80.png' 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: Avi Lewis (Twitter))</span></figcaption></figure><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="89a51f96-ce5e-11f1-8cd2-27d827e75a76" 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="89a51f96-ce5e-11f1-8cd2-27d827e75a76" 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/mass-effect/canadian-politician-calls-on-government-to-help-bioware-employees-buy-the-studio-and-run-it-themselves/</link>
                                                                            <description>
                            <![CDATA[ Avi Lewis, leader of one of Canada's top opposition parties, is not a fan of private equity. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">79Fn2PSLudQRF2V92HMYME</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YVKeg3ZHUnns3N5BAXnxzm-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 21:26:29 +0000</pubDate>                                                                                                                                <updated>Fri, 23 Oct 2026 00:15:25 +0000</updated>
                                                                                                                                            <category><![CDATA[Mass Effect]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[Action]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/YVKeg3ZHUnns3N5BAXnxzm-1920-80.jpg">
                                                            <media:credit><![CDATA[Getty Images - Photo by Stacey Newman/SOPA Images/LightRocket via Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[TORONTO, CANADA - 2026/04/26: Avi Lewis, son of Stephen Lewis and the newly elected leader of the federal New Democratic Party (NDP) in Canada seen speaking to the mourners. A memorial service at the Chrysalis Theatre at Toronto Metropolitan University honored the life and legacy of Canadian politician, diplomat, and activist Stephen Lewis, who died at 88. Mourners gathered to reflect on his work in human rights, social justice, and global HIV/AIDS advocacy. Tributes also highlighted his support for African grandmothers and community-led responses to the AIDS epidemic. (Photo by Stacey Newman/SOPA Images/LightRocket via Getty Images)]]></media:description>                                                            <media:text><![CDATA[TORONTO, CANADA - 2026/04/26: Avi Lewis, son of Stephen Lewis and the newly elected leader of the federal New Democratic Party (NDP) in Canada seen speaking to the mourners. A memorial service at the Chrysalis Theatre at Toronto Metropolitan University honored the life and legacy of Canadian politician, diplomat, and activist Stephen Lewis, who died at 88. Mourners gathered to reflect on his work in human rights, social justice, and global HIV/AIDS advocacy. Tributes also highlighted his support for African grandmothers and community-led responses to the AIDS epidemic. (Photo by Stacey Newman/SOPA Images/LightRocket via Getty Images)]]></media:text>
                                <media:title type="plain"><![CDATA[TORONTO, CANADA - 2026/04/26: Avi Lewis, son of Stephen Lewis and the newly elected leader of the federal New Democratic Party (NDP) in Canada seen speaking to the mourners. A memorial service at the Chrysalis Theatre at Toronto Metropolitan University honored the life and legacy of Canadian politician, diplomat, and activist Stephen Lewis, who died at 88. Mourners gathered to reflect on his work in human rights, social justice, and global HIV/AIDS advocacy. Tributes also highlighted his support for African grandmothers and community-led responses to the AIDS epidemic. (Photo by Stacey Newman/SOPA Images/LightRocket via Getty Images)]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YVKeg3ZHUnns3N5BAXnxzm-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">closure of BioWare</a> is a tremendous loss, not just for gamers but for Canada: The Edmonton-based studio was named one of the country's best places to work multiple times over the years, even <a href="https://blog.bioware.com/2017/11/09/bioware-named-one-of-canadas-top-employers/" target="_blank">after the Electronic Arts acquisition</a> that ultimately spelled its doom. It's not entirely surprising, then, that its shutdown caught the attention of one of the country's top politicians, who had some harsh words for Electronic Arts about it.</p><p>"This is private equity, this is what it does. Buy up businesses, run them into the ground, and rip them apart for short-term profit," Avi Lewis, leader of the New Democratic Party—traditionally Canada's third-largest political party, although it's run aground a bit over the past several years—wrote on social media. </p><p>"The developers at BioWare know how to run the studio. They know how to make the games we all love. They should be given the first opportunity—and the federal support—to buy it and run it themselves. And if we want to avoid the Mass Effect effect in Canada, we should be keeping private equity out, not welcoming it in."</p><p>The NDP are a center-left party, although the ol' Overton window has resulted in a more centrist style in recent years—a drift Lewis was elected specifically to correct. He's been fairly forceful on that front, speaking out in support of anti-fascist causes and calling for the nationalization of vital industries in Canada that have been swallowed up by larger international interests. Predictably, that led some of his followers to jokingly (I think) call for BioWare to be nationalized.</p><blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:idsofvph6jyjtkumhhla6n5e/app.bsky.feed.post/3myfzwfphok2s" data-bluesky-cid="bafyreic6fsauzexhgfrs2m4fevbnvcjb6ipqtt7ulwvidym7rqvhok7mgy" cite="https://bsky.app/profile/avilewis.ca/post/3myfzwfphok2s"><p lang="en">This is private equity, this is what it does.Buy up businesses, run them into the ground, and rip them apart for short-term profit.www.pcgamer.com/gaming-indus...</p>— @avilewis.ca (<a href="https://bsky.app/profile/did:plc:idsofvph6jyjtkumhhla6n5e?ref_src=embed">@avilewis.ca.bsky.social</a>) <a href="https://bsky.app/profile/avilewis.ca/post/3myfzwfphok2s">2026-10-22T21:26:28.216Z</a></blockquote><p>While the "Mass Effect effect" line is a bit of a clunker, Lewis showed off his gamer cred in response to an inquiry on <a href="https://x.com/avilewis/status/2113020503044874454" target="_blank">X</a>: When asked who he romanced in Mass Effect 2, he replied, "If I'm honest, I'm a Mass Effect 1 on the PS3 type of guy."</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:1010px;"><p class="vanilla-image-block" style="padding-top:72.77%;"><img id="LsxRA5ZQMNDqaqVEUywbDL" name="avi" alt="If I'm honest, I'm a Mass Effect 1 on the PS3 type of guy." src="https://cdn.mos.cms.futurecdn.net/LsxRA5ZQMNDqaqVEUywbDL-1920-80.png" mos="" align="middle" fullscreen="1" width="1010" height="735" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/LsxRA5ZQMNDqaqVEUywbDL-1920-80.png' 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: Avi Lewis (Twitter))</span></figcaption></figure><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="89a51f96-ce5e-11f1-8cd2-27d827e75a76" 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="89a51f96-ce5e-11f1-8cd2-27d827e75a76" 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[ Half-Life 3 re-re-re-confirmed: A Valve dev just said 'HLX' out loud ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Get ready to start talking about Half-Life 3 again, folks, because it's that time of year: Winter is closing in, The Game Awards are coming, and somebody at Valve said "HLX."</p><p>HLX, for those who haven't been following along, is a rumored codename for Half-Life 3, or Half-Life something, the near-mythical new Half-Life game that Valve may or may not be working on. </p><p>It first appeared in early 2024 as part of a <a href="https://www.pcgamer.com/data-strings-in-the-latest-counter-strike-2-update-hint-at-two-new-valve-games-and-one-of-them-might-just-be-half-life-related/" target="_blank">data string inside a Counter-Strike 2 update</a> that bore a very strong resemblance to "HLVR," Valve's codename for Half-Life: Alyx—a revelation that had PC Gamer contributor Rick Lane "vibrating with excitement."</p><p>Sadly for Rick, nothing came of it: No new Half-Life game, 3 or otherwise, followed, and HLX was filed away with all the other myriad <a href="https://www.pcgamer.com/half-life-3-unconfirmed-every-rumor-hoax-and-leak-in-one-place/" target="_blank">Half-Life 3 rumors, hoaxes, and leaks</a>. That is, until Valve composer and audio artist Mike Morasky brought it up completely out of the blue during a <a href="https://www.gamesoundcon.com/speakers" target="_blank">GameSoundCon</a> panel on "Valve's Approach to an Open and Flexible Audio Engine."</p><p>In response to a question about managing voice counts—essentially the maximum number of sounds that can play simultaneously—Morasky touched on some of the variables involved, before mentioning the role played by Valve's HDR system in optimizing audio. "Deadlock has their own version of HDR," Morasky says. "HLX has its own version, and so on and so forth."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113313815110770690"><p lang="en" dir="ltr">We have the first mention of HLX by a Valve employee.HLX files today. I'm working as quickly as I can. https://t.co/LhFBNOP1CU<a href="https://twitter.com/cantworkitout/status/2113313815110770690">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Adding fuel to the fire, co-panelist David Feise, seated next to Morasky, immediately turned to him after the HLX comment and whispered "nice work," or possibly "nice one," obviously suggesting, <em>hey man, you're not supposed to talk about that.</em> Feise then quickly puts an end to the answer as Morasky laughs nervously, saying Groups, which Morasky had been talking about leading up to the HLX remark, "is its own one-hour talk, so come talk to us about that afterwards."</p><p>There's no question that Morasky said HLX, and that Feise reacted. In fact, at the end of the panel Feise leaned in and said, "Good job, you only said HLX once." Because this isn't the first time he's done it: Morasky appeared oh-so-close to <a href="https://www.reddit.com/r/HalfLife/comments/1p8k2ce/michael_morasky_dropping_hints_of_hlx/?share_id=KF1sS5crzUvgbA8WA-ZIF" target="_blank">saying "HLX"</a> in 2025, although he was able to catch himself midway and shift gears, awkwardly, to "Alyx."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113342715756978245"><p lang="en" dir="ltr">- "good job you only said HLX once" - "I DID?" https://t.co/gb8vxACxIi<a href="https://twitter.com/cantworkitout/status/2113342715756978245">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>So HLX does seem to be a thing, but exactly what type of thing is anyone's guess. Maybe he's tripping over Half-Life: Alyx, or referring to some bit of internal tech, or maybe the whole thing is all just a put-on—Valve devs having a little fun with us. Or maybe it really is Half-Life 3! Nobody knows.</p><p>It is interesting, though, that PC Gamer editor Tyler Wilde—a man who does not indulge in the frivolity of baseless rumor and speculation—said in 2025, as the previous round of Half-Life 3 rumors was heating up, that he does think Valve <a href="https://www.pcgamer.com/games/fps/half-life-3-rumors-poll-2025/" target="_blank">is working on a new Half-Life game</a> (although not necessary Half-Life 3), and that "it's not unreasonable to believe that a new Half-Life game will be announced within the next year or so." Here we are, a year later—and a year closer? We'll see.</p><p>"Valve's Approach to an Open and Flexible Audio Engine" panel can be seen in full on <a href="https://vimeo.com/1234454770" target="_blank">Vimeo</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="0f18940a-ce55-11f1-997b-8b1d4f89da74" 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="0f18940a-ce55-11f1-997b-8b1d4f89da74" 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/fps/half-life-3-re-re-re-confirmed-a-valve-dev-just-said-hlx-out-loud/</link>
                                                                            <description>
                            <![CDATA[ There's no mistaking it this time—he said it. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">adVZgkXrniRob8Bcg8yZYk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/G4mqGiKszXBcPamKudfwRA-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 20:16:39 +0000</pubDate>                                                                                                                                <updated>Fri, 23 Oct 2026 00:15:25 +0000</updated>
                                                                                                                                            <category><![CDATA[FPS]]></category>
                                                    <category><![CDATA[Games]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/png" url="https://cdn.mos.cms.futurecdn.net/G4mqGiKszXBcPamKudfwRA-1920-80.png">
                                                            <media:credit><![CDATA[null]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/G4mqGiKszXBcPamKudfwRA-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Get ready to start talking about Half-Life 3 again, folks, because it's that time of year: Winter is closing in, The Game Awards are coming, and somebody at Valve said "HLX."</p><p>HLX, for those who haven't been following along, is a rumored codename for Half-Life 3, or Half-Life something, the near-mythical new Half-Life game that Valve may or may not be working on. </p><p>It first appeared in early 2024 as part of a <a href="https://www.pcgamer.com/data-strings-in-the-latest-counter-strike-2-update-hint-at-two-new-valve-games-and-one-of-them-might-just-be-half-life-related/" target="_blank">data string inside a Counter-Strike 2 update</a> that bore a very strong resemblance to "HLVR," Valve's codename for Half-Life: Alyx—a revelation that had PC Gamer contributor Rick Lane "vibrating with excitement."</p><p>Sadly for Rick, nothing came of it: No new Half-Life game, 3 or otherwise, followed, and HLX was filed away with all the other myriad <a href="https://www.pcgamer.com/half-life-3-unconfirmed-every-rumor-hoax-and-leak-in-one-place/" target="_blank">Half-Life 3 rumors, hoaxes, and leaks</a>. That is, until Valve composer and audio artist Mike Morasky brought it up completely out of the blue during a <a href="https://www.gamesoundcon.com/speakers" target="_blank">GameSoundCon</a> panel on "Valve's Approach to an Open and Flexible Audio Engine."</p><p>In response to a question about managing voice counts—essentially the maximum number of sounds that can play simultaneously—Morasky touched on some of the variables involved, before mentioning the role played by Valve's HDR system in optimizing audio. "Deadlock has their own version of HDR," Morasky says. "HLX has its own version, and so on and so forth."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113313815110770690"><p lang="en" dir="ltr">We have the first mention of HLX by a Valve employee.HLX files today. I'm working as quickly as I can. https://t.co/LhFBNOP1CU<a href="https://twitter.com/cantworkitout/status/2113313815110770690">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Adding fuel to the fire, co-panelist David Feise, seated next to Morasky, immediately turned to him after the HLX comment and whispered "nice work," or possibly "nice one," obviously suggesting, <em>hey man, you're not supposed to talk about that.</em> Feise then quickly puts an end to the answer as Morasky laughs nervously, saying Groups, which Morasky had been talking about leading up to the HLX remark, "is its own one-hour talk, so come talk to us about that afterwards."</p><p>There's no question that Morasky said HLX, and that Feise reacted. In fact, at the end of the panel Feise leaned in and said, "Good job, you only said HLX once." Because this isn't the first time he's done it: Morasky appeared oh-so-close to <a href="https://www.reddit.com/r/HalfLife/comments/1p8k2ce/michael_morasky_dropping_hints_of_hlx/?share_id=KF1sS5crzUvgbA8WA-ZIF" target="_blank">saying "HLX"</a> in 2025, although he was able to catch himself midway and shift gears, awkwardly, to "Alyx."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113342715756978245"><p lang="en" dir="ltr">- "good job you only said HLX once" - "I DID?" https://t.co/gb8vxACxIi<a href="https://twitter.com/cantworkitout/status/2113342715756978245">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>So HLX does seem to be a thing, but exactly what type of thing is anyone's guess. Maybe he's tripping over Half-Life: Alyx, or referring to some bit of internal tech, or maybe the whole thing is all just a put-on—Valve devs having a little fun with us. Or maybe it really is Half-Life 3! Nobody knows.</p><p>It is interesting, though, that PC Gamer editor Tyler Wilde—a man who does not indulge in the frivolity of baseless rumor and speculation—said in 2025, as the previous round of Half-Life 3 rumors was heating up, that he does think Valve <a href="https://www.pcgamer.com/games/fps/half-life-3-rumors-poll-2025/" target="_blank">is working on a new Half-Life game</a> (although not necessary Half-Life 3), and that "it's not unreasonable to believe that a new Half-Life game will be announced within the next year or so." Here we are, a year later—and a year closer? We'll see.</p><p>"Valve's Approach to an Open and Flexible Audio Engine" panel can be seen in full on <a href="https://vimeo.com/1234454770" target="_blank">Vimeo</a>.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="0f18940a-ce55-11f1-997b-8b1d4f89da74" 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="0f18940a-ce55-11f1-997b-8b1d4f89da74" 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 dual wield in Cyberpunk 2077 ]]></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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="euhtdD8p4q4nw6LDn6mzpV" name="cyberpunk-2077-dual-wield-2" alt="Cyberpunk 2077 dual wield skill" src="https://cdn.mos.cms.futurecdn.net/euhtdD8p4q4nw6LDn6mzpV-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2560" height="1440" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/euhtdD8p4q4nw6LDn6mzpV-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: CD Projekt)</span></figcaption></figure><p>You can now dual wield certain weapons in <a href="https://www.pcgamer.com/cyberpunk-2077/" target="_blank">Cyberpunk 2077</a> thanks to its Edgerunners 2.5 patch, though sadly it's limited to revolvers and pistols from the power category, which you can either use dual-wielded, or mix and match if you want to have multiple iconics at once.</p><p>First, though, you need to unlock the Double Trouble perk in the Cool tree at 9. There are also four subsidiary perks, which improve your dual-wielding proficiency. There are a few important things to remember:</p><ul><li>Dual-wielded iconics will retain their abilities and effects.</li><li>Dual wielding two weapons will make them weaker, though this is somewhat mitigated via Double Trouble's other perks.</li></ul><p>Either way, using two iconic power pistols and revolvers adds a lot of potential in terms of comboing effects and running and gunning your way through Night City's mean streets</p><div class="product"><a data-dimension112="cf418200-cd6a-11f1-a1dc-2577b249c224" 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="cf418200-cd6a-11f1-a1dc-2577b249c224" 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/rpg/how-to-dual-wield-in-cyberpunk-2077/</link>
                                                                            <description>
                            <![CDATA[ Combo your pistols or revolvers with the 2.5 update. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">zrvJQ3mVCFqECzcfsyExSZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YjAHFWfcj4a6qCzYqnU7qV-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 19:35:48 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 19:52:29 +0000</updated>
                                                                                                                                            <category><![CDATA[RPG]]></category>
                                                    <category><![CDATA[Games]]></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/YjAHFWfcj4a6qCzYqnU7qV-1920-80.jpg">
                                                            <media:credit><![CDATA[CD Projekt]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Cyberpunk 2077 dual wielding]]></media:description>                                                            <media:text><![CDATA[Cyberpunk 2077 dual wielding]]></media:text>
                                <media:title type="plain"><![CDATA[Cyberpunk 2077 dual wielding]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YjAHFWfcj4a6qCzYqnU7qV-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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="euhtdD8p4q4nw6LDn6mzpV" name="cyberpunk-2077-dual-wield-2" alt="Cyberpunk 2077 dual wield skill" src="https://cdn.mos.cms.futurecdn.net/euhtdD8p4q4nw6LDn6mzpV-1920-80.jpg" mos="" align="middle" fullscreen="1" width="2560" height="1440" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/euhtdD8p4q4nw6LDn6mzpV-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: CD Projekt)</span></figcaption></figure><p>You can now dual wield certain weapons in <a href="https://www.pcgamer.com/cyberpunk-2077/" target="_blank">Cyberpunk 2077</a> thanks to its Edgerunners 2.5 patch, though sadly it's limited to revolvers and pistols from the power category, which you can either use dual-wielded, or mix and match if you want to have multiple iconics at once.</p><p>First, though, you need to unlock the Double Trouble perk in the Cool tree at 9. There are also four subsidiary perks, which improve your dual-wielding proficiency. There are a few important things to remember:</p><ul><li>Dual-wielded iconics will retain their abilities and effects.</li><li>Dual wielding two weapons will make them weaker, though this is somewhat mitigated via Double Trouble's other perks.</li></ul><p>Either way, using two iconic power pistols and revolvers adds a lot of potential in terms of comboing effects and running and gunning your way through Night City's mean streets</p><div class="product"><a data-dimension112="cf418200-cd6a-11f1-a1dc-2577b249c224" 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="cf418200-cd6a-11f1-a1dc-2577b249c224" 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 King's outfit in Cyberpunk 2077 ]]></title>
                                                                                                <dc:content><![CDATA[ <figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/3YBqzgVobDSXBLaerK2kvi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Wakako's message" /><figcaption>You'll get a message from Wakako with the quest after you complete The Heist and do two gigs for her<small role="credit">CD Projekt</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/QnX6wxRBVXAYqYYJAtmjvi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Speaking to King" /><figcaption>Speak to King at BuryGer and accept the job<small role="credit">CD Projekt</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zKwLPV2YkbLmCFHc9ma6pi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Entering prison" /><figcaption>Enter the prison<small role="credit">CD Projekt</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/a9ig4Lo9ZYLb4whsU6ncvi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Coronation" /><figcaption>When directed, head to the bathroom and interact with the duffel bag<small role="credit">CD Projekt</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vbF29xCDJR28CJhGP23jvi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Coronation in menu" /><figcaption>Coronation is the name of King's iconic Tech Revolver<small role="credit">CD Projekt</small></figcaption></figure></figure><p>Though perhaps not the most memorable of Edgerunners 2's characters, Weak Kingsley, or "The King" has the best drip, including his spectacles and crown-emblazoned coat.</p><p>No wonder, then, that <a href="https://www.pcgamer.com/cyberpunk-2077/" target="_blank">Cyberpunk 2077</a> added the new Clampdown quest that lets you get his outfit and gigantic hand cannon in the Edgerunners 2.5 update, similar to how it did for <a href="https://www.pcgamer.com/cyberpunk-2077-davids-jacket-edgerunners/">David's jacket</a> and <a href="https://www.pcgamer.com/cyberpunk-2077-rebecca-shotgun-guts/">Rebecca's Shotgun</a> for season one. To complete this quest, you need to:</p><ol start="1"><li>Complete The Heist, two gigs for Wakako, and then wait for her message, starting the Clampdown quest.</li><li>Read the message, head to the meeting at BuryGer diner and speak to King, accepting the job.</li><li>Go to the prison.</li><li>When directed, head to the bathroom and interact with the duffle bag under the bench.</li></ol><p>The quest will continue, but you'll have King's iconic Coronation Tech Revolver, plus his full outfit, including the glasses.</p><div class="product"><a data-dimension112="bcdec034-ce4e-11f1-a2e1-490ef283c1b6" 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="bcdec034-ce4e-11f1-a2e1-490ef283c1b6" 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/rpg/cyberpunk-2077-king-outfit-clampdown-edgerunners/</link>
                                                                            <description>
                            <![CDATA[ Grab Weak Kingsley's coat, glasses, and gun from Edgerunners 2. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ckrdZAXUCtH6DkpjJcfecb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jkE7od7qNxy9z2yskrLvhi-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 19:32:18 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 19:36:48 +0000</updated>
                                                                                                                                            <category><![CDATA[RPG]]></category>
                                                    <category><![CDATA[Games]]></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/jkE7od7qNxy9z2yskrLvhi-1920-80.jpg">
                                                            <media:credit><![CDATA[CD Projekt]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Cyberpunk 2077 King&#039;s outfit]]></media:description>                                                            <media:text><![CDATA[Cyberpunk 2077 King&#039;s outfit]]></media:text>
                                <media:title type="plain"><![CDATA[Cyberpunk 2077 King&#039;s outfit]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jkE7od7qNxy9z2yskrLvhi-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/3YBqzgVobDSXBLaerK2kvi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Wakako's message" /><figcaption>You'll get a message from Wakako with the quest after you complete The Heist and do two gigs for her<small role="credit">CD Projekt</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/QnX6wxRBVXAYqYYJAtmjvi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Speaking to King" /><figcaption>Speak to King at BuryGer and accept the job<small role="credit">CD Projekt</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zKwLPV2YkbLmCFHc9ma6pi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Entering prison" /><figcaption>Enter the prison<small role="credit">CD Projekt</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/a9ig4Lo9ZYLb4whsU6ncvi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Coronation" /><figcaption>When directed, head to the bathroom and interact with the duffel bag<small role="credit">CD Projekt</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vbF29xCDJR28CJhGP23jvi-1920-80.jpg" alt="Cyberpunk 2077 King's outfit - Coronation in menu" /><figcaption>Coronation is the name of King's iconic Tech Revolver<small role="credit">CD Projekt</small></figcaption></figure></figure><p>Though perhaps not the most memorable of Edgerunners 2's characters, Weak Kingsley, or "The King" has the best drip, including his spectacles and crown-emblazoned coat.</p><p>No wonder, then, that <a href="https://www.pcgamer.com/cyberpunk-2077/" target="_blank">Cyberpunk 2077</a> added the new Clampdown quest that lets you get his outfit and gigantic hand cannon in the Edgerunners 2.5 update, similar to how it did for <a href="https://www.pcgamer.com/cyberpunk-2077-davids-jacket-edgerunners/">David's jacket</a> and <a href="https://www.pcgamer.com/cyberpunk-2077-rebecca-shotgun-guts/">Rebecca's Shotgun</a> for season one. To complete this quest, you need to:</p><ol start="1"><li>Complete The Heist, two gigs for Wakako, and then wait for her message, starting the Clampdown quest.</li><li>Read the message, head to the meeting at BuryGer diner and speak to King, accepting the job.</li><li>Go to the prison.</li><li>When directed, head to the bathroom and interact with the duffle bag under the bench.</li></ol><p>The quest will continue, but you'll have King's iconic Coronation Tech Revolver, plus his full outfit, including the glasses.</p><div class="product"><a data-dimension112="bcdec034-ce4e-11f1-a2e1-490ef283c1b6" 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="bcdec034-ce4e-11f1-a2e1-490ef283c1b6" 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[ Future Capcom games will have Onimusha to thank for RE Engine's gnarly dismemberments ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.pcgamer.com/onimusha-way-of-the-sword/" target="_blank">Onimusha: Way of the Sword</a> has received universal praise for its combat animations, which somehow manage to look natural and fluid no matter what angle or direction hero Miyamoto Musashi has to swing his sword to parry an incoming blow. In a post-launch interview, I asked Capcom how—beyond doing <em>a ton of work</em> across Onimusha's lengthy development—they managed to raise the bar for this sort of action game.</p><p>"Starting the project six years ago, we felt it was important to have that detail to sell the power and the excitement of the action, so it's something we really focused on," said director Satoru Nihei.</p><p>"Even at that starting point, we knew it was something that Capcom, as a company, have as a great strength: We have a lot of assets and tech available to us that allow us to create these varieties of actions. That's something we really felt we could leverage to make the game really stand out that a lot of other places can't really copy. On top of producing a lot of animations and motion capture, we have to give a lot of credit to the programmers for taking that data and putting it in a form that we can have them make these very smooth transitions, with these physics-based calculations, to go from one animation to another. It was a big team effort in getting the animations to look how they do."</p><p>PC Gamer actually got a behind-the-scenes look at that process when we traveled to Osaka this summer to see Onimusha: Way of the Sword wrapping up development.</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/pIHYi-jktpk" allowfullscreen></iframe></div></div><p>The effort put into Onimusha's animations is even more impressive within the scope of the final game and its roster of intricately choreographed boss fights. Despite being the third of Capcom's three big releases this year, following Resident Evil: Requiem and Pragmata, Onimusha features some fancy samurai dismemberment tech new to the publisher's in-house game engine. Rather than factoring into the more scripted boss fights, it comes into play when Musashi chops weaker enemies into pieces with dramatic finishers like the lightning fast Issen strike.</p><p>"One particular piece of technology that was added specifically for this title that we couldn't have done before is what we call the dynamic dismemberment system," Nihei said. "If you slash enemies with certain attacks they get cut in the exact path that a sword passes through. While that's something that has been done in the past in other games, one of the challenges and things we built on that was brand new with Onimusha was having that happen along with enemies still being animated as they're dying and dropping.</p><p>"In lots of other games you'd cut them, they'd kind of freeze when you do the cut and then fall apart. We had to have the programmers add to RE Engine to be able to enable that to really sell the impact of moves like the Issen. That was something brand new added to the engine."</p><p>This isn't the first time Nihei has talked about Onimusha's dismemberment system, but I followed up by contrasting it with other action games like Metal Gear Rising: Revengeance, which go a bit more freeform with their chopping. Nihei said that the Onimusha team knew they didn't want to go that route even early in development.</p><p>"In other games where you have that ability to cut up anything—just because of the tempo and style of game we wanted to make, it wasn't something we considered for Onimusha. Choosing exactly which direction and how you want to cut, we didn't think it was a good match for this particular title. Rather, we wanted to have something that happened reactively to how you're playing, to show off the power of the abilities."</p><p>Now that Onimusha's dynamic dismemberments are bedded into RE Engine, I hope they'll show up in Capcom's future games. Surely next time Leon blows a zombie in half with a shotgun its guts will be slipping and sliding all over the place.</p><div class="product"><a data-dimension112="bc979dec-ce4b-11f1-bf53-9b8e9c1bc339" 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="bc979dec-ce4b-11f1-bf53-9b8e9c1bc339" 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/action/future-capcom-games-will-have-onimusha-to-thank-for-re-engines-gnarly-dismemberments/</link>
                                                                            <description>
                            <![CDATA[ Surely this will come in handy for the next Resident Evil. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VMjMBRi7i4tpgfKiy7BjZb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/R8pn3UWuBqjRFpAv3qwvWT-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 19:18:23 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 19:18:42 +0000</updated>
                                                                                                                                            <category><![CDATA[Action]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                                                                <author><![CDATA[ wesley@pcgamer.com (Wes Fenlon) ]]></author>                    <dc:creator><![CDATA[ Wes Fenlon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/oLoGHTuSZDFZX6QdzCTj4R-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Wes has been covering games and hardware for more than 10 years, first at tech sites like The Wirecutter and Tested before joining the PC Gamer team in 2014. Wes plays a little bit of everything, but he&#039;ll always jump at the chance to cover emulation and Japanese games.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;When he&#039;s not obsessively optimizing and re-optimizing a tangle of conveyor belts in Satisfactory (it&#039;s really becoming a problem), he&#039;s probably playing a 20-year-old Final Fantasy or some opaque ASCII roguelike. With a focus on writing and editing features, he seeks out personal stories and in-depth histories from the corners of PC gaming and its niche communities. 50% pizza by volume (deep dish, to be specific).&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;His lasting legacy on this earth may be &lt;a href=&quot;https://www.pcgamer.com/ive-somehow-been-wasding-wrong-my-whole-life/&quot; target=&quot;_blank&quot;&gt;using WASD wrong&lt;/a&gt; for his entire life.&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/R8pn3UWuBqjRFpAv3qwvWT-1920-80.jpg">
                                                            <media:credit><![CDATA[Capcom]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Onimusha: Way of the Sword&#039;s villain]]></media:description>                                                            <media:text><![CDATA[Onimusha: Way of the Sword&#039;s villain]]></media:text>
                                <media:title type="plain"><![CDATA[Onimusha: Way of the Sword&#039;s villain]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/R8pn3UWuBqjRFpAv3qwvWT-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.pcgamer.com/onimusha-way-of-the-sword/" target="_blank">Onimusha: Way of the Sword</a> has received universal praise for its combat animations, which somehow manage to look natural and fluid no matter what angle or direction hero Miyamoto Musashi has to swing his sword to parry an incoming blow. In a post-launch interview, I asked Capcom how—beyond doing <em>a ton of work</em> across Onimusha's lengthy development—they managed to raise the bar for this sort of action game.</p><p>"Starting the project six years ago, we felt it was important to have that detail to sell the power and the excitement of the action, so it's something we really focused on," said director Satoru Nihei.</p><p>"Even at that starting point, we knew it was something that Capcom, as a company, have as a great strength: We have a lot of assets and tech available to us that allow us to create these varieties of actions. That's something we really felt we could leverage to make the game really stand out that a lot of other places can't really copy. On top of producing a lot of animations and motion capture, we have to give a lot of credit to the programmers for taking that data and putting it in a form that we can have them make these very smooth transitions, with these physics-based calculations, to go from one animation to another. It was a big team effort in getting the animations to look how they do."</p><p>PC Gamer actually got a behind-the-scenes look at that process when we traveled to Osaka this summer to see Onimusha: Way of the Sword wrapping up development.</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/pIHYi-jktpk" allowfullscreen></iframe></div></div><p>The effort put into Onimusha's animations is even more impressive within the scope of the final game and its roster of intricately choreographed boss fights. Despite being the third of Capcom's three big releases this year, following Resident Evil: Requiem and Pragmata, Onimusha features some fancy samurai dismemberment tech new to the publisher's in-house game engine. Rather than factoring into the more scripted boss fights, it comes into play when Musashi chops weaker enemies into pieces with dramatic finishers like the lightning fast Issen strike.</p><p>"One particular piece of technology that was added specifically for this title that we couldn't have done before is what we call the dynamic dismemberment system," Nihei said. "If you slash enemies with certain attacks they get cut in the exact path that a sword passes through. While that's something that has been done in the past in other games, one of the challenges and things we built on that was brand new with Onimusha was having that happen along with enemies still being animated as they're dying and dropping.</p><p>"In lots of other games you'd cut them, they'd kind of freeze when you do the cut and then fall apart. We had to have the programmers add to RE Engine to be able to enable that to really sell the impact of moves like the Issen. That was something brand new added to the engine."</p><p>This isn't the first time Nihei has talked about Onimusha's dismemberment system, but I followed up by contrasting it with other action games like Metal Gear Rising: Revengeance, which go a bit more freeform with their chopping. Nihei said that the Onimusha team knew they didn't want to go that route even early in development.</p><p>"In other games where you have that ability to cut up anything—just because of the tempo and style of game we wanted to make, it wasn't something we considered for Onimusha. Choosing exactly which direction and how you want to cut, we didn't think it was a good match for this particular title. Rather, we wanted to have something that happened reactively to how you're playing, to show off the power of the abilities."</p><p>Now that Onimusha's dynamic dismemberments are bedded into RE Engine, I hope they'll show up in Capcom's future games. Surely next time Leon blows a zombie in half with a shotgun its guts will be slipping and sliding all over the place.</p><div class="product"><a data-dimension112="bc979dec-ce4b-11f1-bf53-9b8e9c1bc339" 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="bc979dec-ce4b-11f1-bf53-9b8e9c1bc339" 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 other studio in the world did it better' than BioWare at its peak, says former Dragon Age lead writer David Gaider ]]></title>
                                                                                                <dc:content><![CDATA[ <p>After EA's announcement this week, PC Gamer reached out to BioWare veteran David Gaider to ask for his reflection on the closure and his memories of the studio. Gaider joined BioWare in 1999 to work on Baldur's Gate 2: Shadows of Amn and went on to be lead writer on the early Dragon Age games, leaving BioWare in 2016 and co-founding <a href="https://www.summerfallstudios.com/">Summerfall Studios</a> in 2019.</p><h2 id="gaider-on-bioware">Gaider on BioWare</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pFGV8fJ5sSyMtvBACWWgV3" name="dragon-age-origins-cullen.jpg" alt="Dragon Age: Origins - Cullen stands trapped behind a magical wall wearing Templar armor and looking concerned." src="https://cdn.mos.cms.futurecdn.net/pFGV8fJ5sSyMtvBACWWgV3-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: BioWare)</span></figcaption></figure><h2 id="the-loss-of-a-legacy-hurts">The loss of a legacy hurts</h2> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/dragon-age/no-other-studio-in-the-world-did-it-better-than-bioware-at-its-peak-says-former-dragon-age-lead-writer-david-gaider/</link>
                                                                            <description>
                            <![CDATA[ Just because we saw this coming doesn't mean it hurts less. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pLD86Eai3gD9GH9QfSVsGh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/zbuCBKBrtXuEzbQkqCSz8S-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 17:57:26 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 18:42:55 +0000</updated>
                                                                                                                                            <category><![CDATA[Dragon Age]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[RPG]]></category>
                                                                                                <author><![CDATA[ lauren@pcgamer.com (Lauren Morton) ]]></author>                    <dc:creator><![CDATA[ Lauren Morton ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/CoudgUkKX2WLFCPMbGjoX5-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/zbuCBKBrtXuEzbQkqCSz8S-1920-80.jpg">
                                                            <media:credit><![CDATA[EA]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Morrigan from Dragon Age next to a headshot of David Gaider]]></media:description>                                                            <media:text><![CDATA[Morrigan from Dragon Age next to a headshot of David Gaider]]></media:text>
                                <media:title type="plain"><![CDATA[Morrigan from Dragon Age next to a headshot of David Gaider]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/zbuCBKBrtXuEzbQkqCSz8S-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>After EA's announcement this week, PC Gamer reached out to BioWare veteran David Gaider to ask for his reflection on the closure and his memories of the studio. Gaider joined BioWare in 1999 to work on Baldur's Gate 2: Shadows of Amn and went on to be lead writer on the early Dragon Age games, leaving BioWare in 2016 and co-founding <a href="https://www.summerfallstudios.com/">Summerfall Studios</a> in 2019.</p><h2 id="gaider-on-bioware">Gaider on BioWare</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:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pFGV8fJ5sSyMtvBACWWgV3" name="dragon-age-origins-cullen.jpg" alt="Dragon Age: Origins - Cullen stands trapped behind a magical wall wearing Templar armor and looking concerned." src="https://cdn.mos.cms.futurecdn.net/pFGV8fJ5sSyMtvBACWWgV3-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: BioWare)</span></figcaption></figure><h2 id="the-loss-of-a-legacy-hurts">The loss of a legacy hurts</h2>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Splash Damage acquired this studio just 3 months after laying off a bunch of people—now it's laying them off, too ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">closure of BioWare</a> and layoff of roughly 400 people at Electronic Arts is being rightly excoriated as an example of the corrosive effects of capital on pretty much everything good. But that same sort of thing happens, maybe more often than we'd like to think, on smaller scales, too. Case in point: Gamepires, creator of open-world survival game <a href="https://www.pcgamer.com/scum/" target="_blank">Scum</a>, which announced last week that it's putting people out of work.</p><p>The bad news came via an unattributed message posted on <a href="https://x.com/ScumGame/status/2110283255060603386/photo/1">X</a>: "A difficult decision has been made to reduce the size of the Gamepires team, which means saying goodbye to colleagues who've helped shape Scum and the studio. This step is necessary to help Gamepires adapt to challenging market conditions and long-term sustainability."</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:602px;"><p class="vanilla-image-block" style="padding-top:124.92%;"><img id="X6aP4mrbYBNu4zbh6Yi7cR" name="Imported image 1 - 1792689471441" alt="A difficult decision has been made to reduce the size of the Gamepires team, which means saying goodbye to colleagues who've helped shape Scum and the studio. This step is necessary to help Gamepires adapt to challenging market conditions and long-term sustainability." src="https://cdn.mos.cms.futurecdn.net/X6aP4mrbYBNu4zbh6Yi7cR-1920-80.jpg" mos="" align="middle" fullscreen="1" width="602" height="752" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/X6aP4mrbYBNu4zbh6Yi7cR-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: Gamepires)</span></figcaption></figure><p>It's all very bloodless and generic—the sort of statement that could've come from just about any game studio making layoffs over the past six months or so. </p><p>What makes this particular case feel so egregious, though, is that Gamepires was <a href="https://www.pcgamer.com/gaming-industry/3-months-after-laying-off-a-bunch-of-people-splash-damage-has-become-splash-damage-group-and-acquired-another-studio/" target="_blank">acquired by Splash Damage Group</a>, in a deal backed by Emona Capital, just eight months ago. And <em>that </em>acquisition was made just three months after Splash Damage <a href="https://www.pcgamer.com/gaming-industry/2-months-after-being-acquired-by-private-equity-splash-damage-is-making-major-layoffs-so-it-can-remain-agile-even-though-it-hasnt-released-a-game-since-2020/" target="_blank">made major layoffs</a> of its own, so it could "remain agile and adaptable in what has been a very challenging market." And <em>those </em>layoffs came just two months after Splash Damage was <a href="https://www.pcgamer.com/gaming-industry/9-months-after-cancelling-transformers-reactivate-splash-damage-splits-from-tencent-and-is-now-owned-by-private-equity-investors/" target="_blank">acquired by then-unnamed private equity investors</a>.</p><p>Splash Damage hasn't released a game since Gears Tactics in 2020: Its planned next big thing, Transformers: Reactivate, was cancelled in 2025. Gamepires' survival game Scum, meanwhile, is still ticking over nicely on Steam, where it's being regularly updated with hotfixes and content updates. </p><p>In fact, Splash Damage said when it acquired Gamepires that "bringing the teams together around Scum gives Splash Damage Group immediate, meaningful work to focus on," adding, "That stability has been important for protecting roles and giving the studio a solid foundation for its future. Splash Damage Group is currently just under 150 people, and we will be working closely with Emona to grow the group over the next few years."</p><p>Yet here we are, eight months later. </p><p>So, to recap:</p><ul><li>Splash Damage gets <strong>bought up by private equity</strong></li><li>Splash Damage <strong>lays off employees</strong></li><li>Splash Damage, <strong>backed by private equity, acquires Gamepires</strong></li><li>Gamepires <strong>lays off employees</strong></li></ul><p>The number of people put out of work wasn't revealed, but in response to our inquiry Splash Damage issued the following statement:</p><p><em>"Gamepires is part of Splash Damage Group and has reduced the size of its team in response to challenging market conditions and to support the studio’s long-term sustainability.</em></p><p><em>"These redundancies have affected colleagues we work closely with, whose work has helped make SCUM what it is today. We know this is difficult news for those leaving. We have great respect for their work and the contribution they’ve made to both the game and the studio.</em></p><p><em>"Development of SCUM will continue, and we’ll keep working with our colleagues at Gamepires to support updates and new content."</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="a2c89fd6-ce3e-11f1-bc68-3d8aa510d68c" 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="a2c89fd6-ce3e-11f1-bc68-3d8aa510d68c" 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/gaming-industry/splash-damage-acquired-this-studio-just-3-months-after-laying-off-a-bunch-of-people-now-its-laying-them-off-too/</link>
                                                                            <description>
                            <![CDATA[ An undisclosed number of employees have been let go from the studio behind survival game Scum. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">QkVsgr7JTRxm6kG8dPJdrV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Wsgd5xK2eX6PXhVUsPmXcV-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 17:34:04 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 18:34:54 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Industry]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/Wsgd5xK2eX6PXhVUsPmXcV-1920-80.jpg">
                                                            <media:credit><![CDATA[Gamepires]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Scum screenshot - dude in sunglasses about to get ganked by a bear]]></media:description>                                                            <media:text><![CDATA[Scum screenshot - dude in sunglasses about to get ganked by a bear]]></media:text>
                                <media:title type="plain"><![CDATA[Scum screenshot - dude in sunglasses about to get ganked by a bear]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Wsgd5xK2eX6PXhVUsPmXcV-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">closure of BioWare</a> and layoff of roughly 400 people at Electronic Arts is being rightly excoriated as an example of the corrosive effects of capital on pretty much everything good. But that same sort of thing happens, maybe more often than we'd like to think, on smaller scales, too. Case in point: Gamepires, creator of open-world survival game <a href="https://www.pcgamer.com/scum/" target="_blank">Scum</a>, which announced last week that it's putting people out of work.</p><p>The bad news came via an unattributed message posted on <a href="https://x.com/ScumGame/status/2110283255060603386/photo/1">X</a>: "A difficult decision has been made to reduce the size of the Gamepires team, which means saying goodbye to colleagues who've helped shape Scum and the studio. This step is necessary to help Gamepires adapt to challenging market conditions and long-term sustainability."</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:602px;"><p class="vanilla-image-block" style="padding-top:124.92%;"><img id="X6aP4mrbYBNu4zbh6Yi7cR" name="Imported image 1 - 1792689471441" alt="A difficult decision has been made to reduce the size of the Gamepires team, which means saying goodbye to colleagues who've helped shape Scum and the studio. This step is necessary to help Gamepires adapt to challenging market conditions and long-term sustainability." src="https://cdn.mos.cms.futurecdn.net/X6aP4mrbYBNu4zbh6Yi7cR-1920-80.jpg" mos="" align="middle" fullscreen="1" width="602" height="752" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/X6aP4mrbYBNu4zbh6Yi7cR-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: Gamepires)</span></figcaption></figure><p>It's all very bloodless and generic—the sort of statement that could've come from just about any game studio making layoffs over the past six months or so. </p><p>What makes this particular case feel so egregious, though, is that Gamepires was <a href="https://www.pcgamer.com/gaming-industry/3-months-after-laying-off-a-bunch-of-people-splash-damage-has-become-splash-damage-group-and-acquired-another-studio/" target="_blank">acquired by Splash Damage Group</a>, in a deal backed by Emona Capital, just eight months ago. And <em>that </em>acquisition was made just three months after Splash Damage <a href="https://www.pcgamer.com/gaming-industry/2-months-after-being-acquired-by-private-equity-splash-damage-is-making-major-layoffs-so-it-can-remain-agile-even-though-it-hasnt-released-a-game-since-2020/" target="_blank">made major layoffs</a> of its own, so it could "remain agile and adaptable in what has been a very challenging market." And <em>those </em>layoffs came just two months after Splash Damage was <a href="https://www.pcgamer.com/gaming-industry/9-months-after-cancelling-transformers-reactivate-splash-damage-splits-from-tencent-and-is-now-owned-by-private-equity-investors/" target="_blank">acquired by then-unnamed private equity investors</a>.</p><p>Splash Damage hasn't released a game since Gears Tactics in 2020: Its planned next big thing, Transformers: Reactivate, was cancelled in 2025. Gamepires' survival game Scum, meanwhile, is still ticking over nicely on Steam, where it's being regularly updated with hotfixes and content updates. </p><p>In fact, Splash Damage said when it acquired Gamepires that "bringing the teams together around Scum gives Splash Damage Group immediate, meaningful work to focus on," adding, "That stability has been important for protecting roles and giving the studio a solid foundation for its future. Splash Damage Group is currently just under 150 people, and we will be working closely with Emona to grow the group over the next few years."</p><p>Yet here we are, eight months later. </p><p>So, to recap:</p><ul><li>Splash Damage gets <strong>bought up by private equity</strong></li><li>Splash Damage <strong>lays off employees</strong></li><li>Splash Damage, <strong>backed by private equity, acquires Gamepires</strong></li><li>Gamepires <strong>lays off employees</strong></li></ul><p>The number of people put out of work wasn't revealed, but in response to our inquiry Splash Damage issued the following statement:</p><p><em>"Gamepires is part of Splash Damage Group and has reduced the size of its team in response to challenging market conditions and to support the studio’s long-term sustainability.</em></p><p><em>"These redundancies have affected colleagues we work closely with, whose work has helped make SCUM what it is today. We know this is difficult news for those leaving. We have great respect for their work and the contribution they’ve made to both the game and the studio.</em></p><p><em>"Development of SCUM will continue, and we’ll keep working with our colleagues at Gamepires to support updates and new content."</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="a2c89fd6-ce3e-11f1-bc68-3d8aa510d68c" 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="a2c89fd6-ce3e-11f1-bc68-3d8aa510d68c" 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[ Someone leaked a Mass Effect 5 trailer and now I feel even worse, because it looks really good ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The day after the <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">closure of BioWare</a> and cancellation of the next Mass Effect game, a purported trailer for Mass Effect: Universe has surfaced on Reddit. The authenticity of the trailer is unknown at this point, but at the very least it sure looks legit.</p><p>Straight to it, here's the video:</p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/masseffect/comments/1xclmpu/mass_effect_universe_trailer">Mass Effect: Universe Trailer</a><figcaption><cite> from <a href="https://www.reddit.com/r/masseffect">r/masseffect</a></cite></figcaption></blockquote></figure><script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>Man, that looks like Mass Effect—and sounds like it, too. The music is right, and at least two PC Gamer employees are pretty sure that's Liara's actual voice. Shepard's out, but the new guy seems suitably Shepard-like, although I can't help but notice the absence of the N7 logo on his uniform. Maybe the new guy was meant to be a rawer, rougher kind of troubleshooter—more of a housecleaner than a world-saver—or perhaps the ascent to the rank was meant to be part of the character's progression, which would've been cool.</p><p>There are no obvious AI telltales here, at least none that I can see, and adding to the trailer's "real deal" potential, a redditor claiming to be an EA employee said yesterday that a trailer for the new game <a href="https://www.reddit.com/r/Austin/comments/1xc0uzv/comment/19rgdyayriv9c/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button" target="_blank">had been produced</a> and suggested that it was not as early in the development process as was widely believed.</p><p>Not long after the trailer came to light, Jason Schreier of Bloomberg said on <a href="https://bsky.app/profile/jasonschreier.bsky.social/post/3myi6wo57ns2f" target="_blank">Bluesky</a> that it is indeed real, and that BioWare had been working on the game until its closure.</p><p>Whatever the case—and we're still working on verifying its provenance—the trailer is also just the right blend of sexy, violent, and corny: Even if this isn't a real trailer for what BioWare was working on (and at this point it seems pretty certain that it is), it's a Mass Effect we would definitely play.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="6a80669a-ce39-11f1-8181-59164892a8fa" 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="6a80669a-ce39-11f1-8181-59164892a8fa" 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/mass-effect/someone-leaked-a-mass-effect-5-trailer-and-now-i-feel-even-worse-because-it-looks-really-good/</link>
                                                                            <description>
                            <![CDATA[ The video was posted several hours after a purported EA employee said a trailer for the new game was ready to go. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Bo69HFfg2oLizYJVMVdAxL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/QLBVemEasSnJmdfJ6VMfKF-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 16:56:08 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 18:42:55 +0000</updated>
                                                                                                                                            <category><![CDATA[Mass Effect]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[Action]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/QLBVemEasSnJmdfJ6VMfKF-1920-80.jpg">
                                                            <media:credit><![CDATA[BioWare/Electronic Arts]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Liara T&#039;Soni in Mass Effect: Universe trailer]]></media:description>                                                            <media:text><![CDATA[Liara T&#039;Soni in Mass Effect: Universe trailer]]></media:text>
                                <media:title type="plain"><![CDATA[Liara T&#039;Soni in Mass Effect: Universe trailer]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/QLBVemEasSnJmdfJ6VMfKF-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The day after the <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">closure of BioWare</a> and cancellation of the next Mass Effect game, a purported trailer for Mass Effect: Universe has surfaced on Reddit. The authenticity of the trailer is unknown at this point, but at the very least it sure looks legit.</p><p>Straight to it, here's the video:</p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/masseffect/comments/1xclmpu/mass_effect_universe_trailer">Mass Effect: Universe Trailer</a><figcaption><cite> from <a href="https://www.reddit.com/r/masseffect">r/masseffect</a></cite></figcaption></blockquote></figure><script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>Man, that looks like Mass Effect—and sounds like it, too. The music is right, and at least two PC Gamer employees are pretty sure that's Liara's actual voice. Shepard's out, but the new guy seems suitably Shepard-like, although I can't help but notice the absence of the N7 logo on his uniform. Maybe the new guy was meant to be a rawer, rougher kind of troubleshooter—more of a housecleaner than a world-saver—or perhaps the ascent to the rank was meant to be part of the character's progression, which would've been cool.</p><p>There are no obvious AI telltales here, at least none that I can see, and adding to the trailer's "real deal" potential, a redditor claiming to be an EA employee said yesterday that a trailer for the new game <a href="https://www.reddit.com/r/Austin/comments/1xc0uzv/comment/19rgdyayriv9c/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button" target="_blank">had been produced</a> and suggested that it was not as early in the development process as was widely believed.</p><p>Not long after the trailer came to light, Jason Schreier of Bloomberg said on <a href="https://bsky.app/profile/jasonschreier.bsky.social/post/3myi6wo57ns2f" target="_blank">Bluesky</a> that it is indeed real, and that BioWare had been working on the game until its closure.</p><p>Whatever the case—and we're still working on verifying its provenance—the trailer is also just the right blend of sexy, violent, and corny: Even if this isn't a real trailer for what BioWare was working on (and at this point it seems pretty certain that it is), it's a Mass Effect we would definitely play.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="6a80669a-ce39-11f1-8181-59164892a8fa" 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="6a80669a-ce39-11f1-8181-59164892a8fa" 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've never seen a laptop cooler come with its own comic strip before, but it still hasn't convinced me this noisy beast is worth $50 ]]></title>
                                                                                                <dc:content><![CDATA[ <div  class="fancy-box"><div class="fancy_box-title">Budget Win or Recycle Bin?</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="MopksAbEqHgsjRp86WSqTg" name="budgetwinorrecyclebin" caption="" alt="The red and blue logo for Budget Win or Recycle Bin, with the PC Gamer logo in the top left" src="https://cdn.mos.cms.futurecdn.net/MopksAbEqHgsjRp86WSqTg-1920-80.jpg" 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"><em><strong>Andy Edser</strong></em><em> is a man with a mission. It's a mission he didn't sign up for, or even want, but I'm his boss so he has to do what I say. And I'm making him test a ton of different cheap tech I might find on Amazon, AliExpress, TikTok Shop, or down the back of my sofa. Out of nowhere it will appear on his doorstep with no warning, and he has no choice but to use whatever it is like his life depends on it. Because it does. </em></p></div></div><p>I find myself charmed (and perhaps a little perturbed) by the little black envelope included with this Klim Everest laptop cooling pad. Inside you get a set of shiny stickers, a warranty card, and, err.. a comic strip depicting the fictional process that begins when you order one.</p><p>"Your product was carefully retrieved from our inventory with sterilized anti-bacterial gloves and placed on a satin silk cushion," the first panel explains. "The party we organized to celebrate your order lasted three days."</p><p>Okay, that's something I've never seen before. And I'll be honest, the sarcastic comic endears me to the product more than it should. I could do without the last panel, though, which says: "If you feel like it, send us a photo of you (or your pet) and we'll send you a printable version of this comic strip with your photo on 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="V6EzDDicevtbN3qJbwAPpm" name="Klimcomic" alt="An image of the comic strip that comes included with the Klim Everest laptop cooler" src="https://cdn.mos.cms.futurecdn.net/V6EzDDicevtbN3qJbwAPpm-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/V6EzDDicevtbN3qJbwAPpm-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: Future)</span></figcaption></figure><p>A step too far, I feel. Anyway, the pad itself is a very sizable unit, designed to cool laptops from 14 to 17.3-inches in size and powered by a USB Type-A port. Atop its silver plastic frame sits a foam gasket, designed to create a seal between the bottom of your lappy and the outside air. Two 60 mm fans pull cool air from the rear of the pad and fire it at the bottom of your machine, into any awaiting vents.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/hncUbmpZMqjzSTAPJzN7s8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/SHG8DAx37x7VRoXBD6Q6s8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Ktm4sn34pRhSqDJ5PHUub8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/RzYeKWxuwHZUbmztnBCji8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/cw3PgZdUJjN6vDbWN7XMs8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/TECWsw5JvfzBCvWHkmZKu8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/SWNmpswLQvmKnKWAQ2Dks8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>The full MSRP of the Klim Everest is listed as $60, but it's <a href="https://www.amazon.com/KLIM-Everest-Cooling-Powerful-Overheating/dp/B0F7M1LKJ7/" target="_blank">currently down to $50 at Amazon</a>. There are cheaper options on the market, but this one is much more wallet-friendly than, say, <a href="https://www.amazon.com/Razer-Laptop-Cooling-Pad-Intelligent/dp/B0DJDWWHTV/" target="_blank">this Razer unit for a mahoosive $150</a>.</p><p>Speaking of which, I have an ageing Razer Blade 15 that likes to get toasty under full load. So, I booted up the Cyberpunk 2077 benchmark, ran it on repeat, and gathered my temperature readings—before placing the lappy atop the Everest (making sure not to block any vents) to see if it made much difference.</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-1792677909036-ng4e3cyml *, #fv-chart-1792677909036-ng4e3cyml *:before, #fv-chart-1792677909036-ng4e3cyml *:after, #fv-chart-1792677909036-ng4e3cyml-slideshow *, #fv-chart-1792677909036-ng4e3cyml-slideshow *:before, #fv-chart-1792677909036-ng4e3cyml-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792677909036-ng4e3cyml, #fv-chart-1792677909036-ng4e3cyml-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792677909036-ng4e3cyml { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792677909036-ng4e3cyml-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792677909036-ng4e3cyml-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792677909036-ng4e3cyml-slideshow .fv-nav-btn.disabled, #fv-chart-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792677909036-ng4e3cyml .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-row, #fv-chart-1792677909036-ng4e3cyml .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792677909036-ng4e3cyml .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792677909036-ng4e3cyml .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792677909036-ng4e3cyml .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792677909036-ng4e3cyml .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792677909036-ng4e3cyml.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792677909036-ng4e3cyml .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml.mobile-view .fv-pie-container, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-stacked-product, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-grouped-bar-product, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-row, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-stacked-product, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.mobile-view .fv-bar-label, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-grouped-product-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-label, #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.mobile-view .fv-bar-container, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-cluster, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-container, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.mobile-view .fv-x-axis-wrapper, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-x-axis-label-space, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-x-axis-chart-space, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-benchmark-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-dropdown-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-carousel-nav-btn, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-chart-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-chart-subhead, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-header, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select-wrapper, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-vs, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select-container, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-dials-grid, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-dial-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792677909036-ng4e3cyml .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-row, #fv-chart-1792677909036-ng4e3cyml .fv-stacked-product, #fv-chart-1792677909036-ng4e3cyml .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-label, #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-container, #fv-chart-1792677909036-ng4e3cyml .fv-bar-cluster { width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-label-space { display: none !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-stl-shop-all-logo, #fv-chart-1792677909036-ng4e3cyml .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dial-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792677909036-ng4e3cyml.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": "Klin Everest laptop cooling pad testing",  "description": "Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-22T14:05:09.036Z",  "citation": "The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error.",  "keywords": [    "Razer Blade 15 | No cooling pad",    "Razer Blade 15 | Cooling pad set to maximum",    "Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)",    "Temperatures",    "CPU stats",    "GPU stats",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | Cooling pad set to maximum – Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)",      "value": 51,      "unitText": "Avg FPS"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | No cooling pad – Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)",      "value": 51,      "unitText": "Avg FPS"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | Cooling pad set to maximum – Temperatures",      "value": 70,      "unitText": "Avg CPU (°C)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | No cooling pad – Temperatures",      "value": 70,      "unitText": "Avg CPU (°C)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | Cooling pad set to maximum – CPU stats",      "value": 2583,      "unitText": "Avg CPU freq. (MHz)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | No cooling pad – CPU stats",      "value": 2562,      "unitText": "Avg CPU freq. (MHz)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | Cooling pad set to maximum – GPU stats",      "value": 1163,      "unitText": "Avg GPU freq. (MHz)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | No cooling pad – GPU stats",      "value": 1192,      "unitText": "Avg GPU freq. (MHz)"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-22T14:05:09.036Z","state":{"data":[{"productName":"Razer Blade 15 | Cooling pad set to maximum","attribute":"Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)","value":51,"unit":"Avg FPS","multiValues":[{"value":51,"unit":"Avg FPS"},{"value":40,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | Cooling pad set to maximum","attribute":"Temperatures","value":70,"unit":"Avg CPU (°C)","multiValues":[{"value":70,"unit":"Avg CPU (°C)"},{"value":83,"unit":"Max CPU (°C)"},{"value":65,"unit":"Avg GPU (°C)"},{"value":73,"unit":"Max GPU (°C)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | Cooling pad set to maximum","attribute":"CPU stats","value":2583,"unit":"Avg CPU freq. (MHz)","multiValues":[{"value":2583,"unit":"Avg CPU freq. (MHz)"},{"value":3442,"unit":"Max CPU freq. (MHz)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | Cooling pad set to maximum","attribute":"GPU stats","value":1163,"unit":"Avg GPU freq. (MHz)","multiValues":[{"value":1163,"unit":"Avg GPU freq. (MHz)"},{"value":1775,"unit":"Max GPU freq. (MHz)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | No cooling pad","attribute":"Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)","value":51,"unit":"Avg FPS","multiValues":[{"value":51,"unit":"Avg FPS"},{"value":41,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | No cooling pad","attribute":"Temperatures","value":70,"unit":"Avg CPU (°C)","multiValues":[{"value":70,"unit":"Avg CPU (°C)"},{"value":85,"unit":"Max CPU (°C)"},{"value":66,"unit":"Avg GPU (°C)"},{"value":73,"unit":"Max GPU (°C)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | No cooling pad","attribute":"CPU stats","value":2562,"unit":"Avg CPU freq. (MHz)","multiValues":[{"value":2562,"unit":"Avg CPU freq. (MHz)"},{"value":3380,"unit":"Max CPU freq. (MHz)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | No cooling pad","attribute":"GPU stats","value":1192,"unit":"Avg GPU freq. (MHz)","multiValues":[{"value":1192,"unit":"Avg GPU freq. (MHz)"},{"value":1775,"unit":"Max GPU freq. (MHz)"}],"color":"","site":"PC Gamer"}],"products":["Razer Blade 15 | Cooling pad set to maximum","Razer Blade 15 | No cooling pad"],"attributes":["Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)","Temperatures","CPU stats","GPU stats"],"selectedProducts":["Razer Blade 15 | No cooling pad","Razer Blade 15 | Cooling pad set to maximum"],"selectedPrimaryProduct":null,"selectedAttributes":["Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)","Temperatures","CPU stats","GPU stats"],"productColors":[{"productName":"Razer Blade 15 | Cooling pad set to maximum","color":"#E33235"},{"productName":"Razer Blade 15 | No cooling pad","color":"#FE9F58"}],"initialProductColors":[{"productName":"Razer Blade 15 | Cooling pad set to maximum","color":"#E33235"},{"productName":"Razer Blade 15 | No cooling pad","color":"#FE9F58"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"Dropdown","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":"Klin Everest laptop cooling pad testing","subhead":"Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU","caption":"The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. ","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":false,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":true,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792677909036-ng4e3cyml" class="fv-chart-wrapper  labels-on-top " data-bar-labels-on-top="true" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Klin Everest laptop cooling pad testing</h3><p class="fv-chart-subhead">Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU</p><div class="fv-dropdown-wrapper"><div class="fv-dropdown-title-container"><select class="fv-dropdown-title"><option value="0">Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)</option><option value="1">Temperatures</option><option value="2">CPU stats</option><option value="3">GPU stats</option></select><div class="fv-dropdown-chevron"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg></div></div></div><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792677909036-ng4e3cyml-bar-Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)" data-chart-type="Bar" data-title="Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)" data-subhead="Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU" data-caption="The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. " style=""><div class="fv-benchmark-group"><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 ">Razer Blade 15 | No cooling pad</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: 85%; background-color: #E33235;" data-target-width="85" 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">51</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 68.33333333333333%; background-color: #FE9F58;" data-target-width="68.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">41</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | Cooling pad set to maximum</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: 85%; background-color: #E33235;" data-target-width="85" 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">51</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 66.66666666666666%; background-color: #FE9F58;" data-target-width="66.66666666666666" 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">40</span></div></div></div></div></div><table class="sr-only"><caption>Cyberpunk 2077 (1080p Ultra RT, DLSS Quality) Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Razer Blade 15 | No cooling pad</td><td>51 Avg FPS, 41 1% Low FPS</td></tr><tr><td>Razer Blade 15 | Cooling pad set to maximum</td><td>51 Avg FPS, 40 1% Low FPS</td></tr></tbody></table></div></div><div class="fv-chart-item" id="fv-chart-1792677909036-ng4e3cyml-bar-Temperatures" data-chart-type="Bar" data-title="Temperatures" data-subhead="Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU" data-caption="The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. " style="display: none;"><div class="fv-benchmark-group"><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 CPU (°C)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>Max CPU (°C)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #1CA9C4;"></div><span>Avg GPU (°C)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #EB6F71;"></div><span>Max GPU (°C)</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | No cooling pad</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: 70%; background-color: #E33235;" data-target-width="70" 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: 85%; background-color: #FE9F58;" data-target-width="85" 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 class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 66%; background-color: #1CA9C4;" data-target-width="66" 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">66</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 73%; background-color: #EB6F71;" data-target-width="73" 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">73</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | Cooling pad set to maximum</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: 70%; background-color: #E33235;" data-target-width="70" 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: 83%; background-color: #FE9F58;" data-target-width="83" 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">83</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 65%; background-color: #1CA9C4;" data-target-width="65" 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">65</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 73%; background-color: #EB6F71;" data-target-width="73" 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">73</span></div></div></div></div></div><table class="sr-only"><caption>Temperatures Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Razer Blade 15 | No cooling pad</td><td>70 Avg CPU (°C), 85 Max CPU (°C), 66 Avg GPU (°C), 73 Max GPU (°C)</td></tr><tr><td>Razer Blade 15 | Cooling pad set to maximum</td><td>70 Avg CPU (°C), 83 Max CPU (°C), 65 Avg GPU (°C), 73 Max GPU (°C)</td></tr></tbody></table></div></div><div class="fv-chart-item" id="fv-chart-1792677909036-ng4e3cyml-bar-CPU stats" data-chart-type="Bar" data-title="CPU stats" data-subhead="Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU" data-caption="The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. " style="display: none;"><div class="fv-benchmark-group"><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 CPU freq. (MHz)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>Max CPU freq. (MHz)</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | No cooling pad</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.05%; background-color: #E33235;" data-target-width="64.05" 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">2562</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 84.5%; background-color: #FE9F58;" data-target-width="84.5" 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">3380</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | Cooling pad set to maximum</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.575%; background-color: #E33235;" data-target-width="64.575" 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">2583</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 86.05000000000001%; background-color: #FE9F58;" data-target-width="86.05000000000001" 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">3442</span></div></div></div></div></div><table class="sr-only"><caption>CPU stats Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Razer Blade 15 | No cooling pad</td><td>2562 Avg CPU freq. (MHz), 3380 Max CPU freq. (MHz)</td></tr><tr><td>Razer Blade 15 | Cooling pad set to maximum</td><td>2583 Avg CPU freq. (MHz), 3442 Max CPU freq. (MHz)</td></tr></tbody></table></div></div><div class="fv-chart-item" id="fv-chart-1792677909036-ng4e3cyml-bar-GPU stats" data-chart-type="Bar" data-title="GPU stats" data-subhead="Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU" data-caption="The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. " style="display: none;"><div class="fv-benchmark-group"><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 GPU freq. (MHz)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>Max GPU freq. (MHz)</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | No cooling pad</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: 59.599999999999994%; background-color: #E33235;" data-target-width="59.599999999999994" 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">1192</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 88.75%; background-color: #FE9F58;" data-target-width="88.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">1775</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | Cooling pad set to maximum</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: 58.15%; background-color: #E33235;" data-target-width="58.15" 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">1163</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 88.75%; background-color: #FE9F58;" data-target-width="88.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">1775</span></div></div></div></div></div><table class="sr-only"><caption>GPU stats Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Razer Blade 15 | No cooling pad</td><td>1192 Avg GPU freq. (MHz), 1775 Max GPU freq. (MHz)</td></tr><tr><td>Razer Blade 15 | Cooling pad set to maximum</td><td>1163 Avg GPU freq. (MHz), 1775 Max GPU freq. (MHz)</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 Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. </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-1792677909036-ng4e3cyml', false); });      } else {        initialize('fv-chart-1792677909036-ng4e3cyml', false);      }    })();      </script></div><p>In terms of noise? Yes, very much so. The Everest makes an irritating whirring sound whenever it moves a meaningful amount of air, and the extra cooling doesn't convince the Blade 15's fans to shut up under heavy load, either. The two combine together to create quite the racket, particularly at higher settings.</p><p>And in terms of temps? The Blade 15's RTX 3080 mobile still jumps to the same thermal peak, even with the cooler set to maximum, although I did record a single degree difference in the average GPU temps. However, the clockspeed and performance figures remain well within margins of error. In fact, the average GPU frequency is slightly higher <em>without </em>the pad, as are the 1% lows. Excellent.</p><div><blockquote><p>The bargain-basement screen is rubbish, as is the RGB lighting—and quite a few user reviews note reliability issues</p></blockquote></div><p>That being said, it did manage to drop the peak CPU temperature by a whole two degrees, which seems to have resulted in ever-so-slightly higher clockspeeds. Not that it made any difference to actual gaming performance, but hey. A tiny win's still a win.</p><iframe src="https://content.jwplatform.com/players/cJ4iLz4S.html" id="cJ4iLz4S" title="Klin Everest laptop cooling pad.mp4" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>What my editor has sent me, then, is a large and noisy plinth to rest my laptop on—and little else. The Everest would likely make more of a difference when used with badly overheating machines, perhaps within hotter ambient temperatures, but it certainly hasn't made any major improvements to my gaming laptop on a sunny October day.</p><p>I think a simple laptop stand, enough to raise your machine off a desk to free up airflow beneath the bottom vents, would be a more cost-effective buy. I've found <a href="https://www.amazon.com/Nulaxy-Ergonomic-Aluminum-Detachable-Compatible/dp/B07P54RSPY/" target="_blank">a decent-looking one for $18</a>. It doesn't come with a comic, though. Shame.</p><p>So, is the Klim Everest a "Recycle Bin" candidate? Well, it's loud, largely ineffectual, still pricier than you might expect, and quite the desk dominator. Oh, and the bargain-basement screen is rubbish, as is the RGB lighting—and quite a few user reviews note reliability issues.</p><p>Ah, screw it. Put it in the bin and be done with it.</p><a class="card card--standard card--rows-2 card--align-center" href="https://www.amazon.co.uk/dp/B0F7M1LKJ7"><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/HEthissa7tE8xcv2zzT6p7.jpg" alt="A Klim Everest laptop cooling pad"></p></div><div class="card__content"><h3 class="card__title">What I got...</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>Klim Everest laptop cooling pad</strong><br>Large, noisy, and if you ask me, still overpriced. It did manage to drop my laptop's CPU temps by a very small amount, but I still don't think this is worth $50.</p></div></div></div></a><a class="card card--standard card--rows-2 card--align-center" href="https://www.amazon.com/Nulaxy-Ergonomic-Aluminum-Detachable-Compatible/dp/B07P54RSPY/"><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/oukas3kZL5UwK3Wdh9id2U.jpg" alt="A Nulaxy Full Aluminium Laptop Stand"></p></div><div class="card__content"><h3 class="card__title">What I&#39;d recommend...</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>Any bottomless laptop stand</strong><br>This one's a mere $18, and looks perfectly acceptable. Anything that raises your laptop vents off your desk is likely to help with cooling—and at this price, I'd say it's worth a go.</p></div></div></div></a> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/cooling/ive-never-seen-a-laptop-cooler-come-with-its-own-comic-strip-before-but-it-still-hasnt-convinced-me-this-noisy-beast-is-worth-usd50/</link>
                                                                            <description>
                            <![CDATA[ Not so cool. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5La6MGJ6dNSpphLtMmjXeX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/T5L8p43bCdF5hCrk2eQbcH-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 16:37:07 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 16:40:37 +0000</updated>
                                                                                                                                            <category><![CDATA[Cooling]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ Andy Edser ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-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/T5L8p43bCdF5hCrk2eQbcH-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A Klim Everest laptop cooler with a comic strip on top of it]]></media:description>                                                            <media:text><![CDATA[A Klim Everest laptop cooler with a comic strip on top of it]]></media:text>
                                <media:title type="plain"><![CDATA[A Klim Everest laptop cooler with a comic strip on top of it]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/T5L8p43bCdF5hCrk2eQbcH-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div  class="fancy-box"><div class="fancy_box-title">Budget Win or Recycle Bin?</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="MopksAbEqHgsjRp86WSqTg" name="budgetwinorrecyclebin" caption="" alt="The red and blue logo for Budget Win or Recycle Bin, with the PC Gamer logo in the top left" src="https://cdn.mos.cms.futurecdn.net/MopksAbEqHgsjRp86WSqTg-1920-80.jpg" 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"><em><strong>Andy Edser</strong></em><em> is a man with a mission. It's a mission he didn't sign up for, or even want, but I'm his boss so he has to do what I say. And I'm making him test a ton of different cheap tech I might find on Amazon, AliExpress, TikTok Shop, or down the back of my sofa. Out of nowhere it will appear on his doorstep with no warning, and he has no choice but to use whatever it is like his life depends on it. Because it does. </em></p></div></div><p>I find myself charmed (and perhaps a little perturbed) by the little black envelope included with this Klim Everest laptop cooling pad. Inside you get a set of shiny stickers, a warranty card, and, err.. a comic strip depicting the fictional process that begins when you order one.</p><p>"Your product was carefully retrieved from our inventory with sterilized anti-bacterial gloves and placed on a satin silk cushion," the first panel explains. "The party we organized to celebrate your order lasted three days."</p><p>Okay, that's something I've never seen before. And I'll be honest, the sarcastic comic endears me to the product more than it should. I could do without the last panel, though, which says: "If you feel like it, send us a photo of you (or your pet) and we'll send you a printable version of this comic strip with your photo on 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="V6EzDDicevtbN3qJbwAPpm" name="Klimcomic" alt="An image of the comic strip that comes included with the Klim Everest laptop cooler" src="https://cdn.mos.cms.futurecdn.net/V6EzDDicevtbN3qJbwAPpm-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/V6EzDDicevtbN3qJbwAPpm-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: Future)</span></figcaption></figure><p>A step too far, I feel. Anyway, the pad itself is a very sizable unit, designed to cool laptops from 14 to 17.3-inches in size and powered by a USB Type-A port. Atop its silver plastic frame sits a foam gasket, designed to create a seal between the bottom of your lappy and the outside air. Two 60 mm fans pull cool air from the rear of the pad and fire it at the bottom of your machine, into any awaiting vents.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/hncUbmpZMqjzSTAPJzN7s8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/SHG8DAx37x7VRoXBD6Q6s8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Ktm4sn34pRhSqDJ5PHUub8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/RzYeKWxuwHZUbmztnBCji8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/cw3PgZdUJjN6vDbWN7XMs8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/TECWsw5JvfzBCvWHkmZKu8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/SWNmpswLQvmKnKWAQ2Dks8-1920-80.jpg" alt="Assorted images of the Klim Everest laptop cooler, and everything included inside the box" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>The full MSRP of the Klim Everest is listed as $60, but it's <a href="https://www.amazon.com/KLIM-Everest-Cooling-Powerful-Overheating/dp/B0F7M1LKJ7/" target="_blank">currently down to $50 at Amazon</a>. There are cheaper options on the market, but this one is much more wallet-friendly than, say, <a href="https://www.amazon.com/Razer-Laptop-Cooling-Pad-Intelligent/dp/B0DJDWWHTV/" target="_blank">this Razer unit for a mahoosive $150</a>.</p><p>Speaking of which, I have an ageing Razer Blade 15 that likes to get toasty under full load. So, I booted up the Cyberpunk 2077 benchmark, ran it on repeat, and gathered my temperature readings—before placing the lappy atop the Everest (making sure not to block any vents) to see if it made much difference.</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-1792677909036-ng4e3cyml *, #fv-chart-1792677909036-ng4e3cyml *:before, #fv-chart-1792677909036-ng4e3cyml *:after, #fv-chart-1792677909036-ng4e3cyml-slideshow *, #fv-chart-1792677909036-ng4e3cyml-slideshow *:before, #fv-chart-1792677909036-ng4e3cyml-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792677909036-ng4e3cyml, #fv-chart-1792677909036-ng4e3cyml-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792677909036-ng4e3cyml { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792677909036-ng4e3cyml-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792677909036-ng4e3cyml-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792677909036-ng4e3cyml-slideshow .fv-nav-btn.disabled, #fv-chart-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml-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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792677909036-ng4e3cyml .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-row, #fv-chart-1792677909036-ng4e3cyml .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792677909036-ng4e3cyml .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792677909036-ng4e3cyml .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792677909036-ng4e3cyml .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792677909036-ng4e3cyml .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792677909036-ng4e3cyml.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792677909036-ng4e3cyml .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml.mobile-view .fv-pie-container, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-stacked-product, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-grouped-bar-product, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-row, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-stacked-product, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.mobile-view .fv-bar-label, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-grouped-product-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-label, #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.mobile-view .fv-bar-container, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-cluster, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-container, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.mobile-view .fv-x-axis-wrapper, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-x-axis-label-space, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-x-axis-chart-space, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-benchmark-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-dropdown-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-carousel-nav-btn, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-chart-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-chart-subhead, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-header, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select-wrapper, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-vs, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select-container, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-versus-select, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792677909036-ng4e3cyml.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-1792677909036-ng4e3cyml.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-dials-grid, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-dial-title, #fv-chart-1792677909036-ng4e3cyml.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792677909036-ng4e3cyml.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792677909036-ng4e3cyml .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-row, #fv-chart-1792677909036-ng4e3cyml .fv-stacked-product, #fv-chart-1792677909036-ng4e3cyml .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-label, #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-bar-container, #fv-chart-1792677909036-ng4e3cyml .fv-bar-cluster { width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792677909036-ng4e3cyml .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-label-space { display: none !important; } #fv-chart-1792677909036-ng4e3cyml .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .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-1792677909036-ng4e3cyml .fv-stl-shop-all-logo, #fv-chart-1792677909036-ng4e3cyml .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792677909036-ng4e3cyml .fv-dial-title { font-size: 16px !important; } #fv-chart-1792677909036-ng4e3cyml .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792677909036-ng4e3cyml.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": "Klin Everest laptop cooling pad testing",  "description": "Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-22T14:05:09.036Z",  "citation": "The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error.",  "keywords": [    "Razer Blade 15 | No cooling pad",    "Razer Blade 15 | Cooling pad set to maximum",    "Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)",    "Temperatures",    "CPU stats",    "GPU stats",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | Cooling pad set to maximum – Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)",      "value": 51,      "unitText": "Avg FPS"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | No cooling pad – Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)",      "value": 51,      "unitText": "Avg FPS"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | Cooling pad set to maximum – Temperatures",      "value": 70,      "unitText": "Avg CPU (°C)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | No cooling pad – Temperatures",      "value": 70,      "unitText": "Avg CPU (°C)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | Cooling pad set to maximum – CPU stats",      "value": 2583,      "unitText": "Avg CPU freq. (MHz)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | No cooling pad – CPU stats",      "value": 2562,      "unitText": "Avg CPU freq. (MHz)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | Cooling pad set to maximum – GPU stats",      "value": 1163,      "unitText": "Avg GPU freq. (MHz)"    },    {      "@type": "PropertyValue",      "name": "Razer Blade 15 | No cooling pad – GPU stats",      "value": 1192,      "unitText": "Avg GPU freq. (MHz)"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-22T14:05:09.036Z","state":{"data":[{"productName":"Razer Blade 15 | Cooling pad set to maximum","attribute":"Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)","value":51,"unit":"Avg FPS","multiValues":[{"value":51,"unit":"Avg FPS"},{"value":40,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | Cooling pad set to maximum","attribute":"Temperatures","value":70,"unit":"Avg CPU (°C)","multiValues":[{"value":70,"unit":"Avg CPU (°C)"},{"value":83,"unit":"Max CPU (°C)"},{"value":65,"unit":"Avg GPU (°C)"},{"value":73,"unit":"Max GPU (°C)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | Cooling pad set to maximum","attribute":"CPU stats","value":2583,"unit":"Avg CPU freq. (MHz)","multiValues":[{"value":2583,"unit":"Avg CPU freq. (MHz)"},{"value":3442,"unit":"Max CPU freq. (MHz)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | Cooling pad set to maximum","attribute":"GPU stats","value":1163,"unit":"Avg GPU freq. (MHz)","multiValues":[{"value":1163,"unit":"Avg GPU freq. (MHz)"},{"value":1775,"unit":"Max GPU freq. (MHz)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | No cooling pad","attribute":"Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)","value":51,"unit":"Avg FPS","multiValues":[{"value":51,"unit":"Avg FPS"},{"value":41,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | No cooling pad","attribute":"Temperatures","value":70,"unit":"Avg CPU (°C)","multiValues":[{"value":70,"unit":"Avg CPU (°C)"},{"value":85,"unit":"Max CPU (°C)"},{"value":66,"unit":"Avg GPU (°C)"},{"value":73,"unit":"Max GPU (°C)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | No cooling pad","attribute":"CPU stats","value":2562,"unit":"Avg CPU freq. (MHz)","multiValues":[{"value":2562,"unit":"Avg CPU freq. (MHz)"},{"value":3380,"unit":"Max CPU freq. (MHz)"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 15 | No cooling pad","attribute":"GPU stats","value":1192,"unit":"Avg GPU freq. (MHz)","multiValues":[{"value":1192,"unit":"Avg GPU freq. (MHz)"},{"value":1775,"unit":"Max GPU freq. (MHz)"}],"color":"","site":"PC Gamer"}],"products":["Razer Blade 15 | Cooling pad set to maximum","Razer Blade 15 | No cooling pad"],"attributes":["Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)","Temperatures","CPU stats","GPU stats"],"selectedProducts":["Razer Blade 15 | No cooling pad","Razer Blade 15 | Cooling pad set to maximum"],"selectedPrimaryProduct":null,"selectedAttributes":["Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)","Temperatures","CPU stats","GPU stats"],"productColors":[{"productName":"Razer Blade 15 | Cooling pad set to maximum","color":"#E33235"},{"productName":"Razer Blade 15 | No cooling pad","color":"#FE9F58"}],"initialProductColors":[{"productName":"Razer Blade 15 | Cooling pad set to maximum","color":"#E33235"},{"productName":"Razer Blade 15 | No cooling pad","color":"#FE9F58"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","roundupViewType":"bars","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"Dropdown","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":"Klin Everest laptop cooling pad testing","subhead":"Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU","caption":"The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. ","productNameOverrides":{},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":false,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":true,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[]}</script><div id="fv-chart-1792677909036-ng4e3cyml" class="fv-chart-wrapper  labels-on-top " data-bar-labels-on-top="true" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Klin Everest laptop cooling pad testing</h3><p class="fv-chart-subhead">Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU</p><div class="fv-dropdown-wrapper"><div class="fv-dropdown-title-container"><select class="fv-dropdown-title"><option value="0">Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)</option><option value="1">Temperatures</option><option value="2">CPU stats</option><option value="3">GPU stats</option></select><div class="fv-dropdown-chevron"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg></div></div></div><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792677909036-ng4e3cyml-bar-Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)" data-chart-type="Bar" data-title="Cyberpunk 2077 (1080p Ultra RT, DLSS Quality)" data-subhead="Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU" data-caption="The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. " style=""><div class="fv-benchmark-group"><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 ">Razer Blade 15 | No cooling pad</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: 85%; background-color: #E33235;" data-target-width="85" 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">51</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 68.33333333333333%; background-color: #FE9F58;" data-target-width="68.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">41</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | Cooling pad set to maximum</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: 85%; background-color: #E33235;" data-target-width="85" 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">51</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 66.66666666666666%; background-color: #FE9F58;" data-target-width="66.66666666666666" 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">40</span></div></div></div></div></div><table class="sr-only"><caption>Cyberpunk 2077 (1080p Ultra RT, DLSS Quality) Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Razer Blade 15 | No cooling pad</td><td>51 Avg FPS, 41 1% Low FPS</td></tr><tr><td>Razer Blade 15 | Cooling pad set to maximum</td><td>51 Avg FPS, 40 1% Low FPS</td></tr></tbody></table></div></div><div class="fv-chart-item" id="fv-chart-1792677909036-ng4e3cyml-bar-Temperatures" data-chart-type="Bar" data-title="Temperatures" data-subhead="Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU" data-caption="The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. " style="display: none;"><div class="fv-benchmark-group"><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 CPU (°C)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>Max CPU (°C)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #1CA9C4;"></div><span>Avg GPU (°C)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #EB6F71;"></div><span>Max GPU (°C)</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | No cooling pad</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: 70%; background-color: #E33235;" data-target-width="70" 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: 85%; background-color: #FE9F58;" data-target-width="85" 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 class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 66%; background-color: #1CA9C4;" data-target-width="66" 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">66</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 73%; background-color: #EB6F71;" data-target-width="73" 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">73</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | Cooling pad set to maximum</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: 70%; background-color: #E33235;" data-target-width="70" 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: 83%; background-color: #FE9F58;" data-target-width="83" 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">83</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 65%; background-color: #1CA9C4;" data-target-width="65" 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">65</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 73%; background-color: #EB6F71;" data-target-width="73" 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">73</span></div></div></div></div></div><table class="sr-only"><caption>Temperatures Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Razer Blade 15 | No cooling pad</td><td>70 Avg CPU (°C), 85 Max CPU (°C), 66 Avg GPU (°C), 73 Max GPU (°C)</td></tr><tr><td>Razer Blade 15 | Cooling pad set to maximum</td><td>70 Avg CPU (°C), 83 Max CPU (°C), 65 Avg GPU (°C), 73 Max GPU (°C)</td></tr></tbody></table></div></div><div class="fv-chart-item" id="fv-chart-1792677909036-ng4e3cyml-bar-CPU stats" data-chart-type="Bar" data-title="CPU stats" data-subhead="Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU" data-caption="The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. " style="display: none;"><div class="fv-benchmark-group"><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 CPU freq. (MHz)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>Max CPU freq. (MHz)</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | No cooling pad</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.05%; background-color: #E33235;" data-target-width="64.05" 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">2562</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 84.5%; background-color: #FE9F58;" data-target-width="84.5" 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">3380</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | Cooling pad set to maximum</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.575%; background-color: #E33235;" data-target-width="64.575" 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">2583</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 86.05000000000001%; background-color: #FE9F58;" data-target-width="86.05000000000001" 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">3442</span></div></div></div></div></div><table class="sr-only"><caption>CPU stats Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Razer Blade 15 | No cooling pad</td><td>2562 Avg CPU freq. (MHz), 3380 Max CPU freq. (MHz)</td></tr><tr><td>Razer Blade 15 | Cooling pad set to maximum</td><td>2583 Avg CPU freq. (MHz), 3442 Max CPU freq. (MHz)</td></tr></tbody></table></div></div><div class="fv-chart-item" id="fv-chart-1792677909036-ng4e3cyml-bar-GPU stats" data-chart-type="Bar" data-title="GPU stats" data-subhead="Results recorded on a Razer Blade 15 (2020) gaming laptop with an Intel Core i7 10875H and an RTX 3080 mobile GPU" data-caption="The Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. " style="display: none;"><div class="fv-benchmark-group"><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 GPU freq. (MHz)</span></div><div class="fv-multi-legend-item"><div class="fv-multi-legend-swatch" style="background-color: #FE9F58;"></div><span>Max GPU freq. (MHz)</span></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | No cooling pad</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: 59.599999999999994%; background-color: #E33235;" data-target-width="59.599999999999994" 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">1192</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 88.75%; background-color: #FE9F58;" data-target-width="88.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">1775</span></div></div></div></div></div><div class="fv-bar-row"><div class="fv-bar-label ">Razer Blade 15 | Cooling pad set to maximum</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: 58.15%; background-color: #E33235;" data-target-width="58.15" 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">1163</span></div></div></div><div class="fv-multi-bar-item"><div class="fv-bar" style="margin-left: 0%; width: 88.75%; background-color: #FE9F58;" data-target-width="88.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">1775</span></div></div></div></div></div><table class="sr-only"><caption>GPU stats Data</caption><thead><tr><th>Product</th><th>Value</th></tr></thead><tbody><tr><td>Razer Blade 15 | No cooling pad</td><td>1192 Avg GPU freq. (MHz), 1775 Max GPU freq. (MHz)</td></tr><tr><td>Razer Blade 15 | Cooling pad set to maximum</td><td>1163 Avg GPU freq. (MHz), 1775 Max GPU freq. (MHz)</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 Klin Everest does manage to lower the peak CPU temperature of the Blade 15 by two degrees, resulting in ever-so-slightly higher clockspeeds. However, gaming performance and GPU stats remain well within margins of error. </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-1792677909036-ng4e3cyml', false); });      } else {        initialize('fv-chart-1792677909036-ng4e3cyml', false);      }    })();      </script></div><p>In terms of noise? Yes, very much so. The Everest makes an irritating whirring sound whenever it moves a meaningful amount of air, and the extra cooling doesn't convince the Blade 15's fans to shut up under heavy load, either. The two combine together to create quite the racket, particularly at higher settings.</p><p>And in terms of temps? The Blade 15's RTX 3080 mobile still jumps to the same thermal peak, even with the cooler set to maximum, although I did record a single degree difference in the average GPU temps. However, the clockspeed and performance figures remain well within margins of error. In fact, the average GPU frequency is slightly higher <em>without </em>the pad, as are the 1% lows. Excellent.</p><div><blockquote><p>The bargain-basement screen is rubbish, as is the RGB lighting—and quite a few user reviews note reliability issues</p></blockquote></div><p>That being said, it did manage to drop the peak CPU temperature by a whole two degrees, which seems to have resulted in ever-so-slightly higher clockspeeds. Not that it made any difference to actual gaming performance, but hey. A tiny win's still a win.</p><iframe src="https://content.jwplatform.com/players/cJ4iLz4S.html" id="cJ4iLz4S" title="Klin Everest laptop cooling pad.mp4" width="1920" height="1080" frameborder="0" scrolling="auto" allowfullscreen></iframe><p>What my editor has sent me, then, is a large and noisy plinth to rest my laptop on—and little else. The Everest would likely make more of a difference when used with badly overheating machines, perhaps within hotter ambient temperatures, but it certainly hasn't made any major improvements to my gaming laptop on a sunny October day.</p><p>I think a simple laptop stand, enough to raise your machine off a desk to free up airflow beneath the bottom vents, would be a more cost-effective buy. I've found <a href="https://www.amazon.com/Nulaxy-Ergonomic-Aluminum-Detachable-Compatible/dp/B07P54RSPY/" target="_blank">a decent-looking one for $18</a>. It doesn't come with a comic, though. Shame.</p><p>So, is the Klim Everest a "Recycle Bin" candidate? Well, it's loud, largely ineffectual, still pricier than you might expect, and quite the desk dominator. Oh, and the bargain-basement screen is rubbish, as is the RGB lighting—and quite a few user reviews note reliability issues.</p><p>Ah, screw it. Put it in the bin and be done with it.</p><a class="card card--standard card--rows-2 card--align-center" href="https://www.amazon.co.uk/dp/B0F7M1LKJ7"><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/HEthissa7tE8xcv2zzT6p7.jpg" alt="A Klim Everest laptop cooling pad"></p></div><div class="card__content"><h3 class="card__title">What I got...</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>Klim Everest laptop cooling pad</strong><br>Large, noisy, and if you ask me, still overpriced. It did manage to drop my laptop's CPU temps by a very small amount, but I still don't think this is worth $50.</p></div></div></div></a><a class="card card--standard card--rows-2 card--align-center" href="https://www.amazon.com/Nulaxy-Ergonomic-Aluminum-Detachable-Compatible/dp/B07P54RSPY/"><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/oukas3kZL5UwK3Wdh9id2U.jpg" alt="A Nulaxy Full Aluminium Laptop Stand"></p></div><div class="card__content"><h3 class="card__title">What I&#39;d recommend...</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>Any bottomless laptop stand</strong><br>This one's a mere $18, and looks perfectly acceptable. Anything that raises your laptop vents off your desk is likely to help with cooling—and at this price, I'd say it's worth a go.</p></div></div></div></a>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'We probably sold millions of boards because of that game, and it was magnificent': 3dfx cofounder gives Quake a 'great deal of credit for our overall success' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you care about retro PC gaming hardware, there's a good chance you've heard of the now-defunct 3dfx. And if you know 3dfx, there's an even better chance you've heard of the 3dfx Voodoo graphics card. Well, according to one of its founders, its success is owed at least in part to the legendary shooter Quake. </p><p>Ross Smith recently spoke to our friends at <a href="https://www.club386.com/3dfx-voodoo-history-ross-smith-interview" target="_blank">Club386</a> in celebration of the first 3dfx Voodoo turning 30 years old, and he talks about the 'Quake effect'. </p><p>Effectively, though Quake launched in June 1996, it didn't get GLQuake, which allowed for 3D hardware acceleration, until the start of 1997. John Carmack reportedly reached out to 3dfx, which then worked on an API called MiniGL that could run the game. In its implementation, 3dfx cards could then run the game at a better resolution in greater detail with a wider range of colours. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>Smith says, "I would certainly give id, John, and Quake a great deal of credit for our overall success—we probably sold millions of boards because of that game, and it was magnificent. That’s the last game I’ve gone all the way to the end on, and I was exhausted after doing that. It was well crafted, beautiful, dark."</p><p>It makes sense why developers would want to work with the likes of 3dfx because better compatibility makes their games look better. And a developer is more likely to sell a game if it can wow an audience. </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:4983px;"><p class="vanilla-image-block" style="padding-top:66.59%;"><img id="nRu3QczRKLYEtDPut6ra5B" name="Voodoo (image credit - Fritzchens Fritz).jpg" alt="GPU" src="https://cdn.mos.cms.futurecdn.net/nRu3QczRKLYEtDPut6ra5B-1920-80.jpg" mos="" align="middle" fullscreen="" width="4983" height="3318" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Fritzchens Fritz)</span></figcaption></figure><p>This symbiotic relationship was key to 3dfx development at the start. 3dfx reportedly reached out to developers to show games pre-rendered on 3dfx Voodoo cards, and "they loved it".</p><p>Smith argues this relationship to developers was quite unique at the time. "Most other companies, like S3 or others, saw game developers kind of as a necessary evil, not as the lifeblood of a company that’s focused on gaming. So we flipped the whole thing around.” </p><p>This is a relationship that might seem familiar nowadays, with the likes of Nvidia, Intel, and AMD working directly with developers to improve software. Nvidia and 3dfx <a href="https://www.gamedeveloper.com/game-platforms/nvidia-sues-3dfx" target="_blank">famously took each other to court</a> for various patent infringement complaints in the late '90s and early '00s, and Nvidia acquired many of 3dfx's assets after it filed for bankruptcy in the early 2000s. So in a way, we have 3dfx to thank for parts of Nvidia's successes in the following years, too. </p><p>And 3dfx was unique in a few ways. The Voodoo cards had great 3D acceleration because it was designed specifically for 3D acceleration as a co-processor alongside a 2D card, letting the CPU do other background work at the same time. </p><p>It was just one of many steps towards hardware that was specifically designed for gaming rigs. "We did something revolutionary there," says Smith, "we didn’t have a VGA. That was partly down to our lack of design experience, and partly down to my concern about profitability and compatibility. Being compatible with a million apps is really hard—being compatible with 200 games is much easier.” </p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/graphics-cards/we-probably-sold-millions-of-boards-because-of-that-game-and-it-was-magnificent-3dfx-cofounder-gives-quake-a-great-deal-of-credit-for-our-overall-success/</link>
                                                                            <description>
                            <![CDATA[ It's now been 30 years since the first Voodoo card. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5nwns7d9tMSh4kRFtuBkqP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/iutJs2kQqPcNw7YGLCLxj9-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 16:34:54 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Graphics Cards]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ James Bentley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.&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/iutJs2kQqPcNw7YGLCLxj9-1920-80.jpg">
                                                            <media:credit><![CDATA[id Software]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Quake]]></media:description>                                                            <media:text><![CDATA[Quake]]></media:text>
                                <media:title type="plain"><![CDATA[Quake]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/iutJs2kQqPcNw7YGLCLxj9-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you care about retro PC gaming hardware, there's a good chance you've heard of the now-defunct 3dfx. And if you know 3dfx, there's an even better chance you've heard of the 3dfx Voodoo graphics card. Well, according to one of its founders, its success is owed at least in part to the legendary shooter Quake. </p><p>Ross Smith recently spoke to our friends at <a href="https://www.club386.com/3dfx-voodoo-history-ross-smith-interview" target="_blank">Club386</a> in celebration of the first 3dfx Voodoo turning 30 years old, and he talks about the 'Quake effect'. </p><p>Effectively, though Quake launched in June 1996, it didn't get GLQuake, which allowed for 3D hardware acceleration, until the start of 1997. John Carmack reportedly reached out to 3dfx, which then worked on an API called MiniGL that could run the game. In its implementation, 3dfx cards could then run the game at a better resolution in greater detail with a wider range of colours. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>Smith says, "I would certainly give id, John, and Quake a great deal of credit for our overall success—we probably sold millions of boards because of that game, and it was magnificent. That’s the last game I’ve gone all the way to the end on, and I was exhausted after doing that. It was well crafted, beautiful, dark."</p><p>It makes sense why developers would want to work with the likes of 3dfx because better compatibility makes their games look better. And a developer is more likely to sell a game if it can wow an audience. </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:4983px;"><p class="vanilla-image-block" style="padding-top:66.59%;"><img id="nRu3QczRKLYEtDPut6ra5B" name="Voodoo (image credit - Fritzchens Fritz).jpg" alt="GPU" src="https://cdn.mos.cms.futurecdn.net/nRu3QczRKLYEtDPut6ra5B-1920-80.jpg" mos="" align="middle" fullscreen="" width="4983" height="3318" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Fritzchens Fritz)</span></figcaption></figure><p>This symbiotic relationship was key to 3dfx development at the start. 3dfx reportedly reached out to developers to show games pre-rendered on 3dfx Voodoo cards, and "they loved it".</p><p>Smith argues this relationship to developers was quite unique at the time. "Most other companies, like S3 or others, saw game developers kind of as a necessary evil, not as the lifeblood of a company that’s focused on gaming. So we flipped the whole thing around.” </p><p>This is a relationship that might seem familiar nowadays, with the likes of Nvidia, Intel, and AMD working directly with developers to improve software. Nvidia and 3dfx <a href="https://www.gamedeveloper.com/game-platforms/nvidia-sues-3dfx" target="_blank">famously took each other to court</a> for various patent infringement complaints in the late '90s and early '00s, and Nvidia acquired many of 3dfx's assets after it filed for bankruptcy in the early 2000s. So in a way, we have 3dfx to thank for parts of Nvidia's successes in the following years, too. </p><p>And 3dfx was unique in a few ways. The Voodoo cards had great 3D acceleration because it was designed specifically for 3D acceleration as a co-processor alongside a 2D card, letting the CPU do other background work at the same time. </p><p>It was just one of many steps towards hardware that was specifically designed for gaming rigs. "We did something revolutionary there," says Smith, "we didn’t have a VGA. That was partly down to our lack of design experience, and partly down to my concern about profitability and compatibility. Being compatible with a million apps is really hard—being compatible with 200 games is much easier.” </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Ex-BioWare boss and Mass Effect director Casey Hudson says he'll 'forever be grateful' for his time at the studio: 'Its legacy will live on' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Yesterday, <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">EA announced that it's closing BioWare</a>, the studio behind beloved RPG franchises like the original Baldur's Gate games, Star Wars: Knights of the Old Republic, Mass Effect, and Dragon Age. Alongside BioWare's closure—and the cancelling of its next Mass Effect project—EA is <a href="https://www.bloomberg.com/news/articles/2026-10-21/electronic-arts-to-cut-400-jobs-shut-down-bioware" target="_blank">reportedly laying off around 400 people</a> in an effort to "align talent and investment" in the wake of its <a href="https://www.pcgamer.com/gaming-industry/the-deal-is-done-electronic-arts-is-now-officially-owned-by-saudi-arabia/" target="_blank">record-breaking private equity buyout</a>.</p><p>While recent years have brought no shortage of high profile studio closings and game cancellations, the news of BioWare's shuttering has prompted an outpouring of sympathies and frustrations from the fans, fellow developers, and former studio staff. Among those mourners is former BioWare game director and ex-general manager Casey Hudson, who <a href="https://x.com/CaseyDHudson/status/2113012091519164839?s=20" target="_blank">reacted to the news on X</a> to say that BioWare's influence will continue even if the studio itself doesn't.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113012091519164839"><p lang="en" dir="ltr">This is sad news on multiple fronts - for those of us who worked there, for our friends and colleagues at BioWare who are impacted, and for fans who were looking forward to the next Mass Effect adventure. I started my career at BioWare and will forever be grateful to the founders, Greg and Ray, for inviting me to join in BioWare's legendary journey. Its legacy will live on through those who were part of it and continue to create games through a passion for unforgettable stories, worlds and characters.<a href="https://twitter.com/cantworkitout/status/2113012091519164839">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"This is sad news on multiple fronts—for those of us who worked there, for our friends and colleagues at BioWare who are impacted, and for fans who were looking forward to the next Mass Effect adventure," Hudson said. "I started my career at BioWare and will forever be grateful to the founders, Greg and Ray, for inviting me to join in BioWare's legendary journey. Its legacy will live on through those who were part of it and continue to create games through a passion for unforgettable stories, worlds, and characters."</p><p>During his tenure at the studio, Hudson had a major influence on some of BioWare's most-loved releases, working as project director on both Star Wars: Knights of the Old Republic and the Mass Effect trilogy. After leaving BioWare in 2014, Hudson returned in 2017 as its general manager—before ultimately departing a second time in 2020, following the troubled development and launch of Anthem, the studio's ill-fated live service shooter.</p><p>Since then, Hudson's been acting as proof of his own assertion about BioWare's lasting influence in game development. Following the 2021 founding and subsequent 2024 closure of his NetEase-acquired studio, Humanoid Origin, Hudson announced in 2025 that he'd started <em>yet another </em>new company: Arcanaut Studios. There, he—and a team <a href="https://www.pcgamer.com/games/rpg/surprise-the-studio-making-star-wars-fate-of-the-old-republic-is-full-of-former-bioware-devs/" target="_blank">stacked with other ex-BioWare devs</a>—are currently at work on Star Wars: Fate of the Old Republic, a "narrative-driven action RPG" that Hudson has called a "spiritual successor" to KotOR.</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="wS5CSUNr6QbY2XqPWc5BcR" name="star-wars-fate-of-the-old-republic-1" alt="Star Wars: Fate of the Old Republic - Crashed ship" src="https://cdn.mos.cms.futurecdn.net/wS5CSUNr6QbY2XqPWc5BcR-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/wS5CSUNr6QbY2XqPWc5BcR-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: Arcanaut Studios)</span></figcaption></figure><p>Hudson's far from the only developer who's reaffirmed BioWare's continuing impact on game development since the news of its closure broke. CD Projekt joint CEO Michał Nowakowski noted how <a href="https://www.pcgamer.com/gaming-industry/cd-projekt-boss-pays-tribute-to-bioware-for-helping-bring-the-witcher-to-life-20-years-ago-bioware-has-been-a-massive-part-of-cdpr-history/" target="_blank">BioWare offered crucial support</a> during the development of the Witcher 1, while Larian CEO <a href="https://x.com/LarAtLarian/status/2113020691251642602?s=20" target="_blank">Swen Vincke wrote on X</a> that the studio "led the way in making RPGs big."</p><p>Legendary immersive sim developer Warren Spector <a href="https://www.pcgamer.com/gaming-industry/game-industry-legend-warren-spector-blows-up-over-biowares-closure-its-utter-bulls-t/" target="_blank">offered a more blunt reaction</a> to BioWare's shuttering, calling the closure "utter bullshit."</p><div class="product"><a data-dimension112="936e0b7c-ce32-11f1-9965-5da522a6a6a6" 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="936e0b7c-ce32-11f1-9965-5da522a6a6a6" 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/gaming-industry/ex-bioware-boss-and-mass-effect-director-casey-hudson-says-hell-forever-be-grateful-for-his-time-at-the-studio-its-legacy-will-live-on/</link>
                                                                            <description>
                            <![CDATA[ The former KotOR director's new studio is working on its own Star Wars entry in the Old Republic era. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Wn9RUMZ2tiBwKdtMzQkMFU</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cCic9S526AbGGLUHaK3Yeg-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 16:24:11 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Industry]]></category>
                                                                                                <author><![CDATA[ lincoln.carpenter@futurenet.com (Lincoln Carpenter) ]]></author>                    <dc:creator><![CDATA[ Lincoln Carpenter ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/FPyrdqJC7WX382U9Ubt8Ee-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/cCic9S526AbGGLUHaK3Yeg-1920-80.jpg">
                                                            <media:credit><![CDATA[EA; Arcanaut Studios]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Announcement art for the Mass Effect board game; former BioWare general manager Casey Hudson.]]></media:description>                                                            <media:text><![CDATA[Announcement art for the Mass Effect board game; former BioWare general manager Casey Hudson.]]></media:text>
                                <media:title type="plain"><![CDATA[Announcement art for the Mass Effect board game; former BioWare general manager Casey Hudson.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cCic9S526AbGGLUHaK3Yeg-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Yesterday, <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">EA announced that it's closing BioWare</a>, the studio behind beloved RPG franchises like the original Baldur's Gate games, Star Wars: Knights of the Old Republic, Mass Effect, and Dragon Age. Alongside BioWare's closure—and the cancelling of its next Mass Effect project—EA is <a href="https://www.bloomberg.com/news/articles/2026-10-21/electronic-arts-to-cut-400-jobs-shut-down-bioware" target="_blank">reportedly laying off around 400 people</a> in an effort to "align talent and investment" in the wake of its <a href="https://www.pcgamer.com/gaming-industry/the-deal-is-done-electronic-arts-is-now-officially-owned-by-saudi-arabia/" target="_blank">record-breaking private equity buyout</a>.</p><p>While recent years have brought no shortage of high profile studio closings and game cancellations, the news of BioWare's shuttering has prompted an outpouring of sympathies and frustrations from the fans, fellow developers, and former studio staff. Among those mourners is former BioWare game director and ex-general manager Casey Hudson, who <a href="https://x.com/CaseyDHudson/status/2113012091519164839?s=20" target="_blank">reacted to the news on X</a> to say that BioWare's influence will continue even if the studio itself doesn't.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113012091519164839"><p lang="en" dir="ltr">This is sad news on multiple fronts - for those of us who worked there, for our friends and colleagues at BioWare who are impacted, and for fans who were looking forward to the next Mass Effect adventure. I started my career at BioWare and will forever be grateful to the founders, Greg and Ray, for inviting me to join in BioWare's legendary journey. Its legacy will live on through those who were part of it and continue to create games through a passion for unforgettable stories, worlds and characters.<a href="https://twitter.com/cantworkitout/status/2113012091519164839">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"This is sad news on multiple fronts—for those of us who worked there, for our friends and colleagues at BioWare who are impacted, and for fans who were looking forward to the next Mass Effect adventure," Hudson said. "I started my career at BioWare and will forever be grateful to the founders, Greg and Ray, for inviting me to join in BioWare's legendary journey. Its legacy will live on through those who were part of it and continue to create games through a passion for unforgettable stories, worlds, and characters."</p><p>During his tenure at the studio, Hudson had a major influence on some of BioWare's most-loved releases, working as project director on both Star Wars: Knights of the Old Republic and the Mass Effect trilogy. After leaving BioWare in 2014, Hudson returned in 2017 as its general manager—before ultimately departing a second time in 2020, following the troubled development and launch of Anthem, the studio's ill-fated live service shooter.</p><p>Since then, Hudson's been acting as proof of his own assertion about BioWare's lasting influence in game development. Following the 2021 founding and subsequent 2024 closure of his NetEase-acquired studio, Humanoid Origin, Hudson announced in 2025 that he'd started <em>yet another </em>new company: Arcanaut Studios. There, he—and a team <a href="https://www.pcgamer.com/games/rpg/surprise-the-studio-making-star-wars-fate-of-the-old-republic-is-full-of-former-bioware-devs/" target="_blank">stacked with other ex-BioWare devs</a>—are currently at work on Star Wars: Fate of the Old Republic, a "narrative-driven action RPG" that Hudson has called a "spiritual successor" to KotOR.</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="wS5CSUNr6QbY2XqPWc5BcR" name="star-wars-fate-of-the-old-republic-1" alt="Star Wars: Fate of the Old Republic - Crashed ship" src="https://cdn.mos.cms.futurecdn.net/wS5CSUNr6QbY2XqPWc5BcR-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/wS5CSUNr6QbY2XqPWc5BcR-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: Arcanaut Studios)</span></figcaption></figure><p>Hudson's far from the only developer who's reaffirmed BioWare's continuing impact on game development since the news of its closure broke. CD Projekt joint CEO Michał Nowakowski noted how <a href="https://www.pcgamer.com/gaming-industry/cd-projekt-boss-pays-tribute-to-bioware-for-helping-bring-the-witcher-to-life-20-years-ago-bioware-has-been-a-massive-part-of-cdpr-history/" target="_blank">BioWare offered crucial support</a> during the development of the Witcher 1, while Larian CEO <a href="https://x.com/LarAtLarian/status/2113020691251642602?s=20" target="_blank">Swen Vincke wrote on X</a> that the studio "led the way in making RPGs big."</p><p>Legendary immersive sim developer Warren Spector <a href="https://www.pcgamer.com/gaming-industry/game-industry-legend-warren-spector-blows-up-over-biowares-closure-its-utter-bulls-t/" target="_blank">offered a more blunt reaction</a> to BioWare's shuttering, calling the closure "utter bullshit."</p><div class="product"><a data-dimension112="936e0b7c-ce32-11f1-9965-5da522a6a6a6" 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="936e0b7c-ce32-11f1-9965-5da522a6a6a6" 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[ Clive Barker's Hellraiser: Revival review–Rough around the edges  ]]></title>
                                                                                                <dc:content><![CDATA[ <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> A singleplayer action horror game based on Clive Barker's Hellraiser. <br><strong>Release date</strong> October 8, 2026<br><strong>Expect to pay</strong> $40 / £35<br><strong>Developer </strong>Saber Interactive<br><strong>Publisher </strong>Saber Interactive<br><strong>Reviewed on</strong> RTX 3070, Core AMD Ryzen 5 5600G, 16GB RAM<br><strong>Multiplayer </strong>No<br><strong>Steam Deck </strong>Playable<br><strong>Link </strong><a data-analytics-id="inline-link" href="https://store.steampowered.com/app/1551980/Clive_Barkers_Hellraiser_Revival/">Steam</a></p></div></div><p>Bloody hell, that monster with the metal stakes for arms and legs is quick. No matter how fast I run or how well I hide it'll be right where it needs to be, on time and ready to impale me. Don't get me wrong, I actually quite like coming face to face with a de-fleshed monster— especially when it looks this cool—but I'm not a fan of being funneled into the same set pieces over and over again. </p><p>Clive Barker's Hellraiser: Revival does a lot of things right; its body horror and gore is top tier and some of the puzzles really grew on me towards the end. But its action and horror didn't manage to hit the same highs no matter how many grotesque monsters it threw at me. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="thbt3rVsvmDVJzbugaZyEJ" name="Clive Barker's Hellraiser: Revival" alt="Clive Barker's Hellraiser: Revival screenshots" src="https://cdn.mos.cms.futurecdn.net/thbt3rVsvmDVJzbugaZyEJ-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: Saber Interactive)</span></figcaption></figure><p>I played Hellraiser on its standard setting—I find it's a good way to get a baseline—and while I didn't have a massive problem with how easy that was, I didn't gel with how inconsistent the fights were and how, ultimately, nothing I did mattered. </p><p>Take the final fight scene with our aforementioned monster with stakes for arms and legs, otherwise known as Charlotte, for example. After being chased through the cult's HQ and the woods she finally cornered me in a clearing in the woods. I used everything I had against Charlotte, going through all the ammo and healing items I had diligently stacked up all while sliding and dodging out of the way of incoming attacks, but she just wouldn't go down. Finally, when I had nothing left, she got me. And then the realisation set in as a cutscene played out; I was never meant to win this fight. </p><p>This happened a couple of times throughout Hellraiser, an action set piece in which your actions didn't really matter. One segment felt like a poor man's COD zombies that saw me nailing planks of wood to the windows in a futile attempt to keep those pesky brain-eaters out. It's not my first rodeo so I was on it. But ultimately I chewed through all the ammo and other resources I had yet again. Soon after a flood of zombies invaded the small cabin I was in and pushed me into a corner where I was trapped by the horde's flailing arms. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/GLpQG9mjyRsvNyUKxVvMVH-1920-80.jpg" alt="Clive Barker's Hellraiser: Revival screenshots" /><figcaption><small role="credit">Saber Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/QV4bk2tFs9oPvokKiejY9J-1920-80.jpg" alt="Clive Barker's Hellraiser: Revival screenshots" /><figcaption><small role="credit">Saber Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/nQtSLmNvQPNdqPjEtFeasH-1920-80.jpg" alt="Clive Barker's Hellraiser: Revival screenshots" /><figcaption><small role="credit">Saber Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/kdEo3gsuK6JJuS64HaoPZH-1920-80.jpg" alt="Clive Barker's Hellraiser: Revival screenshots" /><figcaption><small role="credit">Saber Interactive</small></figcaption></figure></figure><p>I actually managed to get out of that situation thanks to some well placed crouches but I didn't last much longer. Eventually one dropped from the rafters (don't ask me how he got there), and I crashed through the floor boards in another short cinematic. Ah, this was all part of the game's plan. It's fine for there to be an outline of how the action should play out, but when the guard rails are this obvious it can be suffocating.Why not make it all into a cinematic if my actions have so little consequence? </p><p>I may have even been able to excuse the strict script if killing enemies were satisfying enough for the journey to outweigh the destination. But the kills are just sort of okay. Enemies' torsos randomly detached from their legs when I threw a saw blade at their head, zombies fell to the floor as if playing dead only to then bite at your ankles, and fighting the guys in full suits of armour is far less epic than it sounds; you just have to hit them over and over with a blunt object.It's very tedious. </p><p>My favourite part of the action by far had to be using the genesis configuration box, an item that bestows the user with limited telekinesis. In fights you can use it to throw deadly items that are helpfully highlighted in blue, like nails or even fire. But this played less of a part than I would've liked with pistols, shotguns, and assault rifles carrying the brunt of the action. </p><h2 id="something-39-s-wrong">Something's wrong </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:1415px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BUhZ5E4GxixFSkHaYCVEFH" name="Clive Barker's Hellraiser: Revival" alt="Clive Barker's Hellraiser: Revival screenshots" src="https://cdn.mos.cms.futurecdn.net/BUhZ5E4GxixFSkHaYCVEFH-1920-80.jpg" mos="" align="middle" fullscreen="" width="1415" height="796" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>So the action isn't all there, but what about the horror? Well, unfortunately I didn't find Hellraiser scary at all. The jumpscares were predictable and I quickly learned that most of the time when a monster scuttled across a gap in the wall or stabbed the log I was crawling through, it was all just for show; it couldn't kill me and therefore wasn't scary. </p><p>You get haunted by a monster riddled with flowing veins stretching out of its body that looks so cool while in the Labyrinth but it never really amounts to anything, none of the horror in the Labyrinth does. Occasionally, the extra-dimensional sadistic cenobite Chatterer will chase you around the maze but he walks pretty slow so he was never much of a threat. At one point I literally ran circles around him while using the genesis configuration to solve a finicky puzzle. </p><p>I will admit, though, I may be slightly numb to jumpscares and horror at this point, so take this with a grain of salt, but while my tolerance may be higher than most, a well placed scare can still get through. Silent Hill: Townfall and Amnesia: The Bunker are just some recent examples that come to mind. </p><h2 id="wasted-potential">Wasted potential </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="Js2diQnPaCpVLj8jHveB5J" name="Clive Barker's Hellraiser: Revival" alt="Clive Barker's Hellraiser: Revival screenshots" src="https://cdn.mos.cms.futurecdn.net/Js2diQnPaCpVLj8jHveB5J-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: Saber Interactive)</span></figcaption></figure><p>It's all a bit of a shame because the look of Hellraiser: Revival is great. I loved all the guts and gore, and every single one of the major monsters looked so awful I couldn't tear myself away. Charlotte may have been an annoying boss fight, but it's been a long time since I saw a monster that was designed so brilliantly that I felt the odd mix of impressed and horrified. </p><div><blockquote><p>It's not particularly innovative and the action isn't massively satisfying. </p></blockquote></div><p>The puzzles were another highlight. I found using the genesis configuration to solve them to be intuitive and rewarding. It actually had me wishing that this game was solely set in the Labyrinth. I think a stealth horror game where the protagonist has to sneak around the maze while solving puzzles would have been much more satisfying and scary. It could have also made the cenobites seem a bit more intimidating, because instead they came off as a bunch of kind of chill alien things who were just into some kinky stuff. They kept their word, helped guide you, and occasionally followed you around the maze.They seemed alright to me. </p><p>Ultimately, Clive Barker's Hellraiser: Revival was simply okay. It's not particularly innovative and the action isn't massively satisfying. But when you stack it up against the greats of the action horror genre like Resident Evil 4, The Last of Us, or even Alan Wake 2 its pitfalls become even more apparent. The gore is cool and all the BDSM is certainly eye-catching, but a fetch quest for  the biggest dildo available isn't enough to bump this game up into a must-play for a fan of the genre; you can get better elsewhere. </p><div class="product"><a data-dimension112="03e5a674-ce30-11f1-bdcd-b55cc4243f3a" 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="03e5a674-ce30-11f1-bdcd-b55cc4243f3a" 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/horror/clive-barkers-hellraiser-revival-review/</link>
                                                                            <description>
                            <![CDATA[ Hellraiser: Revival may not be great action horror but it does win the prize for most unique fetch quest. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Mggf87WVpoBjVfHajdK7gL</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/GFRGR8vGBxx6sqafiXyvcH-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 15:50:04 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 18:42:55 +0000</updated>
                                                                                                                                            <category><![CDATA[Horror]]></category>
                                                    <category><![CDATA[Games]]></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/GFRGR8vGBxx6sqafiXyvcH-1920-80.jpg">
                                                            <media:credit><![CDATA[Saber Interactive]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Clive Barker&#039;s Hellraiser: Revival screenshots]]></media:description>                                                            <media:text><![CDATA[Clive Barker&#039;s Hellraiser: Revival screenshots]]></media:text>
                                <media:title type="plain"><![CDATA[Clive Barker&#039;s Hellraiser: Revival screenshots]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/GFRGR8vGBxx6sqafiXyvcH-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <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> A singleplayer action horror game based on Clive Barker's Hellraiser. <br><strong>Release date</strong> October 8, 2026<br><strong>Expect to pay</strong> $40 / £35<br><strong>Developer </strong>Saber Interactive<br><strong>Publisher </strong>Saber Interactive<br><strong>Reviewed on</strong> RTX 3070, Core AMD Ryzen 5 5600G, 16GB RAM<br><strong>Multiplayer </strong>No<br><strong>Steam Deck </strong>Playable<br><strong>Link </strong><a data-analytics-id="inline-link" href="https://store.steampowered.com/app/1551980/Clive_Barkers_Hellraiser_Revival/">Steam</a></p></div></div><p>Bloody hell, that monster with the metal stakes for arms and legs is quick. No matter how fast I run or how well I hide it'll be right where it needs to be, on time and ready to impale me. Don't get me wrong, I actually quite like coming face to face with a de-fleshed monster— especially when it looks this cool—but I'm not a fan of being funneled into the same set pieces over and over again. </p><p>Clive Barker's Hellraiser: Revival does a lot of things right; its body horror and gore is top tier and some of the puzzles really grew on me towards the end. But its action and horror didn't manage to hit the same highs no matter how many grotesque monsters it threw at me. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="thbt3rVsvmDVJzbugaZyEJ" name="Clive Barker's Hellraiser: Revival" alt="Clive Barker's Hellraiser: Revival screenshots" src="https://cdn.mos.cms.futurecdn.net/thbt3rVsvmDVJzbugaZyEJ-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: Saber Interactive)</span></figcaption></figure><p>I played Hellraiser on its standard setting—I find it's a good way to get a baseline—and while I didn't have a massive problem with how easy that was, I didn't gel with how inconsistent the fights were and how, ultimately, nothing I did mattered. </p><p>Take the final fight scene with our aforementioned monster with stakes for arms and legs, otherwise known as Charlotte, for example. After being chased through the cult's HQ and the woods she finally cornered me in a clearing in the woods. I used everything I had against Charlotte, going through all the ammo and healing items I had diligently stacked up all while sliding and dodging out of the way of incoming attacks, but she just wouldn't go down. Finally, when I had nothing left, she got me. And then the realisation set in as a cutscene played out; I was never meant to win this fight. </p><p>This happened a couple of times throughout Hellraiser, an action set piece in which your actions didn't really matter. One segment felt like a poor man's COD zombies that saw me nailing planks of wood to the windows in a futile attempt to keep those pesky brain-eaters out. It's not my first rodeo so I was on it. But ultimately I chewed through all the ammo and other resources I had yet again. Soon after a flood of zombies invaded the small cabin I was in and pushed me into a corner where I was trapped by the horde's flailing arms. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/GLpQG9mjyRsvNyUKxVvMVH-1920-80.jpg" alt="Clive Barker's Hellraiser: Revival screenshots" /><figcaption><small role="credit">Saber Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/QV4bk2tFs9oPvokKiejY9J-1920-80.jpg" alt="Clive Barker's Hellraiser: Revival screenshots" /><figcaption><small role="credit">Saber Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/nQtSLmNvQPNdqPjEtFeasH-1920-80.jpg" alt="Clive Barker's Hellraiser: Revival screenshots" /><figcaption><small role="credit">Saber Interactive</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/kdEo3gsuK6JJuS64HaoPZH-1920-80.jpg" alt="Clive Barker's Hellraiser: Revival screenshots" /><figcaption><small role="credit">Saber Interactive</small></figcaption></figure></figure><p>I actually managed to get out of that situation thanks to some well placed crouches but I didn't last much longer. Eventually one dropped from the rafters (don't ask me how he got there), and I crashed through the floor boards in another short cinematic. Ah, this was all part of the game's plan. It's fine for there to be an outline of how the action should play out, but when the guard rails are this obvious it can be suffocating.Why not make it all into a cinematic if my actions have so little consequence? </p><p>I may have even been able to excuse the strict script if killing enemies were satisfying enough for the journey to outweigh the destination. But the kills are just sort of okay. Enemies' torsos randomly detached from their legs when I threw a saw blade at their head, zombies fell to the floor as if playing dead only to then bite at your ankles, and fighting the guys in full suits of armour is far less epic than it sounds; you just have to hit them over and over with a blunt object.It's very tedious. </p><p>My favourite part of the action by far had to be using the genesis configuration box, an item that bestows the user with limited telekinesis. In fights you can use it to throw deadly items that are helpfully highlighted in blue, like nails or even fire. But this played less of a part than I would've liked with pistols, shotguns, and assault rifles carrying the brunt of the action. </p><h2 id="something-39-s-wrong">Something's wrong </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:1415px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BUhZ5E4GxixFSkHaYCVEFH" name="Clive Barker's Hellraiser: Revival" alt="Clive Barker's Hellraiser: Revival screenshots" src="https://cdn.mos.cms.futurecdn.net/BUhZ5E4GxixFSkHaYCVEFH-1920-80.jpg" mos="" align="middle" fullscreen="" width="1415" height="796" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Saber Interactive)</span></figcaption></figure><p>So the action isn't all there, but what about the horror? Well, unfortunately I didn't find Hellraiser scary at all. The jumpscares were predictable and I quickly learned that most of the time when a monster scuttled across a gap in the wall or stabbed the log I was crawling through, it was all just for show; it couldn't kill me and therefore wasn't scary. </p><p>You get haunted by a monster riddled with flowing veins stretching out of its body that looks so cool while in the Labyrinth but it never really amounts to anything, none of the horror in the Labyrinth does. Occasionally, the extra-dimensional sadistic cenobite Chatterer will chase you around the maze but he walks pretty slow so he was never much of a threat. At one point I literally ran circles around him while using the genesis configuration to solve a finicky puzzle. </p><p>I will admit, though, I may be slightly numb to jumpscares and horror at this point, so take this with a grain of salt, but while my tolerance may be higher than most, a well placed scare can still get through. Silent Hill: Townfall and Amnesia: The Bunker are just some recent examples that come to mind. </p><h2 id="wasted-potential">Wasted potential </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="Js2diQnPaCpVLj8jHveB5J" name="Clive Barker's Hellraiser: Revival" alt="Clive Barker's Hellraiser: Revival screenshots" src="https://cdn.mos.cms.futurecdn.net/Js2diQnPaCpVLj8jHveB5J-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: Saber Interactive)</span></figcaption></figure><p>It's all a bit of a shame because the look of Hellraiser: Revival is great. I loved all the guts and gore, and every single one of the major monsters looked so awful I couldn't tear myself away. Charlotte may have been an annoying boss fight, but it's been a long time since I saw a monster that was designed so brilliantly that I felt the odd mix of impressed and horrified. </p><div><blockquote><p>It's not particularly innovative and the action isn't massively satisfying. </p></blockquote></div><p>The puzzles were another highlight. I found using the genesis configuration to solve them to be intuitive and rewarding. It actually had me wishing that this game was solely set in the Labyrinth. I think a stealth horror game where the protagonist has to sneak around the maze while solving puzzles would have been much more satisfying and scary. It could have also made the cenobites seem a bit more intimidating, because instead they came off as a bunch of kind of chill alien things who were just into some kinky stuff. They kept their word, helped guide you, and occasionally followed you around the maze.They seemed alright to me. </p><p>Ultimately, Clive Barker's Hellraiser: Revival was simply okay. It's not particularly innovative and the action isn't massively satisfying. But when you stack it up against the greats of the action horror genre like Resident Evil 4, The Last of Us, or even Alan Wake 2 its pitfalls become even more apparent. The gore is cool and all the BDSM is certainly eye-catching, but a fetch quest for  the biggest dildo available isn't enough to bump this game up into a must-play for a fan of the genre; you can get better elsewhere. </p><div class="product"><a data-dimension112="03e5a674-ce30-11f1-bdcd-b55cc4243f3a" 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="03e5a674-ce30-11f1-bdcd-b55cc4243f3a" 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've been waiting to see a pixel bounce into a perfect corner since childhood and finally this Next Fest Demo delivered it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It all started in primary school, when the teacher would wheel in an old box of a TV and fumble around for ten minutes trying to get a vaguely educational program onto the screen. These were the moments when my class was perhaps the most engaged, as the DVD player fell asleep and the screensaver kicked in: the logo began bouncing around the screen, ever-avoiding the corner sweet spot. </p><p>Finally I've been able to experience the sheer joy of watching the logo bounce perfectly off the corner with <a href="https://store.steampowered.com/app/4738100/10_Million_Pixels/" target="_blank">10 Million Pixels</a> and its Steam Next Fest demo. </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="DHyEatRKqEXkCRj6SY67qF" name="10 million pixels" alt="10 million pixels demo screenshots" src="https://cdn.mos.cms.futurecdn.net/DHyEatRKqEXkCRj6SY67qF-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: Battle Lab)</span></figcaption></figure><p>It starts off simple enough: Among the millions of 2D pixels there's a small gap. You launch a ball and watch as it starts bouncing off the walls slowly whittling down the health of each pixel until it's destroyed, giving you a point. You use these points to buy more balls to launch into the ever growing hole. </p><p>But that's not all, come on now. Scattered around the map are pink gems power-ups and if you manage to carve a path to them and actually get a ball to bounce into it then you can use them to either power up your balls or unlock different kinds. You can make them faster, do more damage, or even allow you to reuse an existing ball. </p><p>I started out with the basic orange ball, then went on to the toxic green ball that deals escalating tic damage to the pixel block it hits. After that I got the blue ball which is slightly quicker, and then the pink ball which is even speedier. The final ball in the demo is the lightning ball that can shock nearby blocks, breaking them as it passes. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/TsoDhvU7tnva8GUGtKF5jF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/7kS2afY9tsbHGQhQtFv2rF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/nVbkY9X4HHnYvPzCsRsEwF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/LyNYNFdffKyRSQr2P55EuF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/kUNrpuvLF9GTqZ6uog8pnF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure></figure><p>I had more fun than I probably should have passively launching balls into the ever-growing mines and watching them whittle down all the pixels. It wasn't just satisfying to watch but also to hear as the ball hitting and breaking blocks emanates a warm popping sound. There's also incredibly chill lo-fi music on in the background which honestly nearly sent me to sleep; it's lovely. </p><p>Oh, but there is a point to 10 Million Pixels. You're on a mission to break all the pixels in order to find the one golden pixel. This can be located anywhere in the map, and while you occasionally do get a special golden ball which can point you in its general direction, the only guaranteed way of finding it is to break all the pixels. </p><p>It took me around 40 minutes to find the golden pixel in the demo, although the full game will have different maps that hide varying solid objects that cannot be broken inside. I carried on playing even after I found the golden pixel because I wanted to see what said object is. It turned out to be an image of an angel and devil with a fish's skeleton hanging upside down from a balloon and hook between the two. I don't know what that means, I don't know how that's meant to pertain to breaking pixels, but I do know that I enjoy breaking pixels, and that's all that matters. </p><div class="product"><a data-dimension112="69792d70-ce2c-11f1-825f-1102c9436607" data-action="Deal Block" data-label="Steam sale dates" data-dimension48="Steam sale dates" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:550px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="dmLfcTEceHMYUpsciYxiDT" name="steam rpgs" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/dmLfcTEceHMYUpsciYxiDT-1920-80.jpg" mos="" align="middle" fullscreen="" width="550" height="550" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><a href="https://www.pcgamer.com/steam-sale-dates/" target="_blank" data-dimension112="69792d70-ce2c-11f1-825f-1102c9436607" data-action="Deal Block" data-label="Steam sale dates" data-dimension48="Steam sale dates" data-dimension25=""><strong>Steam sale dates</strong></a>: When's the next event?<br><a href="https://www.pcgamer.com/epic-games-store-free-games-list/" target="_blank"><strong>Epic Store free games</strong></a>: What's free right now?<br><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: The best freebies you can grab<br><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank"><strong>2026 games</strong></a>: This year's upcoming releases<br><a href="https://www.pcgamer.com/the-best-free-games-on-steam/" target="_blank"><strong>Free Steam games</strong></a>: No purchase necessary</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/adventure/ive-been-waiting-to-see-a-pixel-bounce-into-a-perfect-corner-since-childhood-and-finally-this-next-fest-demo-delivered-it/</link>
                                                                            <description>
                            <![CDATA[ I saw it hit the corner, I swear I did. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">6fDUGTuf6xLM5xDmLZKktJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/SH72jq765YEn5EymHWpikF-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 15:25:08 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Adventure]]></category>
                                                    <category><![CDATA[Games]]></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/SH72jq765YEn5EymHWpikF-1920-80.jpg">
                                                            <media:credit><![CDATA[Battle Lab]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[10 million pixels demo screenshots]]></media:description>                                                            <media:text><![CDATA[10 million pixels demo screenshots]]></media:text>
                                <media:title type="plain"><![CDATA[10 million pixels demo screenshots]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/SH72jq765YEn5EymHWpikF-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It all started in primary school, when the teacher would wheel in an old box of a TV and fumble around for ten minutes trying to get a vaguely educational program onto the screen. These were the moments when my class was perhaps the most engaged, as the DVD player fell asleep and the screensaver kicked in: the logo began bouncing around the screen, ever-avoiding the corner sweet spot. </p><p>Finally I've been able to experience the sheer joy of watching the logo bounce perfectly off the corner with <a href="https://store.steampowered.com/app/4738100/10_Million_Pixels/" target="_blank">10 Million Pixels</a> and its Steam Next Fest demo. </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="DHyEatRKqEXkCRj6SY67qF" name="10 million pixels" alt="10 million pixels demo screenshots" src="https://cdn.mos.cms.futurecdn.net/DHyEatRKqEXkCRj6SY67qF-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: Battle Lab)</span></figcaption></figure><p>It starts off simple enough: Among the millions of 2D pixels there's a small gap. You launch a ball and watch as it starts bouncing off the walls slowly whittling down the health of each pixel until it's destroyed, giving you a point. You use these points to buy more balls to launch into the ever growing hole. </p><p>But that's not all, come on now. Scattered around the map are pink gems power-ups and if you manage to carve a path to them and actually get a ball to bounce into it then you can use them to either power up your balls or unlock different kinds. You can make them faster, do more damage, or even allow you to reuse an existing ball. </p><p>I started out with the basic orange ball, then went on to the toxic green ball that deals escalating tic damage to the pixel block it hits. After that I got the blue ball which is slightly quicker, and then the pink ball which is even speedier. The final ball in the demo is the lightning ball that can shock nearby blocks, breaking them as it passes. </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/TsoDhvU7tnva8GUGtKF5jF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/7kS2afY9tsbHGQhQtFv2rF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/nVbkY9X4HHnYvPzCsRsEwF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/LyNYNFdffKyRSQr2P55EuF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/kUNrpuvLF9GTqZ6uog8pnF-1920-80.jpg" alt="10 million pixels demo screenshots" /><figcaption><small role="credit">Battle Lab</small></figcaption></figure></figure><p>I had more fun than I probably should have passively launching balls into the ever-growing mines and watching them whittle down all the pixels. It wasn't just satisfying to watch but also to hear as the ball hitting and breaking blocks emanates a warm popping sound. There's also incredibly chill lo-fi music on in the background which honestly nearly sent me to sleep; it's lovely. </p><p>Oh, but there is a point to 10 Million Pixels. You're on a mission to break all the pixels in order to find the one golden pixel. This can be located anywhere in the map, and while you occasionally do get a special golden ball which can point you in its general direction, the only guaranteed way of finding it is to break all the pixels. </p><p>It took me around 40 minutes to find the golden pixel in the demo, although the full game will have different maps that hide varying solid objects that cannot be broken inside. I carried on playing even after I found the golden pixel because I wanted to see what said object is. It turned out to be an image of an angel and devil with a fish's skeleton hanging upside down from a balloon and hook between the two. I don't know what that means, I don't know how that's meant to pertain to breaking pixels, but I do know that I enjoy breaking pixels, and that's all that matters. </p><div class="product"><a data-dimension112="69792d70-ce2c-11f1-825f-1102c9436607" data-action="Deal Block" data-label="Steam sale dates" data-dimension48="Steam sale dates" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:550px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="dmLfcTEceHMYUpsciYxiDT" name="steam rpgs" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/dmLfcTEceHMYUpsciYxiDT-1920-80.jpg" mos="" align="middle" fullscreen="" width="550" height="550" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><a href="https://www.pcgamer.com/steam-sale-dates/" target="_blank" data-dimension112="69792d70-ce2c-11f1-825f-1102c9436607" data-action="Deal Block" data-label="Steam sale dates" data-dimension48="Steam sale dates" data-dimension25=""><strong>Steam sale dates</strong></a>: When's the next event?<br><a href="https://www.pcgamer.com/epic-games-store-free-games-list/" target="_blank"><strong>Epic Store free games</strong></a>: What's free right now?<br><a href="https://www.pcgamer.com/the-50-best-free-pc-games/" target="_blank"><strong>Free PC games</strong></a>: The best freebies you can grab<br><a href="https://www.pcgamer.com/games/new-pc-games-2026/" target="_blank"><strong>2026 games</strong></a>: This year's upcoming releases<br><a href="https://www.pcgamer.com/the-best-free-games-on-steam/" target="_blank"><strong>Free Steam games</strong></a>: No purchase necessary</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ EA has reportedly put DICE and Respawn to work on a new Star Wars: Battlefront game ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In spite of a bloodletting that saw the <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">end of BioWare</a>—a lion in winter, sure, but still a studio with a rich legacy—and around 400 employees laid off, EA seemingly still has videogame irons in the fire. Per a report from <a href="https://variety.com/2026/digital/news/ea-layoffs-bioware-shutting-down-respawn-dice-star-wars-battlefront-3-1236918715/" target="_blank">Variety</a>, the corporation is working on a new Battlefront game, said to be in the hands of Respawn and DICE.</p><p>This is not officially confirmed, of course. In its <a href="https://www.ea.com/news/building-eas-next-chapter">gore-flecked letter</a> to staff and rubber-neckers in the wake of yesterday's BioWare news, EA only said that its future involved "bringing together our Respawn and DICE studios to collaborate on a future project." </p><p>This, it boasted, would allow it to "balance our resources, and leverage the technology to deliver a shooter portfolio that unlocks growth." Which certainly gets me excited about things to come.</p><p>Nevertheless, multiple sources tell Variety that the "future project" is, indeed, a third Battlefront. Which is probably a good idea, in all fairness. I don't think either of the previous two modern Battlefront games have quite lit the world on fire—in fact, the second one's lootboxes were so bad it sparked an uproar that made it all the way to the <a href="https://www.pcgamer.com/belgiums-gambling-commission-rules-against-loot-boxes-in-overwatch-fifa-18-and-csgo/">Belgian Gambling Commission</a>—but the notion of a big boisterous shooter filled with Star Wars stuff feels like something that <em>could</em> be pretty cool, right?</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><p>And hey, Respawn's done a good job on those Star Wars Jedi games to the point that we all now go around referring to them as the 'Star Wars Jedi' games like that's not an absurdly bad name. Meanwhile, DICE rather pleased our resident FPS czar Morgan Park with Battlefield 6; he scored it 82% in his <a href="https://www.pcgamer.com/games/fps/battlefield-6-review/">Battlefield 6 review</a> and called it "automatically one of the best shooters of the year." So sure, sign me up to see what the two can do with a Battlefront game together.</p><div class="product"><a data-dimension112="87032bf2-ce2c-11f1-b71a-0f049e01c0de" 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="87032bf2-ce2c-11f1-b71a-0f049e01c0de" 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/fps/ea-has-reportedly-put-dice-and-respawn-to-work-on-a-new-star-wars-battlefront-game/</link>
                                                                            <description>
                            <![CDATA[ It will unlock growth, which I'm pretty excited about. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZUaoazZSYjmvvWgk3xHjKG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/hMSBjCVZkxKW6r4YRnkhiP-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 15:23:33 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 18:42:55 +0000</updated>
                                                                                                                                            <category><![CDATA[FPS]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                                                                <author><![CDATA[ joshua.wolens@futurenet.com (Joshua Wolens) ]]></author>                    <dc:creator><![CDATA[ Joshua Wolens ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/oYajqiFjn2Rwz4msxoLFyP-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/hMSBjCVZkxKW6r4YRnkhiP-1920-80.jpg">
                                                            <media:credit><![CDATA[null]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/hMSBjCVZkxKW6r4YRnkhiP-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In spite of a bloodletting that saw the <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">end of BioWare</a>—a lion in winter, sure, but still a studio with a rich legacy—and around 400 employees laid off, EA seemingly still has videogame irons in the fire. Per a report from <a href="https://variety.com/2026/digital/news/ea-layoffs-bioware-shutting-down-respawn-dice-star-wars-battlefront-3-1236918715/" target="_blank">Variety</a>, the corporation is working on a new Battlefront game, said to be in the hands of Respawn and DICE.</p><p>This is not officially confirmed, of course. In its <a href="https://www.ea.com/news/building-eas-next-chapter">gore-flecked letter</a> to staff and rubber-neckers in the wake of yesterday's BioWare news, EA only said that its future involved "bringing together our Respawn and DICE studios to collaborate on a future project." </p><p>This, it boasted, would allow it to "balance our resources, and leverage the technology to deliver a shooter portfolio that unlocks growth." Which certainly gets me excited about things to come.</p><p>Nevertheless, multiple sources tell Variety that the "future project" is, indeed, a third Battlefront. Which is probably a good idea, in all fairness. I don't think either of the previous two modern Battlefront games have quite lit the world on fire—in fact, the second one's lootboxes were so bad it sparked an uproar that made it all the way to the <a href="https://www.pcgamer.com/belgiums-gambling-commission-rules-against-loot-boxes-in-overwatch-fifa-18-and-csgo/">Belgian Gambling Commission</a>—but the notion of a big boisterous shooter filled with Star Wars stuff feels like something that <em>could</em> be pretty cool, right?</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><p>And hey, Respawn's done a good job on those Star Wars Jedi games to the point that we all now go around referring to them as the 'Star Wars Jedi' games like that's not an absurdly bad name. Meanwhile, DICE rather pleased our resident FPS czar Morgan Park with Battlefield 6; he scored it 82% in his <a href="https://www.pcgamer.com/games/fps/battlefield-6-review/">Battlefield 6 review</a> and called it "automatically one of the best shooters of the year." So sure, sign me up to see what the two can do with a Battlefront game together.</p><div class="product"><a data-dimension112="87032bf2-ce2c-11f1-b71a-0f049e01c0de" 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="87032bf2-ce2c-11f1-b71a-0f049e01c0de" 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[ Capcom confirms a data breach has affected over 11 million people, with emails, IP addresses, and birthdays caught up in the mix ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you have a Capcom ID, you may want to check your email to see if you are one of the 11,774,247 caught in the latest Capcom data breach. </p><p>Capcom has issued a <a href="https://www.capcom.co.jp/ir/news/html/261022.html" target="_blank">public apology</a> (via <a href="https://www.notebookcheck.net/Capcom-confirms-major-data-breach-affecting-more-than-11-7-million-Capcom-ID-accounts-worldwide.1431069.0.html" target="_blank">Notebook Check</a>), declaring that "unauthorised access by a third party occurred to our online membership service 'CAPCOM ID', resulting in the leakage of some customer information. "</p><p>The 11 million figure is the number of email addresses with system-specific identification information (like account creation time, last login, and client IP address on last login) that were leaked. 43 accounts had additional information exposed,  including the date of birth, gender, country/region, and nickname on the account. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>196 Capcom accounts have also had their login passwords illegally changed, though the company says "No leaks of passwords set by the customers themselves have been confirmed". It also says, "The passwords for these accounts have already been reset, and we are continuing to investigate the extent of the impact of the unauthorized access."</p><p>Capcom states that no credit card information was included in this breach, and it has reportedly "completed the implementation of emergency measures and the identification and response to the attack methods".</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="BxcQAuC28WKmdZDKqg5WxJ" name="resident evil v illage 2.jpg" alt="Resident Evil VIllage characters" src="https://cdn.mos.cms.futurecdn.net/BxcQAuC28WKmdZDKqg5WxJ-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: Capcom)</span></figcaption></figure><p>Capcom claims it originally caught the breach on October 19, 2026, and blocked access as soon as it was discovered. On October 20, a task force was created to gather information and prevent any further damage. On October 21, the breach was reported to the police and the Personal Information Protection Commission. </p><p>From here, those affected should receive an email from Capcom declaring that their data was in the breach, and the company urges users to be extra vigilant in watching their emails. Capcom suspects that those caught up in the breach might receive suspicious emails impersonating Capcom or similar companies, attempting to get access to their accounts or phish them. </p><p>Though hackers did not gain access to customer-made passwords in this breach, it's probably a good reminder to set up different passwords for different accounts, and also a good reminder to use a password manager, too.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/capcom-confirms-a-data-breach-has-affected-over-11-million-people-with-emails-ip-addresses-and-birthdays-caught-up-in-the-mix/</link>
                                                                            <description>
                            <![CDATA[ Make sure to check your email. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">RQWTdfRf3ujcy46YUCr6FT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/sup3NeFfkaLBS8tu9UTbFA-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 15:11:26 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ James Bentley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/sup3NeFfkaLBS8tu9UTbFA-1920-80.png">
                                                            <media:credit><![CDATA[Capcom]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Mr. X looking through a door.]]></media:description>                                                            <media:text><![CDATA[Mr. X looking through a door.]]></media:text>
                                <media:title type="plain"><![CDATA[Mr. X looking through a door.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/sup3NeFfkaLBS8tu9UTbFA-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you have a Capcom ID, you may want to check your email to see if you are one of the 11,774,247 caught in the latest Capcom data breach. </p><p>Capcom has issued a <a href="https://www.capcom.co.jp/ir/news/html/261022.html" target="_blank">public apology</a> (via <a href="https://www.notebookcheck.net/Capcom-confirms-major-data-breach-affecting-more-than-11-7-million-Capcom-ID-accounts-worldwide.1431069.0.html" target="_blank">Notebook Check</a>), declaring that "unauthorised access by a third party occurred to our online membership service 'CAPCOM ID', resulting in the leakage of some customer information. "</p><p>The 11 million figure is the number of email addresses with system-specific identification information (like account creation time, last login, and client IP address on last login) that were leaked. 43 accounts had additional information exposed,  including the date of birth, gender, country/region, and nickname on the account. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>196 Capcom accounts have also had their login passwords illegally changed, though the company says "No leaks of passwords set by the customers themselves have been confirmed". It also says, "The passwords for these accounts have already been reset, and we are continuing to investigate the extent of the impact of the unauthorized access."</p><p>Capcom states that no credit card information was included in this breach, and it has reportedly "completed the implementation of emergency measures and the identification and response to the attack methods".</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="BxcQAuC28WKmdZDKqg5WxJ" name="resident evil v illage 2.jpg" alt="Resident Evil VIllage characters" src="https://cdn.mos.cms.futurecdn.net/BxcQAuC28WKmdZDKqg5WxJ-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: Capcom)</span></figcaption></figure><p>Capcom claims it originally caught the breach on October 19, 2026, and blocked access as soon as it was discovered. On October 20, a task force was created to gather information and prevent any further damage. On October 21, the breach was reported to the police and the Personal Information Protection Commission. </p><p>From here, those affected should receive an email from Capcom declaring that their data was in the breach, and the company urges users to be extra vigilant in watching their emails. Capcom suspects that those caught up in the breach might receive suspicious emails impersonating Capcom or similar companies, attempting to get access to their accounts or phish them. </p><p>Though hackers did not gain access to customer-made passwords in this breach, it's probably a good reminder to set up different passwords for different accounts, and also a good reminder to use a password manager, too.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Only $70 separates RTX 5050, RTX 5060, and RTX 5060 Ti AND the RTX 5060 Ti 16 GB is now the same price as the RTX 5070 in what I can only describe as pure carnage ]]></title>
                                                                                                <dc:content><![CDATA[ <p>We prattle on about GPU prices so much nowadays that even we're getting sick of it. Yet for as long as the memory crisis rages on and prices keep rising, we'll keep bringing it up. We'll also keep trying to spot the <a href="https://www.pcgamer.com/hardware/graphics-cards/graphics-card-price-watch-deals/" target="_blank">best prices for graphics cards</a>, which is exactly how I spotted these specific pricing horrors.</p><p>The RTX 5050, RTX 5060, and RTX 5060 Ti 8 GB are now only separated by a mere $70. That's not between each card—the jump from an RTX 5050 to an RTX 5060 Ti 8 GB is just $70, down from nearly double that at their intended MSRPs.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>'What's the big deal, then?' I hear you ask. 'Surely that means less cash for a better card?' </p><p>It is a big deal, and no, it doesn't. </p><p>This is due to dreadful circumstances: the <em>cheapest </em>RTX 5050 that I could find is this one currently <a href="https://www.bestbuy.com/product/gigabyte-geforce-rtx-5050-windforce-oc-8gb-gddr6-pci-express-5-0-graphics-card-black/J3ZW9X7YLY" target="_blank">$400 at Best Buy</a>. It's not only far in excess of the MSRP—which should be a mere $249—but it's actually in excess of the MSRP of the RTX 5060 Ti 8 GB at $379.</p><p>The cheapest RTX 5060 Ti 8 GB I could find is <a href="https://www.amazon.com/ASUS-DisplayPort-2-5-Slot-Axial-tech-Technology/dp/B0F8PR9L3X/" target="_blank">$470</a>, and the cheapest RTX 5060 is <a href="https://www.newegg.com/zotac-rtx-5060-amp-geforce-rtx-5060-8gb-graphics-card-double-fans/p/N82E16814500658" target="_blank">$420</a>.</p><p>Moreover, if you look beyond the 8 GB options at the bottom of the stack, to the RTX 5060 Ti 16 GB, that card jumps up to <a href="https://www.amazon.co.uk/dp/B0F4RZDFD5" target="_blank">$789</a>. That should be around the $429 mark MSRP-wise—<em>should.</em></p><p><em>What's even worse </em>is the RTX 5060 Ti 16 GB is currently the same price as the RTX 5070. That card is also <a href="https://www.walmart.com/ip/PNY-GeForce-RTX-5070-Overclocked-Triple-Fan-Graphics-DLSS-4-Video-Card/15371260951" target="_blank">$789</a>.</p><p>It's pretty terrible anywhere you look. Our own in-house tracking shows prices are currently spiking once again, not the least bit the high-end market. </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-1792679910923-z7ixryjjv *, #fv-chart-1792679910923-z7ixryjjv *:before, #fv-chart-1792679910923-z7ixryjjv *:after, #fv-chart-1792679910923-z7ixryjjv-slideshow *, #fv-chart-1792679910923-z7ixryjjv-slideshow *:before, #fv-chart-1792679910923-z7ixryjjv-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792679910923-z7ixryjjv, #fv-chart-1792679910923-z7ixryjjv-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792679910923-z7ixryjjv { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792679910923-z7ixryjjv-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792679910923-z7ixryjjv-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792679910923-z7ixryjjv-slideshow .fv-nav-btn.disabled, #fv-chart-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792679910923-z7ixryjjv .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-row, #fv-chart-1792679910923-z7ixryjjv .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792679910923-z7ixryjjv .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792679910923-z7ixryjjv .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792679910923-z7ixryjjv .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792679910923-z7ixryjjv .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792679910923-z7ixryjjv.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792679910923-z7ixryjjv .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv.mobile-view .fv-pie-container, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-stacked-product, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-grouped-bar-product, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-row, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-stacked-product, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.mobile-view .fv-bar-label, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-grouped-product-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-label, #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.mobile-view .fv-bar-container, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-cluster, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-container, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.mobile-view .fv-x-axis-wrapper, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-x-axis-label-space, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-x-axis-chart-space, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-benchmark-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-dropdown-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-carousel-nav-btn, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-chart-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-chart-subhead, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-header, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select-wrapper, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-vs, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select-container, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-dials-grid, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-dial-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792679910923-z7ixryjjv .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-row, #fv-chart-1792679910923-z7ixryjjv .fv-stacked-product, #fv-chart-1792679910923-z7ixryjjv .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-label, #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-container, #fv-chart-1792679910923-z7ixryjjv .fv-bar-cluster { width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-label-space { display: none !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-stl-shop-all-logo, #fv-chart-1792679910923-z7ixryjjv .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dial-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792679910923-z7ixryjjv.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": "Lowest price per GPU",  "description": "We've been measuring the lowest available price of each current-gen GPU since August 14, 2025.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-22T14:38:30.926Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "AMD Radeon RX 9070 GRE",    "AMD RX 9060 XT 16 GB",    "AMD RX 9060 XT 8 GB",    "AMD RX 9070",    "AMD RX 9070 XT",    "Intel Arc B570",    "Intel Arc B580",    "Nvidia RTX 5050",    "Nvidia RTX 5060",    "Nvidia RTX 5060 Ti 16 GB",    "Nvidia RTX 5060 Ti 8 GB",    "Nvidia RTX 5070",    "Nvidia RTX 5070 Ti",    "Nvidia RTX 5080",    "Lowest pricing",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "AMD RX 9060 XT 16 GB – Lowest pricing",      "value": 520,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "AMD RX 9060 XT 8 GB – Lowest pricing",      "value": 400,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "AMD RX 9070 – Lowest pricing",      "value": 700,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "AMD RX 9070 XT – Lowest pricing",      "value": 830,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Intel Arc B570 – Lowest pricing",      "value": 290,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Intel Arc B580 – Lowest pricing",      "value": 330,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5050 – Lowest pricing",      "value": 400,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5060 – Lowest pricing",      "value": 439,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5060 Ti 16 GB – Lowest pricing",      "value": 789,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5060 Ti 8 GB – Lowest pricing",      "value": 470,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5070 – Lowest pricing",      "value": 789,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5070 Ti – Lowest pricing",      "value": 1200,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5080 – Lowest pricing",      "value": 1800,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "AMD Radeon RX 9070 GRE – Lowest pricing",      "value": 570,      "unitText": "Price, $"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-22T14:38:30.926Z","state":{"data":[{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":449,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":450,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":460,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":275,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":288,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":288,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":409,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":450,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":560,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":580,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":580,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":580,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":590,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":610,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":610,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":635,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":667,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":695,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":670,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":670,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":660,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":670,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":690,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":740,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":740,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":760,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":760,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":800,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":830,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":220,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":210,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":202,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":202,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":202,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":304,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":304,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":304,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":298,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":291,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":220,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":220,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":220,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":235,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":291,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":296,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":289,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":279,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":279,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":279,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":279,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":339,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":439,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":379,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":420,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":420,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":450,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":450,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":515,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":515,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":490,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":565,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":560,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":780,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":773,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":780,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":780,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":789,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":789,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":789,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":368,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":345,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":342,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":323,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":320,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":320,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":342,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":313,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":351,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":420,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":420,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":389,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":389,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":389,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":389,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":488,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":524,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":546,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":481,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":499,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":480,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":489,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":527,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":540,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":499,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":499,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":549,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":540,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":549,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":625,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":604,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":640,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":636,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":560,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":755,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":763,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":800,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":759,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":725,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":779,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":779,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":779,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":789,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":780,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":749,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":749,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":749,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":699,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":749,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":829,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":899,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":900,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":900,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":920,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":955,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":900,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1030,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1088,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1200,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1100,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1099,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":929,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":999,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":999,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":989,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":989,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1100,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1230,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1268,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1380,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1350,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1365,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1365,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1260,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1270,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1479,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1550,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1550,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1450,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1450,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1653,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1654,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1800,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2400,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2000,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2280,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2250,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2348,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2240,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2400,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2250,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2500,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2650,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2650,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2773,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2450,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2800,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2450,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2800,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":3800,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":3800,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":3800,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4300,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4200,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4200,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4200,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4000,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4000,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4200,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4400,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4298,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4930,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":5300,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":5700,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"}],"products":["AMD Radeon RX 9070 GRE","AMD RX 9060 XT 16 GB","AMD RX 9060 XT 8 GB","AMD RX 9070","AMD RX 9070 XT","Intel Arc B570","Intel Arc B580","Nvidia RTX 5050","Nvidia RTX 5060","Nvidia RTX 5060 Ti 16 GB","Nvidia RTX 5060 Ti 8 GB","Nvidia RTX 5070","Nvidia RTX 5070 Ti","Nvidia RTX 5080","Nvidia RTX 5090"],"attributes":["Lowest pricing"],"selectedProducts":["AMD Radeon RX 9070 GRE","AMD RX 9060 XT 16 GB","AMD RX 9060 XT 8 GB","AMD RX 9070","AMD RX 9070 XT","Intel Arc B570","Intel Arc B580","Nvidia RTX 5050","Nvidia RTX 5060","Nvidia RTX 5060 Ti 16 GB","Nvidia RTX 5060 Ti 8 GB","Nvidia RTX 5070","Nvidia RTX 5070 Ti","Nvidia RTX 5080"],"selectedPrimaryProduct":null,"selectedAttributes":["Lowest pricing"],"productColors":[{"productName":"AMD Radeon RX 9070 GRE","color":"#E33235"},{"productName":"AMD RX 9060 XT 16 GB","color":"#FE9F58"},{"productName":"AMD RX 9060 XT 8 GB","color":"#1CA9C4"},{"productName":"AMD RX 9070","color":"#EB6F71"},{"productName":"AMD RX 9070 XT","color":"#FFC08B"},{"productName":"Intel Arc B570","color":"#66C5D7"},{"productName":"Intel Arc B580","color":"#B5282A"},{"productName":"Nvidia RTX 5050","color":"#D07F46"},{"productName":"Nvidia RTX 5060","color":"#e97a7b"},{"productName":"Nvidia RTX 5060 Ti 16 GB","color":"#e38e4f"},{"productName":"Nvidia RTX 5060 Ti 8 GB","color":"#75bdd1"},{"productName":"Nvidia RTX 5070","color":"#d26365"},{"productName":"Nvidia RTX 5070 Ti","color":"#ffcea9"},{"productName":"Nvidia RTX 5080","color":"#5bb0c0"},{"productName":"Nvidia RTX 5090","color":"#c67878"}],"initialProductColors":[{"productName":"AMD Radeon RX 9070 GRE","color":"#E33235"},{"productName":"AMD RX 9060 XT 16 GB","color":"#FE9F58"},{"productName":"AMD RX 9060 XT 8 GB","color":"#1CA9C4"},{"productName":"AMD RX 9070","color":"#EB6F71"},{"productName":"AMD RX 9070 XT","color":"#FFC08B"},{"productName":"Intel Arc B570","color":"#66C5D7"},{"productName":"Intel Arc B580","color":"#B5282A"},{"productName":"Nvidia RTX 5050","color":"#D07F46"},{"productName":"Nvidia RTX 5060","color":"#e97a7b"},{"productName":"Nvidia RTX 5060 Ti 16 GB","color":"#e38e4f"},{"productName":"Nvidia RTX 5060 Ti 8 GB","color":"#75bdd1"},{"productName":"Nvidia RTX 5070","color":"#d26365"},{"productName":"Nvidia RTX 5070 Ti","color":"#ffcea9"},{"productName":"Nvidia RTX 5080","color":"#5bb0c0"},{"productName":"Nvidia RTX 5090","color":"#c67878"}],"attributeColors":[],"attributeGroups":[],"chartType":"Line","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":"Lowest price per GPU","subhead":"We've been measuring the lowest available price of each current-gen GPU since August 14, 2025.","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},"slides":[]}</script><div id="fv-chart-1792679910923-z7ixryjjv" class="fv-chart-wrapper fv-contains-line-chart  " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Lowest price per GPU</h3><p class="fv-chart-subhead">We've been measuring the lowest available price of each current-gen GPU since August 14, 2025.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792679910923-z7ixryjjv-line-Lowest pricing" data-chart-type="Line" data-title="Lowest pricing" data-subhead="We've been measuring the lowest available price of each current-gen GPU since August 14, 2025." data-caption="" style=""><div class="fv-benchmark-group"><div class="riv-line-chart-container" id="fv-chart-1792679910923-z7ixryjjv-line-Lowest pricing" role="group" aria-label="Line chart for Lowest pricing" style="position: relative;"><style>.riv-line-chart-container { width: 100% !important; }.riv-line-chart-svg-desktop { display: block !important; }.riv-line-chart-svg-mobile { display: none !important; }.mobile-view .riv-line-chart-svg-desktop { display: none !important; }.mobile-view .riv-line-chart-svg-mobile { display: block !important; }@media (max-width: 599px) { .riv-line-chart-svg-desktop { display: none !important; } .riv-line-chart-svg-mobile { display: block !important; } }.riv-line-legend { display: flex !important; flex-wrap: wrap !important; justify-content: center !important; gap: 8px 16px !important; margin-top: 16px !important; font-family: 'Open Sans', sans-serif !important; }.riv-legend-item { display: inline-flex !important; align-items: center !important; gap: 6px !important; font-size: 13px !important; color: #374151 !important; background: none !important; border: none !important; padding: 4px !important; border-radius: 4px !important; cursor: pointer !important; transition: opacity 0.2s !important; }.riv-legend-item.fv-primary-product { font-weight: bold !important; }.riv-legend-item:focus { outline: 2px solid var(--riv-primary) !important; }.riv-legend-marker { width: 12px !important; height: 12px !important; border-radius: 50% !important; }</style><div class="fv-y-axis-title">Lowest pricing (Price, $)</div><svg class="riv-line-chart-svg-desktop" style="overflow: visible;" fill="none" viewBox="0 0 600 340" width="100%" height="auto" aria-hidden="true"><g class="riv-grid"><line x1="45" x2="580" y1="275.00" y2="275.00" /><line x1="45" x2="580" y1="208.75" y2="208.75" /><line x1="45" x2="580" y1="142.50" y2="142.50" /><line x1="45" x2="580" y1="76.25" y2="76.25" /><line x1="45" x2="580" y1="10.00" y2="10.00" /><line x1="248.30" x2="248.30" y1="10" y2="275" /><line x1="462.30" x2="462.30" y1="10" y2="275" /></g><g class="riv-axes"><line x1="45" x2="45" y1="10" y2="275" stroke="#D1D5DB" /><line x1="45" x2="580" y1="275" y2="275" stroke="#D1D5DB" /><text x="37" y="275.00" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">0</text><text x="37" y="208.75" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">500</text><text x="37" y="142.50" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">1000</text><text x="37" y="76.25" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">1500</text><text x="37" y="10.00" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">2000</text><text x="248.30" y="287" transform="rotate(-45 248.30 287)" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">20 Week</text><text x="462.30" y="287" transform="rotate(-45 462.30 287)" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">40 Week</text></g><path class="riv-line-path" d="M 419.50,202.13 C 423.07,202.13 426.63,202.13 430.20,202.13 C 433.77,202.13 437.33,202.13 440.90,202.13 C 444.47,202.13 448.03,208.75 451.60,208.75 C 455.17,208.75 458.73,208.75 462.30,208.75 C 465.87,208.75 469.43,208.75 473.00,208.75 C 476.57,208.75 480.13,202.13 483.70,202.13 C 487.27,202.13 490.83,208.75 494.40,208.75 C 497.97,208.75 501.53,208.75 505.10,208.75 C 508.67,208.75 512.23,204.77 515.80,204.77 C 519.37,204.77 522.93,204.77 526.50,204.77 C 530.07,204.77 533.63,206.10 537.20,206.10 C 540.77,206.10 544.33,208.75 547.90,208.75 C 551.47,208.75 555.03,199.48 558.60,199.48 C 562.17,199.48 565.73,202.13 569.30,202.13 C 572.87,202.13 576.43,199.48 580.00,199.48" data-product="AMD Radeon RX 9070 GRE" fill="none" stroke="#E33235" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,225.97 C 48.57,225.97 52.13,225.97 55.70,225.97 C 59.27,225.97 62.83,225.97 66.40,225.97 C 69.97,225.97 73.53,225.97 77.10,225.97 C 80.67,225.97 84.23,228.63 87.80,228.63 C 91.37,228.63 94.93,228.63 98.50,228.63 C 102.07,228.63 105.63,228.63 109.20,228.63 C 112.77,228.63 116.33,228.63 119.90,228.63 C 123.47,228.63 127.03,228.63 130.60,228.63 C 134.17,228.63 137.73,227.30 141.30,227.30 C 144.87,227.30 148.43,229.95 152.00,229.95 C 155.57,229.95 159.13,228.63 162.70,228.63 C 166.27,228.63 169.83,228.63 173.40,228.63 C 176.97,228.63 180.53,225.97 184.10,225.97 C 187.67,225.97 191.23,224.65 194.80,224.65 C 198.37,224.65 201.93,224.65 205.50,224.65 C 209.07,224.65 212.63,223.32 216.20,223.32 C 219.77,223.32 223.33,223.32 226.90,223.32 C 230.47,223.32 234.03,222.00 237.60,222.00 C 241.17,222.00 244.73,216.70 248.30,216.70 C 251.87,216.70 255.43,216.70 259.00,216.70 C 262.57,216.70 266.13,222.00 269.70,222.00 C 273.27,222.00 276.83,216.70 280.40,216.70 C 283.97,216.70 287.53,216.70 291.10,216.70 C 294.67,216.70 298.23,216.70 301.80,216.70 C 305.37,216.70 308.93,216.70 312.50,216.70 C 316.07,216.70 319.63,216.70 323.20,216.70 C 326.77,216.70 330.33,216.70 333.90,216.70 C 337.47,216.70 341.03,215.51 344.60,215.51 C 348.17,215.51 351.73,216.70 355.30,216.70 C 358.87,216.70 362.43,216.70 366.00,216.70 C 369.57,216.70 373.13,218.03 376.70,218.03 C 380.27,218.03 383.83,218.03 387.40,218.03 C 390.97,218.03 394.53,216.70 398.10,216.70 C 401.67,216.70 405.23,218.03 408.80,218.03 C 412.37,218.03 415.93,216.70 419.50,216.70 C 423.07,216.70 426.63,216.70 430.20,216.70 C 433.77,216.70 437.33,216.70 440.90,216.70 C 444.47,216.70 448.03,222.00 451.60,222.00 C 455.17,222.00 458.73,218.03 462.30,218.03 C 465.87,218.03 469.43,218.03 473.00,218.03 C 476.57,218.03 480.13,215.38 483.70,215.38 C 487.27,215.38 490.83,212.72 494.40,212.72 C 497.97,212.72 501.53,212.72 505.10,212.72 C 508.67,212.72 512.23,214.05 515.80,214.05 C 519.37,214.05 522.93,212.72 526.50,212.72 C 530.07,212.72 533.63,212.72 537.20,212.72 C 540.77,212.72 544.33,212.72 547.90,212.72 C 551.47,212.72 555.03,208.75 558.60,208.75 C 562.17,208.75 565.73,206.10 569.30,206.10 C 572.87,206.10 576.43,206.10 580.00,206.10" data-product="AMD RX 9060 XT 16 GB" fill="none" stroke="#FE9F58" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,237.90 C 48.57,237.90 52.13,239.22 55.70,239.22 C 59.27,239.22 62.83,237.90 66.40,237.90 C 69.97,237.90 73.53,237.90 77.10,237.90 C 80.67,237.90 84.23,239.22 87.80,239.22 C 91.37,239.22 94.93,239.22 98.50,239.22 C 102.07,239.22 105.63,239.22 109.20,239.22 C 112.77,239.22 116.33,239.22 119.90,239.22 C 123.47,239.22 127.03,239.22 130.60,239.22 C 134.17,239.22 137.73,239.22 141.30,239.22 C 144.87,239.22 148.43,241.88 152.00,241.88 C 155.57,241.88 159.13,238.56 162.70,238.56 C 166.27,238.56 169.83,237.90 173.40,237.90 C 176.97,237.90 180.53,237.90 184.10,237.90 C 187.67,237.90 191.23,236.84 194.80,236.84 C 198.37,236.84 201.93,236.84 205.50,236.84 C 209.07,236.84 212.63,233.93 216.20,233.93 C 219.77,233.93 223.33,233.93 226.90,233.93 C 230.47,233.93 234.03,233.93 237.60,233.93 C 241.17,233.93 244.73,233.93 248.30,233.93 C 251.87,233.93 255.43,228.63 259.00,228.63 C 262.57,228.63 266.13,229.16 269.70,229.16 C 273.27,229.16 276.83,229.16 280.40,229.16 C 283.97,229.16 287.53,229.16 291.10,229.16 C 294.67,229.16 298.23,229.16 301.80,229.16 C 305.37,229.16 308.93,229.95 312.50,229.95 C 316.07,229.95 319.63,229.95 323.20,229.95 C 326.77,229.95 330.33,229.16 333.90,229.16 C 337.47,229.16 341.03,228.63 344.60,228.63 C 348.17,228.63 351.73,228.63 355.30,228.63 C 358.87,228.63 362.43,228.63 366.00,228.63 C 369.57,228.63 373.13,227.30 376.70,227.30 C 380.27,227.30 383.83,227.30 387.40,227.30 C 390.97,227.30 394.53,227.30 398.10,227.30 C 401.67,227.30 405.23,227.30 408.80,227.30 C 412.37,227.30 415.93,227.30 419.50,227.30 C 423.07,227.30 426.63,228.63 430.20,228.63 C 433.77,228.63 437.33,228.63 440.90,228.63 C 444.47,228.63 448.03,227.30 451.60,227.30 C 455.17,227.30 458.73,227.30 462.30,227.30 C 465.87,227.30 469.43,227.30 473.00,227.30 C 476.57,227.30 480.13,227.30 483.70,227.30 C 487.27,227.30 490.83,225.97 494.40,225.97 C 497.97,225.97 501.53,222.00 505.10,222.00 C 508.67,222.00 512.23,227.30 515.80,227.30 C 519.37,227.30 522.93,222.00 526.50,222.00 C 530.07,222.00 533.63,220.81 537.20,220.81 C 540.77,220.81 544.33,218.03 547.90,218.03 C 551.47,218.03 555.03,215.38 558.60,215.38 C 562.17,215.38 565.73,222.00 569.30,222.00 C 572.87,222.00 576.43,222.00 580.00,222.00" data-product="AMD RX 9060 XT 8 GB" fill="none" stroke="#1CA9C4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,195.50 C 48.57,195.50 52.13,195.50 55.70,195.50 C 59.27,195.50 62.83,202.13 66.40,202.13 C 69.97,202.13 73.53,202.13 77.10,202.13 C 80.67,202.13 84.23,195.50 87.80,195.50 C 91.37,195.50 94.93,195.50 98.50,195.50 C 102.07,195.50 105.63,202.13 109.20,202.13 C 112.77,202.13 116.33,202.13 119.90,202.13 C 123.47,202.13 127.03,200.80 130.60,200.80 C 134.17,200.80 137.73,202.13 141.30,202.13 C 144.87,202.13 148.43,202.13 152.00,202.13 C 155.57,202.13 159.13,204.77 162.70,204.77 C 166.27,204.77 169.83,204.77 173.40,204.77 C 176.97,204.77 180.53,204.77 184.10,204.77 C 187.67,204.77 191.23,204.77 194.80,204.77 C 198.37,204.77 201.93,204.77 205.50,204.77 C 209.07,204.77 212.63,198.15 216.20,198.15 C 219.77,198.15 223.33,198.15 226.90,198.15 C 230.47,198.15 234.03,198.15 237.60,198.15 C 241.17,198.15 244.73,195.50 248.30,195.50 C 251.87,195.50 255.43,196.82 259.00,196.82 C 262.57,196.82 266.13,191.53 269.70,191.53 C 273.27,191.53 276.83,191.53 280.40,191.53 C 283.97,191.53 287.53,192.85 291.10,192.85 C 294.67,192.85 298.23,194.18 301.80,194.18 C 305.37,194.18 308.93,194.18 312.50,194.18 C 316.07,194.18 319.63,191.53 323.20,191.53 C 326.77,191.53 330.33,192.85 333.90,192.85 C 337.47,192.85 341.03,192.85 344.60,192.85 C 348.17,192.85 351.73,192.85 355.30,192.85 C 358.87,192.85 362.43,192.85 366.00,192.85 C 369.57,192.85 373.13,192.85 376.70,192.85 C 380.27,192.85 383.83,195.50 387.40,195.50 C 390.97,195.50 394.53,192.85 398.10,192.85 C 401.67,192.85 405.23,195.50 408.80,195.50 C 412.37,195.50 415.93,195.50 419.50,195.50 C 423.07,195.50 426.63,195.50 430.20,195.50 C 433.77,195.50 437.33,195.50 440.90,195.50 C 444.47,195.50 448.03,195.50 451.60,195.50 C 455.17,195.50 458.73,195.50 462.30,195.50 C 465.87,195.50 469.43,195.50 473.00,195.50 C 476.57,195.50 480.13,190.86 483.70,190.86 C 487.27,190.86 490.83,188.88 494.40,188.88 C 497.97,188.88 501.53,188.88 505.10,188.88 C 508.67,188.88 512.23,191.53 515.80,191.53 C 519.37,191.53 522.93,188.88 526.50,188.88 C 530.07,188.88 533.63,188.88 537.20,188.88 C 540.77,188.88 544.33,188.88 547.90,188.88 C 551.47,188.88 555.03,186.62 558.60,186.62 C 562.17,186.62 565.73,182.25 569.30,182.25 C 572.87,182.25 576.43,182.25 580.00,182.25" data-product="AMD RX 9070" fill="none" stroke="#EB6F71" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,182.25 C 48.57,182.25 52.13,182.25 55.70,182.25 C 59.27,182.25 62.83,182.25 66.40,182.25 C 69.97,182.25 73.53,182.91 77.10,182.91 C 80.67,182.91 84.23,186.22 87.80,186.22 C 91.37,186.22 94.93,186.22 98.50,186.22 C 102.07,186.22 105.63,188.88 109.20,188.88 C 112.77,188.88 116.33,188.88 119.90,188.88 C 123.47,188.88 127.03,188.88 130.60,188.88 C 134.17,188.88 137.73,195.50 141.30,195.50 C 144.87,195.50 148.43,195.50 152.00,195.50 C 155.57,195.50 159.13,195.50 162.70,195.50 C 166.27,195.50 169.83,195.50 173.40,195.50 C 176.97,195.50 180.53,195.50 184.10,195.50 C 187.67,195.50 191.23,195.50 194.80,195.50 C 198.37,195.50 201.93,192.85 205.50,192.85 C 209.07,192.85 212.63,187.55 216.20,187.55 C 219.77,187.55 223.33,182.25 226.90,182.25 C 230.47,182.25 234.03,179.60 237.60,179.60 C 241.17,179.60 244.73,179.60 248.30,179.60 C 251.87,179.60 255.43,178.28 259.00,178.28 C 262.57,178.28 266.13,178.28 269.70,178.28 C 273.27,178.28 276.83,178.28 280.40,178.28 C 283.97,178.28 287.53,178.28 291.10,178.28 C 294.67,178.28 298.23,178.28 301.80,178.28 C 305.37,178.28 308.93,178.28 312.50,178.28 C 316.07,178.28 319.63,178.28 323.20,178.28 C 326.77,178.28 330.33,179.60 333.90,179.60 C 337.47,179.60 341.03,180.93 344.60,180.93 C 348.17,180.93 351.73,180.93 355.30,180.93 C 358.87,180.93 362.43,186.22 366.00,186.22 C 369.57,186.22 373.13,180.93 376.70,180.93 C 380.27,180.93 383.83,180.93 387.40,180.93 C 390.97,180.93 394.53,180.93 398.10,180.93 C 401.67,180.93 405.23,182.25 408.80,182.25 C 412.37,182.25 415.93,182.25 419.50,182.25 C 423.07,182.25 426.63,182.25 430.20,182.25 C 433.77,182.25 437.33,182.25 440.90,182.25 C 444.47,182.25 448.03,182.25 451.60,182.25 C 455.17,182.25 458.73,182.25 462.30,182.25 C 465.87,182.25 469.43,182.25 473.00,182.25 C 476.57,182.25 480.13,183.57 483.70,183.57 C 487.27,183.57 490.83,179.60 494.40,179.60 C 497.97,179.60 501.53,179.60 505.10,179.60 C 508.67,179.60 512.23,178.28 515.80,178.28 C 519.37,178.28 522.93,176.95 526.50,176.95 C 530.07,176.95 533.63,176.95 537.20,176.95 C 540.77,176.95 544.33,174.30 547.90,174.30 C 551.47,174.30 555.03,174.30 558.60,174.30 C 562.17,174.30 565.73,169.00 569.30,169.00 C 572.87,169.00 576.43,165.03 580.00,165.03" data-product="AMD RX 9070 XT" fill="none" stroke="#FFC08B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,244.53 C 48.57,244.53 52.13,244.53 55.70,244.53 C 59.27,244.53 62.83,244.53 66.40,244.53 C 69.97,244.53 73.53,244.53 77.10,244.53 C 80.67,244.53 84.23,244.53 87.80,244.53 C 91.37,244.53 94.93,244.53 98.50,244.53 C 102.07,244.53 105.63,244.53 109.20,244.53 C 112.77,244.53 116.33,248.50 119.90,248.50 C 123.47,248.50 127.03,245.85 130.60,245.85 C 134.17,245.85 137.73,247.18 141.30,247.18 C 144.87,247.18 148.43,248.50 152.00,248.50 C 155.57,248.50 159.13,248.50 162.70,248.50 C 166.27,248.50 169.83,248.50 173.40,248.50 C 176.97,248.50 180.53,248.24 184.10,248.24 C 187.67,248.24 191.23,248.24 194.80,248.24 C 198.37,248.24 201.93,248.24 205.50,248.24 C 209.07,248.24 212.63,248.50 216.20,248.50 C 219.77,248.50 223.33,248.50 226.90,248.50 C 230.47,248.50 234.03,248.50 237.60,248.50 C 241.17,248.50 244.73,248.50 248.30,248.50 C 251.87,248.50 255.43,241.88 259.00,241.88 C 262.57,241.88 266.13,241.88 269.70,241.88 C 273.27,241.88 276.83,241.88 280.40,241.88 C 283.97,241.88 287.53,241.88 291.10,241.88 C 294.67,241.88 298.23,241.88 301.80,241.88 C 305.37,241.88 308.93,241.88 312.50,241.88 C 316.07,241.88 319.63,241.88 323.20,241.88 C 326.77,241.88 330.33,241.88 333.90,241.88 C 337.47,241.88 341.03,241.88 344.60,241.88 C 348.17,241.88 351.73,240.55 355.30,240.55 C 358.87,240.55 362.43,240.55 366.00,240.55 C 369.57,240.55 373.13,240.55 376.70,240.55 C 380.27,240.55 383.83,240.55 387.40,240.55 C 390.97,240.55 394.53,240.55 398.10,240.55 C 401.67,240.55 405.23,240.55 408.80,240.55 C 412.37,240.55 415.93,240.55 419.50,240.55 C 423.07,240.55 426.63,241.88 430.20,241.88 C 433.77,241.88 437.33,241.88 440.90,241.88 C 444.47,241.88 448.03,241.88 451.60,241.88 C 455.17,241.88 458.73,240.55 462.30,240.55 C 465.87,240.55 469.43,241.88 473.00,241.88 C 476.57,241.88 480.13,240.55 483.70,240.55 C 487.27,240.55 490.83,240.55 494.40,240.55 C 497.97,240.55 501.53,240.55 505.10,240.55 C 508.67,240.55 512.23,240.55 515.80,240.55 C 519.37,240.55 522.93,240.55 526.50,240.55 C 530.07,240.55 533.63,240.55 537.20,240.55 C 540.77,240.55 544.33,240.55 547.90,240.55 C 551.47,240.55 555.03,240.55 558.60,240.55 C 562.17,240.55 565.73,236.57 569.30,236.57 C 572.87,236.57 576.43,236.57 580.00,236.57" data-product="Intel Arc B570" fill="none" stroke="#66C5D7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,240.55 C 48.57,240.55 52.13,240.55 55.70,240.55 C 59.27,240.55 62.83,241.88 66.40,241.88 C 69.97,241.88 73.53,241.88 77.10,241.88 C 80.67,241.88 84.23,241.88 87.80,241.88 C 91.37,241.88 94.93,241.88 98.50,241.88 C 102.07,241.88 105.63,241.88 109.20,241.88 C 112.77,241.88 116.33,241.88 119.90,241.88 C 123.47,241.88 127.03,241.88 130.60,241.88 C 134.17,241.88 137.73,241.88 141.30,241.88 C 144.87,241.88 148.43,241.88 152.00,241.88 C 155.57,241.88 159.13,241.88 162.70,241.88 C 166.27,241.88 169.83,241.88 173.40,241.88 C 176.97,241.88 180.53,241.88 184.10,241.88 C 187.67,241.88 191.23,243.20 194.80,243.20 C 198.37,243.20 201.93,243.20 205.50,243.20 C 209.07,243.20 212.63,241.88 216.20,241.88 C 219.77,241.88 223.33,241.88 226.90,241.88 C 230.47,241.88 234.03,240.55 237.60,240.55 C 241.17,240.55 244.73,236.57 248.30,236.57 C 251.87,236.57 255.43,236.57 259.00,236.57 C 262.57,236.57 266.13,235.25 269.70,235.25 C 273.27,235.25 276.83,235.25 280.40,235.25 C 283.97,235.25 287.53,235.25 291.10,235.25 C 294.67,235.25 298.23,235.25 301.80,235.25 C 305.37,235.25 308.93,235.25 312.50,235.25 C 316.07,235.25 319.63,235.25 323.20,235.25 C 326.77,235.25 330.33,236.57 333.90,236.57 C 337.47,236.57 341.03,236.57 344.60,236.57 C 348.17,236.57 351.73,236.57 355.30,236.57 C 358.87,236.57 362.43,236.57 366.00,236.57 C 369.57,236.57 373.13,236.57 376.70,236.57 C 380.27,236.57 383.83,236.57 387.40,236.57 C 390.97,236.57 394.53,236.57 398.10,236.57 C 401.67,236.57 405.23,234.72 408.80,234.72 C 412.37,234.72 415.93,235.25 419.50,235.25 C 423.07,235.25 426.63,234.72 430.20,234.72 C 433.77,234.72 437.33,234.72 440.90,234.72 C 444.47,234.72 448.03,235.51 451.60,235.51 C 455.17,235.51 458.73,236.44 462.30,236.44 C 465.87,236.44 469.43,236.57 473.00,236.57 C 476.57,236.57 480.13,236.57 483.70,236.57 C 487.27,236.57 490.83,233.93 494.40,233.93 C 497.97,233.93 501.53,233.93 505.10,233.93 C 508.67,233.93 512.23,233.93 515.80,233.93 C 519.37,233.93 522.93,233.93 526.50,233.93 C 530.07,233.93 533.63,233.93 537.20,233.93 C 540.77,233.93 544.33,231.28 547.90,231.28 C 551.47,231.28 555.03,231.28 558.60,231.28 C 562.17,231.28 565.73,231.28 569.30,231.28 C 572.87,231.28 576.43,231.28 580.00,231.28" data-product="Intel Arc B580" fill="none" stroke="#B5282A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,241.88 C 48.57,241.88 52.13,241.88 55.70,241.88 C 59.27,241.88 62.83,241.88 66.40,241.88 C 69.97,241.88 73.53,241.88 77.10,241.88 C 80.67,241.88 84.23,241.88 87.80,241.88 C 91.37,241.88 94.93,243.20 98.50,243.20 C 102.07,243.20 105.63,243.20 109.20,243.20 C 112.77,243.20 116.33,241.88 119.90,241.88 C 123.47,241.88 127.03,241.88 130.60,241.88 C 134.17,241.88 137.73,241.88 141.30,241.88 C 144.87,241.88 148.43,244.53 152.00,244.53 C 155.57,244.53 159.13,245.85 162.70,245.85 C 166.27,245.85 169.83,245.85 173.40,245.85 C 176.97,245.85 180.53,245.85 184.10,245.85 C 187.67,245.85 191.23,248.50 194.80,248.50 C 198.37,248.50 201.93,248.50 205.50,248.50 C 209.07,248.50 212.63,243.86 216.20,243.86 C 219.77,243.86 223.33,243.20 226.90,243.20 C 230.47,243.20 234.03,243.20 237.60,243.20 C 241.17,243.20 244.73,243.20 248.30,243.20 C 251.87,243.20 255.43,240.55 259.00,240.55 C 262.57,240.55 266.13,240.55 269.70,240.55 C 273.27,240.55 276.83,240.55 280.40,240.55 C 283.97,240.55 287.53,240.55 291.10,240.55 C 294.67,240.55 298.23,240.55 301.80,240.55 C 305.37,240.55 308.93,236.57 312.50,236.57 C 316.07,236.57 319.63,236.57 323.20,236.57 C 326.77,236.57 330.33,236.57 333.90,236.57 C 337.47,236.57 341.03,236.57 344.60,236.57 C 348.17,236.57 351.73,236.57 355.30,236.57 C 358.87,236.57 362.43,236.57 366.00,236.57 C 369.57,236.57 373.13,236.57 376.70,236.57 C 380.27,236.57 383.83,236.57 387.40,236.57 C 390.97,236.57 394.53,236.57 398.10,236.57 C 401.67,236.57 405.23,236.57 408.80,236.57 C 412.37,236.57 415.93,236.57 419.50,236.57 C 423.07,236.57 426.63,236.57 430.20,236.57 C 433.77,236.57 437.33,236.57 440.90,236.57 C 444.47,236.57 448.03,236.57 451.60,236.57 C 455.17,236.57 458.73,236.57 462.30,236.57 C 465.87,236.57 469.43,236.57 473.00,236.57 C 476.57,236.57 480.13,236.57 483.70,236.57 C 487.27,236.57 490.83,235.38 494.40,235.38 C 497.97,235.38 501.53,235.38 505.10,235.38 C 508.67,235.38 512.23,235.38 515.80,235.38 C 519.37,235.38 522.93,235.38 526.50,235.38 C 530.07,235.38 533.63,235.38 537.20,235.38 C 537.20,235.38 537.20,235.38 537.20,235.38 C 544.33,235.38 551.47,233.93 558.60,233.93 C 562.17,233.93 565.73,233.93 569.30,233.93 C 572.87,233.93 576.43,222.00 580.00,222.00" data-product="Nvidia RTX 5050" fill="none" stroke="#D07F46" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,235.25 C 48.57,235.25 52.13,235.25 55.70,235.25 C 59.27,235.25 62.83,236.44 66.40,236.44 C 69.97,236.44 73.53,235.78 77.10,235.78 C 80.67,235.78 84.23,235.25 87.80,235.25 C 91.37,235.25 94.93,236.71 98.50,236.71 C 102.07,236.71 105.63,235.38 109.20,235.38 C 112.77,235.38 116.33,235.38 119.90,235.38 C 123.47,235.38 127.03,235.38 130.60,235.38 C 134.17,235.38 137.73,235.38 141.30,235.38 C 144.87,235.38 148.43,237.90 152.00,237.90 C 155.57,237.90 159.13,238.03 162.70,238.03 C 166.27,238.03 169.83,238.03 173.40,238.03 C 176.97,238.03 180.53,238.03 184.10,238.03 C 187.67,238.03 191.23,238.03 194.80,238.03 C 198.37,238.03 201.93,239.22 205.50,239.22 C 209.07,239.22 212.63,240.55 216.20,240.55 C 219.77,240.55 223.33,236.57 226.90,236.57 C 230.47,236.57 234.03,235.38 237.60,235.38 C 241.17,235.38 244.73,235.38 248.30,235.38 C 251.87,235.38 255.43,235.38 259.00,235.38 C 262.57,235.38 266.13,235.38 269.70,235.38 C 273.27,235.38 276.83,229.95 280.40,229.95 C 283.97,229.95 287.53,229.95 291.10,229.95 C 294.67,229.95 298.23,228.76 301.80,228.76 C 305.37,228.76 308.93,228.76 312.50,228.76 C 316.07,228.76 319.63,228.76 323.20,228.76 C 326.77,228.76 330.33,228.76 333.90,228.76 C 337.47,228.76 341.03,228.76 344.60,228.76 C 348.17,228.76 351.73,231.28 355.30,231.28 C 358.87,231.28 362.43,231.28 366.00,231.28 C 369.57,231.28 373.13,233.93 376.70,233.93 C 380.27,233.93 383.83,228.76 387.40,228.76 C 390.97,228.76 394.53,228.76 398.10,228.76 C 401.67,228.76 405.23,228.63 408.80,228.63 C 412.37,228.63 415.93,229.95 419.50,229.95 C 423.07,229.95 426.63,229.95 430.20,229.95 C 433.77,229.95 437.33,229.95 440.90,229.95 C 444.47,229.95 448.03,229.95 451.60,229.95 C 455.17,229.95 458.73,229.95 462.30,229.95 C 465.87,229.95 469.43,230.08 473.00,230.08 C 476.57,230.08 480.13,228.63 483.70,228.63 C 487.27,228.63 490.83,227.43 494.40,227.43 C 501.53,227.43 508.67,227.43 515.80,227.43 C 519.37,227.43 522.93,227.43 526.50,227.43 C 530.07,227.43 533.63,227.43 537.20,227.43 C 540.77,227.43 544.33,227.43 547.90,227.43 C 551.47,227.43 555.03,224.65 558.60,224.65 C 562.17,224.65 565.73,216.83 569.30,216.83" data-product="Nvidia RTX 5060" fill="none" stroke="#e97a7b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,218.03 C 48.57,218.03 52.13,218.03 55.70,218.03 C 59.27,218.03 62.83,218.03 66.40,218.03 C 69.97,218.03 73.53,218.03 77.10,218.03 C 80.67,218.03 84.23,218.03 87.80,218.03 C 91.37,218.03 94.93,224.78 98.50,224.78 C 102.07,224.78 105.63,218.03 109.20,218.03 C 112.77,218.03 116.33,218.03 119.90,218.03 C 123.47,218.03 127.03,218.03 130.60,218.03 C 134.17,218.03 137.73,218.03 141.30,218.03 C 144.87,218.03 148.43,222.00 152.00,222.00 C 155.57,222.00 159.13,222.00 162.70,222.00 C 166.27,222.00 169.83,219.35 173.40,219.35 C 176.97,219.35 180.53,219.35 184.10,219.35 C 187.67,219.35 191.23,218.03 194.80,218.03 C 198.37,218.03 201.93,218.03 205.50,218.03 C 209.07,218.03 212.63,218.03 216.20,218.03 C 219.77,218.03 223.33,215.38 226.90,215.38 C 230.47,215.38 234.03,215.38 237.60,215.38 C 241.17,215.38 244.73,206.10 248.30,206.10 C 251.87,206.10 255.43,206.10 259.00,206.10 C 262.57,206.10 266.13,206.10 269.70,206.10 C 273.27,206.10 276.83,206.10 280.40,206.10 C 283.97,206.10 287.53,206.10 291.10,206.10 C 294.67,206.10 298.23,202.13 301.80,202.13 C 305.37,202.13 308.93,202.13 312.50,202.13 C 316.07,202.13 319.63,199.48 323.20,199.48 C 326.77,199.48 330.33,206.76 333.90,206.76 C 337.47,206.76 341.03,208.75 344.60,208.75 C 348.17,208.75 351.73,208.75 355.30,208.75 C 358.87,208.75 362.43,208.75 366.00,208.75 C 369.57,208.75 373.13,206.76 376.70,206.76 C 380.27,206.76 383.83,210.07 387.40,210.07 C 390.97,210.07 394.53,202.13 398.10,202.13 C 401.67,202.13 405.23,202.13 408.80,202.13 C 412.37,202.13 415.93,202.13 419.50,202.13 C 423.07,202.13 426.63,199.48 430.20,199.48 C 433.77,199.48 437.33,199.48 440.90,199.48 C 444.47,199.48 448.03,199.48 451.60,199.48 C 455.17,199.48 458.73,200.14 462.30,200.14 C 465.87,200.14 469.43,200.80 473.00,200.80 C 476.57,200.80 480.13,199.48 483.70,199.48 C 487.27,199.48 490.83,188.88 494.40,188.88 C 497.97,188.88 501.53,171.65 505.10,171.65 C 508.67,171.65 512.23,172.58 515.80,172.58 C 519.37,172.58 522.93,199.48 526.50,199.48 C 530.07,199.48 533.63,199.48 537.20,199.48 C 540.77,199.48 544.33,171.65 547.90,171.65 C 551.47,171.65 555.03,171.65 558.60,171.65 C 562.17,171.65 565.73,170.46 569.30,170.46 C 572.87,170.46 576.43,170.46 580.00,170.46 C 580.00,170.46 580.00,170.46 580.00,170.46" data-product="Nvidia RTX 5060 Ti 16 GB" fill="none" stroke="#e38e4f" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,226.24 C 48.57,226.24 52.13,229.95 55.70,229.95 C 59.27,229.95 62.83,225.97 66.40,225.97 C 69.97,225.97 73.53,229.29 77.10,229.29 C 80.67,229.29 84.23,229.95 87.80,229.95 C 91.37,229.95 94.93,229.95 98.50,229.95 C 102.07,229.95 105.63,228.63 109.20,228.63 C 112.77,228.63 116.33,229.69 119.90,229.69 C 123.47,229.69 127.03,232.20 130.60,232.20 C 134.17,232.20 137.73,229.95 141.30,229.95 C 144.87,229.95 148.43,232.60 152.00,232.60 C 155.57,232.60 159.13,232.60 162.70,232.60 C 166.27,232.60 169.83,229.69 173.40,229.69 C 176.97,229.69 180.53,233.53 184.10,233.53 C 187.67,233.53 191.23,228.63 194.80,228.63 C 198.37,228.63 201.93,228.63 205.50,228.63 C 209.07,228.63 212.63,231.28 216.20,231.28 C 219.77,231.28 223.33,231.28 226.90,231.28 C 230.47,231.28 234.03,231.28 237.60,231.28 C 241.17,231.28 244.73,231.28 248.30,231.28 C 251.87,231.28 255.43,228.49 259.00,228.49 C 262.57,228.49 266.13,227.30 269.70,227.30 C 273.27,227.30 276.83,227.30 280.40,227.30 C 283.97,227.30 287.53,227.30 291.10,227.30 C 294.67,227.30 298.23,227.30 301.80,227.30 C 305.37,227.30 308.93,227.30 312.50,227.30 C 316.07,227.30 319.63,227.30 323.20,227.30 C 326.77,227.30 330.33,223.32 333.90,223.32 C 337.47,223.32 341.03,223.32 344.60,223.32 C 348.17,223.32 351.73,223.32 355.30,223.32 C 358.87,223.32 362.43,224.65 366.00,224.65 C 369.57,224.65 373.13,224.65 376.70,224.65 C 380.27,224.65 383.83,222.00 387.40,222.00 C 390.97,222.00 394.53,224.65 398.10,224.65 C 401.67,224.65 405.23,224.65 408.80,224.65 C 412.37,224.65 415.93,225.97 419.50,225.97 C 423.07,225.97 426.63,225.97 430.20,225.97 C 433.77,225.97 437.33,225.97 440.90,225.97 C 444.47,225.97 448.03,231.28 451.60,231.28 C 455.17,231.28 458.73,231.28 462.30,231.28 C 465.87,231.28 469.43,231.28 473.00,231.28 C 476.57,231.28 480.13,224.65 483.70,224.65 C 487.27,224.65 490.83,219.35 494.40,219.35 C 497.97,219.35 501.53,219.35 505.10,219.35 C 508.67,219.35 512.23,223.46 515.80,223.46 C 519.37,223.46 522.93,223.46 526.50,223.46 C 530.07,223.46 533.63,223.46 537.20,223.46 C 540.77,223.46 544.33,223.46 547.90,223.46 C 551.47,223.46 555.03,210.34 558.60,210.34 C 562.17,210.34 565.73,212.72 569.30,212.72 C 572.87,212.72 576.43,212.72 580.00,212.72" data-product="Nvidia RTX 5060 Ti 8 GB" fill="none" stroke="#75bdd1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,202.13 C 48.57,202.13 52.13,202.13 55.70,202.13 C 59.27,202.13 62.83,205.57 66.40,205.57 C 69.97,205.57 73.53,202.66 77.10,202.66 C 80.67,202.66 84.23,211.27 87.80,211.27 C 91.37,211.27 94.93,208.88 98.50,208.88 C 102.07,208.88 105.63,206.10 109.20,206.10 C 112.77,206.10 116.33,208.75 119.90,208.75 C 123.47,208.75 127.03,208.75 130.60,208.75 C 134.17,208.75 137.73,211.40 141.30,211.40 C 144.87,211.40 148.43,210.21 152.00,210.21 C 155.57,210.21 159.13,208.75 162.70,208.75 C 166.27,208.75 169.83,205.17 173.40,205.17 C 176.97,205.17 180.53,203.45 184.10,203.45 C 187.67,203.45 191.23,208.88 194.80,208.88 C 198.37,208.88 201.93,208.88 205.50,208.88 C 209.07,208.88 212.63,202.26 216.20,202.26 C 219.77,202.26 223.33,203.45 226.90,203.45 C 230.47,203.45 234.03,202.26 237.60,202.26 C 241.17,202.26 244.73,192.85 248.30,192.85 C 251.87,192.85 255.43,192.85 259.00,192.85 C 262.57,192.85 266.13,192.85 269.70,192.85 C 273.27,192.85 276.83,191.53 280.40,191.53 C 283.97,191.53 287.53,192.19 291.10,192.19 C 294.67,192.19 298.23,191.53 301.80,191.53 C 305.37,191.53 308.93,194.97 312.50,194.97 C 316.07,194.97 319.63,190.20 323.20,190.20 C 326.77,190.20 330.33,191.53 333.90,191.53 C 337.47,191.53 341.03,190.73 344.60,190.73 C 348.17,190.73 351.73,191.53 355.30,191.53 C 358.87,191.53 362.43,195.63 366.00,195.63 C 369.57,195.63 373.13,195.63 376.70,195.63 C 380.27,195.63 383.83,195.63 387.40,195.63 C 390.97,195.63 394.53,195.63 398.10,195.63 C 401.67,195.63 405.23,195.63 408.80,195.63 C 412.37,195.63 415.93,195.63 419.50,195.63 C 423.07,195.63 426.63,195.63 430.20,195.63 C 433.77,195.63 437.33,195.63 440.90,195.63 C 444.47,195.63 448.03,195.63 451.60,195.63 C 455.17,195.63 458.73,195.63 462.30,195.63 C 465.87,195.63 469.43,200.80 473.00,200.80 C 476.57,200.80 480.13,202.13 483.70,202.13 C 487.27,202.13 490.83,174.96 494.40,174.96 C 497.97,174.96 501.53,173.90 505.10,173.90 C 508.67,173.90 512.23,169.00 515.80,169.00 C 519.37,169.00 522.93,174.43 526.50,174.43 C 530.07,174.43 533.63,178.94 537.20,178.94 C 540.77,178.94 544.33,171.78 547.90,171.78 C 551.47,171.78 555.03,171.78 558.60,171.78 C 562.17,171.78 565.73,171.78 569.30,171.78 C 572.87,171.78 576.43,170.46 580.00,170.46" data-product="Nvidia RTX 5070" fill="none" stroke="#d26365" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,171.65 C 48.57,171.65 52.13,175.63 55.70,175.63 C 59.27,175.63 62.83,175.63 66.40,175.63 C 69.97,175.63 73.53,175.63 77.10,175.63 C 80.67,175.63 84.23,175.76 87.80,175.76 C 91.37,175.76 94.93,175.76 98.50,175.76 C 102.07,175.76 105.63,175.63 109.20,175.63 C 112.77,175.63 116.33,175.76 119.90,175.76 C 123.47,175.76 127.03,175.63 130.60,175.63 C 134.17,175.63 137.73,178.28 141.30,178.28 C 144.87,178.28 148.43,182.38 152.00,182.38 C 155.57,182.38 159.13,178.28 162.70,178.28 C 166.27,178.28 169.83,175.63 173.40,175.63 C 176.97,175.63 180.53,175.63 184.10,175.63 C 187.67,175.63 191.23,175.76 194.80,175.76 C 198.37,175.76 201.93,175.63 205.50,175.63 C 209.07,175.63 212.63,175.63 216.20,175.63 C 219.77,175.63 223.33,165.16 226.90,165.16 C 230.47,165.16 234.03,155.88 237.60,155.88 C 241.17,155.88 244.73,142.50 248.30,142.50 C 251.87,142.50 255.43,149.13 259.00,149.13 C 262.57,149.13 266.13,149.13 269.70,149.13 C 273.27,149.13 276.83,149.13 280.40,149.13 C 283.97,149.13 287.53,149.13 291.10,149.13 C 294.67,149.13 298.23,149.13 301.80,149.13 C 305.37,149.13 308.93,149.13 312.50,149.13 C 316.07,149.13 319.63,149.13 323.20,149.13 C 326.77,149.13 330.33,155.75 333.90,155.75 C 337.47,155.75 341.03,143.82 344.60,143.82 C 348.17,143.82 351.73,143.82 355.30,143.82 C 358.87,143.82 362.43,143.82 366.00,143.82 C 369.57,143.82 373.13,143.82 376.70,143.82 C 380.27,143.82 383.83,145.15 387.40,145.15 C 390.97,145.15 394.53,145.15 398.10,145.15 C 401.67,145.15 405.23,155.75 408.80,155.75 C 412.37,155.75 415.93,145.15 419.50,145.15 C 423.07,145.15 426.63,145.15 430.20,145.15 C 433.77,145.15 437.33,145.15 440.90,145.15 C 444.47,145.15 448.03,153.10 451.60,153.10 C 455.17,153.10 458.73,148.46 462.30,148.46 C 465.87,148.46 469.43,155.75 473.00,155.75 C 476.57,155.75 480.13,149.13 483.70,149.13 C 487.27,149.13 490.83,138.53 494.40,138.53 C 497.97,138.53 501.53,130.84 505.10,130.84 C 508.67,130.84 512.23,122.63 515.80,122.63 C 519.37,122.63 522.93,122.63 526.50,122.63 C 530.07,122.63 533.63,122.63 537.20,122.63 C 540.77,122.63 544.33,122.63 547.90,122.63 C 551.47,122.63 555.03,122.63 558.60,122.63 C 562.17,122.63 565.73,122.63 569.30,122.63 C 572.87,122.63 576.43,116.00 580.00,116.00" data-product="Nvidia RTX 5070 Ti" fill="none" stroke="#ffcea9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,129.25 C 48.57,129.25 52.13,129.38 55.70,129.38 C 59.27,129.38 62.83,142.50 66.40,142.50 C 69.97,142.50 73.53,142.50 77.10,142.50 C 80.67,142.50 84.23,142.50 87.80,142.50 C 91.37,142.50 94.93,151.91 98.50,151.91 C 102.07,151.91 105.63,142.63 109.20,142.63 C 112.77,142.63 116.33,145.15 119.90,145.15 C 123.47,145.15 127.03,142.63 130.60,142.63 C 134.17,142.63 137.73,143.96 141.30,143.96 C 144.87,143.96 148.43,143.82 152.00,143.82 C 155.57,143.82 159.13,143.96 162.70,143.96 C 166.27,143.96 169.83,142.50 173.40,142.50 C 176.97,142.50 180.53,142.50 184.10,142.50 C 187.67,142.50 191.23,142.50 194.80,142.50 C 198.37,142.50 201.93,129.25 205.50,129.25 C 209.07,129.25 212.63,112.03 216.20,112.03 C 219.77,112.03 223.33,106.99 226.90,106.99 C 230.47,106.99 234.03,92.15 237.60,92.15 C 241.17,92.15 244.73,96.13 248.30,96.13 C 251.87,96.13 255.43,94.14 259.00,94.14 C 262.57,94.14 266.13,94.14 269.70,94.14 C 273.27,94.14 276.83,104.07 280.40,104.07 C 283.97,104.07 287.53,104.07 291.10,104.07 C 294.67,104.07 298.23,109.38 301.80,109.38 C 305.37,109.38 308.93,108.05 312.50,108.05 C 316.07,108.05 319.63,104.07 323.20,104.07 C 326.77,104.07 330.33,109.38 333.90,109.38 C 337.47,109.38 341.03,104.07 344.60,104.07 C 348.17,104.07 351.73,104.07 355.30,104.07 C 358.87,104.07 362.43,104.07 366.00,104.07 C 369.57,104.07 373.13,104.07 376.70,104.07 C 380.27,104.07 383.83,104.07 387.40,104.07 C 390.97,104.07 394.53,106.72 398.10,106.72 C 401.67,106.72 405.23,104.07 408.80,104.07 C 412.37,104.07 415.93,109.38 419.50,109.38 C 423.07,109.38 426.63,109.38 430.20,109.38 C 433.77,109.38 437.33,109.38 440.90,109.38 C 444.47,109.38 448.03,109.38 451.60,109.38 C 455.17,109.38 458.73,109.38 462.30,109.38 C 465.87,109.38 469.43,109.38 473.00,109.38 C 476.57,109.38 480.13,109.38 483.70,109.38 C 487.27,109.38 490.83,104.07 494.40,104.07 C 497.97,104.07 501.53,79.03 505.10,79.03 C 508.67,79.03 512.23,69.63 515.80,69.63 C 519.37,69.63 522.93,69.63 526.50,69.63 C 530.07,69.63 533.63,82.88 537.20,82.88 C 540.77,82.88 544.33,82.88 547.90,82.88 C 551.47,82.88 555.03,55.98 558.60,55.98 C 562.17,55.98 565.73,55.84 569.30,55.84 C 572.87,55.84 576.43,36.50 580.00,36.50" data-product="Nvidia RTX 5080" fill="none" stroke="#5bb0c0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="419.50" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="430.20" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="440.90" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="451.60" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="462.30" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="473.00" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="483.70" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="494.40" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="505.10" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="515.80" cy="204.77" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="526.50" cy="204.77" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="537.20" cy="206.10" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="547.90" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="558.60" cy="199.48" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="569.30" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="580.00" cy="199.48" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="45.00" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="55.70" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="66.40" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="77.10" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="87.80" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="98.50" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="109.20" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="119.90" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="130.60" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="141.30" cy="227.30" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="152.00" cy="229.95" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="162.70" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="173.40" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="184.10" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="194.80" cy="224.65" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="205.50" cy="224.65" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="216.20" cy="223.32" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="226.90" cy="223.32" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="237.60" cy="222.00" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="248.30" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="259.00" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="269.70" cy="222.00" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="280.40" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="291.10" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="301.80" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="312.50" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="323.20" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="333.90" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="344.60" cy="215.51" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="355.30" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="366.00" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="376.70" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="387.40" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="398.10" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="408.80" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="419.50" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="430.20" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="440.90" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="451.60" cy="222.00" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="462.30" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="473.00" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="483.70" cy="215.38" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="494.40" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="505.10" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="515.80" cy="214.05" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="526.50" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="537.20" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="547.90" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="558.60" cy="208.75" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="569.30" cy="206.10" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="580.00" cy="206.10" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="45.00" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="55.70" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="66.40" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="77.10" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="87.80" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="98.50" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="109.20" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="119.90" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="130.60" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="141.30" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="152.00" cy="241.88" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="162.70" cy="238.56" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="173.40" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="184.10" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="194.80" cy="236.84" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="205.50" cy="236.84" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="216.20" cy="233.93" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="226.90" cy="233.93" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="237.60" cy="233.93" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="248.30" cy="233.93" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="259.00" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="269.70" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="280.40" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="291.10" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="301.80" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="312.50" cy="229.95" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="323.20" cy="229.95" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="333.90" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="344.60" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="355.30" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="366.00" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="376.70" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="387.40" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="398.10" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="408.80" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="419.50" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="430.20" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="440.90" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="451.60" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="462.30" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="473.00" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="483.70" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="494.40" cy="225.97" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="505.10" cy="222.00" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="515.80" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="526.50" cy="222.00" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="537.20" cy="220.81" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="547.90" cy="218.03" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="558.60" cy="215.38" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="569.30" cy="222.00" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="580.00" cy="222.00" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="45.00" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="55.70" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="66.40" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="77.10" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="87.80" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="98.50" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="109.20" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="119.90" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="130.60" cy="200.80" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="141.30" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="152.00" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="162.70" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="173.40" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="184.10" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="194.80" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="205.50" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="216.20" cy="198.15" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="226.90" cy="198.15" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="237.60" cy="198.15" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="248.30" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="259.00" cy="196.82" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="269.70" cy="191.53" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="280.40" cy="191.53" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="291.10" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="301.80" cy="194.18" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="312.50" cy="194.18" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="323.20" cy="191.53" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="333.90" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="344.60" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="355.30" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="366.00" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="376.70" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="387.40" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="398.10" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="408.80" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="419.50" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="430.20" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="440.90" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="451.60" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="462.30" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="473.00" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="483.70" cy="190.86" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="494.40" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="505.10" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="515.80" cy="191.53" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="526.50" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="537.20" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="547.90" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="558.60" cy="186.62" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="569.30" cy="182.25" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="580.00" cy="182.25" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="45.00" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="55.70" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="66.40" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="77.10" cy="182.91" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="87.80" cy="186.22" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="98.50" cy="186.22" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="109.20" cy="188.88" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="119.90" cy="188.88" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="130.60" cy="188.88" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="141.30" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="152.00" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="162.70" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="173.40" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="184.10" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="194.80" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="205.50" cy="192.85" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="216.20" cy="187.55" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="226.90" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="237.60" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="248.30" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="259.00" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="269.70" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="280.40" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="291.10" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="301.80" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="312.50" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="323.20" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="333.90" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="344.60" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="355.30" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="366.00" cy="186.22" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="376.70" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="387.40" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="398.10" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="408.80" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="419.50" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="430.20" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="440.90" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="451.60" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="462.30" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="473.00" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="483.70" cy="183.57" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="494.40" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="505.10" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="515.80" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="526.50" cy="176.95" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="537.20" cy="176.95" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="547.90" cy="174.30" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="558.60" cy="174.30" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="569.30" cy="169.00" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="580.00" cy="165.03" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="45.00" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="55.70" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="66.40" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="77.10" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="87.80" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="98.50" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="109.20" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="119.90" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="130.60" cy="245.85" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="141.30" cy="247.18" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="152.00" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="162.70" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="173.40" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="184.10" cy="248.24" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="194.80" cy="248.24" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="205.50" cy="248.24" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="216.20" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="226.90" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="237.60" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="248.30" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="259.00" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="269.70" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="280.40" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="291.10" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="301.80" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="312.50" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="323.20" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="333.90" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="344.60" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="355.30" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="366.00" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="376.70" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="387.40" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="398.10" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="408.80" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="419.50" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="430.20" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="440.90" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="451.60" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="462.30" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="473.00" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="483.70" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="494.40" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="505.10" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="515.80" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="526.50" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="537.20" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="547.90" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="558.60" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="569.30" cy="236.57" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="580.00" cy="236.57" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="45.00" cy="240.55" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="55.70" cy="240.55" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="66.40" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="77.10" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="87.80" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="98.50" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="109.20" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="119.90" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="130.60" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="141.30" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="152.00" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="162.70" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="173.40" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="184.10" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="194.80" cy="243.20" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="205.50" cy="243.20" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="216.20" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="226.90" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="237.60" cy="240.55" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="248.30" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="259.00" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="269.70" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="280.40" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="291.10" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="301.80" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="312.50" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="323.20" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="333.90" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="344.60" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="355.30" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="366.00" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="376.70" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="387.40" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="398.10" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="408.80" cy="234.72" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="419.50" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="430.20" cy="234.72" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="440.90" cy="234.72" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="451.60" cy="235.51" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="462.30" cy="236.44" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="473.00" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="483.70" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="494.40" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="505.10" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="515.80" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="526.50" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="537.20" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="547.90" cy="231.28" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="558.60" cy="231.28" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="569.30" cy="231.28" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="580.00" cy="231.28" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="45.00" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="55.70" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="66.40" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="77.10" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="87.80" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="98.50" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="109.20" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="119.90" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="130.60" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="141.30" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="152.00" cy="244.53" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="162.70" cy="245.85" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="173.40" cy="245.85" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="184.10" cy="245.85" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="194.80" cy="248.50" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="205.50" cy="248.50" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="216.20" cy="243.86" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="226.90" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="237.60" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="248.30" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="259.00" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="269.70" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="280.40" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="291.10" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="301.80" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="312.50" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="323.20" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="333.90" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="344.60" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="355.30" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="366.00" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="376.70" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="387.40" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="398.10" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="408.80" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="419.50" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="430.20" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="440.90" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="451.60" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="462.30" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="473.00" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="483.70" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="494.40" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="505.10" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="515.80" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="526.50" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="537.20" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="537.20" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="558.60" cy="233.93" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="569.30" cy="233.93" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="580.00" cy="222.00" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="45.00" cy="235.25" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="55.70" cy="235.25" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="66.40" cy="236.44" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="77.10" cy="235.78" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="87.80" cy="235.25" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="98.50" cy="236.71" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="109.20" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="119.90" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="130.60" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="141.30" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="152.00" cy="237.90" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="162.70" cy="238.03" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="173.40" cy="238.03" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="184.10" cy="238.03" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="194.80" cy="238.03" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="205.50" cy="239.22" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="216.20" cy="240.55" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="226.90" cy="236.57" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="237.60" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="248.30" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="259.00" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="269.70" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="280.40" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="291.10" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="301.80" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="312.50" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="323.20" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="333.90" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="344.60" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="355.30" cy="231.28" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="366.00" cy="231.28" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="376.70" cy="233.93" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="387.40" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="398.10" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="408.80" cy="228.63" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="419.50" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="430.20" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="440.90" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="451.60" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="462.30" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="473.00" cy="230.08" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="483.70" cy="228.63" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="494.40" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="515.80" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="526.50" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="537.20" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="547.90" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="558.60" cy="224.65" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="569.30" cy="216.83" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="45.00" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="55.70" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="66.40" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="77.10" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="87.80" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="98.50" cy="224.78" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="109.20" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="119.90" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="130.60" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="141.30" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="152.00" cy="222.00" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="162.70" cy="222.00" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="173.40" cy="219.35" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="184.10" cy="219.35" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="194.80" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="205.50" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="216.20" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="226.90" cy="215.38" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="237.60" cy="215.38" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="248.30" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="259.00" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="269.70" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="280.40" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="291.10" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="301.80" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="312.50" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="323.20" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="333.90" cy="206.76" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="344.60" cy="208.75" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="355.30" cy="208.75" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="366.00" cy="208.75" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="376.70" cy="206.76" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="387.40" cy="210.07" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="398.10" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="408.80" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="419.50" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="430.20" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="440.90" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="451.60" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="462.30" cy="200.14" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="473.00" cy="200.80" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="483.70" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="494.40" cy="188.88" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="505.10" cy="171.65" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="515.80" cy="172.58" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="526.50" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="537.20" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="547.90" cy="171.65" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="558.60" cy="171.65" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="569.30" cy="170.46" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="580.00" cy="170.46" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="580.00" cy="170.46" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="45.00" cy="226.24" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="55.70" cy="229.95" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="66.40" cy="225.97" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="77.10" cy="229.29" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="87.80" cy="229.95" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="98.50" cy="229.95" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="109.20" cy="228.63" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="119.90" cy="229.69" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="130.60" cy="232.20" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="141.30" cy="229.95" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="152.00" cy="232.60" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="162.70" cy="232.60" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="173.40" cy="229.69" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="184.10" cy="233.53" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="194.80" cy="228.63" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="205.50" cy="228.63" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="216.20" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="226.90" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="237.60" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="248.30" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="259.00" cy="228.49" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="269.70" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="280.40" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="291.10" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="301.80" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="312.50" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="323.20" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="333.90" cy="223.32" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="344.60" cy="223.32" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="355.30" cy="223.32" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="366.00" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="376.70" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="387.40" cy="222.00" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="398.10" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="408.80" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="419.50" cy="225.97" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="430.20" cy="225.97" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="440.90" cy="225.97" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="451.60" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="462.30" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="473.00" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="483.70" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="494.40" cy="219.35" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="505.10" cy="219.35" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="515.80" cy="223.46" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="526.50" cy="223.46" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="537.20" cy="223.46" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="547.90" cy="223.46" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="558.60" cy="210.34" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="569.30" cy="212.72" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="580.00" cy="212.72" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="45.00" cy="202.13" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="55.70" cy="202.13" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="66.40" cy="205.57" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="77.10" cy="202.66" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="87.80" cy="211.27" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="98.50" cy="208.88" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="109.20" cy="206.10" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="119.90" cy="208.75" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="130.60" cy="208.75" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="141.30" cy="211.40" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="152.00" cy="210.21" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="162.70" cy="208.75" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="173.40" cy="205.17" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="184.10" cy="203.45" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="194.80" cy="208.88" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="205.50" cy="208.88" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="216.20" cy="202.26" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="226.90" cy="203.45" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="237.60" cy="202.26" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="248.30" cy="192.85" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="259.00" cy="192.85" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="269.70" cy="192.85" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="280.40" cy="191.53" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="291.10" cy="192.19" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="301.80" cy="191.53" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="312.50" cy="194.97" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="323.20" cy="190.20" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="333.90" cy="191.53" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="344.60" cy="190.73" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="355.30" cy="191.53" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="366.00" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="376.70" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="387.40" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="398.10" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="408.80" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="419.50" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="430.20" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="440.90" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="451.60" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="462.30" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="473.00" cy="200.80" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="483.70" cy="202.13" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="494.40" cy="174.96" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="505.10" cy="173.90" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="515.80" cy="169.00" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="526.50" cy="174.43" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="537.20" cy="178.94" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="547.90" cy="171.78" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="558.60" cy="171.78" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="569.30" cy="171.78" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="580.00" cy="170.46" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="45.00" cy="171.65" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="55.70" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="66.40" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="77.10" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="87.80" cy="175.76" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="98.50" cy="175.76" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="109.20" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="119.90" cy="175.76" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="130.60" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="141.30" cy="178.28" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="152.00" cy="182.38" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="162.70" cy="178.28" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="173.40" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="184.10" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="194.80" cy="175.76" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="205.50" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="216.20" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="226.90" cy="165.16" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="237.60" cy="155.88" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="248.30" cy="142.50" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="259.00" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="269.70" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="280.40" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="291.10" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="301.80" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="312.50" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="323.20" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="333.90" cy="155.75" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="344.60" cy="143.82" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="355.30" cy="143.82" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="366.00" cy="143.82" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="376.70" cy="143.82" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="387.40" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="398.10" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="408.80" cy="155.75" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="419.50" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="430.20" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="440.90" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="451.60" cy="153.10" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="462.30" cy="148.46" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="473.00" cy="155.75" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="483.70" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="494.40" cy="138.53" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="505.10" cy="130.84" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="515.80" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="526.50" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="537.20" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="547.90" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="558.60" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="569.30" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="580.00" cy="116.00" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="45.00" cy="129.25" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="55.70" cy="129.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="66.40" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="77.10" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="87.80" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="98.50" cy="151.91" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="109.20" cy="142.63" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="119.90" cy="145.15" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="130.60" cy="142.63" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="141.30" cy="143.96" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="152.00" cy="143.82" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="162.70" cy="143.96" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="173.40" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="184.10" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="194.80" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="205.50" cy="129.25" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="216.20" cy="112.03" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="226.90" cy="106.99" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="237.60" cy="92.15" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="248.30" cy="96.13" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="259.00" cy="94.14" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="269.70" cy="94.14" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="280.40" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="291.10" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="301.80" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="312.50" cy="108.05" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="323.20" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="333.90" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="344.60" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="355.30" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="366.00" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="376.70" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="387.40" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="398.10" cy="106.72" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="408.80" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="419.50" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="430.20" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="440.90" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="451.60" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="462.30" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="473.00" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="483.70" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="494.40" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="505.10" cy="79.03" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="515.80" cy="69.63" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="526.50" cy="69.63" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="537.20" cy="82.88" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="547.90" cy="82.88" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="558.60" cy="55.98" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="569.30" cy="55.84" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="580.00" cy="36.50" r="3" fill="#5bb0c0" style="opacity:0;" /></svg><svg class="riv-line-chart-svg-mobile" style="overflow: visible;" fill="none" viewBox="0 0 600 440" width="100%" height="auto" aria-hidden="true"><g class="riv-grid"><line x1="40" x2="585" y1="375.00" y2="375.00" /><line x1="40" x2="585" y1="283.75" y2="283.75" /><line x1="40" x2="585" y1="192.50" y2="192.50" /><line x1="40" x2="585" y1="101.25" y2="101.25" /><line x1="40" x2="585" y1="10.00" y2="10.00" /><line x1="247.10" x2="247.10" y1="10" y2="375" /><line x1="465.10" x2="465.10" y1="10" y2="375" /></g><g class="riv-axes"><line x1="40" x2="40" y1="10" y2="375" stroke="#D1D5DB" /><line x1="40" x2="585" y1="375" y2="375" stroke="#D1D5DB" /><text x="32" y="375.00" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">0</text><text x="32" y="283.75" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">500</text><text x="32" y="192.50" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">1000</text><text x="32" y="101.25" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">1500</text><text x="32" y="10.00" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">2000</text><text x="247.10" y="387" transform="rotate(-45 247.10 387)" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">20 Week</text><text x="465.10" y="387" transform="rotate(-45 465.10 387)" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">40 Week</text></g><path class="riv-line-path" d="M 421.50,274.63 C 425.13,274.63 428.77,274.63 432.40,274.63 C 436.03,274.63 439.67,274.63 443.30,274.63 C 446.93,274.63 450.57,283.75 454.20,283.75 C 457.83,283.75 461.47,283.75 465.10,283.75 C 468.73,283.75 472.37,283.75 476.00,283.75 C 479.63,283.75 483.27,274.63 486.90,274.63 C 490.53,274.63 494.17,283.75 497.80,283.75 C 501.43,283.75 505.07,283.75 508.70,283.75 C 512.33,283.75 515.97,278.27 519.60,278.27 C 523.23,278.27 526.87,278.27 530.50,278.27 C 534.13,278.27 537.77,280.10 541.40,280.10 C 545.03,280.10 548.67,283.75 552.30,283.75 C 555.93,283.75 559.57,270.98 563.20,270.98 C 566.83,270.98 570.47,274.63 574.10,274.63 C 577.73,274.63 581.37,270.98 585.00,270.98" data-product="AMD Radeon RX 9070 GRE" fill="none" stroke="#E33235" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,307.48 C 43.63,307.48 47.27,307.48 50.90,307.48 C 54.53,307.48 58.17,307.48 61.80,307.48 C 65.43,307.48 69.07,307.48 72.70,307.48 C 76.33,307.48 79.97,311.13 83.60,311.13 C 87.23,311.13 90.87,311.13 94.50,311.13 C 98.13,311.13 101.77,311.13 105.40,311.13 C 109.03,311.13 112.67,311.13 116.30,311.13 C 119.93,311.13 123.57,311.13 127.20,311.13 C 130.83,311.13 134.47,309.30 138.10,309.30 C 141.73,309.30 145.37,312.95 149.00,312.95 C 152.63,312.95 156.27,311.13 159.90,311.13 C 163.53,311.13 167.17,311.13 170.80,311.13 C 174.43,311.13 178.07,307.48 181.70,307.48 C 185.33,307.48 188.97,305.65 192.60,305.65 C 196.23,305.65 199.87,305.65 203.50,305.65 C 207.13,305.65 210.77,303.82 214.40,303.82 C 218.03,303.82 221.67,303.82 225.30,303.82 C 228.93,303.82 232.57,302.00 236.20,302.00 C 239.83,302.00 243.47,294.70 247.10,294.70 C 250.73,294.70 254.37,294.70 258.00,294.70 C 261.63,294.70 265.27,302.00 268.90,302.00 C 272.53,302.00 276.17,294.70 279.80,294.70 C 283.43,294.70 287.07,294.70 290.70,294.70 C 294.33,294.70 297.97,294.70 301.60,294.70 C 305.23,294.70 308.87,294.70 312.50,294.70 C 316.13,294.70 319.77,294.70 323.40,294.70 C 327.03,294.70 330.67,294.70 334.30,294.70 C 337.93,294.70 341.57,293.06 345.20,293.06 C 348.83,293.06 352.47,294.70 356.10,294.70 C 359.73,294.70 363.37,294.70 367.00,294.70 C 370.63,294.70 374.27,296.52 377.90,296.52 C 381.53,296.52 385.17,296.52 388.80,296.52 C 392.43,296.52 396.07,294.70 399.70,294.70 C 403.33,294.70 406.97,296.52 410.60,296.52 C 414.23,296.52 417.87,294.70 421.50,294.70 C 425.13,294.70 428.77,294.70 432.40,294.70 C 436.03,294.70 439.67,294.70 443.30,294.70 C 446.93,294.70 450.57,302.00 454.20,302.00 C 457.83,302.00 461.47,296.52 465.10,296.52 C 468.73,296.52 472.37,296.52 476.00,296.52 C 479.63,296.52 483.27,292.88 486.90,292.88 C 490.53,292.88 494.17,289.23 497.80,289.23 C 501.43,289.23 505.07,289.23 508.70,289.23 C 512.33,289.23 515.97,291.05 519.60,291.05 C 523.23,291.05 526.87,289.23 530.50,289.23 C 534.13,289.23 537.77,289.23 541.40,289.23 C 545.03,289.23 548.67,289.23 552.30,289.23 C 555.93,289.23 559.57,283.75 563.20,283.75 C 566.83,283.75 570.47,280.10 574.10,280.10 C 577.73,280.10 581.37,280.10 585.00,280.10" data-product="AMD RX 9060 XT 16 GB" fill="none" stroke="#FE9F58" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,323.90 C 43.63,323.90 47.27,325.73 50.90,325.73 C 54.53,325.73 58.17,323.90 61.80,323.90 C 65.43,323.90 69.07,323.90 72.70,323.90 C 76.33,323.90 79.97,325.73 83.60,325.73 C 87.23,325.73 90.87,325.73 94.50,325.73 C 98.13,325.73 101.77,325.73 105.40,325.73 C 109.03,325.73 112.67,325.73 116.30,325.73 C 119.93,325.73 123.57,325.73 127.20,325.73 C 130.83,325.73 134.47,325.73 138.10,325.73 C 141.73,325.73 145.37,329.38 149.00,329.38 C 152.63,329.38 156.27,324.81 159.90,324.81 C 163.53,324.81 167.17,323.90 170.80,323.90 C 174.43,323.90 178.07,323.90 181.70,323.90 C 185.33,323.90 188.97,322.44 192.60,322.44 C 196.23,322.44 199.87,322.44 203.50,322.44 C 207.13,322.44 210.77,318.43 214.40,318.43 C 218.03,318.43 221.67,318.43 225.30,318.43 C 228.93,318.43 232.57,318.43 236.20,318.43 C 239.83,318.43 243.47,318.43 247.10,318.43 C 250.73,318.43 254.37,311.13 258.00,311.13 C 261.63,311.13 265.27,311.86 268.90,311.86 C 272.53,311.86 276.17,311.86 279.80,311.86 C 283.43,311.86 287.07,311.86 290.70,311.86 C 294.33,311.86 297.97,311.86 301.60,311.86 C 305.23,311.86 308.87,312.95 312.50,312.95 C 316.13,312.95 319.77,312.95 323.40,312.95 C 327.03,312.95 330.67,311.86 334.30,311.86 C 337.93,311.86 341.57,311.13 345.20,311.13 C 348.83,311.13 352.47,311.13 356.10,311.13 C 359.73,311.13 363.37,311.13 367.00,311.13 C 370.63,311.13 374.27,309.30 377.90,309.30 C 381.53,309.30 385.17,309.30 388.80,309.30 C 392.43,309.30 396.07,309.30 399.70,309.30 C 403.33,309.30 406.97,309.30 410.60,309.30 C 414.23,309.30 417.87,309.30 421.50,309.30 C 425.13,309.30 428.77,311.13 432.40,311.13 C 436.03,311.13 439.67,311.13 443.30,311.13 C 446.93,311.13 450.57,309.30 454.20,309.30 C 457.83,309.30 461.47,309.30 465.10,309.30 C 468.73,309.30 472.37,309.30 476.00,309.30 C 479.63,309.30 483.27,309.30 486.90,309.30 C 490.53,309.30 494.17,307.48 497.80,307.48 C 501.43,307.48 505.07,302.00 508.70,302.00 C 512.33,302.00 515.97,309.30 519.60,309.30 C 523.23,309.30 526.87,302.00 530.50,302.00 C 534.13,302.00 537.77,300.36 541.40,300.36 C 545.03,300.36 548.67,296.52 552.30,296.52 C 555.93,296.52 559.57,292.88 563.20,292.88 C 566.83,292.88 570.47,302.00 574.10,302.00 C 577.73,302.00 581.37,302.00 585.00,302.00" data-product="AMD RX 9060 XT 8 GB" fill="none" stroke="#1CA9C4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,265.50 C 43.63,265.50 47.27,265.50 50.90,265.50 C 54.53,265.50 58.17,274.63 61.80,274.63 C 65.43,274.63 69.07,274.63 72.70,274.63 C 76.33,274.63 79.97,265.50 83.60,265.50 C 87.23,265.50 90.87,265.50 94.50,265.50 C 98.13,265.50 101.77,274.63 105.40,274.63 C 109.03,274.63 112.67,274.63 116.30,274.63 C 119.93,274.63 123.57,272.80 127.20,272.80 C 130.83,272.80 134.47,274.63 138.10,274.63 C 141.73,274.63 145.37,274.63 149.00,274.63 C 152.63,274.63 156.27,278.27 159.90,278.27 C 163.53,278.27 167.17,278.27 170.80,278.27 C 174.43,278.27 178.07,278.27 181.70,278.27 C 185.33,278.27 188.97,278.27 192.60,278.27 C 196.23,278.27 199.87,278.27 203.50,278.27 C 207.13,278.27 210.77,269.15 214.40,269.15 C 218.03,269.15 221.67,269.15 225.30,269.15 C 228.93,269.15 232.57,269.15 236.20,269.15 C 239.83,269.15 243.47,265.50 247.10,265.50 C 250.73,265.50 254.37,267.32 258.00,267.32 C 261.63,267.32 265.27,260.02 268.90,260.02 C 272.53,260.02 276.17,260.02 279.80,260.02 C 283.43,260.02 287.07,261.85 290.70,261.85 C 294.33,261.85 297.97,263.68 301.60,263.68 C 305.23,263.68 308.87,263.68 312.50,263.68 C 316.13,263.68 319.77,260.02 323.40,260.02 C 327.03,260.02 330.67,261.85 334.30,261.85 C 337.93,261.85 341.57,261.85 345.20,261.85 C 348.83,261.85 352.47,261.85 356.10,261.85 C 359.73,261.85 363.37,261.85 367.00,261.85 C 370.63,261.85 374.27,261.85 377.90,261.85 C 381.53,261.85 385.17,265.50 388.80,265.50 C 392.43,265.50 396.07,261.85 399.70,261.85 C 403.33,261.85 406.97,265.50 410.60,265.50 C 414.23,265.50 417.87,265.50 421.50,265.50 C 425.13,265.50 428.77,265.50 432.40,265.50 C 436.03,265.50 439.67,265.50 443.30,265.50 C 446.93,265.50 450.57,265.50 454.20,265.50 C 457.83,265.50 461.47,265.50 465.10,265.50 C 468.73,265.50 472.37,265.50 476.00,265.50 C 479.63,265.50 483.27,259.11 486.90,259.11 C 490.53,259.11 494.17,256.38 497.80,256.38 C 501.43,256.38 505.07,256.38 508.70,256.38 C 512.33,256.38 515.97,260.02 519.60,260.02 C 523.23,260.02 526.87,256.38 530.50,256.38 C 534.13,256.38 537.77,256.38 541.40,256.38 C 545.03,256.38 548.67,256.38 552.30,256.38 C 555.93,256.38 559.57,253.27 563.20,253.27 C 566.83,253.27 570.47,247.25 574.10,247.25 C 577.73,247.25 581.37,247.25 585.00,247.25" data-product="AMD RX 9070" fill="none" stroke="#EB6F71" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,247.25 C 43.63,247.25 47.27,247.25 50.90,247.25 C 54.53,247.25 58.17,247.25 61.80,247.25 C 65.43,247.25 69.07,248.16 72.70,248.16 C 76.33,248.16 79.97,252.72 83.60,252.72 C 87.23,252.72 90.87,252.72 94.50,252.72 C 98.13,252.72 101.77,256.38 105.40,256.38 C 109.03,256.38 112.67,256.38 116.30,256.38 C 119.93,256.38 123.57,256.38 127.20,256.38 C 130.83,256.38 134.47,265.50 138.10,265.50 C 141.73,265.50 145.37,265.50 149.00,265.50 C 152.63,265.50 156.27,265.50 159.90,265.50 C 163.53,265.50 167.17,265.50 170.80,265.50 C 174.43,265.50 178.07,265.50 181.70,265.50 C 185.33,265.50 188.97,265.50 192.60,265.50 C 196.23,265.50 199.87,261.85 203.50,261.85 C 207.13,261.85 210.77,254.55 214.40,254.55 C 218.03,254.55 221.67,247.25 225.30,247.25 C 228.93,247.25 232.57,243.60 236.20,243.60 C 239.83,243.60 243.47,243.60 247.10,243.60 C 250.73,243.60 254.37,241.78 258.00,241.78 C 261.63,241.78 265.27,241.78 268.90,241.78 C 272.53,241.78 276.17,241.78 279.80,241.78 C 283.43,241.78 287.07,241.78 290.70,241.78 C 294.33,241.78 297.97,241.78 301.60,241.78 C 305.23,241.78 308.87,241.78 312.50,241.78 C 316.13,241.78 319.77,241.78 323.40,241.78 C 327.03,241.78 330.67,243.60 334.30,243.60 C 337.93,243.60 341.57,245.43 345.20,245.43 C 348.83,245.43 352.47,245.43 356.10,245.43 C 359.73,245.43 363.37,252.72 367.00,252.72 C 370.63,252.72 374.27,245.43 377.90,245.43 C 381.53,245.43 385.17,245.43 388.80,245.43 C 392.43,245.43 396.07,245.43 399.70,245.43 C 403.33,245.43 406.97,247.25 410.60,247.25 C 414.23,247.25 417.87,247.25 421.50,247.25 C 425.13,247.25 428.77,247.25 432.40,247.25 C 436.03,247.25 439.67,247.25 443.30,247.25 C 446.93,247.25 450.57,247.25 454.20,247.25 C 457.83,247.25 461.47,247.25 465.10,247.25 C 468.73,247.25 472.37,247.25 476.00,247.25 C 479.63,247.25 483.27,249.07 486.90,249.07 C 490.53,249.07 494.17,243.60 497.80,243.60 C 501.43,243.60 505.07,243.60 508.70,243.60 C 512.33,243.60 515.97,241.78 519.60,241.78 C 523.23,241.78 526.87,239.95 530.50,239.95 C 534.13,239.95 537.77,239.95 541.40,239.95 C 545.03,239.95 548.67,236.30 552.30,236.30 C 555.93,236.30 559.57,236.30 563.20,236.30 C 566.83,236.30 570.47,229.00 574.10,229.00 C 577.73,229.00 581.37,223.53 585.00,223.53" data-product="AMD RX 9070 XT" fill="none" stroke="#FFC08B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,333.02 C 43.63,333.02 47.27,333.02 50.90,333.02 C 54.53,333.02 58.17,333.02 61.80,333.02 C 65.43,333.02 69.07,333.02 72.70,333.02 C 76.33,333.02 79.97,333.02 83.60,333.02 C 87.23,333.02 90.87,333.02 94.50,333.02 C 98.13,333.02 101.77,333.02 105.40,333.02 C 109.03,333.02 112.67,338.50 116.30,338.50 C 119.93,338.50 123.57,334.85 127.20,334.85 C 130.83,334.85 134.47,336.68 138.10,336.68 C 141.73,336.68 145.37,338.50 149.00,338.50 C 152.63,338.50 156.27,338.50 159.90,338.50 C 163.53,338.50 167.17,338.50 170.80,338.50 C 174.43,338.50 178.07,338.13 181.70,338.13 C 185.33,338.13 188.97,338.13 192.60,338.13 C 196.23,338.13 199.87,338.13 203.50,338.13 C 207.13,338.13 210.77,338.50 214.40,338.50 C 218.03,338.50 221.67,338.50 225.30,338.50 C 228.93,338.50 232.57,338.50 236.20,338.50 C 239.83,338.50 243.47,338.50 247.10,338.50 C 250.73,338.50 254.37,329.38 258.00,329.38 C 261.63,329.38 265.27,329.38 268.90,329.38 C 272.53,329.38 276.17,329.38 279.80,329.38 C 283.43,329.38 287.07,329.38 290.70,329.38 C 294.33,329.38 297.97,329.38 301.60,329.38 C 305.23,329.38 308.87,329.38 312.50,329.38 C 316.13,329.38 319.77,329.38 323.40,329.38 C 327.03,329.38 330.67,329.38 334.30,329.38 C 337.93,329.38 341.57,329.38 345.20,329.38 C 348.83,329.38 352.47,327.55 356.10,327.55 C 359.73,327.55 363.37,327.55 367.00,327.55 C 370.63,327.55 374.27,327.55 377.90,327.55 C 381.53,327.55 385.17,327.55 388.80,327.55 C 392.43,327.55 396.07,327.55 399.70,327.55 C 403.33,327.55 406.97,327.55 410.60,327.55 C 414.23,327.55 417.87,327.55 421.50,327.55 C 425.13,327.55 428.77,329.38 432.40,329.38 C 436.03,329.38 439.67,329.38 443.30,329.38 C 446.93,329.38 450.57,329.38 454.20,329.38 C 457.83,329.38 461.47,327.55 465.10,327.55 C 468.73,327.55 472.37,329.38 476.00,329.38 C 479.63,329.38 483.27,327.55 486.90,327.55 C 490.53,327.55 494.17,327.55 497.80,327.55 C 501.43,327.55 505.07,327.55 508.70,327.55 C 512.33,327.55 515.97,327.55 519.60,327.55 C 523.23,327.55 526.87,327.55 530.50,327.55 C 534.13,327.55 537.77,327.55 541.40,327.55 C 545.03,327.55 548.67,327.55 552.30,327.55 C 555.93,327.55 559.57,327.55 563.20,327.55 C 566.83,327.55 570.47,322.07 574.10,322.07 C 577.73,322.07 581.37,322.07 585.00,322.07" data-product="Intel Arc B570" fill="none" stroke="#66C5D7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,327.55 C 43.63,327.55 47.27,327.55 50.90,327.55 C 54.53,327.55 58.17,329.38 61.80,329.38 C 65.43,329.38 69.07,329.38 72.70,329.38 C 76.33,329.38 79.97,329.38 83.60,329.38 C 87.23,329.38 90.87,329.38 94.50,329.38 C 98.13,329.38 101.77,329.38 105.40,329.38 C 109.03,329.38 112.67,329.38 116.30,329.38 C 119.93,329.38 123.57,329.38 127.20,329.38 C 130.83,329.38 134.47,329.38 138.10,329.38 C 141.73,329.38 145.37,329.38 149.00,329.38 C 152.63,329.38 156.27,329.38 159.90,329.38 C 163.53,329.38 167.17,329.38 170.80,329.38 C 174.43,329.38 178.07,329.38 181.70,329.38 C 185.33,329.38 188.97,331.20 192.60,331.20 C 196.23,331.20 199.87,331.20 203.50,331.20 C 207.13,331.20 210.77,329.38 214.40,329.38 C 218.03,329.38 221.67,329.38 225.30,329.38 C 228.93,329.38 232.57,327.55 236.20,327.55 C 239.83,327.55 243.47,322.07 247.10,322.07 C 250.73,322.07 254.37,322.07 258.00,322.07 C 261.63,322.07 265.27,320.25 268.90,320.25 C 272.53,320.25 276.17,320.25 279.80,320.25 C 283.43,320.25 287.07,320.25 290.70,320.25 C 294.33,320.25 297.97,320.25 301.60,320.25 C 305.23,320.25 308.87,320.25 312.50,320.25 C 316.13,320.25 319.77,320.25 323.40,320.25 C 327.03,320.25 330.67,322.07 334.30,322.07 C 337.93,322.07 341.57,322.07 345.20,322.07 C 348.83,322.07 352.47,322.07 356.10,322.07 C 359.73,322.07 363.37,322.07 367.00,322.07 C 370.63,322.07 374.27,322.07 377.90,322.07 C 381.53,322.07 385.17,322.07 388.80,322.07 C 392.43,322.07 396.07,322.07 399.70,322.07 C 403.33,322.07 406.97,319.52 410.60,319.52 C 414.23,319.52 417.87,320.25 421.50,320.25 C 425.13,320.25 428.77,319.52 432.40,319.52 C 436.03,319.52 439.67,319.52 443.30,319.52 C 446.93,319.52 450.57,320.62 454.20,320.62 C 457.83,320.62 461.47,321.89 465.10,321.89 C 468.73,321.89 472.37,322.07 476.00,322.07 C 479.63,322.07 483.27,322.07 486.90,322.07 C 490.53,322.07 494.17,318.43 497.80,318.43 C 501.43,318.43 505.07,318.43 508.70,318.43 C 512.33,318.43 515.97,318.43 519.60,318.43 C 523.23,318.43 526.87,318.43 530.50,318.43 C 534.13,318.43 537.77,318.43 541.40,318.43 C 545.03,318.43 548.67,314.77 552.30,314.77 C 555.93,314.77 559.57,314.77 563.20,314.77 C 566.83,314.77 570.47,314.77 574.10,314.77 C 577.73,314.77 581.37,314.77 585.00,314.77" data-product="Intel Arc B580" fill="none" stroke="#B5282A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,329.38 C 43.63,329.38 47.27,329.38 50.90,329.38 C 54.53,329.38 58.17,329.38 61.80,329.38 C 65.43,329.38 69.07,329.38 72.70,329.38 C 76.33,329.38 79.97,329.38 83.60,329.38 C 87.23,329.38 90.87,331.20 94.50,331.20 C 98.13,331.20 101.77,331.20 105.40,331.20 C 109.03,331.20 112.67,329.38 116.30,329.38 C 119.93,329.38 123.57,329.38 127.20,329.38 C 130.83,329.38 134.47,329.38 138.10,329.38 C 141.73,329.38 145.37,333.02 149.00,333.02 C 152.63,333.02 156.27,334.85 159.90,334.85 C 163.53,334.85 167.17,334.85 170.80,334.85 C 174.43,334.85 178.07,334.85 181.70,334.85 C 185.33,334.85 188.97,338.50 192.60,338.50 C 196.23,338.50 199.87,338.50 203.50,338.50 C 207.13,338.50 210.77,332.11 214.40,332.11 C 218.03,332.11 221.67,331.20 225.30,331.20 C 228.93,331.20 232.57,331.20 236.20,331.20 C 239.83,331.20 243.47,331.20 247.10,331.20 C 250.73,331.20 254.37,327.55 258.00,327.55 C 261.63,327.55 265.27,327.55 268.90,327.55 C 272.53,327.55 276.17,327.55 279.80,327.55 C 283.43,327.55 287.07,327.55 290.70,327.55 C 294.33,327.55 297.97,327.55 301.60,327.55 C 305.23,327.55 308.87,322.07 312.50,322.07 C 316.13,322.07 319.77,322.07 323.40,322.07 C 327.03,322.07 330.67,322.07 334.30,322.07 C 337.93,322.07 341.57,322.07 345.20,322.07 C 348.83,322.07 352.47,322.07 356.10,322.07 C 359.73,322.07 363.37,322.07 367.00,322.07 C 370.63,322.07 374.27,322.07 377.90,322.07 C 381.53,322.07 385.17,322.07 388.80,322.07 C 392.43,322.07 396.07,322.07 399.70,322.07 C 403.33,322.07 406.97,322.07 410.60,322.07 C 414.23,322.07 417.87,322.07 421.50,322.07 C 425.13,322.07 428.77,322.07 432.40,322.07 C 436.03,322.07 439.67,322.07 443.30,322.07 C 446.93,322.07 450.57,322.07 454.20,322.07 C 457.83,322.07 461.47,322.07 465.10,322.07 C 468.73,322.07 472.37,322.07 476.00,322.07 C 479.63,322.07 483.27,322.07 486.90,322.07 C 490.53,322.07 494.17,320.43 497.80,320.43 C 501.43,320.43 505.07,320.43 508.70,320.43 C 512.33,320.43 515.97,320.43 519.60,320.43 C 523.23,320.43 526.87,320.43 530.50,320.43 C 534.13,320.43 537.77,320.43 541.40,320.43 C 541.40,320.43 541.40,320.43 541.40,320.43 C 548.67,320.43 555.93,318.43 563.20,318.43 C 566.83,318.43 570.47,318.43 574.10,318.43 C 577.73,318.43 581.37,302.00 585.00,302.00" data-product="Nvidia RTX 5050" fill="none" stroke="#D07F46" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,320.25 C 43.63,320.25 47.27,320.25 50.90,320.25 C 54.53,320.25 58.17,321.89 61.80,321.89 C 65.43,321.89 69.07,320.98 72.70,320.98 C 76.33,320.98 79.97,320.25 83.60,320.25 C 87.23,320.25 90.87,322.26 94.50,322.26 C 98.13,322.26 101.77,320.43 105.40,320.43 C 109.03,320.43 112.67,320.43 116.30,320.43 C 119.93,320.43 123.57,320.43 127.20,320.43 C 130.83,320.43 134.47,320.43 138.10,320.43 C 141.73,320.43 145.37,323.90 149.00,323.90 C 152.63,323.90 156.27,324.08 159.90,324.08 C 163.53,324.08 167.17,324.08 170.80,324.08 C 174.43,324.08 178.07,324.08 181.70,324.08 C 185.33,324.08 188.97,324.08 192.60,324.08 C 196.23,324.08 199.87,325.73 203.50,325.73 C 207.13,325.73 210.77,327.55 214.40,327.55 C 218.03,327.55 221.67,322.07 225.30,322.07 C 228.93,322.07 232.57,320.43 236.20,320.43 C 239.83,320.43 243.47,320.43 247.10,320.43 C 250.73,320.43 254.37,320.43 258.00,320.43 C 261.63,320.43 265.27,320.43 268.90,320.43 C 272.53,320.43 276.17,312.95 279.80,312.95 C 283.43,312.95 287.07,312.95 290.70,312.95 C 294.33,312.95 297.97,311.31 301.60,311.31 C 305.23,311.31 308.87,311.31 312.50,311.31 C 316.13,311.31 319.77,311.31 323.40,311.31 C 327.03,311.31 330.67,311.31 334.30,311.31 C 337.93,311.31 341.57,311.31 345.20,311.31 C 348.83,311.31 352.47,314.77 356.10,314.77 C 359.73,314.77 363.37,314.77 367.00,314.77 C 370.63,314.77 374.27,318.43 377.90,318.43 C 381.53,318.43 385.17,311.31 388.80,311.31 C 392.43,311.31 396.07,311.31 399.70,311.31 C 403.33,311.31 406.97,311.13 410.60,311.13 C 414.23,311.13 417.87,312.95 421.50,312.95 C 425.13,312.95 428.77,312.95 432.40,312.95 C 436.03,312.95 439.67,312.95 443.30,312.95 C 446.93,312.95 450.57,312.95 454.20,312.95 C 457.83,312.95 461.47,312.95 465.10,312.95 C 468.73,312.95 472.37,313.13 476.00,313.13 C 479.63,313.13 483.27,311.13 486.90,311.13 C 490.53,311.13 494.17,309.48 497.80,309.48 C 505.07,309.48 512.33,309.48 519.60,309.48 C 523.23,309.48 526.87,309.48 530.50,309.48 C 534.13,309.48 537.77,309.48 541.40,309.48 C 545.03,309.48 548.67,309.48 552.30,309.48 C 555.93,309.48 559.57,305.65 563.20,305.65 C 566.83,305.65 570.47,294.88 574.10,294.88" data-product="Nvidia RTX 5060" fill="none" stroke="#e97a7b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,296.52 C 43.63,296.52 47.27,296.52 50.90,296.52 C 54.53,296.52 58.17,296.52 61.80,296.52 C 65.43,296.52 69.07,296.52 72.70,296.52 C 76.33,296.52 79.97,296.52 83.60,296.52 C 87.23,296.52 90.87,305.83 94.50,305.83 C 98.13,305.83 101.77,296.52 105.40,296.52 C 109.03,296.52 112.67,296.52 116.30,296.52 C 119.93,296.52 123.57,296.52 127.20,296.52 C 130.83,296.52 134.47,296.52 138.10,296.52 C 141.73,296.52 145.37,302.00 149.00,302.00 C 152.63,302.00 156.27,302.00 159.90,302.00 C 163.53,302.00 167.17,298.35 170.80,298.35 C 174.43,298.35 178.07,298.35 181.70,298.35 C 185.33,298.35 188.97,296.52 192.60,296.52 C 196.23,296.52 199.87,296.52 203.50,296.52 C 207.13,296.52 210.77,296.52 214.40,296.52 C 218.03,296.52 221.67,292.88 225.30,292.88 C 228.93,292.88 232.57,292.88 236.20,292.88 C 239.83,292.88 243.47,280.10 247.10,280.10 C 250.73,280.10 254.37,280.10 258.00,280.10 C 261.63,280.10 265.27,280.10 268.90,280.10 C 272.53,280.10 276.17,280.10 279.80,280.10 C 283.43,280.10 287.07,280.10 290.70,280.10 C 294.33,280.10 297.97,274.63 301.60,274.63 C 305.23,274.63 308.87,274.63 312.50,274.63 C 316.13,274.63 319.77,270.98 323.40,270.98 C 327.03,270.98 330.67,281.01 334.30,281.01 C 337.93,281.01 341.57,283.75 345.20,283.75 C 348.83,283.75 352.47,283.75 356.10,283.75 C 359.73,283.75 363.37,283.75 367.00,283.75 C 370.63,283.75 374.27,281.01 377.90,281.01 C 381.53,281.01 385.17,285.57 388.80,285.57 C 392.43,285.57 396.07,274.63 399.70,274.63 C 403.33,274.63 406.97,274.63 410.60,274.63 C 414.23,274.63 417.87,274.63 421.50,274.63 C 425.13,274.63 428.77,270.98 432.40,270.98 C 436.03,270.98 439.67,270.98 443.30,270.98 C 446.93,270.98 450.57,270.98 454.20,270.98 C 457.83,270.98 461.47,271.89 465.10,271.89 C 468.73,271.89 472.37,272.80 476.00,272.80 C 479.63,272.80 483.27,270.98 486.90,270.98 C 490.53,270.98 494.17,256.38 497.80,256.38 C 501.43,256.38 505.07,232.65 508.70,232.65 C 512.33,232.65 515.97,233.93 519.60,233.93 C 523.23,233.93 526.87,270.98 530.50,270.98 C 534.13,270.98 537.77,270.98 541.40,270.98 C 545.03,270.98 548.67,232.65 552.30,232.65 C 555.93,232.65 559.57,232.65 563.20,232.65 C 566.83,232.65 570.47,231.01 574.10,231.01 C 577.73,231.01 581.37,231.01 585.00,231.01 C 585.00,231.01 585.00,231.01 585.00,231.01" data-product="Nvidia RTX 5060 Ti 16 GB" fill="none" stroke="#e38e4f" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,307.84 C 43.63,307.84 47.27,312.95 50.90,312.95 C 54.53,312.95 58.17,307.48 61.80,307.48 C 65.43,307.48 69.07,312.04 72.70,312.04 C 76.33,312.04 79.97,312.95 83.60,312.95 C 87.23,312.95 90.87,312.95 94.50,312.95 C 98.13,312.95 101.77,311.13 105.40,311.13 C 109.03,311.13 112.67,312.58 116.30,312.58 C 119.93,312.58 123.57,316.05 127.20,316.05 C 130.83,316.05 134.47,312.95 138.10,312.95 C 141.73,312.95 145.37,316.60 149.00,316.60 C 152.63,316.60 156.27,316.60 159.90,316.60 C 163.53,316.60 167.17,312.58 170.80,312.58 C 174.43,312.58 178.07,317.88 181.70,317.88 C 185.33,317.88 188.97,311.13 192.60,311.13 C 196.23,311.13 199.87,311.13 203.50,311.13 C 207.13,311.13 210.77,314.77 214.40,314.77 C 218.03,314.77 221.67,314.77 225.30,314.77 C 228.93,314.77 232.57,314.77 236.20,314.77 C 239.83,314.77 243.47,314.77 247.10,314.77 C 250.73,314.77 254.37,310.94 258.00,310.94 C 261.63,310.94 265.27,309.30 268.90,309.30 C 272.53,309.30 276.17,309.30 279.80,309.30 C 283.43,309.30 287.07,309.30 290.70,309.30 C 294.33,309.30 297.97,309.30 301.60,309.30 C 305.23,309.30 308.87,309.30 312.50,309.30 C 316.13,309.30 319.77,309.30 323.40,309.30 C 327.03,309.30 330.67,303.82 334.30,303.82 C 337.93,303.82 341.57,303.82 345.20,303.82 C 348.83,303.82 352.47,303.82 356.10,303.82 C 359.73,303.82 363.37,305.65 367.00,305.65 C 370.63,305.65 374.27,305.65 377.90,305.65 C 381.53,305.65 385.17,302.00 388.80,302.00 C 392.43,302.00 396.07,305.65 399.70,305.65 C 403.33,305.65 406.97,305.65 410.60,305.65 C 414.23,305.65 417.87,307.48 421.50,307.48 C 425.13,307.48 428.77,307.48 432.40,307.48 C 436.03,307.48 439.67,307.48 443.30,307.48 C 446.93,307.48 450.57,314.77 454.20,314.77 C 457.83,314.77 461.47,314.77 465.10,314.77 C 468.73,314.77 472.37,314.77 476.00,314.77 C 479.63,314.77 483.27,305.65 486.90,305.65 C 490.53,305.65 494.17,298.35 497.80,298.35 C 501.43,298.35 505.07,298.35 508.70,298.35 C 512.33,298.35 515.97,304.01 519.60,304.01 C 523.23,304.01 526.87,304.01 530.50,304.01 C 534.13,304.01 537.77,304.01 541.40,304.01 C 545.03,304.01 548.67,304.01 552.30,304.01 C 555.93,304.01 559.57,285.94 563.20,285.94 C 566.83,285.94 570.47,289.23 574.10,289.23 C 577.73,289.23 581.37,289.23 585.00,289.23" data-product="Nvidia RTX 5060 Ti 8 GB" fill="none" stroke="#75bdd1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,274.63 C 43.63,274.63 47.27,274.63 50.90,274.63 C 54.53,274.63 58.17,279.37 61.80,279.37 C 65.43,279.37 69.07,275.36 72.70,275.36 C 76.33,275.36 79.97,287.22 83.60,287.22 C 87.23,287.22 90.87,283.93 94.50,283.93 C 98.13,283.93 101.77,280.10 105.40,280.10 C 109.03,280.10 112.67,283.75 116.30,283.75 C 119.93,283.75 123.57,283.75 127.20,283.75 C 130.83,283.75 134.47,287.40 138.10,287.40 C 141.73,287.40 145.37,285.76 149.00,285.76 C 152.63,285.76 156.27,283.75 159.90,283.75 C 163.53,283.75 167.17,278.82 170.80,278.82 C 174.43,278.82 178.07,276.45 181.70,276.45 C 185.33,276.45 188.97,283.93 192.60,283.93 C 196.23,283.93 199.87,283.93 203.50,283.93 C 207.13,283.93 210.77,274.81 214.40,274.81 C 218.03,274.81 221.67,276.45 225.30,276.45 C 228.93,276.45 232.57,274.81 236.20,274.81 C 239.83,274.81 243.47,261.85 247.10,261.85 C 250.73,261.85 254.37,261.85 258.00,261.85 C 261.63,261.85 265.27,261.85 268.90,261.85 C 272.53,261.85 276.17,260.02 279.80,260.02 C 283.43,260.02 287.07,260.94 290.70,260.94 C 294.33,260.94 297.97,260.02 301.60,260.02 C 305.23,260.02 308.87,264.77 312.50,264.77 C 316.13,264.77 319.77,258.20 323.40,258.20 C 327.03,258.20 330.67,260.02 334.30,260.02 C 337.93,260.02 341.57,258.93 345.20,258.93 C 348.83,258.93 352.47,260.02 356.10,260.02 C 359.73,260.02 363.37,265.68 367.00,265.68 C 370.63,265.68 374.27,265.68 377.90,265.68 C 381.53,265.68 385.17,265.68 388.80,265.68 C 392.43,265.68 396.07,265.68 399.70,265.68 C 403.33,265.68 406.97,265.68 410.60,265.68 C 414.23,265.68 417.87,265.68 421.50,265.68 C 425.13,265.68 428.77,265.68 432.40,265.68 C 436.03,265.68 439.67,265.68 443.30,265.68 C 446.93,265.68 450.57,265.68 454.20,265.68 C 457.83,265.68 461.47,265.68 465.10,265.68 C 468.73,265.68 472.37,272.80 476.00,272.80 C 479.63,272.80 483.27,274.63 486.90,274.63 C 490.53,274.63 494.17,237.21 497.80,237.21 C 501.43,237.21 505.07,235.75 508.70,235.75 C 512.33,235.75 515.97,229.00 519.60,229.00 C 523.23,229.00 526.87,236.48 530.50,236.48 C 534.13,236.48 537.77,242.69 541.40,242.69 C 545.03,242.69 548.67,232.83 552.30,232.83 C 555.93,232.83 559.57,232.83 563.20,232.83 C 566.83,232.83 570.47,232.83 574.10,232.83 C 577.73,232.83 581.37,231.01 585.00,231.01" data-product="Nvidia RTX 5070" fill="none" stroke="#d26365" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,232.65 C 43.63,232.65 47.27,238.13 50.90,238.13 C 54.53,238.13 58.17,238.13 61.80,238.13 C 65.43,238.13 69.07,238.13 72.70,238.13 C 76.33,238.13 79.97,238.31 83.60,238.31 C 87.23,238.31 90.87,238.31 94.50,238.31 C 98.13,238.31 101.77,238.13 105.40,238.13 C 109.03,238.13 112.67,238.31 116.30,238.31 C 119.93,238.31 123.57,238.13 127.20,238.13 C 130.83,238.13 134.47,241.78 138.10,241.78 C 141.73,241.78 145.37,247.43 149.00,247.43 C 152.63,247.43 156.27,241.78 159.90,241.78 C 163.53,241.78 167.17,238.13 170.80,238.13 C 174.43,238.13 178.07,238.13 181.70,238.13 C 185.33,238.13 188.97,238.31 192.60,238.31 C 196.23,238.31 199.87,238.13 203.50,238.13 C 207.13,238.13 210.77,238.13 214.40,238.13 C 218.03,238.13 221.67,223.71 225.30,223.71 C 228.93,223.71 232.57,210.93 236.20,210.93 C 239.83,210.93 243.47,192.50 247.10,192.50 C 250.73,192.50 254.37,201.63 258.00,201.63 C 261.63,201.63 265.27,201.63 268.90,201.63 C 272.53,201.63 276.17,201.63 279.80,201.63 C 283.43,201.63 287.07,201.63 290.70,201.63 C 294.33,201.63 297.97,201.63 301.60,201.63 C 305.23,201.63 308.87,201.63 312.50,201.63 C 316.13,201.63 319.77,201.63 323.40,201.63 C 327.03,201.63 330.67,210.75 334.30,210.75 C 337.93,210.75 341.57,194.32 345.20,194.32 C 348.83,194.32 352.47,194.32 356.10,194.32 C 359.73,194.32 363.37,194.32 367.00,194.32 C 370.63,194.32 374.27,194.32 377.90,194.32 C 381.53,194.32 385.17,196.15 388.80,196.15 C 392.43,196.15 396.07,196.15 399.70,196.15 C 403.33,196.15 406.97,210.75 410.60,210.75 C 414.23,210.75 417.87,196.15 421.50,196.15 C 425.13,196.15 428.77,196.15 432.40,196.15 C 436.03,196.15 439.67,196.15 443.30,196.15 C 446.93,196.15 450.57,207.10 454.20,207.10 C 457.83,207.10 461.47,200.71 465.10,200.71 C 468.73,200.71 472.37,210.75 476.00,210.75 C 479.63,210.75 483.27,201.63 486.90,201.63 C 490.53,201.63 494.17,187.03 497.80,187.03 C 501.43,187.03 505.07,176.44 508.70,176.44 C 512.33,176.44 515.97,165.13 519.60,165.13 C 523.23,165.13 526.87,165.13 530.50,165.13 C 534.13,165.13 537.77,165.13 541.40,165.13 C 545.03,165.13 548.67,165.13 552.30,165.13 C 555.93,165.13 559.57,165.13 563.20,165.13 C 566.83,165.13 570.47,165.13 574.10,165.13 C 577.73,165.13 581.37,156.00 585.00,156.00" data-product="Nvidia RTX 5070 Ti" fill="none" stroke="#ffcea9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,174.25 C 43.63,174.25 47.27,174.43 50.90,174.43 C 54.53,174.43 58.17,192.50 61.80,192.50 C 65.43,192.50 69.07,192.50 72.70,192.50 C 76.33,192.50 79.97,192.50 83.60,192.50 C 87.23,192.50 90.87,205.46 94.50,205.46 C 98.13,205.46 101.77,192.68 105.40,192.68 C 109.03,192.68 112.67,196.15 116.30,196.15 C 119.93,196.15 123.57,192.68 127.20,192.68 C 130.83,192.68 134.47,194.51 138.10,194.51 C 141.73,194.51 145.37,194.32 149.00,194.32 C 152.63,194.32 156.27,194.51 159.90,194.51 C 163.53,194.51 167.17,192.50 170.80,192.50 C 174.43,192.50 178.07,192.50 181.70,192.50 C 185.33,192.50 188.97,192.50 192.60,192.50 C 196.23,192.50 199.87,174.25 203.50,174.25 C 207.13,174.25 210.77,150.53 214.40,150.53 C 218.03,150.53 221.67,143.59 225.30,143.59 C 228.93,143.59 232.57,123.15 236.20,123.15 C 239.83,123.15 243.47,128.62 247.10,128.62 C 250.73,128.62 254.37,125.89 258.00,125.89 C 261.63,125.89 265.27,125.89 268.90,125.89 C 272.53,125.89 276.17,139.57 279.80,139.57 C 283.43,139.57 287.07,139.57 290.70,139.57 C 294.33,139.57 297.97,146.88 301.60,146.88 C 305.23,146.88 308.87,145.05 312.50,145.05 C 316.13,145.05 319.77,139.57 323.40,139.57 C 327.03,139.57 330.67,146.88 334.30,146.88 C 337.93,146.88 341.57,139.57 345.20,139.57 C 348.83,139.57 352.47,139.57 356.10,139.57 C 359.73,139.57 363.37,139.57 367.00,139.57 C 370.63,139.57 374.27,139.57 377.90,139.57 C 381.53,139.57 385.17,139.57 388.80,139.57 C 392.43,139.57 396.07,143.22 399.70,143.22 C 403.33,143.22 406.97,139.57 410.60,139.57 C 414.23,139.57 417.87,146.88 421.50,146.88 C 425.13,146.88 428.77,146.88 432.40,146.88 C 436.03,146.88 439.67,146.88 443.30,146.88 C 446.93,146.88 450.57,146.88 454.20,146.88 C 457.83,146.88 461.47,146.88 465.10,146.88 C 468.73,146.88 472.37,146.88 476.00,146.88 C 479.63,146.88 483.27,146.88 486.90,146.88 C 490.53,146.88 494.17,139.57 497.80,139.57 C 501.43,139.57 505.07,105.08 508.70,105.08 C 512.33,105.08 515.97,92.13 519.60,92.13 C 523.23,92.13 526.87,92.13 530.50,92.13 C 534.13,92.13 537.77,110.38 541.40,110.38 C 545.03,110.38 548.67,110.38 552.30,110.38 C 555.93,110.38 559.57,73.33 563.20,73.33 C 566.83,73.33 570.47,73.15 574.10,73.15 C 577.73,73.15 581.37,46.50 585.00,46.50" data-product="Nvidia RTX 5080" fill="none" stroke="#5bb0c0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="421.50" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="432.40" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="443.30" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="454.20" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="465.10" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="476.00" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="486.90" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="497.80" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="508.70" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="519.60" cy="278.27" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="530.50" cy="278.27" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="541.40" cy="280.10" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="552.30" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="563.20" cy="270.98" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="574.10" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="585.00" cy="270.98" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="40.00" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="50.90" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="61.80" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="72.70" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="83.60" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="94.50" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="105.40" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="116.30" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="127.20" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="138.10" cy="309.30" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="149.00" cy="312.95" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="159.90" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="170.80" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="181.70" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="192.60" cy="305.65" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="203.50" cy="305.65" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="214.40" cy="303.82" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="225.30" cy="303.82" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="236.20" cy="302.00" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="247.10" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="258.00" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="268.90" cy="302.00" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="279.80" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="290.70" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="301.60" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="312.50" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="323.40" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="334.30" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="345.20" cy="293.06" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="356.10" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="367.00" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="377.90" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="388.80" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="399.70" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="410.60" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="421.50" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="432.40" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="443.30" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="454.20" cy="302.00" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="465.10" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="476.00" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="486.90" cy="292.88" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="497.80" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="508.70" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="519.60" cy="291.05" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="530.50" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="541.40" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="552.30" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="563.20" cy="283.75" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="574.10" cy="280.10" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="585.00" cy="280.10" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="40.00" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="50.90" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="61.80" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="72.70" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="83.60" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="94.50" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="105.40" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="116.30" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="127.20" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="138.10" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="149.00" cy="329.38" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="159.90" cy="324.81" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="170.80" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="181.70" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="192.60" cy="322.44" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="203.50" cy="322.44" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="214.40" cy="318.43" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="225.30" cy="318.43" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="236.20" cy="318.43" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="247.10" cy="318.43" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="258.00" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="268.90" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="279.80" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="290.70" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="301.60" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="312.50" cy="312.95" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="323.40" cy="312.95" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="334.30" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="345.20" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="356.10" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="367.00" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="377.90" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="388.80" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="399.70" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="410.60" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="421.50" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="432.40" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="443.30" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="454.20" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="465.10" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="476.00" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="486.90" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="497.80" cy="307.48" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="508.70" cy="302.00" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="519.60" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="530.50" cy="302.00" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="541.40" cy="300.36" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="552.30" cy="296.52" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="563.20" cy="292.88" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="574.10" cy="302.00" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="585.00" cy="302.00" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="40.00" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="50.90" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="61.80" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="72.70" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="83.60" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="94.50" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="105.40" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="116.30" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="127.20" cy="272.80" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="138.10" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="149.00" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="159.90" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="170.80" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="181.70" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="192.60" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="203.50" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="214.40" cy="269.15" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="225.30" cy="269.15" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="236.20" cy="269.15" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="247.10" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="258.00" cy="267.32" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="268.90" cy="260.02" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="279.80" cy="260.02" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="290.70" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="301.60" cy="263.68" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="312.50" cy="263.68" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="323.40" cy="260.02" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="334.30" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="345.20" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="356.10" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="367.00" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="377.90" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="388.80" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="399.70" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="410.60" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="421.50" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="432.40" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="443.30" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="454.20" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="465.10" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="476.00" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="486.90" cy="259.11" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="497.80" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="508.70" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="519.60" cy="260.02" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="530.50" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="541.40" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="552.30" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="563.20" cy="253.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="574.10" cy="247.25" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="585.00" cy="247.25" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="40.00" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="50.90" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="61.80" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="72.70" cy="248.16" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="83.60" cy="252.72" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="94.50" cy="252.72" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="105.40" cy="256.38" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="116.30" cy="256.38" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="127.20" cy="256.38" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="138.10" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="149.00" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="159.90" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="170.80" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="181.70" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="192.60" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="203.50" cy="261.85" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="214.40" cy="254.55" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="225.30" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="236.20" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="247.10" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="258.00" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="268.90" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="279.80" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="290.70" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="301.60" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="312.50" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="323.40" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="334.30" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="345.20" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="356.10" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="367.00" cy="252.72" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="377.90" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="388.80" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="399.70" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="410.60" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="421.50" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="432.40" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="443.30" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="454.20" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="465.10" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="476.00" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="486.90" cy="249.07" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="497.80" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="508.70" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="519.60" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="530.50" cy="239.95" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="541.40" cy="239.95" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="552.30" cy="236.30" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="563.20" cy="236.30" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="574.10" cy="229.00" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="585.00" cy="223.53" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="40.00" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="50.90" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="61.80" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="72.70" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="83.60" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="94.50" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="105.40" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="116.30" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="127.20" cy="334.85" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="138.10" cy="336.68" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="149.00" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="159.90" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="170.80" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="181.70" cy="338.13" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="192.60" cy="338.13" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="203.50" cy="338.13" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="214.40" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="225.30" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="236.20" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="247.10" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="258.00" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="268.90" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="279.80" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="290.70" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="301.60" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="312.50" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="323.40" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="334.30" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="345.20" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="356.10" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="367.00" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="377.90" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="388.80" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="399.70" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="410.60" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="421.50" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="432.40" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="443.30" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="454.20" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="465.10" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="476.00" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="486.90" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="497.80" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="508.70" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="519.60" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="530.50" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="541.40" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="552.30" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="563.20" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="574.10" cy="322.07" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="585.00" cy="322.07" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="40.00" cy="327.55" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="50.90" cy="327.55" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="61.80" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="72.70" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="83.60" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="94.50" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="105.40" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="116.30" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="127.20" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="138.10" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="149.00" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="159.90" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="170.80" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="181.70" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="192.60" cy="331.20" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="203.50" cy="331.20" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="214.40" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="225.30" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="236.20" cy="327.55" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="247.10" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="258.00" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="268.90" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="279.80" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="290.70" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="301.60" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="312.50" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="323.40" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="334.30" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="345.20" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="356.10" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="367.00" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="377.90" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="388.80" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="399.70" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="410.60" cy="319.52" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="421.50" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="432.40" cy="319.52" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="443.30" cy="319.52" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="454.20" cy="320.62" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="465.10" cy="321.89" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="476.00" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="486.90" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="497.80" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="508.70" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="519.60" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="530.50" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="541.40" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="552.30" cy="314.77" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="563.20" cy="314.77" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="574.10" cy="314.77" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="585.00" cy="314.77" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="40.00" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="50.90" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="61.80" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="72.70" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="83.60" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="94.50" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="105.40" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="116.30" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="127.20" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="138.10" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="149.00" cy="333.02" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="159.90" cy="334.85" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="170.80" cy="334.85" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="181.70" cy="334.85" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="192.60" cy="338.50" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="203.50" cy="338.50" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="214.40" cy="332.11" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="225.30" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="236.20" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="247.10" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="258.00" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="268.90" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="279.80" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="290.70" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="301.60" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="312.50" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="323.40" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="334.30" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="345.20" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="356.10" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="367.00" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="377.90" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="388.80" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="399.70" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="410.60" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="421.50" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="432.40" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="443.30" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="454.20" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="465.10" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="476.00" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="486.90" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="497.80" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="508.70" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="519.60" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="530.50" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="541.40" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="541.40" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="563.20" cy="318.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="574.10" cy="318.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="585.00" cy="302.00" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="40.00" cy="320.25" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="50.90" cy="320.25" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="61.80" cy="321.89" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="72.70" cy="320.98" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="83.60" cy="320.25" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="94.50" cy="322.26" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="105.40" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="116.30" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="127.20" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="138.10" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="149.00" cy="323.90" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="159.90" cy="324.08" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="170.80" cy="324.08" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="181.70" cy="324.08" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="192.60" cy="324.08" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="203.50" cy="325.73" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="214.40" cy="327.55" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="225.30" cy="322.07" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="236.20" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="247.10" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="258.00" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="268.90" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="279.80" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="290.70" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="301.60" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="312.50" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="323.40" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="334.30" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="345.20" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="356.10" cy="314.77" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="367.00" cy="314.77" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="377.90" cy="318.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="388.80" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="399.70" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="410.60" cy="311.13" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="421.50" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="432.40" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="443.30" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="454.20" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="465.10" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="476.00" cy="313.13" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="486.90" cy="311.13" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="497.80" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="519.60" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="530.50" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="541.40" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="552.30" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="563.20" cy="305.65" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="574.10" cy="294.88" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="40.00" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="50.90" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="61.80" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="72.70" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="83.60" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="94.50" cy="305.83" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="105.40" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="116.30" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="127.20" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="138.10" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="149.00" cy="302.00" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="159.90" cy="302.00" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="170.80" cy="298.35" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="181.70" cy="298.35" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="192.60" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="203.50" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="214.40" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="225.30" cy="292.88" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="236.20" cy="292.88" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="247.10" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="258.00" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="268.90" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="279.80" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="290.70" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="301.60" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="312.50" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="323.40" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="334.30" cy="281.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="345.20" cy="283.75" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="356.10" cy="283.75" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="367.00" cy="283.75" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="377.90" cy="281.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="388.80" cy="285.57" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="399.70" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="410.60" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="421.50" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="432.40" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="443.30" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="454.20" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="465.10" cy="271.89" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="476.00" cy="272.80" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="486.90" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="497.80" cy="256.38" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="508.70" cy="232.65" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="519.60" cy="233.93" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="530.50" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="541.40" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="552.30" cy="232.65" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="563.20" cy="232.65" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="574.10" cy="231.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="585.00" cy="231.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="585.00" cy="231.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="40.00" cy="307.84" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="50.90" cy="312.95" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="61.80" cy="307.48" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="72.70" cy="312.04" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="83.60" cy="312.95" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="94.50" cy="312.95" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="105.40" cy="311.13" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="116.30" cy="312.58" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="127.20" cy="316.05" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="138.10" cy="312.95" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="149.00" cy="316.60" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="159.90" cy="316.60" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="170.80" cy="312.58" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="181.70" cy="317.88" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="192.60" cy="311.13" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="203.50" cy="311.13" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="214.40" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="225.30" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="236.20" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="247.10" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="258.00" cy="310.94" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="268.90" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="279.80" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="290.70" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="301.60" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="312.50" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="323.40" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="334.30" cy="303.82" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="345.20" cy="303.82" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="356.10" cy="303.82" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="367.00" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="377.90" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="388.80" cy="302.00" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="399.70" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="410.60" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="421.50" cy="307.48" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="432.40" cy="307.48" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="443.30" cy="307.48" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="454.20" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="465.10" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="476.00" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="486.90" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="497.80" cy="298.35" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="508.70" cy="298.35" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="519.60" cy="304.01" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="530.50" cy="304.01" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="541.40" cy="304.01" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="552.30" cy="304.01" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="563.20" cy="285.94" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="574.10" cy="289.23" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="585.00" cy="289.23" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="40.00" cy="274.63" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="50.90" cy="274.63" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="61.80" cy="279.37" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="72.70" cy="275.36" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="83.60" cy="287.22" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="94.50" cy="283.93" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="105.40" cy="280.10" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="116.30" cy="283.75" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="127.20" cy="283.75" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="138.10" cy="287.40" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="149.00" cy="285.76" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="159.90" cy="283.75" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="170.80" cy="278.82" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="181.70" cy="276.45" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="192.60" cy="283.93" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="203.50" cy="283.93" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="214.40" cy="274.81" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="225.30" cy="276.45" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="236.20" cy="274.81" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="247.10" cy="261.85" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="258.00" cy="261.85" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="268.90" cy="261.85" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="279.80" cy="260.02" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="290.70" cy="260.94" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="301.60" cy="260.02" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="312.50" cy="264.77" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="323.40" cy="258.20" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="334.30" cy="260.02" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="345.20" cy="258.93" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="356.10" cy="260.02" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="367.00" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="377.90" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="388.80" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="399.70" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="410.60" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="421.50" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="432.40" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="443.30" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="454.20" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="465.10" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="476.00" cy="272.80" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="486.90" cy="274.63" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="497.80" cy="237.21" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="508.70" cy="235.75" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="519.60" cy="229.00" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="530.50" cy="236.48" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="541.40" cy="242.69" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="552.30" cy="232.83" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="563.20" cy="232.83" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="574.10" cy="232.83" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="585.00" cy="231.01" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="40.00" cy="232.65" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="50.90" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="61.80" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="72.70" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="83.60" cy="238.31" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="94.50" cy="238.31" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="105.40" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="116.30" cy="238.31" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="127.20" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="138.10" cy="241.78" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="149.00" cy="247.43" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="159.90" cy="241.78" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="170.80" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="181.70" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="192.60" cy="238.31" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="203.50" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="214.40" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="225.30" cy="223.71" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="236.20" cy="210.93" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="247.10" cy="192.50" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="258.00" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="268.90" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="279.80" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="290.70" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="301.60" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="312.50" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="323.40" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="334.30" cy="210.75" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="345.20" cy="194.32" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="356.10" cy="194.32" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="367.00" cy="194.32" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="377.90" cy="194.32" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="388.80" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="399.70" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="410.60" cy="210.75" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="421.50" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="432.40" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="443.30" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="454.20" cy="207.10" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="465.10" cy="200.71" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="476.00" cy="210.75" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="486.90" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="497.80" cy="187.03" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="508.70" cy="176.44" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="519.60" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="530.50" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="541.40" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="552.30" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="563.20" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="574.10" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="585.00" cy="156.00" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="40.00" cy="174.25" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="50.90" cy="174.43" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="61.80" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="72.70" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="83.60" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="94.50" cy="205.46" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="105.40" cy="192.68" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="116.30" cy="196.15" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="127.20" cy="192.68" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="138.10" cy="194.51" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="149.00" cy="194.32" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="159.90" cy="194.51" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="170.80" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="181.70" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="192.60" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="203.50" cy="174.25" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="214.40" cy="150.53" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="225.30" cy="143.59" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="236.20" cy="123.15" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="247.10" cy="128.62" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="258.00" cy="125.89" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="268.90" cy="125.89" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="279.80" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="290.70" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="301.60" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="312.50" cy="145.05" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="323.40" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="334.30" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="345.20" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="356.10" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="367.00" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="377.90" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="388.80" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="399.70" cy="143.22" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="410.60" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="421.50" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="432.40" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="443.30" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="454.20" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="465.10" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="476.00" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="486.90" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="497.80" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="508.70" cy="105.08" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="519.60" cy="92.13" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="530.50" cy="92.13" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="541.40" cy="110.38" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="552.30" cy="110.38" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="563.20" cy="73.33" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="574.10" cy="73.15" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="585.00" cy="46.50" r="2" fill="#5bb0c0" style="opacity:0;" /></svg><div class="fv-x-axis-title">Week</div><div class="riv-line-legend" data-chart="fv-chart-1792679910923-z7ixryjjv-line-Lowest pricing"><button class="riv-legend-item " data-product="AMD Radeon RX 9070 GRE"><span class="riv-legend-marker" style="background-color: #E33235;"></span>AMD Radeon RX 9070 GRE</button><button class="riv-legend-item " data-product="AMD RX 9060 XT 16 GB"><span class="riv-legend-marker" style="background-color: #FE9F58;"></span>AMD RX 9060 XT 16 GB</button><button class="riv-legend-item " data-product="AMD RX 9060 XT 8 GB"><span class="riv-legend-marker" style="background-color: #1CA9C4;"></span>AMD RX 9060 XT 8 GB</button><button class="riv-legend-item " data-product="AMD RX 9070"><span class="riv-legend-marker" style="background-color: #EB6F71;"></span>AMD RX 9070</button><button class="riv-legend-item " data-product="AMD RX 9070 XT"><span class="riv-legend-marker" style="background-color: #FFC08B;"></span>AMD RX 9070 XT</button><button class="riv-legend-item " data-product="Intel Arc B570"><span class="riv-legend-marker" style="background-color: #66C5D7;"></span>Intel Arc B570</button><button class="riv-legend-item " data-product="Intel Arc B580"><span class="riv-legend-marker" style="background-color: #B5282A;"></span>Intel Arc B580</button><button class="riv-legend-item " data-product="Nvidia RTX 5050"><span class="riv-legend-marker" style="background-color: #D07F46;"></span>Nvidia RTX 5050</button><button class="riv-legend-item " data-product="Nvidia RTX 5060"><span class="riv-legend-marker" style="background-color: #e97a7b;"></span>Nvidia RTX 5060</button><button class="riv-legend-item " data-product="Nvidia RTX 5060 Ti 16 GB"><span class="riv-legend-marker" style="background-color: #e38e4f;"></span>Nvidia RTX 5060 Ti 16 GB</button><button class="riv-legend-item " data-product="Nvidia RTX 5060 Ti 8 GB"><span class="riv-legend-marker" style="background-color: #75bdd1;"></span>Nvidia RTX 5060 Ti 8 GB</button><button class="riv-legend-item " data-product="Nvidia RTX 5070"><span class="riv-legend-marker" style="background-color: #d26365;"></span>Nvidia RTX 5070</button><button class="riv-legend-item " data-product="Nvidia RTX 5070 Ti"><span class="riv-legend-marker" style="background-color: #ffcea9;"></span>Nvidia RTX 5070 Ti</button><button class="riv-legend-item " data-product="Nvidia RTX 5080"><span class="riv-legend-marker" style="background-color: #5bb0c0;"></span>Nvidia RTX 5080</button></div><table class="sr-only"><caption>Lowest pricing Data</caption><thead><tr><th>Timestamp (Week)</th><th>AMD Radeon RX 9070 GRE (Price, $)</th><th>AMD RX 9060 XT 16 GB (Price, $)</th><th>AMD RX 9060 XT 8 GB (Price, $)</th><th>AMD RX 9070 (Price, $)</th><th>AMD RX 9070 XT (Price, $)</th><th>Intel Arc B570 (Price, $)</th><th>Intel Arc B580 (Price, $)</th><th>Nvidia RTX 5050 (Price, $)</th><th>Nvidia RTX 5060 (Price, $)</th><th>Nvidia RTX 5060 Ti 16 GB (Price, $)</th><th>Nvidia RTX 5060 Ti 8 GB (Price, $)</th><th>Nvidia RTX 5070 (Price, $)</th><th>Nvidia RTX 5070 Ti (Price, $)</th><th>Nvidia RTX 5080 (Price, $)</th></tr></thead><tbody><tr><td>1</td><td>N/A</td><td>370</td><td>280</td><td>600</td><td>700</td><td>230</td><td>260</td><td>250</td><td>300</td><td>430</td><td>368</td><td>550</td><td>780</td><td>1100</td></tr><tr><td>2</td><td>N/A</td><td>370</td><td>270</td><td>600</td><td>700</td><td>230</td><td>260</td><td>250</td><td>300</td><td>430</td><td>340</td><td>550</td><td>750</td><td>1099</td></tr><tr><td>3</td><td>N/A</td><td>370</td><td>280</td><td>550</td><td>700</td><td>230</td><td>250</td><td>250</td><td>291</td><td>430</td><td>370</td><td>524</td><td>750</td><td>1000</td></tr><tr><td>4</td><td>N/A</td><td>370</td><td>280</td><td>550</td><td>695</td><td>230</td><td>250</td><td>250</td><td>296</td><td>430</td><td>345</td><td>546</td><td>750</td><td>1000</td></tr><tr><td>5</td><td>N/A</td><td>350</td><td>270</td><td>600</td><td>670</td><td>230</td><td>250</td><td>250</td><td>300</td><td>430</td><td>340</td><td>481</td><td>749</td><td>1000</td></tr><tr><td>6</td><td>N/A</td><td>350</td><td>270</td><td>600</td><td>670</td><td>230</td><td>250</td><td>240</td><td>289</td><td>379</td><td>340</td><td>499</td><td>749</td><td>929</td></tr><tr><td>7</td><td>N/A</td><td>350</td><td>270</td><td>550</td><td>650</td><td>230</td><td>250</td><td>240</td><td>299</td><td>430</td><td>350</td><td>520</td><td>750</td><td>999</td></tr><tr><td>8</td><td>N/A</td><td>350</td><td>270</td><td>550</td><td>650</td><td>200</td><td>250</td><td>250</td><td>299</td><td>430</td><td>342</td><td>500</td><td>749</td><td>980</td></tr><tr><td>9</td><td>N/A</td><td>350</td><td>270</td><td>560</td><td>650</td><td>220</td><td>250</td><td>250</td><td>299</td><td>430</td><td>323</td><td>500</td><td>750</td><td>999</td></tr><tr><td>10</td><td>N/A</td><td>360</td><td>270</td><td>550</td><td>600</td><td>210</td><td>250</td><td>250</td><td>299</td><td>430</td><td>340</td><td>480</td><td>730</td><td>989</td></tr><tr><td>11</td><td>N/A</td><td>340</td><td>250</td><td>550</td><td>600</td><td>200</td><td>250</td><td>230</td><td>280</td><td>400</td><td>320</td><td>489</td><td>699</td><td>990</td></tr><tr><td>12</td><td>N/A</td><td>350</td><td>275</td><td>530</td><td>600</td><td>200</td><td>250</td><td>220</td><td>279</td><td>400</td><td>320</td><td>500</td><td>730</td><td>989</td></tr><tr><td>13</td><td>N/A</td><td>350</td><td>280</td><td>530</td><td>600</td><td>200</td><td>250</td><td>220</td><td>279</td><td>420</td><td>342</td><td>527</td><td>750</td><td>1000</td></tr><tr><td>14</td><td>N/A</td><td>370</td><td>280</td><td>530</td><td>600</td><td>202</td><td>250</td><td>220</td><td>279</td><td>420</td><td>313</td><td>540</td><td>750</td><td>1000</td></tr><tr><td>15</td><td>N/A</td><td>380</td><td>288</td><td>530</td><td>600</td><td>202</td><td>240</td><td>200</td><td>279</td><td>430</td><td>350</td><td>499</td><td>749</td><td>1000</td></tr><tr><td>16</td><td>N/A</td><td>380</td><td>288</td><td>530</td><td>620</td><td>202</td><td>240</td><td>200</td><td>270</td><td>430</td><td>350</td><td>499</td><td>750</td><td>1100</td></tr><tr><td>17</td><td>N/A</td><td>390</td><td>310</td><td>580</td><td>660</td><td>200</td><td>250</td><td>235</td><td>260</td><td>430</td><td>330</td><td>549</td><td>750</td><td>1230</td></tr><tr><td>18</td><td>N/A</td><td>390</td><td>310</td><td>580</td><td>700</td><td>200</td><td>250</td><td>240</td><td>290</td><td>450</td><td>330</td><td>540</td><td>829</td><td>1268</td></tr><tr><td>19</td><td>N/A</td><td>400</td><td>310</td><td>580</td><td>720</td><td>200</td><td>260</td><td>240</td><td>299</td><td>450</td><td>330</td><td>549</td><td>899</td><td>1380</td></tr><tr><td>20</td><td>N/A</td><td>440</td><td>310</td><td>600</td><td>720</td><td>200</td><td>290</td><td>240</td><td>299</td><td>520</td><td>330</td><td>620</td><td>1000</td><td>1350</td></tr><tr><td>21</td><td>N/A</td><td>440</td><td>350</td><td>590</td><td>730</td><td>250</td><td>290</td><td>260</td><td>299</td><td>520</td><td>351</td><td>620</td><td>950</td><td>1365</td></tr><tr><td>22</td><td>N/A</td><td>400</td><td>346</td><td>630</td><td>730</td><td>250</td><td>300</td><td>260</td><td>299</td><td>520</td><td>360</td><td>620</td><td>950</td><td>1365</td></tr><tr><td>23</td><td>N/A</td><td>440</td><td>346</td><td>630</td><td>730</td><td>250</td><td>300</td><td>260</td><td>340</td><td>520</td><td>360</td><td>630</td><td>950</td><td>1290</td></tr><tr><td>24</td><td>N/A</td><td>440</td><td>346</td><td>620</td><td>730</td><td>250</td><td>300</td><td>260</td><td>340</td><td>520</td><td>360</td><td>625</td><td>950</td><td>1290</td></tr><tr><td>25</td><td>N/A</td><td>440</td><td>346</td><td>610</td><td>730</td><td>250</td><td>300</td><td>260</td><td>349</td><td>550</td><td>360</td><td>630</td><td>950</td><td>1250</td></tr><tr><td>26</td><td>N/A</td><td>440</td><td>340</td><td>610</td><td>730</td><td>250</td><td>300</td><td>290</td><td>349</td><td>550</td><td>360</td><td>604</td><td>950</td><td>1260</td></tr><tr><td>27</td><td>N/A</td><td>440</td><td>340</td><td>630</td><td>730</td><td>250</td><td>300</td><td>290</td><td>349</td><td>570</td><td>360</td><td>640</td><td>950</td><td>1290</td></tr><tr><td>28</td><td>N/A</td><td>440</td><td>346</td><td>620</td><td>720</td><td>250</td><td>290</td><td>290</td><td>349</td><td>515</td><td>390</td><td>630</td><td>900</td><td>1250</td></tr><tr><td>29</td><td>N/A</td><td>449</td><td>350</td><td>620</td><td>710</td><td>250</td><td>290</td><td>290</td><td>349</td><td>500</td><td>390</td><td>636</td><td>990</td><td>1290</td></tr><tr><td>30</td><td>N/A</td><td>440</td><td>350</td><td>620</td><td>710</td><td>260</td><td>290</td><td>290</td><td>330</td><td>500</td><td>390</td><td>630</td><td>990</td><td>1290</td></tr><tr><td>31</td><td>N/A</td><td>440</td><td>350</td><td>620</td><td>670</td><td>260</td><td>290</td><td>290</td><td>330</td><td>500</td><td>380</td><td>599</td><td>990</td><td>1290</td></tr><tr><td>32</td><td>N/A</td><td>430</td><td>360</td><td>620</td><td>710</td><td>260</td><td>290</td><td>290</td><td>310</td><td>515</td><td>380</td><td>599</td><td>990</td><td>1290</td></tr><tr><td>33</td><td>N/A</td><td>430</td><td>360</td><td>600</td><td>710</td><td>260</td><td>290</td><td>290</td><td>349</td><td>490</td><td>400</td><td>599</td><td>980</td><td>1290</td></tr><tr><td>34</td><td>N/A</td><td>440</td><td>360</td><td>620</td><td>710</td><td>260</td><td>290</td><td>290</td><td>349</td><td>550</td><td>380</td><td>599</td><td>980</td><td>1270</td></tr><tr><td>35</td><td>N/A</td><td>430</td><td>360</td><td>600</td><td>700</td><td>260</td><td>304</td><td>290</td><td>350</td><td>550</td><td>380</td><td>599</td><td>900</td><td>1290</td></tr><tr><td>36</td><td>550</td><td>440</td><td>360</td><td>600</td><td>700</td><td>260</td><td>300</td><td>290</td><td>340</td><td>550</td><td>370</td><td>599</td><td>980</td><td>1250</td></tr><tr><td>37</td><td>550</td><td>440</td><td>350</td><td>600</td><td>700</td><td>250</td><td>304</td><td>290</td><td>340</td><td>570</td><td>370</td><td>599</td><td>980</td><td>1250</td></tr><tr><td>38</td><td>550</td><td>440</td><td>350</td><td>600</td><td>700</td><td>250</td><td>304</td><td>290</td><td>340</td><td>570</td><td>370</td><td>599</td><td>980</td><td>1250</td></tr><tr><td>39</td><td>500</td><td>400</td><td>360</td><td>600</td><td>700</td><td>250</td><td>298</td><td>290</td><td>340</td><td>570</td><td>330</td><td>599</td><td>920</td><td>1250</td></tr><tr><td>40</td><td>500</td><td>430</td><td>360</td><td>600</td><td>700</td><td>260</td><td>291</td><td>290</td><td>340</td><td>565</td><td>330</td><td>599</td><td>955</td><td>1250</td></tr><tr><td>41</td><td>500</td><td>430</td><td>360</td><td>600</td><td>700</td><td>250</td><td>290</td><td>290</td><td>339</td><td>560</td><td>330</td><td>560</td><td>900</td><td>1250</td></tr><tr><td>42</td><td>550</td><td>450</td><td>360</td><td>635</td><td>690</td><td>260</td><td>290</td><td>290</td><td>350</td><td>570</td><td>380</td><td>550</td><td>950</td><td>1250</td></tr><tr><td>43</td><td>500</td><td>470</td><td>370</td><td>650</td><td>720</td><td>260</td><td>310</td><td>299</td><td>359</td><td>650</td><td>420</td><td>755</td><td>1030</td><td>1290</td></tr><tr><td>44</td><td>500</td><td>470</td><td>400</td><td>650</td><td>720</td><td>260</td><td>310</td><td>299</td><td>N/A</td><td>780</td><td>420</td><td>763</td><td>1088</td><td>1479</td></tr><tr><td>45</td><td>530</td><td>460</td><td>360</td><td>630</td><td>730</td><td>260</td><td>310</td><td>299</td><td>359</td><td>773</td><td>389</td><td>800</td><td>1150</td><td>1550</td></tr><tr><td>46</td><td>530</td><td>470</td><td>400</td><td>650</td><td>740</td><td>260</td><td>310</td><td>299</td><td>359</td><td>570</td><td>389</td><td>759</td><td>1150</td><td>1550</td></tr><tr><td>47</td><td>520</td><td>470</td><td>409</td><td>650</td><td>740</td><td>260</td><td>310</td><td>299</td><td>359</td><td>570</td><td>389</td><td>725</td><td>1150</td><td>1450</td></tr><tr><td>48</td><td>500</td><td>470</td><td>430</td><td>650</td><td>760</td><td>260</td><td>330</td><td>N/A</td><td>359</td><td>780</td><td>389</td><td>779</td><td>1150</td><td>1450</td></tr><tr><td>49</td><td>570</td><td>500</td><td>450</td><td>667</td><td>760</td><td>260</td><td>330</td><td>310</td><td>380</td><td>780</td><td>488</td><td>779</td><td>1150</td><td>1653</td></tr><tr><td>50</td><td>550</td><td>520</td><td>400</td><td>700</td><td>800</td><td>290</td><td>330</td><td>310</td><td>439</td><td>789</td><td>470</td><td>779</td><td>1150</td><td>1654</td></tr><tr><td>51</td><td>570</td><td>520</td><td>400</td><td>700</td><td>830</td><td>290</td><td>330</td><td>400</td><td>N/A</td><td>789</td><td>470</td><td>789</td><td>1200</td><td>1800</td></tr></tbody></table><script type="application/json" class="riv-line-chart-data">{"products":[{"name":"AMD Radeon RX 9070 GRE","displayName":"AMD Radeon RX 9070 GRE","color":"#E33235"},{"name":"AMD RX 9060 XT 16 GB","displayName":"AMD RX 9060 XT 16 GB","color":"#FE9F58"},{"name":"AMD RX 9060 XT 8 GB","displayName":"AMD RX 9060 XT 8 GB","color":"#1CA9C4"},{"name":"AMD RX 9070","displayName":"AMD RX 9070","color":"#EB6F71"},{"name":"AMD RX 9070 XT","displayName":"AMD RX 9070 XT","color":"#FFC08B"},{"name":"Intel Arc B570","displayName":"Intel Arc B570","color":"#66C5D7"},{"name":"Intel Arc B580","displayName":"Intel Arc B580","color":"#B5282A"},{"name":"Nvidia RTX 5050","displayName":"Nvidia RTX 5050","color":"#D07F46"},{"name":"Nvidia RTX 5060","displayName":"Nvidia RTX 5060","color":"#e97a7b"},{"name":"Nvidia RTX 5060 Ti 16 GB","displayName":"Nvidia RTX 5060 Ti 16 GB","color":"#e38e4f"},{"name":"Nvidia RTX 5060 Ti 8 GB","displayName":"Nvidia RTX 5060 Ti 8 GB","color":"#75bdd1"},{"name":"Nvidia RTX 5070","displayName":"Nvidia RTX 5070","color":"#d26365"},{"name":"Nvidia RTX 5070 Ti","displayName":"Nvidia RTX 5070 Ti","color":"#ffcea9"},{"name":"Nvidia RTX 5080","displayName":"Nvidia RTX 5080","color":"#5bb0c0"}],"timestampUnit":"Week","unit":"Price, $","xAxisLabel":"Week","data":[{"timestamp":1,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":1,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":1,"productName":"AMD RX 9070","value":600},{"timestamp":1,"productName":"AMD RX 9070 XT","value":700},{"timestamp":1,"productName":"Intel Arc B570","value":230},{"timestamp":1,"productName":"Intel Arc B580","value":260},{"timestamp":1,"productName":"Nvidia RTX 5050","value":250},{"timestamp":1,"productName":"Nvidia RTX 5060","value":300},{"timestamp":1,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":1,"productName":"Nvidia RTX 5060 Ti 8 GB","value":368},{"timestamp":1,"productName":"Nvidia RTX 5070","value":550},{"timestamp":1,"productName":"Nvidia RTX 5070 Ti","value":780},{"timestamp":1,"productName":"Nvidia RTX 5080","value":1100},{"timestamp":2,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":2,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":2,"productName":"AMD RX 9070","value":600},{"timestamp":2,"productName":"AMD RX 9070 XT","value":700},{"timestamp":2,"productName":"Intel Arc B570","value":230},{"timestamp":2,"productName":"Intel Arc B580","value":260},{"timestamp":2,"productName":"Nvidia RTX 5050","value":250},{"timestamp":2,"productName":"Nvidia RTX 5060","value":300},{"timestamp":2,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":2,"productName":"Nvidia RTX 5060 Ti 8 GB","value":340},{"timestamp":2,"productName":"Nvidia RTX 5070","value":550},{"timestamp":2,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":2,"productName":"Nvidia RTX 5080","value":1099},{"timestamp":3,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":3,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":3,"productName":"AMD RX 9070","value":550},{"timestamp":3,"productName":"AMD RX 9070 XT","value":700},{"timestamp":3,"productName":"Intel Arc B570","value":230},{"timestamp":3,"productName":"Intel Arc B580","value":250},{"timestamp":3,"productName":"Nvidia RTX 5050","value":250},{"timestamp":3,"productName":"Nvidia RTX 5060","value":291},{"timestamp":3,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":3,"productName":"Nvidia RTX 5060 Ti 8 GB","value":370},{"timestamp":3,"productName":"Nvidia RTX 5070","value":524},{"timestamp":3,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":3,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":4,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":4,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":4,"productName":"AMD RX 9070","value":550},{"timestamp":4,"productName":"AMD RX 9070 XT","value":695},{"timestamp":4,"productName":"Intel Arc B570","value":230},{"timestamp":4,"productName":"Intel Arc B580","value":250},{"timestamp":4,"productName":"Nvidia RTX 5050","value":250},{"timestamp":4,"productName":"Nvidia RTX 5060","value":296},{"timestamp":4,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":4,"productName":"Nvidia RTX 5060 Ti 8 GB","value":345},{"timestamp":4,"productName":"Nvidia RTX 5070","value":546},{"timestamp":4,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":4,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":5,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":5,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":5,"productName":"AMD RX 9070","value":600},{"timestamp":5,"productName":"AMD RX 9070 XT","value":670},{"timestamp":5,"productName":"Intel Arc B570","value":230},{"timestamp":5,"productName":"Intel Arc B580","value":250},{"timestamp":5,"productName":"Nvidia RTX 5050","value":250},{"timestamp":5,"productName":"Nvidia RTX 5060","value":300},{"timestamp":5,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":5,"productName":"Nvidia RTX 5060 Ti 8 GB","value":340},{"timestamp":5,"productName":"Nvidia RTX 5070","value":481},{"timestamp":5,"productName":"Nvidia RTX 5070 Ti","value":749},{"timestamp":5,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":6,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":6,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":6,"productName":"AMD RX 9070","value":600},{"timestamp":6,"productName":"AMD RX 9070 XT","value":670},{"timestamp":6,"productName":"Intel Arc B570","value":230},{"timestamp":6,"productName":"Intel Arc B580","value":250},{"timestamp":6,"productName":"Nvidia RTX 5050","value":240},{"timestamp":6,"productName":"Nvidia RTX 5060","value":289},{"timestamp":6,"productName":"Nvidia RTX 5060 Ti 16 GB","value":379},{"timestamp":6,"productName":"Nvidia RTX 5060 Ti 8 GB","value":340},{"timestamp":6,"productName":"Nvidia RTX 5070","value":499},{"timestamp":6,"productName":"Nvidia RTX 5070 Ti","value":749},{"timestamp":6,"productName":"Nvidia RTX 5080","value":929},{"timestamp":7,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":7,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":7,"productName":"AMD RX 9070","value":550},{"timestamp":7,"productName":"AMD RX 9070 XT","value":650},{"timestamp":7,"productName":"Intel Arc B570","value":230},{"timestamp":7,"productName":"Intel Arc B580","value":250},{"timestamp":7,"productName":"Nvidia RTX 5050","value":240},{"timestamp":7,"productName":"Nvidia RTX 5060","value":299},{"timestamp":7,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":7,"productName":"Nvidia RTX 5060 Ti 8 GB","value":350},{"timestamp":7,"productName":"Nvidia RTX 5070","value":520},{"timestamp":7,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":7,"productName":"Nvidia RTX 5080","value":999},{"timestamp":8,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":8,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":8,"productName":"AMD RX 9070","value":550},{"timestamp":8,"productName":"AMD RX 9070 XT","value":650},{"timestamp":8,"productName":"Intel Arc B570","value":200},{"timestamp":8,"productName":"Intel Arc B580","value":250},{"timestamp":8,"productName":"Nvidia RTX 5050","value":250},{"timestamp":8,"productName":"Nvidia RTX 5060","value":299},{"timestamp":8,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":8,"productName":"Nvidia RTX 5060 Ti 8 GB","value":342},{"timestamp":8,"productName":"Nvidia RTX 5070","value":500},{"timestamp":8,"productName":"Nvidia RTX 5070 Ti","value":749},{"timestamp":8,"productName":"Nvidia RTX 5080","value":980},{"timestamp":9,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":9,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":9,"productName":"AMD RX 9070","value":560},{"timestamp":9,"productName":"AMD RX 9070 XT","value":650},{"timestamp":9,"productName":"Intel Arc B570","value":220},{"timestamp":9,"productName":"Intel Arc B580","value":250},{"timestamp":9,"productName":"Nvidia RTX 5050","value":250},{"timestamp":9,"productName":"Nvidia RTX 5060","value":299},{"timestamp":9,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":9,"productName":"Nvidia RTX 5060 Ti 8 GB","value":323},{"timestamp":9,"productName":"Nvidia RTX 5070","value":500},{"timestamp":9,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":9,"productName":"Nvidia RTX 5080","value":999},{"timestamp":10,"productName":"AMD RX 9060 XT 16 GB","value":360},{"timestamp":10,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":10,"productName":"AMD RX 9070","value":550},{"timestamp":10,"productName":"AMD RX 9070 XT","value":600},{"timestamp":10,"productName":"Intel Arc B570","value":210},{"timestamp":10,"productName":"Intel Arc B580","value":250},{"timestamp":10,"productName":"Nvidia RTX 5050","value":250},{"timestamp":10,"productName":"Nvidia RTX 5060","value":299},{"timestamp":10,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":10,"productName":"Nvidia RTX 5060 Ti 8 GB","value":340},{"timestamp":10,"productName":"Nvidia RTX 5070","value":480},{"timestamp":10,"productName":"Nvidia RTX 5070 Ti","value":730},{"timestamp":10,"productName":"Nvidia RTX 5080","value":989},{"timestamp":11,"productName":"AMD RX 9060 XT 16 GB","value":340},{"timestamp":11,"productName":"AMD RX 9060 XT 8 GB","value":250},{"timestamp":11,"productName":"AMD RX 9070","value":550},{"timestamp":11,"productName":"AMD RX 9070 XT","value":600},{"timestamp":11,"productName":"Intel Arc B570","value":200},{"timestamp":11,"productName":"Intel Arc B580","value":250},{"timestamp":11,"productName":"Nvidia RTX 5050","value":230},{"timestamp":11,"productName":"Nvidia RTX 5060","value":280},{"timestamp":11,"productName":"Nvidia RTX 5060 Ti 16 GB","value":400},{"timestamp":11,"productName":"Nvidia RTX 5060 Ti 8 GB","value":320},{"timestamp":11,"productName":"Nvidia RTX 5070","value":489},{"timestamp":11,"productName":"Nvidia RTX 5070 Ti","value":699},{"timestamp":11,"productName":"Nvidia RTX 5080","value":990},{"timestamp":12,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":12,"productName":"AMD RX 9060 XT 8 GB","value":275},{"timestamp":12,"productName":"AMD RX 9070","value":530},{"timestamp":12,"productName":"AMD RX 9070 XT","value":600},{"timestamp":12,"productName":"Intel Arc B570","value":200},{"timestamp":12,"productName":"Intel Arc B580","value":250},{"timestamp":12,"productName":"Nvidia RTX 5050","value":220},{"timestamp":12,"productName":"Nvidia RTX 5060","value":279},{"timestamp":12,"productName":"Nvidia RTX 5060 Ti 16 GB","value":400},{"timestamp":12,"productName":"Nvidia RTX 5060 Ti 8 GB","value":320},{"timestamp":12,"productName":"Nvidia RTX 5070","value":500},{"timestamp":12,"productName":"Nvidia RTX 5070 Ti","value":730},{"timestamp":12,"productName":"Nvidia RTX 5080","value":989},{"timestamp":13,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":13,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":13,"productName":"AMD RX 9070","value":530},{"timestamp":13,"productName":"AMD RX 9070 XT","value":600},{"timestamp":13,"productName":"Intel Arc B570","value":200},{"timestamp":13,"productName":"Intel Arc B580","value":250},{"timestamp":13,"productName":"Nvidia RTX 5050","value":220},{"timestamp":13,"productName":"Nvidia RTX 5060","value":279},{"timestamp":13,"productName":"Nvidia RTX 5060 Ti 16 GB","value":420},{"timestamp":13,"productName":"Nvidia RTX 5060 Ti 8 GB","value":342},{"timestamp":13,"productName":"Nvidia RTX 5070","value":527},{"timestamp":13,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":13,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":14,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":14,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":14,"productName":"AMD RX 9070","value":530},{"timestamp":14,"productName":"AMD RX 9070 XT","value":600},{"timestamp":14,"productName":"Intel Arc B570","value":202},{"timestamp":14,"productName":"Intel Arc B580","value":250},{"timestamp":14,"productName":"Nvidia RTX 5050","value":220},{"timestamp":14,"productName":"Nvidia RTX 5060","value":279},{"timestamp":14,"productName":"Nvidia RTX 5060 Ti 16 GB","value":420},{"timestamp":14,"productName":"Nvidia RTX 5060 Ti 8 GB","value":313},{"timestamp":14,"productName":"Nvidia RTX 5070","value":540},{"timestamp":14,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":14,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":15,"productName":"AMD RX 9060 XT 16 GB","value":380},{"timestamp":15,"productName":"AMD RX 9060 XT 8 GB","value":288},{"timestamp":15,"productName":"AMD RX 9070","value":530},{"timestamp":15,"productName":"AMD RX 9070 XT","value":600},{"timestamp":15,"productName":"Intel Arc B570","value":202},{"timestamp":15,"productName":"Intel Arc B580","value":240},{"timestamp":15,"productName":"Nvidia RTX 5050","value":200},{"timestamp":15,"productName":"Nvidia RTX 5060","value":279},{"timestamp":15,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":15,"productName":"Nvidia RTX 5060 Ti 8 GB","value":350},{"timestamp":15,"productName":"Nvidia RTX 5070","value":499},{"timestamp":15,"productName":"Nvidia RTX 5070 Ti","value":749},{"timestamp":15,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":16,"productName":"AMD RX 9060 XT 16 GB","value":380},{"timestamp":16,"productName":"AMD RX 9060 XT 8 GB","value":288},{"timestamp":16,"productName":"AMD RX 9070","value":530},{"timestamp":16,"productName":"AMD RX 9070 XT","value":620},{"timestamp":16,"productName":"Intel Arc B570","value":202},{"timestamp":16,"productName":"Intel Arc B580","value":240},{"timestamp":16,"productName":"Nvidia RTX 5050","value":200},{"timestamp":16,"productName":"Nvidia RTX 5060","value":270},{"timestamp":16,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":16,"productName":"Nvidia RTX 5060 Ti 8 GB","value":350},{"timestamp":16,"productName":"Nvidia RTX 5070","value":499},{"timestamp":16,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":16,"productName":"Nvidia RTX 5080","value":1100},{"timestamp":17,"productName":"AMD RX 9060 XT 16 GB","value":390},{"timestamp":17,"productName":"AMD RX 9060 XT 8 GB","value":310},{"timestamp":17,"productName":"AMD RX 9070","value":580},{"timestamp":17,"productName":"AMD RX 9070 XT","value":660},{"timestamp":17,"productName":"Intel Arc B570","value":200},{"timestamp":17,"productName":"Intel Arc B580","value":250},{"timestamp":17,"productName":"Nvidia RTX 5050","value":235},{"timestamp":17,"productName":"Nvidia RTX 5060","value":260},{"timestamp":17,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":17,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":17,"productName":"Nvidia RTX 5070","value":549},{"timestamp":17,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":17,"productName":"Nvidia RTX 5080","value":1230},{"timestamp":18,"productName":"AMD RX 9060 XT 16 GB","value":390},{"timestamp":18,"productName":"AMD RX 9060 XT 8 GB","value":310},{"timestamp":18,"productName":"AMD RX 9070","value":580},{"timestamp":18,"productName":"AMD RX 9070 XT","value":700},{"timestamp":18,"productName":"Intel Arc B570","value":200},{"timestamp":18,"productName":"Intel Arc B580","value":250},{"timestamp":18,"productName":"Nvidia RTX 5050","value":240},{"timestamp":18,"productName":"Nvidia RTX 5060","value":290},{"timestamp":18,"productName":"Nvidia RTX 5060 Ti 16 GB","value":450},{"timestamp":18,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":18,"productName":"Nvidia RTX 5070","value":540},{"timestamp":18,"productName":"Nvidia RTX 5070 Ti","value":829},{"timestamp":18,"productName":"Nvidia RTX 5080","value":1268},{"timestamp":19,"productName":"AMD RX 9060 XT 16 GB","value":400},{"timestamp":19,"productName":"AMD RX 9060 XT 8 GB","value":310},{"timestamp":19,"productName":"AMD RX 9070","value":580},{"timestamp":19,"productName":"AMD RX 9070 XT","value":720},{"timestamp":19,"productName":"Intel Arc B570","value":200},{"timestamp":19,"productName":"Intel Arc B580","value":260},{"timestamp":19,"productName":"Nvidia RTX 5050","value":240},{"timestamp":19,"productName":"Nvidia RTX 5060","value":299},{"timestamp":19,"productName":"Nvidia RTX 5060 Ti 16 GB","value":450},{"timestamp":19,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":19,"productName":"Nvidia RTX 5070","value":549},{"timestamp":19,"productName":"Nvidia RTX 5070 Ti","value":899},{"timestamp":19,"productName":"Nvidia RTX 5080","value":1380},{"timestamp":20,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":20,"productName":"AMD RX 9060 XT 8 GB","value":310},{"timestamp":20,"productName":"AMD RX 9070","value":600},{"timestamp":20,"productName":"AMD RX 9070 XT","value":720},{"timestamp":20,"productName":"Intel Arc B570","value":200},{"timestamp":20,"productName":"Intel Arc B580","value":290},{"timestamp":20,"productName":"Nvidia RTX 5050","value":240},{"timestamp":20,"productName":"Nvidia RTX 5060","value":299},{"timestamp":20,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":20,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":20,"productName":"Nvidia RTX 5070","value":620},{"timestamp":20,"productName":"Nvidia RTX 5070 Ti","value":1000},{"timestamp":20,"productName":"Nvidia RTX 5080","value":1350},{"timestamp":21,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":21,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":21,"productName":"AMD RX 9070","value":590},{"timestamp":21,"productName":"AMD RX 9070 XT","value":730},{"timestamp":21,"productName":"Intel Arc B570","value":250},{"timestamp":21,"productName":"Intel Arc B580","value":290},{"timestamp":21,"productName":"Nvidia RTX 5050","value":260},{"timestamp":21,"productName":"Nvidia RTX 5060","value":299},{"timestamp":21,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":21,"productName":"Nvidia RTX 5060 Ti 8 GB","value":351},{"timestamp":21,"productName":"Nvidia RTX 5070","value":620},{"timestamp":21,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":21,"productName":"Nvidia RTX 5080","value":1365},{"timestamp":22,"productName":"AMD RX 9060 XT 16 GB","value":400},{"timestamp":22,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":22,"productName":"AMD RX 9070","value":630},{"timestamp":22,"productName":"AMD RX 9070 XT","value":730},{"timestamp":22,"productName":"Intel Arc B570","value":250},{"timestamp":22,"productName":"Intel Arc B580","value":300},{"timestamp":22,"productName":"Nvidia RTX 5050","value":260},{"timestamp":22,"productName":"Nvidia RTX 5060","value":299},{"timestamp":22,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":22,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":22,"productName":"Nvidia RTX 5070","value":620},{"timestamp":22,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":22,"productName":"Nvidia RTX 5080","value":1365},{"timestamp":23,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":23,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":23,"productName":"AMD RX 9070","value":630},{"timestamp":23,"productName":"AMD RX 9070 XT","value":730},{"timestamp":23,"productName":"Intel Arc B570","value":250},{"timestamp":23,"productName":"Intel Arc B580","value":300},{"timestamp":23,"productName":"Nvidia RTX 5050","value":260},{"timestamp":23,"productName":"Nvidia RTX 5060","value":340},{"timestamp":23,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":23,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":23,"productName":"Nvidia RTX 5070","value":630},{"timestamp":23,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":23,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":24,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":24,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":24,"productName":"AMD RX 9070","value":620},{"timestamp":24,"productName":"AMD RX 9070 XT","value":730},{"timestamp":24,"productName":"Intel Arc B570","value":250},{"timestamp":24,"productName":"Intel Arc B580","value":300},{"timestamp":24,"productName":"Nvidia RTX 5050","value":260},{"timestamp":24,"productName":"Nvidia RTX 5060","value":340},{"timestamp":24,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":24,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":24,"productName":"Nvidia RTX 5070","value":625},{"timestamp":24,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":24,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":25,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":25,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":25,"productName":"AMD RX 9070","value":610},{"timestamp":25,"productName":"AMD RX 9070 XT","value":730},{"timestamp":25,"productName":"Intel Arc B570","value":250},{"timestamp":25,"productName":"Intel Arc B580","value":300},{"timestamp":25,"productName":"Nvidia RTX 5050","value":260},{"timestamp":25,"productName":"Nvidia RTX 5060","value":349},{"timestamp":25,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":25,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":25,"productName":"Nvidia RTX 5070","value":630},{"timestamp":25,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":25,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":26,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":26,"productName":"AMD RX 9060 XT 8 GB","value":340},{"timestamp":26,"productName":"AMD RX 9070","value":610},{"timestamp":26,"productName":"AMD RX 9070 XT","value":730},{"timestamp":26,"productName":"Intel Arc B570","value":250},{"timestamp":26,"productName":"Intel Arc B580","value":300},{"timestamp":26,"productName":"Nvidia RTX 5050","value":290},{"timestamp":26,"productName":"Nvidia RTX 5060","value":349},{"timestamp":26,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":26,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":26,"productName":"Nvidia RTX 5070","value":604},{"timestamp":26,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":26,"productName":"Nvidia RTX 5080","value":1260},{"timestamp":27,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":27,"productName":"AMD RX 9060 XT 8 GB","value":340},{"timestamp":27,"productName":"AMD RX 9070","value":630},{"timestamp":27,"productName":"AMD RX 9070 XT","value":730},{"timestamp":27,"productName":"Intel Arc B570","value":250},{"timestamp":27,"productName":"Intel Arc B580","value":300},{"timestamp":27,"productName":"Nvidia RTX 5050","value":290},{"timestamp":27,"productName":"Nvidia RTX 5060","value":349},{"timestamp":27,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":27,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":27,"productName":"Nvidia RTX 5070","value":640},{"timestamp":27,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":27,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":28,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":28,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":28,"productName":"AMD RX 9070","value":620},{"timestamp":28,"productName":"AMD RX 9070 XT","value":720},{"timestamp":28,"productName":"Intel Arc B570","value":250},{"timestamp":28,"productName":"Intel Arc B580","value":290},{"timestamp":28,"productName":"Nvidia RTX 5050","value":290},{"timestamp":28,"productName":"Nvidia RTX 5060","value":349},{"timestamp":28,"productName":"Nvidia RTX 5060 Ti 16 GB","value":515},{"timestamp":28,"productName":"Nvidia RTX 5060 Ti 8 GB","value":390},{"timestamp":28,"productName":"Nvidia RTX 5070","value":630},{"timestamp":28,"productName":"Nvidia RTX 5070 Ti","value":900},{"timestamp":28,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":29,"productName":"AMD RX 9060 XT 16 GB","value":449},{"timestamp":29,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":29,"productName":"AMD RX 9070","value":620},{"timestamp":29,"productName":"AMD RX 9070 XT","value":710},{"timestamp":29,"productName":"Intel Arc B570","value":250},{"timestamp":29,"productName":"Intel Arc B580","value":290},{"timestamp":29,"productName":"Nvidia RTX 5050","value":290},{"timestamp":29,"productName":"Nvidia RTX 5060","value":349},{"timestamp":29,"productName":"Nvidia RTX 5060 Ti 16 GB","value":500},{"timestamp":29,"productName":"Nvidia RTX 5060 Ti 8 GB","value":390},{"timestamp":29,"productName":"Nvidia RTX 5070","value":636},{"timestamp":29,"productName":"Nvidia RTX 5070 Ti","value":990},{"timestamp":29,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":30,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":30,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":30,"productName":"AMD RX 9070","value":620},{"timestamp":30,"productName":"AMD RX 9070 XT","value":710},{"timestamp":30,"productName":"Intel Arc B570","value":260},{"timestamp":30,"productName":"Intel Arc B580","value":290},{"timestamp":30,"productName":"Nvidia RTX 5050","value":290},{"timestamp":30,"productName":"Nvidia RTX 5060","value":330},{"timestamp":30,"productName":"Nvidia RTX 5060 Ti 16 GB","value":500},{"timestamp":30,"productName":"Nvidia RTX 5060 Ti 8 GB","value":390},{"timestamp":30,"productName":"Nvidia RTX 5070","value":630},{"timestamp":30,"productName":"Nvidia RTX 5070 Ti","value":990},{"timestamp":30,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":31,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":31,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":31,"productName":"AMD RX 9070","value":620},{"timestamp":31,"productName":"AMD RX 9070 XT","value":670},{"timestamp":31,"productName":"Intel Arc B570","value":260},{"timestamp":31,"productName":"Intel Arc B580","value":290},{"timestamp":31,"productName":"Nvidia RTX 5050","value":290},{"timestamp":31,"productName":"Nvidia RTX 5060","value":330},{"timestamp":31,"productName":"Nvidia RTX 5060 Ti 16 GB","value":500},{"timestamp":31,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":31,"productName":"Nvidia RTX 5070","value":599},{"timestamp":31,"productName":"Nvidia RTX 5070 Ti","value":990},{"timestamp":31,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":32,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":32,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":32,"productName":"AMD RX 9070","value":620},{"timestamp":32,"productName":"AMD RX 9070 XT","value":710},{"timestamp":32,"productName":"Intel Arc B570","value":260},{"timestamp":32,"productName":"Intel Arc B580","value":290},{"timestamp":32,"productName":"Nvidia RTX 5050","value":290},{"timestamp":32,"productName":"Nvidia RTX 5060","value":310},{"timestamp":32,"productName":"Nvidia RTX 5060 Ti 16 GB","value":515},{"timestamp":32,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":32,"productName":"Nvidia RTX 5070","value":599},{"timestamp":32,"productName":"Nvidia RTX 5070 Ti","value":990},{"timestamp":32,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":33,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":33,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":33,"productName":"AMD RX 9070","value":600},{"timestamp":33,"productName":"AMD RX 9070 XT","value":710},{"timestamp":33,"productName":"Intel Arc B570","value":260},{"timestamp":33,"productName":"Intel Arc B580","value":290},{"timestamp":33,"productName":"Nvidia RTX 5050","value":290},{"timestamp":33,"productName":"Nvidia RTX 5060","value":349},{"timestamp":33,"productName":"Nvidia RTX 5060 Ti 16 GB","value":490},{"timestamp":33,"productName":"Nvidia RTX 5060 Ti 8 GB","value":400},{"timestamp":33,"productName":"Nvidia RTX 5070","value":599},{"timestamp":33,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":33,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":34,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":34,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":34,"productName":"AMD RX 9070","value":620},{"timestamp":34,"productName":"AMD RX 9070 XT","value":710},{"timestamp":34,"productName":"Intel Arc B570","value":260},{"timestamp":34,"productName":"Intel Arc B580","value":290},{"timestamp":34,"productName":"Nvidia RTX 5050","value":290},{"timestamp":34,"productName":"Nvidia RTX 5060","value":349},{"timestamp":34,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":34,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":34,"productName":"Nvidia RTX 5070","value":599},{"timestamp":34,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":34,"productName":"Nvidia RTX 5080","value":1270},{"timestamp":35,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":35,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":35,"productName":"AMD RX 9070","value":600},{"timestamp":35,"productName":"AMD RX 9070 XT","value":700},{"timestamp":35,"productName":"Intel Arc B570","value":260},{"timestamp":35,"productName":"Intel Arc B580","value":304},{"timestamp":35,"productName":"Nvidia RTX 5050","value":290},{"timestamp":35,"productName":"Nvidia RTX 5060","value":350},{"timestamp":35,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":35,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":35,"productName":"Nvidia RTX 5070","value":599},{"timestamp":35,"productName":"Nvidia RTX 5070 Ti","value":900},{"timestamp":35,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":36,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":36,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":36,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":36,"productName":"AMD RX 9070","value":600},{"timestamp":36,"productName":"AMD RX 9070 XT","value":700},{"timestamp":36,"productName":"Intel Arc B570","value":260},{"timestamp":36,"productName":"Intel Arc B580","value":300},{"timestamp":36,"productName":"Nvidia RTX 5050","value":290},{"timestamp":36,"productName":"Nvidia RTX 5060","value":340},{"timestamp":36,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":36,"productName":"Nvidia RTX 5060 Ti 8 GB","value":370},{"timestamp":36,"productName":"Nvidia RTX 5070","value":599},{"timestamp":36,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":36,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":37,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":37,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":37,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":37,"productName":"AMD RX 9070","value":600},{"timestamp":37,"productName":"AMD RX 9070 XT","value":700},{"timestamp":37,"productName":"Intel Arc B570","value":250},{"timestamp":37,"productName":"Intel Arc B580","value":304},{"timestamp":37,"productName":"Nvidia RTX 5050","value":290},{"timestamp":37,"productName":"Nvidia RTX 5060","value":340},{"timestamp":37,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":37,"productName":"Nvidia RTX 5060 Ti 8 GB","value":370},{"timestamp":37,"productName":"Nvidia RTX 5070","value":599},{"timestamp":37,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":37,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":38,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":38,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":38,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":38,"productName":"AMD RX 9070","value":600},{"timestamp":38,"productName":"AMD RX 9070 XT","value":700},{"timestamp":38,"productName":"Intel Arc B570","value":250},{"timestamp":38,"productName":"Intel Arc B580","value":304},{"timestamp":38,"productName":"Nvidia RTX 5050","value":290},{"timestamp":38,"productName":"Nvidia RTX 5060","value":340},{"timestamp":38,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":38,"productName":"Nvidia RTX 5060 Ti 8 GB","value":370},{"timestamp":38,"productName":"Nvidia RTX 5070","value":599},{"timestamp":38,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":38,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":39,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":39,"productName":"AMD RX 9060 XT 16 GB","value":400},{"timestamp":39,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":39,"productName":"AMD RX 9070","value":600},{"timestamp":39,"productName":"AMD RX 9070 XT","value":700},{"timestamp":39,"productName":"Intel Arc B570","value":250},{"timestamp":39,"productName":"Intel Arc B580","value":298},{"timestamp":39,"productName":"Nvidia RTX 5050","value":290},{"timestamp":39,"productName":"Nvidia RTX 5060","value":340},{"timestamp":39,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":39,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":39,"productName":"Nvidia RTX 5070","value":599},{"timestamp":39,"productName":"Nvidia RTX 5070 Ti","value":920},{"timestamp":39,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":40,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":40,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":40,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":40,"productName":"AMD RX 9070","value":600},{"timestamp":40,"productName":"AMD RX 9070 XT","value":700},{"timestamp":40,"productName":"Intel Arc B570","value":260},{"timestamp":40,"productName":"Intel Arc B580","value":291},{"timestamp":40,"productName":"Nvidia RTX 5050","value":290},{"timestamp":40,"productName":"Nvidia RTX 5060","value":340},{"timestamp":40,"productName":"Nvidia RTX 5060 Ti 16 GB","value":565},{"timestamp":40,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":40,"productName":"Nvidia RTX 5070","value":599},{"timestamp":40,"productName":"Nvidia RTX 5070 Ti","value":955},{"timestamp":40,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":41,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":41,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":41,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":41,"productName":"AMD RX 9070","value":600},{"timestamp":41,"productName":"AMD RX 9070 XT","value":700},{"timestamp":41,"productName":"Intel Arc B570","value":250},{"timestamp":41,"productName":"Intel Arc B580","value":290},{"timestamp":41,"productName":"Nvidia RTX 5050","value":290},{"timestamp":41,"productName":"Nvidia RTX 5060","value":339},{"timestamp":41,"productName":"Nvidia RTX 5060 Ti 16 GB","value":560},{"timestamp":41,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":41,"productName":"Nvidia RTX 5070","value":560},{"timestamp":41,"productName":"Nvidia RTX 5070 Ti","value":900},{"timestamp":41,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":42,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":42,"productName":"AMD RX 9060 XT 16 GB","value":450},{"timestamp":42,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":42,"productName":"AMD RX 9070","value":635},{"timestamp":42,"productName":"AMD RX 9070 XT","value":690},{"timestamp":42,"productName":"Intel Arc B570","value":260},{"timestamp":42,"productName":"Intel Arc B580","value":290},{"timestamp":42,"productName":"Nvidia RTX 5050","value":290},{"timestamp":42,"productName":"Nvidia RTX 5060","value":350},{"timestamp":42,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":42,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":42,"productName":"Nvidia RTX 5070","value":550},{"timestamp":42,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":42,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":43,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":43,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":43,"productName":"AMD RX 9060 XT 8 GB","value":370},{"timestamp":43,"productName":"AMD RX 9070","value":650},{"timestamp":43,"productName":"AMD RX 9070 XT","value":720},{"timestamp":43,"productName":"Intel Arc B570","value":260},{"timestamp":43,"productName":"Intel Arc B580","value":310},{"timestamp":43,"productName":"Nvidia RTX 5050","value":299},{"timestamp":43,"productName":"Nvidia RTX 5060","value":359},{"timestamp":43,"productName":"Nvidia RTX 5060 Ti 16 GB","value":650},{"timestamp":43,"productName":"Nvidia RTX 5060 Ti 8 GB","value":420},{"timestamp":43,"productName":"Nvidia RTX 5070","value":755},{"timestamp":43,"productName":"Nvidia RTX 5070 Ti","value":1030},{"timestamp":43,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":44,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":44,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":44,"productName":"AMD RX 9060 XT 8 GB","value":400},{"timestamp":44,"productName":"AMD RX 9070","value":650},{"timestamp":44,"productName":"AMD RX 9070 XT","value":720},{"timestamp":44,"productName":"Intel Arc B570","value":260},{"timestamp":44,"productName":"Intel Arc B580","value":310},{"timestamp":44,"productName":"Nvidia RTX 5050","value":299},{"timestamp":44,"productName":"Nvidia RTX 5060 Ti 16 GB","value":780},{"timestamp":44,"productName":"Nvidia RTX 5060 Ti 8 GB","value":420},{"timestamp":44,"productName":"Nvidia RTX 5070","value":763},{"timestamp":44,"productName":"Nvidia RTX 5070 Ti","value":1088},{"timestamp":44,"productName":"Nvidia RTX 5080","value":1479},{"timestamp":45,"productName":"AMD Radeon RX 9070 GRE","value":530},{"timestamp":45,"productName":"AMD RX 9060 XT 16 GB","value":460},{"timestamp":45,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":45,"productName":"AMD RX 9070","value":630},{"timestamp":45,"productName":"AMD RX 9070 XT","value":730},{"timestamp":45,"productName":"Intel Arc B570","value":260},{"timestamp":45,"productName":"Intel Arc B580","value":310},{"timestamp":45,"productName":"Nvidia RTX 5050","value":299},{"timestamp":45,"productName":"Nvidia RTX 5060","value":359},{"timestamp":45,"productName":"Nvidia RTX 5060 Ti 16 GB","value":773},{"timestamp":45,"productName":"Nvidia RTX 5060 Ti 8 GB","value":389},{"timestamp":45,"productName":"Nvidia RTX 5070","value":800},{"timestamp":45,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":45,"productName":"Nvidia RTX 5080","value":1550},{"timestamp":46,"productName":"AMD Radeon RX 9070 GRE","value":530},{"timestamp":46,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":46,"productName":"AMD RX 9060 XT 8 GB","value":400},{"timestamp":46,"productName":"AMD RX 9070","value":650},{"timestamp":46,"productName":"AMD RX 9070 XT","value":740},{"timestamp":46,"productName":"Intel Arc B570","value":260},{"timestamp":46,"productName":"Intel Arc B580","value":310},{"timestamp":46,"productName":"Nvidia RTX 5050","value":299},{"timestamp":46,"productName":"Nvidia RTX 5060","value":359},{"timestamp":46,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":46,"productName":"Nvidia RTX 5060 Ti 8 GB","value":389},{"timestamp":46,"productName":"Nvidia RTX 5070","value":759},{"timestamp":46,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":46,"productName":"Nvidia RTX 5080","value":1550},{"timestamp":47,"productName":"AMD Radeon RX 9070 GRE","value":520},{"timestamp":47,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":47,"productName":"AMD RX 9060 XT 8 GB","value":409},{"timestamp":47,"productName":"AMD RX 9070","value":650},{"timestamp":47,"productName":"AMD RX 9070 XT","value":740},{"timestamp":47,"productName":"Intel Arc B570","value":260},{"timestamp":47,"productName":"Intel Arc B580","value":310},{"timestamp":47,"productName":"Nvidia RTX 5050","value":299},{"timestamp":47,"productName":"Nvidia RTX 5050","value":299},{"timestamp":47,"productName":"Nvidia RTX 5060","value":359},{"timestamp":47,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":47,"productName":"Nvidia RTX 5060 Ti 8 GB","value":389},{"timestamp":47,"productName":"Nvidia RTX 5070","value":725},{"timestamp":47,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":47,"productName":"Nvidia RTX 5080","value":1450},{"timestamp":48,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":48,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":48,"productName":"AMD RX 9060 XT 8 GB","value":430},{"timestamp":48,"productName":"AMD RX 9070","value":650},{"timestamp":48,"productName":"AMD RX 9070 XT","value":760},{"timestamp":48,"productName":"Intel Arc B570","value":260},{"timestamp":48,"productName":"Intel Arc B580","value":330},{"timestamp":48,"productName":"Nvidia RTX 5060","value":359},{"timestamp":48,"productName":"Nvidia RTX 5060 Ti 16 GB","value":780},{"timestamp":48,"productName":"Nvidia RTX 5060 Ti 8 GB","value":389},{"timestamp":48,"productName":"Nvidia RTX 5070","value":779},{"timestamp":48,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":48,"productName":"Nvidia RTX 5080","value":1450},{"timestamp":49,"productName":"AMD Radeon RX 9070 GRE","value":570},{"timestamp":49,"productName":"AMD RX 9060 XT 16 GB","value":500},{"timestamp":49,"productName":"AMD RX 9060 XT 8 GB","value":450},{"timestamp":49,"productName":"AMD RX 9070","value":667},{"timestamp":49,"productName":"AMD RX 9070 XT","value":760},{"timestamp":49,"productName":"Intel Arc B570","value":260},{"timestamp":49,"productName":"Intel Arc B580","value":330},{"timestamp":49,"productName":"Nvidia RTX 5050","value":310},{"timestamp":49,"productName":"Nvidia RTX 5060","value":380},{"timestamp":49,"productName":"Nvidia RTX 5060 Ti 16 GB","value":780},{"timestamp":49,"productName":"Nvidia RTX 5060 Ti 8 GB","value":488},{"timestamp":49,"productName":"Nvidia RTX 5070","value":779},{"timestamp":49,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":49,"productName":"Nvidia RTX 5080","value":1653},{"timestamp":50,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":50,"productName":"AMD RX 9060 XT 16 GB","value":520},{"timestamp":50,"productName":"AMD RX 9060 XT 8 GB","value":400},{"timestamp":50,"productName":"AMD RX 9070","value":700},{"timestamp":50,"productName":"AMD RX 9070 XT","value":800},{"timestamp":50,"productName":"Intel Arc B570","value":290},{"timestamp":50,"productName":"Intel Arc B580","value":330},{"timestamp":50,"productName":"Nvidia RTX 5050","value":310},{"timestamp":50,"productName":"Nvidia RTX 5060","value":439},{"timestamp":50,"productName":"Nvidia RTX 5060 Ti 16 GB","value":789},{"timestamp":50,"productName":"Nvidia RTX 5060 Ti 8 GB","value":470},{"timestamp":50,"productName":"Nvidia RTX 5070","value":779},{"timestamp":50,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":50,"productName":"Nvidia RTX 5080","value":1654},{"timestamp":51,"productName":"AMD Radeon RX 9070 GRE","value":570},{"timestamp":51,"productName":"AMD RX 9060 XT 16 GB","value":520},{"timestamp":51,"productName":"AMD RX 9060 XT 8 GB","value":400},{"timestamp":51,"productName":"AMD RX 9070","value":700},{"timestamp":51,"productName":"AMD RX 9070 XT","value":830},{"timestamp":51,"productName":"Intel Arc B570","value":290},{"timestamp":51,"productName":"Intel Arc B580","value":330},{"timestamp":51,"productName":"Nvidia RTX 5050","value":400},{"timestamp":51,"productName":"Nvidia RTX 5060 Ti 16 GB","value":789},{"timestamp":51,"productName":"Nvidia RTX 5060 Ti 16 GB","value":789},{"timestamp":51,"productName":"Nvidia RTX 5060 Ti 8 GB","value":470},{"timestamp":51,"productName":"Nvidia RTX 5070","value":789},{"timestamp":51,"productName":"Nvidia RTX 5070 Ti","value":1200},{"timestamp":51,"productName":"Nvidia RTX 5080","value":1800}],"xMin":1,"xMax":51,"yMin":0,"yMax":2000}</script></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-1792679910923-z7ixryjjv', false); });      } else {        initialize('fv-chart-1792679910923-z7ixryjjv', false);      }    })();      </script></div><p>If you were in need of a graphics card right now, I'd probably buy an RX 9070 GRE for <a href="https://www.bestbuy.com/product/gigabyte-radeon-rx-9070-gre-gaming-oc-12g-gddr6-pci-express-5-0-graphics-card-black/J3ZW9X73CR" target="_blank">$570</a>—that's only $20 over MSRP. </p><p>That's about as good as it gets.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/graphics-cards/only-usd70-separates-rtx-5050-rtx-5060-and-rtx-5060-ti-and-the-rtx-5060-ti-16-gb-is-now-the-same-price-as-the-rtx-5070-in-what-i-can-only-describe-as-pure-carnage/</link>
                                                                            <description>
                            <![CDATA[ It's not pretty out there, especially for the RTX 50 series. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">moymseFQ8aH4p2DmtH5Kvk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8Joa6PAgzLWBC3EFgvZuyP-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 14:50:38 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Graphics Cards]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jacob Ridley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/2YNigoLXbckPdRPDe3stwA-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jacob earned his first byline writing for his own tech blog, before graduating to breaking things professionally at PCGamesN, where he was one half of a popular weekly YouTube show. Joining PC Gamer in 2020, Jacob is now managing editor of the hardware team, and you&#039;ll usually find him testing the latest components or building a gaming PC. He says he&#039;s determined to build a fort as big as a house out of case boxes. Jacob enjoys heading out of the office to report from floors, benches, and, if he&#039;s lucky, plush press rooms at the biggest tech shows, such as Computex and CES.&lt;br&gt;&lt;/p&gt;&lt;p&gt;When he&#039;s not writing about components, you&#039;ll find Jacob trying to get away from the modern world as fast as possible by bike and pitching up camp in murky woods.&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/8Joa6PAgzLWBC3EFgvZuyP-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Palit GeForce RTX 5050 graphics card]]></media:description>                                                            <media:text><![CDATA[Palit GeForce RTX 5050 graphics card]]></media:text>
                                <media:title type="plain"><![CDATA[Palit GeForce RTX 5050 graphics card]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8Joa6PAgzLWBC3EFgvZuyP-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We prattle on about GPU prices so much nowadays that even we're getting sick of it. Yet for as long as the memory crisis rages on and prices keep rising, we'll keep bringing it up. We'll also keep trying to spot the <a href="https://www.pcgamer.com/hardware/graphics-cards/graphics-card-price-watch-deals/" target="_blank">best prices for graphics cards</a>, which is exactly how I spotted these specific pricing horrors.</p><p>The RTX 5050, RTX 5060, and RTX 5060 Ti 8 GB are now only separated by a mere $70. That's not between each card—the jump from an RTX 5050 to an RTX 5060 Ti 8 GB is just $70, down from nearly double that at their intended MSRPs.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>'What's the big deal, then?' I hear you ask. 'Surely that means less cash for a better card?' </p><p>It is a big deal, and no, it doesn't. </p><p>This is due to dreadful circumstances: the <em>cheapest </em>RTX 5050 that I could find is this one currently <a href="https://www.bestbuy.com/product/gigabyte-geforce-rtx-5050-windforce-oc-8gb-gddr6-pci-express-5-0-graphics-card-black/J3ZW9X7YLY" target="_blank">$400 at Best Buy</a>. It's not only far in excess of the MSRP—which should be a mere $249—but it's actually in excess of the MSRP of the RTX 5060 Ti 8 GB at $379.</p><p>The cheapest RTX 5060 Ti 8 GB I could find is <a href="https://www.amazon.com/ASUS-DisplayPort-2-5-Slot-Axial-tech-Technology/dp/B0F8PR9L3X/" target="_blank">$470</a>, and the cheapest RTX 5060 is <a href="https://www.newegg.com/zotac-rtx-5060-amp-geforce-rtx-5060-8gb-graphics-card-double-fans/p/N82E16814500658" target="_blank">$420</a>.</p><p>Moreover, if you look beyond the 8 GB options at the bottom of the stack, to the RTX 5060 Ti 16 GB, that card jumps up to <a href="https://www.amazon.co.uk/dp/B0F4RZDFD5" target="_blank">$789</a>. That should be around the $429 mark MSRP-wise—<em>should.</em></p><p><em>What's even worse </em>is the RTX 5060 Ti 16 GB is currently the same price as the RTX 5070. That card is also <a href="https://www.walmart.com/ip/PNY-GeForce-RTX-5070-Overclocked-Triple-Fan-Graphics-DLSS-4-Video-Card/15371260951" target="_blank">$789</a>.</p><p>It's pretty terrible anywhere you look. Our own in-house tracking shows prices are currently spiking once again, not the least bit the high-end market. </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-1792679910923-z7ixryjjv *, #fv-chart-1792679910923-z7ixryjjv *:before, #fv-chart-1792679910923-z7ixryjjv *:after, #fv-chart-1792679910923-z7ixryjjv-slideshow *, #fv-chart-1792679910923-z7ixryjjv-slideshow *:before, #fv-chart-1792679910923-z7ixryjjv-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792679910923-z7ixryjjv, #fv-chart-1792679910923-z7ixryjjv-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792679910923-z7ixryjjv { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792679910923-z7ixryjjv-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792679910923-z7ixryjjv-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792679910923-z7ixryjjv-slideshow .fv-nav-btn.disabled, #fv-chart-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv-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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792679910923-z7ixryjjv .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-row, #fv-chart-1792679910923-z7ixryjjv .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792679910923-z7ixryjjv .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792679910923-z7ixryjjv .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792679910923-z7ixryjjv .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792679910923-z7ixryjjv .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-dial-svg-wrapper { width: 100% !important; max-width: 200px !important; display: flex !important; justify-content: center !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dial-svg { width: 100% !important; height: auto !important; display: block !important; overflow: visible !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dial-needle { transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.preview-wrapper .fv-dial-card:hover .fv-dial-commentary-input, #fv-chart-1792679910923-z7ixryjjv.preview-wrapper .fv-dial-commentary-input:focus { border-color: #CBD5E1 !important; background-color: rgba(241, 245, 249, 0.6) !important; } #fv-chart-1792679910923-z7ixryjjv .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv.mobile-view .fv-pie-container, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-stacked-product, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-grouped-bar-product, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-row, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-stacked-product, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.mobile-view .fv-bar-label, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-grouped-product-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-label, #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.mobile-view .fv-bar-container, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-cluster, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-container, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.mobile-view .fv-x-axis-wrapper, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-x-axis-label-space, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-x-axis-chart-space, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-benchmark-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-dropdown-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-carousel-nav-btn, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-chart-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-chart-subhead, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-header, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select-wrapper, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-vs, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select-container, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-versus-select, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792679910923-z7ixryjjv.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-1792679910923-z7ixryjjv.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-dials-grid, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-dial-title, #fv-chart-1792679910923-z7ixryjjv.labels-on-top .fv-dial-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792679910923-z7ixryjjv.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792679910923-z7ixryjjv .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-row, #fv-chart-1792679910923-z7ixryjjv .fv-stacked-product, #fv-chart-1792679910923-z7ixryjjv .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-label, #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-bar-container, #fv-chart-1792679910923-z7ixryjjv .fv-bar-cluster { width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792679910923-z7ixryjjv .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-label-space { display: none !important; } #fv-chart-1792679910923-z7ixryjjv .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .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-1792679910923-z7ixryjjv .fv-stl-shop-all-logo, #fv-chart-1792679910923-z7ixryjjv .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dials-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 1.25rem 0.75rem !important; } #fv-chart-1792679910923-z7ixryjjv .fv-dial-title { font-size: 16px !important; } #fv-chart-1792679910923-z7ixryjjv .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792679910923-z7ixryjjv.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": "Lowest price per GPU",  "description": "We've been measuring the lowest available price of each current-gen GPU since August 14, 2025.",  "creator": {    "@type": "Organization",    "name": "PC Gamer",    "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png"  },  "isAccessibleForFree": true,  "dateCreated": "2026-10-22T14:38:30.926Z",  "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized",  "keywords": [    "AMD Radeon RX 9070 GRE",    "AMD RX 9060 XT 16 GB",    "AMD RX 9060 XT 8 GB",    "AMD RX 9070",    "AMD RX 9070 XT",    "Intel Arc B570",    "Intel Arc B580",    "Nvidia RTX 5050",    "Nvidia RTX 5060",    "Nvidia RTX 5060 Ti 16 GB",    "Nvidia RTX 5060 Ti 8 GB",    "Nvidia RTX 5070",    "Nvidia RTX 5070 Ti",    "Nvidia RTX 5080",    "Lowest pricing",    "benchmark",    "comparison",    "performance",    "review",    "PC Gamer"  ],  "measurementTechnique": "Performance Benchmarking",  "variableMeasured": [    {      "@type": "PropertyValue",      "name": "AMD RX 9060 XT 16 GB – Lowest pricing",      "value": 520,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "AMD RX 9060 XT 8 GB – Lowest pricing",      "value": 400,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "AMD RX 9070 – Lowest pricing",      "value": 700,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "AMD RX 9070 XT – Lowest pricing",      "value": 830,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Intel Arc B570 – Lowest pricing",      "value": 290,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Intel Arc B580 – Lowest pricing",      "value": 330,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5050 – Lowest pricing",      "value": 400,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5060 – Lowest pricing",      "value": 439,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5060 Ti 16 GB – Lowest pricing",      "value": 789,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5060 Ti 8 GB – Lowest pricing",      "value": 470,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5070 – Lowest pricing",      "value": 789,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5070 Ti – Lowest pricing",      "value": 1200,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "Nvidia RTX 5080 – Lowest pricing",      "value": 1800,      "unitText": "Price, $"    },    {      "@type": "PropertyValue",      "name": "AMD Radeon RX 9070 GRE – Lowest pricing",      "value": 570,      "unitText": "Price, $"    }  ]}</script><script type="application/json" class="fv-embed-state" data-version="2">{"version":2,"exportedAt":"2026-10-22T14:38:30.926Z","state":{"data":[{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD Radeon RX 9070 GRE","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":449,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":440,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":450,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":460,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":275,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":288,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":288,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":346,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":409,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":450,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9060 XT 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":560,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":530,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":580,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":580,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":580,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":590,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":610,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":610,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":635,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":667,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":695,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":670,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":670,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":600,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":660,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":670,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":710,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":700,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":690,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":720,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":740,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":740,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":760,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":760,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":800,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"AMD RX 9070 XT","attribute":"Lowest pricing","value":830,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":220,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":210,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":202,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":202,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":202,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B570","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":304,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":304,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":304,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":298,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":291,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Intel Arc B580","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":250,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":230,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":220,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":220,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":220,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":200,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":235,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":240,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5050","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":291,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":296,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":300,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":289,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":280,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":279,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":279,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":279,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":279,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":270,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":260,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":290,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":299,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":310,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":349,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":339,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":359,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060","attribute":"Lowest pricing","value":439,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":379,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":420,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":420,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":430,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":450,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":450,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":515,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":515,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":490,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":565,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":560,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":650,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":780,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":773,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":570,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":780,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":780,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":789,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":789,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 16 GB","attribute":"Lowest pricing","value":789,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":368,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":345,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":342,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":323,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":340,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":320,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":320,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":342,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":313,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":350,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":351,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":360,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":390,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":400,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":370,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":330,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":380,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":420,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":420,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":389,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":389,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":389,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":389,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":488,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5060 Ti 8 GB","attribute":"Lowest pricing","value":470,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":524,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":546,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":481,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":499,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":520,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":480,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":489,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":500,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":527,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":540,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":499,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":499,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":549,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":540,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":549,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":620,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":625,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":604,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":640,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":636,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":630,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":599,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":560,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":550,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":755,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":763,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":800,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":759,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":725,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":779,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":779,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":779,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070","attribute":"Lowest pricing","value":789,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":780,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":749,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":749,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":749,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":699,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":730,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":749,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":750,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":829,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":899,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":900,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":900,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":920,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":955,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":900,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":950,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1030,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1088,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1150,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5070 Ti","attribute":"Lowest pricing","value":1200,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1100,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1099,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":929,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":999,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":980,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":999,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":989,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":990,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":989,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1000,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1100,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1230,"unit":"Price, $","timestamp":17,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1268,"unit":"Price, $","timestamp":18,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1380,"unit":"Price, $","timestamp":19,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1350,"unit":"Price, $","timestamp":20,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1365,"unit":"Price, $","timestamp":21,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1365,"unit":"Price, $","timestamp":22,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":23,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":24,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":25,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1260,"unit":"Price, $","timestamp":26,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":27,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":28,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":29,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":30,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":31,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":32,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1270,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1250,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1290,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1479,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1550,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1550,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1450,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1450,"unit":"Price, $","timestamp":48,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1653,"unit":"Price, $","timestamp":49,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1654,"unit":"Price, $","timestamp":50,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5080","attribute":"Lowest pricing","value":1800,"unit":"Price, $","timestamp":51,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2400,"unit":"Price, $","timestamp":1,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2000,"unit":"Price, $","timestamp":2,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2280,"unit":"Price, $","timestamp":3,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2250,"unit":"Price, $","timestamp":4,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2348,"unit":"Price, $","timestamp":5,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2240,"unit":"Price, $","timestamp":6,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2400,"unit":"Price, $","timestamp":7,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2250,"unit":"Price, $","timestamp":8,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2500,"unit":"Price, $","timestamp":9,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2650,"unit":"Price, $","timestamp":10,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2650,"unit":"Price, $","timestamp":11,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2773,"unit":"Price, $","timestamp":12,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2450,"unit":"Price, $","timestamp":13,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2800,"unit":"Price, $","timestamp":14,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2450,"unit":"Price, $","timestamp":15,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":2800,"unit":"Price, $","timestamp":16,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":3800,"unit":"Price, $","timestamp":33,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":3800,"unit":"Price, $","timestamp":34,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":3800,"unit":"Price, $","timestamp":35,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4300,"unit":"Price, $","timestamp":36,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4200,"unit":"Price, $","timestamp":37,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4200,"unit":"Price, $","timestamp":38,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4200,"unit":"Price, $","timestamp":39,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4000,"unit":"Price, $","timestamp":40,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4000,"unit":"Price, $","timestamp":41,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4200,"unit":"Price, $","timestamp":42,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4400,"unit":"Price, $","timestamp":43,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4298,"unit":"Price, $","timestamp":44,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":4930,"unit":"Price, $","timestamp":45,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":5300,"unit":"Price, $","timestamp":46,"timestampUnit":"Week","color":"","site":"PC Gamer"},{"productName":"Nvidia RTX 5090","attribute":"Lowest pricing","value":5700,"unit":"Price, $","timestamp":47,"timestampUnit":"Week","color":"","site":"PC Gamer"}],"products":["AMD Radeon RX 9070 GRE","AMD RX 9060 XT 16 GB","AMD RX 9060 XT 8 GB","AMD RX 9070","AMD RX 9070 XT","Intel Arc B570","Intel Arc B580","Nvidia RTX 5050","Nvidia RTX 5060","Nvidia RTX 5060 Ti 16 GB","Nvidia RTX 5060 Ti 8 GB","Nvidia RTX 5070","Nvidia RTX 5070 Ti","Nvidia RTX 5080","Nvidia RTX 5090"],"attributes":["Lowest pricing"],"selectedProducts":["AMD Radeon RX 9070 GRE","AMD RX 9060 XT 16 GB","AMD RX 9060 XT 8 GB","AMD RX 9070","AMD RX 9070 XT","Intel Arc B570","Intel Arc B580","Nvidia RTX 5050","Nvidia RTX 5060","Nvidia RTX 5060 Ti 16 GB","Nvidia RTX 5060 Ti 8 GB","Nvidia RTX 5070","Nvidia RTX 5070 Ti","Nvidia RTX 5080"],"selectedPrimaryProduct":null,"selectedAttributes":["Lowest pricing"],"productColors":[{"productName":"AMD Radeon RX 9070 GRE","color":"#E33235"},{"productName":"AMD RX 9060 XT 16 GB","color":"#FE9F58"},{"productName":"AMD RX 9060 XT 8 GB","color":"#1CA9C4"},{"productName":"AMD RX 9070","color":"#EB6F71"},{"productName":"AMD RX 9070 XT","color":"#FFC08B"},{"productName":"Intel Arc B570","color":"#66C5D7"},{"productName":"Intel Arc B580","color":"#B5282A"},{"productName":"Nvidia RTX 5050","color":"#D07F46"},{"productName":"Nvidia RTX 5060","color":"#e97a7b"},{"productName":"Nvidia RTX 5060 Ti 16 GB","color":"#e38e4f"},{"productName":"Nvidia RTX 5060 Ti 8 GB","color":"#75bdd1"},{"productName":"Nvidia RTX 5070","color":"#d26365"},{"productName":"Nvidia RTX 5070 Ti","color":"#ffcea9"},{"productName":"Nvidia RTX 5080","color":"#5bb0c0"},{"productName":"Nvidia RTX 5090","color":"#c67878"}],"initialProductColors":[{"productName":"AMD Radeon RX 9070 GRE","color":"#E33235"},{"productName":"AMD RX 9060 XT 16 GB","color":"#FE9F58"},{"productName":"AMD RX 9060 XT 8 GB","color":"#1CA9C4"},{"productName":"AMD RX 9070","color":"#EB6F71"},{"productName":"AMD RX 9070 XT","color":"#FFC08B"},{"productName":"Intel Arc B570","color":"#66C5D7"},{"productName":"Intel Arc B580","color":"#B5282A"},{"productName":"Nvidia RTX 5050","color":"#D07F46"},{"productName":"Nvidia RTX 5060","color":"#e97a7b"},{"productName":"Nvidia RTX 5060 Ti 16 GB","color":"#e38e4f"},{"productName":"Nvidia RTX 5060 Ti 8 GB","color":"#75bdd1"},{"productName":"Nvidia RTX 5070","color":"#d26365"},{"productName":"Nvidia RTX 5070 Ti","color":"#ffcea9"},{"productName":"Nvidia RTX 5080","color":"#5bb0c0"},{"productName":"Nvidia RTX 5090","color":"#c67878"}],"attributeColors":[],"attributeGroups":[],"chartType":"Line","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":"Lowest price per GPU","subhead":"We've been measuring the lowest available price of each current-gen GPU since August 14, 2025.","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},"slides":[]}</script><div id="fv-chart-1792679910923-z7ixryjjv" class="fv-chart-wrapper fv-contains-line-chart  " data-bar-labels-on-top="false" data-iframe-height="true" data-vizualizer-embed="true"><div class="fv-inner-wrapper    "><h3 class="fv-chart-title">Lowest price per GPU</h3><p class="fv-chart-subhead">We've been measuring the lowest available price of each current-gen GPU since August 14, 2025.</p><div class="riv-chart-container"><div class="fv-chart-item" id="fv-chart-1792679910923-z7ixryjjv-line-Lowest pricing" data-chart-type="Line" data-title="Lowest pricing" data-subhead="We've been measuring the lowest available price of each current-gen GPU since August 14, 2025." data-caption="" style=""><div class="fv-benchmark-group"><div class="riv-line-chart-container" id="fv-chart-1792679910923-z7ixryjjv-line-Lowest pricing" role="group" aria-label="Line chart for Lowest pricing" style="position: relative;"><style>.riv-line-chart-container { width: 100% !important; }.riv-line-chart-svg-desktop { display: block !important; }.riv-line-chart-svg-mobile { display: none !important; }.mobile-view .riv-line-chart-svg-desktop { display: none !important; }.mobile-view .riv-line-chart-svg-mobile { display: block !important; }@media (max-width: 599px) { .riv-line-chart-svg-desktop { display: none !important; } .riv-line-chart-svg-mobile { display: block !important; } }.riv-line-legend { display: flex !important; flex-wrap: wrap !important; justify-content: center !important; gap: 8px 16px !important; margin-top: 16px !important; font-family: 'Open Sans', sans-serif !important; }.riv-legend-item { display: inline-flex !important; align-items: center !important; gap: 6px !important; font-size: 13px !important; color: #374151 !important; background: none !important; border: none !important; padding: 4px !important; border-radius: 4px !important; cursor: pointer !important; transition: opacity 0.2s !important; }.riv-legend-item.fv-primary-product { font-weight: bold !important; }.riv-legend-item:focus { outline: 2px solid var(--riv-primary) !important; }.riv-legend-marker { width: 12px !important; height: 12px !important; border-radius: 50% !important; }</style><div class="fv-y-axis-title">Lowest pricing (Price, $)</div><svg class="riv-line-chart-svg-desktop" style="overflow: visible;" fill="none" viewBox="0 0 600 340" width="100%" height="auto" aria-hidden="true"><g class="riv-grid"><line x1="45" x2="580" y1="275.00" y2="275.00" /><line x1="45" x2="580" y1="208.75" y2="208.75" /><line x1="45" x2="580" y1="142.50" y2="142.50" /><line x1="45" x2="580" y1="76.25" y2="76.25" /><line x1="45" x2="580" y1="10.00" y2="10.00" /><line x1="248.30" x2="248.30" y1="10" y2="275" /><line x1="462.30" x2="462.30" y1="10" y2="275" /></g><g class="riv-axes"><line x1="45" x2="45" y1="10" y2="275" stroke="#D1D5DB" /><line x1="45" x2="580" y1="275" y2="275" stroke="#D1D5DB" /><text x="37" y="275.00" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">0</text><text x="37" y="208.75" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">500</text><text x="37" y="142.50" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">1000</text><text x="37" y="76.25" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">1500</text><text x="37" y="10.00" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">2000</text><text x="248.30" y="287" transform="rotate(-45 248.30 287)" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">20 Week</text><text x="462.30" y="287" transform="rotate(-45 462.30 287)" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">40 Week</text></g><path class="riv-line-path" d="M 419.50,202.13 C 423.07,202.13 426.63,202.13 430.20,202.13 C 433.77,202.13 437.33,202.13 440.90,202.13 C 444.47,202.13 448.03,208.75 451.60,208.75 C 455.17,208.75 458.73,208.75 462.30,208.75 C 465.87,208.75 469.43,208.75 473.00,208.75 C 476.57,208.75 480.13,202.13 483.70,202.13 C 487.27,202.13 490.83,208.75 494.40,208.75 C 497.97,208.75 501.53,208.75 505.10,208.75 C 508.67,208.75 512.23,204.77 515.80,204.77 C 519.37,204.77 522.93,204.77 526.50,204.77 C 530.07,204.77 533.63,206.10 537.20,206.10 C 540.77,206.10 544.33,208.75 547.90,208.75 C 551.47,208.75 555.03,199.48 558.60,199.48 C 562.17,199.48 565.73,202.13 569.30,202.13 C 572.87,202.13 576.43,199.48 580.00,199.48" data-product="AMD Radeon RX 9070 GRE" fill="none" stroke="#E33235" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,225.97 C 48.57,225.97 52.13,225.97 55.70,225.97 C 59.27,225.97 62.83,225.97 66.40,225.97 C 69.97,225.97 73.53,225.97 77.10,225.97 C 80.67,225.97 84.23,228.63 87.80,228.63 C 91.37,228.63 94.93,228.63 98.50,228.63 C 102.07,228.63 105.63,228.63 109.20,228.63 C 112.77,228.63 116.33,228.63 119.90,228.63 C 123.47,228.63 127.03,228.63 130.60,228.63 C 134.17,228.63 137.73,227.30 141.30,227.30 C 144.87,227.30 148.43,229.95 152.00,229.95 C 155.57,229.95 159.13,228.63 162.70,228.63 C 166.27,228.63 169.83,228.63 173.40,228.63 C 176.97,228.63 180.53,225.97 184.10,225.97 C 187.67,225.97 191.23,224.65 194.80,224.65 C 198.37,224.65 201.93,224.65 205.50,224.65 C 209.07,224.65 212.63,223.32 216.20,223.32 C 219.77,223.32 223.33,223.32 226.90,223.32 C 230.47,223.32 234.03,222.00 237.60,222.00 C 241.17,222.00 244.73,216.70 248.30,216.70 C 251.87,216.70 255.43,216.70 259.00,216.70 C 262.57,216.70 266.13,222.00 269.70,222.00 C 273.27,222.00 276.83,216.70 280.40,216.70 C 283.97,216.70 287.53,216.70 291.10,216.70 C 294.67,216.70 298.23,216.70 301.80,216.70 C 305.37,216.70 308.93,216.70 312.50,216.70 C 316.07,216.70 319.63,216.70 323.20,216.70 C 326.77,216.70 330.33,216.70 333.90,216.70 C 337.47,216.70 341.03,215.51 344.60,215.51 C 348.17,215.51 351.73,216.70 355.30,216.70 C 358.87,216.70 362.43,216.70 366.00,216.70 C 369.57,216.70 373.13,218.03 376.70,218.03 C 380.27,218.03 383.83,218.03 387.40,218.03 C 390.97,218.03 394.53,216.70 398.10,216.70 C 401.67,216.70 405.23,218.03 408.80,218.03 C 412.37,218.03 415.93,216.70 419.50,216.70 C 423.07,216.70 426.63,216.70 430.20,216.70 C 433.77,216.70 437.33,216.70 440.90,216.70 C 444.47,216.70 448.03,222.00 451.60,222.00 C 455.17,222.00 458.73,218.03 462.30,218.03 C 465.87,218.03 469.43,218.03 473.00,218.03 C 476.57,218.03 480.13,215.38 483.70,215.38 C 487.27,215.38 490.83,212.72 494.40,212.72 C 497.97,212.72 501.53,212.72 505.10,212.72 C 508.67,212.72 512.23,214.05 515.80,214.05 C 519.37,214.05 522.93,212.72 526.50,212.72 C 530.07,212.72 533.63,212.72 537.20,212.72 C 540.77,212.72 544.33,212.72 547.90,212.72 C 551.47,212.72 555.03,208.75 558.60,208.75 C 562.17,208.75 565.73,206.10 569.30,206.10 C 572.87,206.10 576.43,206.10 580.00,206.10" data-product="AMD RX 9060 XT 16 GB" fill="none" stroke="#FE9F58" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,237.90 C 48.57,237.90 52.13,239.22 55.70,239.22 C 59.27,239.22 62.83,237.90 66.40,237.90 C 69.97,237.90 73.53,237.90 77.10,237.90 C 80.67,237.90 84.23,239.22 87.80,239.22 C 91.37,239.22 94.93,239.22 98.50,239.22 C 102.07,239.22 105.63,239.22 109.20,239.22 C 112.77,239.22 116.33,239.22 119.90,239.22 C 123.47,239.22 127.03,239.22 130.60,239.22 C 134.17,239.22 137.73,239.22 141.30,239.22 C 144.87,239.22 148.43,241.88 152.00,241.88 C 155.57,241.88 159.13,238.56 162.70,238.56 C 166.27,238.56 169.83,237.90 173.40,237.90 C 176.97,237.90 180.53,237.90 184.10,237.90 C 187.67,237.90 191.23,236.84 194.80,236.84 C 198.37,236.84 201.93,236.84 205.50,236.84 C 209.07,236.84 212.63,233.93 216.20,233.93 C 219.77,233.93 223.33,233.93 226.90,233.93 C 230.47,233.93 234.03,233.93 237.60,233.93 C 241.17,233.93 244.73,233.93 248.30,233.93 C 251.87,233.93 255.43,228.63 259.00,228.63 C 262.57,228.63 266.13,229.16 269.70,229.16 C 273.27,229.16 276.83,229.16 280.40,229.16 C 283.97,229.16 287.53,229.16 291.10,229.16 C 294.67,229.16 298.23,229.16 301.80,229.16 C 305.37,229.16 308.93,229.95 312.50,229.95 C 316.07,229.95 319.63,229.95 323.20,229.95 C 326.77,229.95 330.33,229.16 333.90,229.16 C 337.47,229.16 341.03,228.63 344.60,228.63 C 348.17,228.63 351.73,228.63 355.30,228.63 C 358.87,228.63 362.43,228.63 366.00,228.63 C 369.57,228.63 373.13,227.30 376.70,227.30 C 380.27,227.30 383.83,227.30 387.40,227.30 C 390.97,227.30 394.53,227.30 398.10,227.30 C 401.67,227.30 405.23,227.30 408.80,227.30 C 412.37,227.30 415.93,227.30 419.50,227.30 C 423.07,227.30 426.63,228.63 430.20,228.63 C 433.77,228.63 437.33,228.63 440.90,228.63 C 444.47,228.63 448.03,227.30 451.60,227.30 C 455.17,227.30 458.73,227.30 462.30,227.30 C 465.87,227.30 469.43,227.30 473.00,227.30 C 476.57,227.30 480.13,227.30 483.70,227.30 C 487.27,227.30 490.83,225.97 494.40,225.97 C 497.97,225.97 501.53,222.00 505.10,222.00 C 508.67,222.00 512.23,227.30 515.80,227.30 C 519.37,227.30 522.93,222.00 526.50,222.00 C 530.07,222.00 533.63,220.81 537.20,220.81 C 540.77,220.81 544.33,218.03 547.90,218.03 C 551.47,218.03 555.03,215.38 558.60,215.38 C 562.17,215.38 565.73,222.00 569.30,222.00 C 572.87,222.00 576.43,222.00 580.00,222.00" data-product="AMD RX 9060 XT 8 GB" fill="none" stroke="#1CA9C4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,195.50 C 48.57,195.50 52.13,195.50 55.70,195.50 C 59.27,195.50 62.83,202.13 66.40,202.13 C 69.97,202.13 73.53,202.13 77.10,202.13 C 80.67,202.13 84.23,195.50 87.80,195.50 C 91.37,195.50 94.93,195.50 98.50,195.50 C 102.07,195.50 105.63,202.13 109.20,202.13 C 112.77,202.13 116.33,202.13 119.90,202.13 C 123.47,202.13 127.03,200.80 130.60,200.80 C 134.17,200.80 137.73,202.13 141.30,202.13 C 144.87,202.13 148.43,202.13 152.00,202.13 C 155.57,202.13 159.13,204.77 162.70,204.77 C 166.27,204.77 169.83,204.77 173.40,204.77 C 176.97,204.77 180.53,204.77 184.10,204.77 C 187.67,204.77 191.23,204.77 194.80,204.77 C 198.37,204.77 201.93,204.77 205.50,204.77 C 209.07,204.77 212.63,198.15 216.20,198.15 C 219.77,198.15 223.33,198.15 226.90,198.15 C 230.47,198.15 234.03,198.15 237.60,198.15 C 241.17,198.15 244.73,195.50 248.30,195.50 C 251.87,195.50 255.43,196.82 259.00,196.82 C 262.57,196.82 266.13,191.53 269.70,191.53 C 273.27,191.53 276.83,191.53 280.40,191.53 C 283.97,191.53 287.53,192.85 291.10,192.85 C 294.67,192.85 298.23,194.18 301.80,194.18 C 305.37,194.18 308.93,194.18 312.50,194.18 C 316.07,194.18 319.63,191.53 323.20,191.53 C 326.77,191.53 330.33,192.85 333.90,192.85 C 337.47,192.85 341.03,192.85 344.60,192.85 C 348.17,192.85 351.73,192.85 355.30,192.85 C 358.87,192.85 362.43,192.85 366.00,192.85 C 369.57,192.85 373.13,192.85 376.70,192.85 C 380.27,192.85 383.83,195.50 387.40,195.50 C 390.97,195.50 394.53,192.85 398.10,192.85 C 401.67,192.85 405.23,195.50 408.80,195.50 C 412.37,195.50 415.93,195.50 419.50,195.50 C 423.07,195.50 426.63,195.50 430.20,195.50 C 433.77,195.50 437.33,195.50 440.90,195.50 C 444.47,195.50 448.03,195.50 451.60,195.50 C 455.17,195.50 458.73,195.50 462.30,195.50 C 465.87,195.50 469.43,195.50 473.00,195.50 C 476.57,195.50 480.13,190.86 483.70,190.86 C 487.27,190.86 490.83,188.88 494.40,188.88 C 497.97,188.88 501.53,188.88 505.10,188.88 C 508.67,188.88 512.23,191.53 515.80,191.53 C 519.37,191.53 522.93,188.88 526.50,188.88 C 530.07,188.88 533.63,188.88 537.20,188.88 C 540.77,188.88 544.33,188.88 547.90,188.88 C 551.47,188.88 555.03,186.62 558.60,186.62 C 562.17,186.62 565.73,182.25 569.30,182.25 C 572.87,182.25 576.43,182.25 580.00,182.25" data-product="AMD RX 9070" fill="none" stroke="#EB6F71" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,182.25 C 48.57,182.25 52.13,182.25 55.70,182.25 C 59.27,182.25 62.83,182.25 66.40,182.25 C 69.97,182.25 73.53,182.91 77.10,182.91 C 80.67,182.91 84.23,186.22 87.80,186.22 C 91.37,186.22 94.93,186.22 98.50,186.22 C 102.07,186.22 105.63,188.88 109.20,188.88 C 112.77,188.88 116.33,188.88 119.90,188.88 C 123.47,188.88 127.03,188.88 130.60,188.88 C 134.17,188.88 137.73,195.50 141.30,195.50 C 144.87,195.50 148.43,195.50 152.00,195.50 C 155.57,195.50 159.13,195.50 162.70,195.50 C 166.27,195.50 169.83,195.50 173.40,195.50 C 176.97,195.50 180.53,195.50 184.10,195.50 C 187.67,195.50 191.23,195.50 194.80,195.50 C 198.37,195.50 201.93,192.85 205.50,192.85 C 209.07,192.85 212.63,187.55 216.20,187.55 C 219.77,187.55 223.33,182.25 226.90,182.25 C 230.47,182.25 234.03,179.60 237.60,179.60 C 241.17,179.60 244.73,179.60 248.30,179.60 C 251.87,179.60 255.43,178.28 259.00,178.28 C 262.57,178.28 266.13,178.28 269.70,178.28 C 273.27,178.28 276.83,178.28 280.40,178.28 C 283.97,178.28 287.53,178.28 291.10,178.28 C 294.67,178.28 298.23,178.28 301.80,178.28 C 305.37,178.28 308.93,178.28 312.50,178.28 C 316.07,178.28 319.63,178.28 323.20,178.28 C 326.77,178.28 330.33,179.60 333.90,179.60 C 337.47,179.60 341.03,180.93 344.60,180.93 C 348.17,180.93 351.73,180.93 355.30,180.93 C 358.87,180.93 362.43,186.22 366.00,186.22 C 369.57,186.22 373.13,180.93 376.70,180.93 C 380.27,180.93 383.83,180.93 387.40,180.93 C 390.97,180.93 394.53,180.93 398.10,180.93 C 401.67,180.93 405.23,182.25 408.80,182.25 C 412.37,182.25 415.93,182.25 419.50,182.25 C 423.07,182.25 426.63,182.25 430.20,182.25 C 433.77,182.25 437.33,182.25 440.90,182.25 C 444.47,182.25 448.03,182.25 451.60,182.25 C 455.17,182.25 458.73,182.25 462.30,182.25 C 465.87,182.25 469.43,182.25 473.00,182.25 C 476.57,182.25 480.13,183.57 483.70,183.57 C 487.27,183.57 490.83,179.60 494.40,179.60 C 497.97,179.60 501.53,179.60 505.10,179.60 C 508.67,179.60 512.23,178.28 515.80,178.28 C 519.37,178.28 522.93,176.95 526.50,176.95 C 530.07,176.95 533.63,176.95 537.20,176.95 C 540.77,176.95 544.33,174.30 547.90,174.30 C 551.47,174.30 555.03,174.30 558.60,174.30 C 562.17,174.30 565.73,169.00 569.30,169.00 C 572.87,169.00 576.43,165.03 580.00,165.03" data-product="AMD RX 9070 XT" fill="none" stroke="#FFC08B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,244.53 C 48.57,244.53 52.13,244.53 55.70,244.53 C 59.27,244.53 62.83,244.53 66.40,244.53 C 69.97,244.53 73.53,244.53 77.10,244.53 C 80.67,244.53 84.23,244.53 87.80,244.53 C 91.37,244.53 94.93,244.53 98.50,244.53 C 102.07,244.53 105.63,244.53 109.20,244.53 C 112.77,244.53 116.33,248.50 119.90,248.50 C 123.47,248.50 127.03,245.85 130.60,245.85 C 134.17,245.85 137.73,247.18 141.30,247.18 C 144.87,247.18 148.43,248.50 152.00,248.50 C 155.57,248.50 159.13,248.50 162.70,248.50 C 166.27,248.50 169.83,248.50 173.40,248.50 C 176.97,248.50 180.53,248.24 184.10,248.24 C 187.67,248.24 191.23,248.24 194.80,248.24 C 198.37,248.24 201.93,248.24 205.50,248.24 C 209.07,248.24 212.63,248.50 216.20,248.50 C 219.77,248.50 223.33,248.50 226.90,248.50 C 230.47,248.50 234.03,248.50 237.60,248.50 C 241.17,248.50 244.73,248.50 248.30,248.50 C 251.87,248.50 255.43,241.88 259.00,241.88 C 262.57,241.88 266.13,241.88 269.70,241.88 C 273.27,241.88 276.83,241.88 280.40,241.88 C 283.97,241.88 287.53,241.88 291.10,241.88 C 294.67,241.88 298.23,241.88 301.80,241.88 C 305.37,241.88 308.93,241.88 312.50,241.88 C 316.07,241.88 319.63,241.88 323.20,241.88 C 326.77,241.88 330.33,241.88 333.90,241.88 C 337.47,241.88 341.03,241.88 344.60,241.88 C 348.17,241.88 351.73,240.55 355.30,240.55 C 358.87,240.55 362.43,240.55 366.00,240.55 C 369.57,240.55 373.13,240.55 376.70,240.55 C 380.27,240.55 383.83,240.55 387.40,240.55 C 390.97,240.55 394.53,240.55 398.10,240.55 C 401.67,240.55 405.23,240.55 408.80,240.55 C 412.37,240.55 415.93,240.55 419.50,240.55 C 423.07,240.55 426.63,241.88 430.20,241.88 C 433.77,241.88 437.33,241.88 440.90,241.88 C 444.47,241.88 448.03,241.88 451.60,241.88 C 455.17,241.88 458.73,240.55 462.30,240.55 C 465.87,240.55 469.43,241.88 473.00,241.88 C 476.57,241.88 480.13,240.55 483.70,240.55 C 487.27,240.55 490.83,240.55 494.40,240.55 C 497.97,240.55 501.53,240.55 505.10,240.55 C 508.67,240.55 512.23,240.55 515.80,240.55 C 519.37,240.55 522.93,240.55 526.50,240.55 C 530.07,240.55 533.63,240.55 537.20,240.55 C 540.77,240.55 544.33,240.55 547.90,240.55 C 551.47,240.55 555.03,240.55 558.60,240.55 C 562.17,240.55 565.73,236.57 569.30,236.57 C 572.87,236.57 576.43,236.57 580.00,236.57" data-product="Intel Arc B570" fill="none" stroke="#66C5D7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,240.55 C 48.57,240.55 52.13,240.55 55.70,240.55 C 59.27,240.55 62.83,241.88 66.40,241.88 C 69.97,241.88 73.53,241.88 77.10,241.88 C 80.67,241.88 84.23,241.88 87.80,241.88 C 91.37,241.88 94.93,241.88 98.50,241.88 C 102.07,241.88 105.63,241.88 109.20,241.88 C 112.77,241.88 116.33,241.88 119.90,241.88 C 123.47,241.88 127.03,241.88 130.60,241.88 C 134.17,241.88 137.73,241.88 141.30,241.88 C 144.87,241.88 148.43,241.88 152.00,241.88 C 155.57,241.88 159.13,241.88 162.70,241.88 C 166.27,241.88 169.83,241.88 173.40,241.88 C 176.97,241.88 180.53,241.88 184.10,241.88 C 187.67,241.88 191.23,243.20 194.80,243.20 C 198.37,243.20 201.93,243.20 205.50,243.20 C 209.07,243.20 212.63,241.88 216.20,241.88 C 219.77,241.88 223.33,241.88 226.90,241.88 C 230.47,241.88 234.03,240.55 237.60,240.55 C 241.17,240.55 244.73,236.57 248.30,236.57 C 251.87,236.57 255.43,236.57 259.00,236.57 C 262.57,236.57 266.13,235.25 269.70,235.25 C 273.27,235.25 276.83,235.25 280.40,235.25 C 283.97,235.25 287.53,235.25 291.10,235.25 C 294.67,235.25 298.23,235.25 301.80,235.25 C 305.37,235.25 308.93,235.25 312.50,235.25 C 316.07,235.25 319.63,235.25 323.20,235.25 C 326.77,235.25 330.33,236.57 333.90,236.57 C 337.47,236.57 341.03,236.57 344.60,236.57 C 348.17,236.57 351.73,236.57 355.30,236.57 C 358.87,236.57 362.43,236.57 366.00,236.57 C 369.57,236.57 373.13,236.57 376.70,236.57 C 380.27,236.57 383.83,236.57 387.40,236.57 C 390.97,236.57 394.53,236.57 398.10,236.57 C 401.67,236.57 405.23,234.72 408.80,234.72 C 412.37,234.72 415.93,235.25 419.50,235.25 C 423.07,235.25 426.63,234.72 430.20,234.72 C 433.77,234.72 437.33,234.72 440.90,234.72 C 444.47,234.72 448.03,235.51 451.60,235.51 C 455.17,235.51 458.73,236.44 462.30,236.44 C 465.87,236.44 469.43,236.57 473.00,236.57 C 476.57,236.57 480.13,236.57 483.70,236.57 C 487.27,236.57 490.83,233.93 494.40,233.93 C 497.97,233.93 501.53,233.93 505.10,233.93 C 508.67,233.93 512.23,233.93 515.80,233.93 C 519.37,233.93 522.93,233.93 526.50,233.93 C 530.07,233.93 533.63,233.93 537.20,233.93 C 540.77,233.93 544.33,231.28 547.90,231.28 C 551.47,231.28 555.03,231.28 558.60,231.28 C 562.17,231.28 565.73,231.28 569.30,231.28 C 572.87,231.28 576.43,231.28 580.00,231.28" data-product="Intel Arc B580" fill="none" stroke="#B5282A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,241.88 C 48.57,241.88 52.13,241.88 55.70,241.88 C 59.27,241.88 62.83,241.88 66.40,241.88 C 69.97,241.88 73.53,241.88 77.10,241.88 C 80.67,241.88 84.23,241.88 87.80,241.88 C 91.37,241.88 94.93,243.20 98.50,243.20 C 102.07,243.20 105.63,243.20 109.20,243.20 C 112.77,243.20 116.33,241.88 119.90,241.88 C 123.47,241.88 127.03,241.88 130.60,241.88 C 134.17,241.88 137.73,241.88 141.30,241.88 C 144.87,241.88 148.43,244.53 152.00,244.53 C 155.57,244.53 159.13,245.85 162.70,245.85 C 166.27,245.85 169.83,245.85 173.40,245.85 C 176.97,245.85 180.53,245.85 184.10,245.85 C 187.67,245.85 191.23,248.50 194.80,248.50 C 198.37,248.50 201.93,248.50 205.50,248.50 C 209.07,248.50 212.63,243.86 216.20,243.86 C 219.77,243.86 223.33,243.20 226.90,243.20 C 230.47,243.20 234.03,243.20 237.60,243.20 C 241.17,243.20 244.73,243.20 248.30,243.20 C 251.87,243.20 255.43,240.55 259.00,240.55 C 262.57,240.55 266.13,240.55 269.70,240.55 C 273.27,240.55 276.83,240.55 280.40,240.55 C 283.97,240.55 287.53,240.55 291.10,240.55 C 294.67,240.55 298.23,240.55 301.80,240.55 C 305.37,240.55 308.93,236.57 312.50,236.57 C 316.07,236.57 319.63,236.57 323.20,236.57 C 326.77,236.57 330.33,236.57 333.90,236.57 C 337.47,236.57 341.03,236.57 344.60,236.57 C 348.17,236.57 351.73,236.57 355.30,236.57 C 358.87,236.57 362.43,236.57 366.00,236.57 C 369.57,236.57 373.13,236.57 376.70,236.57 C 380.27,236.57 383.83,236.57 387.40,236.57 C 390.97,236.57 394.53,236.57 398.10,236.57 C 401.67,236.57 405.23,236.57 408.80,236.57 C 412.37,236.57 415.93,236.57 419.50,236.57 C 423.07,236.57 426.63,236.57 430.20,236.57 C 433.77,236.57 437.33,236.57 440.90,236.57 C 444.47,236.57 448.03,236.57 451.60,236.57 C 455.17,236.57 458.73,236.57 462.30,236.57 C 465.87,236.57 469.43,236.57 473.00,236.57 C 476.57,236.57 480.13,236.57 483.70,236.57 C 487.27,236.57 490.83,235.38 494.40,235.38 C 497.97,235.38 501.53,235.38 505.10,235.38 C 508.67,235.38 512.23,235.38 515.80,235.38 C 519.37,235.38 522.93,235.38 526.50,235.38 C 530.07,235.38 533.63,235.38 537.20,235.38 C 537.20,235.38 537.20,235.38 537.20,235.38 C 544.33,235.38 551.47,233.93 558.60,233.93 C 562.17,233.93 565.73,233.93 569.30,233.93 C 572.87,233.93 576.43,222.00 580.00,222.00" data-product="Nvidia RTX 5050" fill="none" stroke="#D07F46" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,235.25 C 48.57,235.25 52.13,235.25 55.70,235.25 C 59.27,235.25 62.83,236.44 66.40,236.44 C 69.97,236.44 73.53,235.78 77.10,235.78 C 80.67,235.78 84.23,235.25 87.80,235.25 C 91.37,235.25 94.93,236.71 98.50,236.71 C 102.07,236.71 105.63,235.38 109.20,235.38 C 112.77,235.38 116.33,235.38 119.90,235.38 C 123.47,235.38 127.03,235.38 130.60,235.38 C 134.17,235.38 137.73,235.38 141.30,235.38 C 144.87,235.38 148.43,237.90 152.00,237.90 C 155.57,237.90 159.13,238.03 162.70,238.03 C 166.27,238.03 169.83,238.03 173.40,238.03 C 176.97,238.03 180.53,238.03 184.10,238.03 C 187.67,238.03 191.23,238.03 194.80,238.03 C 198.37,238.03 201.93,239.22 205.50,239.22 C 209.07,239.22 212.63,240.55 216.20,240.55 C 219.77,240.55 223.33,236.57 226.90,236.57 C 230.47,236.57 234.03,235.38 237.60,235.38 C 241.17,235.38 244.73,235.38 248.30,235.38 C 251.87,235.38 255.43,235.38 259.00,235.38 C 262.57,235.38 266.13,235.38 269.70,235.38 C 273.27,235.38 276.83,229.95 280.40,229.95 C 283.97,229.95 287.53,229.95 291.10,229.95 C 294.67,229.95 298.23,228.76 301.80,228.76 C 305.37,228.76 308.93,228.76 312.50,228.76 C 316.07,228.76 319.63,228.76 323.20,228.76 C 326.77,228.76 330.33,228.76 333.90,228.76 C 337.47,228.76 341.03,228.76 344.60,228.76 C 348.17,228.76 351.73,231.28 355.30,231.28 C 358.87,231.28 362.43,231.28 366.00,231.28 C 369.57,231.28 373.13,233.93 376.70,233.93 C 380.27,233.93 383.83,228.76 387.40,228.76 C 390.97,228.76 394.53,228.76 398.10,228.76 C 401.67,228.76 405.23,228.63 408.80,228.63 C 412.37,228.63 415.93,229.95 419.50,229.95 C 423.07,229.95 426.63,229.95 430.20,229.95 C 433.77,229.95 437.33,229.95 440.90,229.95 C 444.47,229.95 448.03,229.95 451.60,229.95 C 455.17,229.95 458.73,229.95 462.30,229.95 C 465.87,229.95 469.43,230.08 473.00,230.08 C 476.57,230.08 480.13,228.63 483.70,228.63 C 487.27,228.63 490.83,227.43 494.40,227.43 C 501.53,227.43 508.67,227.43 515.80,227.43 C 519.37,227.43 522.93,227.43 526.50,227.43 C 530.07,227.43 533.63,227.43 537.20,227.43 C 540.77,227.43 544.33,227.43 547.90,227.43 C 551.47,227.43 555.03,224.65 558.60,224.65 C 562.17,224.65 565.73,216.83 569.30,216.83" data-product="Nvidia RTX 5060" fill="none" stroke="#e97a7b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,218.03 C 48.57,218.03 52.13,218.03 55.70,218.03 C 59.27,218.03 62.83,218.03 66.40,218.03 C 69.97,218.03 73.53,218.03 77.10,218.03 C 80.67,218.03 84.23,218.03 87.80,218.03 C 91.37,218.03 94.93,224.78 98.50,224.78 C 102.07,224.78 105.63,218.03 109.20,218.03 C 112.77,218.03 116.33,218.03 119.90,218.03 C 123.47,218.03 127.03,218.03 130.60,218.03 C 134.17,218.03 137.73,218.03 141.30,218.03 C 144.87,218.03 148.43,222.00 152.00,222.00 C 155.57,222.00 159.13,222.00 162.70,222.00 C 166.27,222.00 169.83,219.35 173.40,219.35 C 176.97,219.35 180.53,219.35 184.10,219.35 C 187.67,219.35 191.23,218.03 194.80,218.03 C 198.37,218.03 201.93,218.03 205.50,218.03 C 209.07,218.03 212.63,218.03 216.20,218.03 C 219.77,218.03 223.33,215.38 226.90,215.38 C 230.47,215.38 234.03,215.38 237.60,215.38 C 241.17,215.38 244.73,206.10 248.30,206.10 C 251.87,206.10 255.43,206.10 259.00,206.10 C 262.57,206.10 266.13,206.10 269.70,206.10 C 273.27,206.10 276.83,206.10 280.40,206.10 C 283.97,206.10 287.53,206.10 291.10,206.10 C 294.67,206.10 298.23,202.13 301.80,202.13 C 305.37,202.13 308.93,202.13 312.50,202.13 C 316.07,202.13 319.63,199.48 323.20,199.48 C 326.77,199.48 330.33,206.76 333.90,206.76 C 337.47,206.76 341.03,208.75 344.60,208.75 C 348.17,208.75 351.73,208.75 355.30,208.75 C 358.87,208.75 362.43,208.75 366.00,208.75 C 369.57,208.75 373.13,206.76 376.70,206.76 C 380.27,206.76 383.83,210.07 387.40,210.07 C 390.97,210.07 394.53,202.13 398.10,202.13 C 401.67,202.13 405.23,202.13 408.80,202.13 C 412.37,202.13 415.93,202.13 419.50,202.13 C 423.07,202.13 426.63,199.48 430.20,199.48 C 433.77,199.48 437.33,199.48 440.90,199.48 C 444.47,199.48 448.03,199.48 451.60,199.48 C 455.17,199.48 458.73,200.14 462.30,200.14 C 465.87,200.14 469.43,200.80 473.00,200.80 C 476.57,200.80 480.13,199.48 483.70,199.48 C 487.27,199.48 490.83,188.88 494.40,188.88 C 497.97,188.88 501.53,171.65 505.10,171.65 C 508.67,171.65 512.23,172.58 515.80,172.58 C 519.37,172.58 522.93,199.48 526.50,199.48 C 530.07,199.48 533.63,199.48 537.20,199.48 C 540.77,199.48 544.33,171.65 547.90,171.65 C 551.47,171.65 555.03,171.65 558.60,171.65 C 562.17,171.65 565.73,170.46 569.30,170.46 C 572.87,170.46 576.43,170.46 580.00,170.46 C 580.00,170.46 580.00,170.46 580.00,170.46" data-product="Nvidia RTX 5060 Ti 16 GB" fill="none" stroke="#e38e4f" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,226.24 C 48.57,226.24 52.13,229.95 55.70,229.95 C 59.27,229.95 62.83,225.97 66.40,225.97 C 69.97,225.97 73.53,229.29 77.10,229.29 C 80.67,229.29 84.23,229.95 87.80,229.95 C 91.37,229.95 94.93,229.95 98.50,229.95 C 102.07,229.95 105.63,228.63 109.20,228.63 C 112.77,228.63 116.33,229.69 119.90,229.69 C 123.47,229.69 127.03,232.20 130.60,232.20 C 134.17,232.20 137.73,229.95 141.30,229.95 C 144.87,229.95 148.43,232.60 152.00,232.60 C 155.57,232.60 159.13,232.60 162.70,232.60 C 166.27,232.60 169.83,229.69 173.40,229.69 C 176.97,229.69 180.53,233.53 184.10,233.53 C 187.67,233.53 191.23,228.63 194.80,228.63 C 198.37,228.63 201.93,228.63 205.50,228.63 C 209.07,228.63 212.63,231.28 216.20,231.28 C 219.77,231.28 223.33,231.28 226.90,231.28 C 230.47,231.28 234.03,231.28 237.60,231.28 C 241.17,231.28 244.73,231.28 248.30,231.28 C 251.87,231.28 255.43,228.49 259.00,228.49 C 262.57,228.49 266.13,227.30 269.70,227.30 C 273.27,227.30 276.83,227.30 280.40,227.30 C 283.97,227.30 287.53,227.30 291.10,227.30 C 294.67,227.30 298.23,227.30 301.80,227.30 C 305.37,227.30 308.93,227.30 312.50,227.30 C 316.07,227.30 319.63,227.30 323.20,227.30 C 326.77,227.30 330.33,223.32 333.90,223.32 C 337.47,223.32 341.03,223.32 344.60,223.32 C 348.17,223.32 351.73,223.32 355.30,223.32 C 358.87,223.32 362.43,224.65 366.00,224.65 C 369.57,224.65 373.13,224.65 376.70,224.65 C 380.27,224.65 383.83,222.00 387.40,222.00 C 390.97,222.00 394.53,224.65 398.10,224.65 C 401.67,224.65 405.23,224.65 408.80,224.65 C 412.37,224.65 415.93,225.97 419.50,225.97 C 423.07,225.97 426.63,225.97 430.20,225.97 C 433.77,225.97 437.33,225.97 440.90,225.97 C 444.47,225.97 448.03,231.28 451.60,231.28 C 455.17,231.28 458.73,231.28 462.30,231.28 C 465.87,231.28 469.43,231.28 473.00,231.28 C 476.57,231.28 480.13,224.65 483.70,224.65 C 487.27,224.65 490.83,219.35 494.40,219.35 C 497.97,219.35 501.53,219.35 505.10,219.35 C 508.67,219.35 512.23,223.46 515.80,223.46 C 519.37,223.46 522.93,223.46 526.50,223.46 C 530.07,223.46 533.63,223.46 537.20,223.46 C 540.77,223.46 544.33,223.46 547.90,223.46 C 551.47,223.46 555.03,210.34 558.60,210.34 C 562.17,210.34 565.73,212.72 569.30,212.72 C 572.87,212.72 576.43,212.72 580.00,212.72" data-product="Nvidia RTX 5060 Ti 8 GB" fill="none" stroke="#75bdd1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,202.13 C 48.57,202.13 52.13,202.13 55.70,202.13 C 59.27,202.13 62.83,205.57 66.40,205.57 C 69.97,205.57 73.53,202.66 77.10,202.66 C 80.67,202.66 84.23,211.27 87.80,211.27 C 91.37,211.27 94.93,208.88 98.50,208.88 C 102.07,208.88 105.63,206.10 109.20,206.10 C 112.77,206.10 116.33,208.75 119.90,208.75 C 123.47,208.75 127.03,208.75 130.60,208.75 C 134.17,208.75 137.73,211.40 141.30,211.40 C 144.87,211.40 148.43,210.21 152.00,210.21 C 155.57,210.21 159.13,208.75 162.70,208.75 C 166.27,208.75 169.83,205.17 173.40,205.17 C 176.97,205.17 180.53,203.45 184.10,203.45 C 187.67,203.45 191.23,208.88 194.80,208.88 C 198.37,208.88 201.93,208.88 205.50,208.88 C 209.07,208.88 212.63,202.26 216.20,202.26 C 219.77,202.26 223.33,203.45 226.90,203.45 C 230.47,203.45 234.03,202.26 237.60,202.26 C 241.17,202.26 244.73,192.85 248.30,192.85 C 251.87,192.85 255.43,192.85 259.00,192.85 C 262.57,192.85 266.13,192.85 269.70,192.85 C 273.27,192.85 276.83,191.53 280.40,191.53 C 283.97,191.53 287.53,192.19 291.10,192.19 C 294.67,192.19 298.23,191.53 301.80,191.53 C 305.37,191.53 308.93,194.97 312.50,194.97 C 316.07,194.97 319.63,190.20 323.20,190.20 C 326.77,190.20 330.33,191.53 333.90,191.53 C 337.47,191.53 341.03,190.73 344.60,190.73 C 348.17,190.73 351.73,191.53 355.30,191.53 C 358.87,191.53 362.43,195.63 366.00,195.63 C 369.57,195.63 373.13,195.63 376.70,195.63 C 380.27,195.63 383.83,195.63 387.40,195.63 C 390.97,195.63 394.53,195.63 398.10,195.63 C 401.67,195.63 405.23,195.63 408.80,195.63 C 412.37,195.63 415.93,195.63 419.50,195.63 C 423.07,195.63 426.63,195.63 430.20,195.63 C 433.77,195.63 437.33,195.63 440.90,195.63 C 444.47,195.63 448.03,195.63 451.60,195.63 C 455.17,195.63 458.73,195.63 462.30,195.63 C 465.87,195.63 469.43,200.80 473.00,200.80 C 476.57,200.80 480.13,202.13 483.70,202.13 C 487.27,202.13 490.83,174.96 494.40,174.96 C 497.97,174.96 501.53,173.90 505.10,173.90 C 508.67,173.90 512.23,169.00 515.80,169.00 C 519.37,169.00 522.93,174.43 526.50,174.43 C 530.07,174.43 533.63,178.94 537.20,178.94 C 540.77,178.94 544.33,171.78 547.90,171.78 C 551.47,171.78 555.03,171.78 558.60,171.78 C 562.17,171.78 565.73,171.78 569.30,171.78 C 572.87,171.78 576.43,170.46 580.00,170.46" data-product="Nvidia RTX 5070" fill="none" stroke="#d26365" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,171.65 C 48.57,171.65 52.13,175.63 55.70,175.63 C 59.27,175.63 62.83,175.63 66.40,175.63 C 69.97,175.63 73.53,175.63 77.10,175.63 C 80.67,175.63 84.23,175.76 87.80,175.76 C 91.37,175.76 94.93,175.76 98.50,175.76 C 102.07,175.76 105.63,175.63 109.20,175.63 C 112.77,175.63 116.33,175.76 119.90,175.76 C 123.47,175.76 127.03,175.63 130.60,175.63 C 134.17,175.63 137.73,178.28 141.30,178.28 C 144.87,178.28 148.43,182.38 152.00,182.38 C 155.57,182.38 159.13,178.28 162.70,178.28 C 166.27,178.28 169.83,175.63 173.40,175.63 C 176.97,175.63 180.53,175.63 184.10,175.63 C 187.67,175.63 191.23,175.76 194.80,175.76 C 198.37,175.76 201.93,175.63 205.50,175.63 C 209.07,175.63 212.63,175.63 216.20,175.63 C 219.77,175.63 223.33,165.16 226.90,165.16 C 230.47,165.16 234.03,155.88 237.60,155.88 C 241.17,155.88 244.73,142.50 248.30,142.50 C 251.87,142.50 255.43,149.13 259.00,149.13 C 262.57,149.13 266.13,149.13 269.70,149.13 C 273.27,149.13 276.83,149.13 280.40,149.13 C 283.97,149.13 287.53,149.13 291.10,149.13 C 294.67,149.13 298.23,149.13 301.80,149.13 C 305.37,149.13 308.93,149.13 312.50,149.13 C 316.07,149.13 319.63,149.13 323.20,149.13 C 326.77,149.13 330.33,155.75 333.90,155.75 C 337.47,155.75 341.03,143.82 344.60,143.82 C 348.17,143.82 351.73,143.82 355.30,143.82 C 358.87,143.82 362.43,143.82 366.00,143.82 C 369.57,143.82 373.13,143.82 376.70,143.82 C 380.27,143.82 383.83,145.15 387.40,145.15 C 390.97,145.15 394.53,145.15 398.10,145.15 C 401.67,145.15 405.23,155.75 408.80,155.75 C 412.37,155.75 415.93,145.15 419.50,145.15 C 423.07,145.15 426.63,145.15 430.20,145.15 C 433.77,145.15 437.33,145.15 440.90,145.15 C 444.47,145.15 448.03,153.10 451.60,153.10 C 455.17,153.10 458.73,148.46 462.30,148.46 C 465.87,148.46 469.43,155.75 473.00,155.75 C 476.57,155.75 480.13,149.13 483.70,149.13 C 487.27,149.13 490.83,138.53 494.40,138.53 C 497.97,138.53 501.53,130.84 505.10,130.84 C 508.67,130.84 512.23,122.63 515.80,122.63 C 519.37,122.63 522.93,122.63 526.50,122.63 C 530.07,122.63 533.63,122.63 537.20,122.63 C 540.77,122.63 544.33,122.63 547.90,122.63 C 551.47,122.63 555.03,122.63 558.60,122.63 C 562.17,122.63 565.73,122.63 569.30,122.63 C 572.87,122.63 576.43,116.00 580.00,116.00" data-product="Nvidia RTX 5070 Ti" fill="none" stroke="#ffcea9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 45.00,129.25 C 48.57,129.25 52.13,129.38 55.70,129.38 C 59.27,129.38 62.83,142.50 66.40,142.50 C 69.97,142.50 73.53,142.50 77.10,142.50 C 80.67,142.50 84.23,142.50 87.80,142.50 C 91.37,142.50 94.93,151.91 98.50,151.91 C 102.07,151.91 105.63,142.63 109.20,142.63 C 112.77,142.63 116.33,145.15 119.90,145.15 C 123.47,145.15 127.03,142.63 130.60,142.63 C 134.17,142.63 137.73,143.96 141.30,143.96 C 144.87,143.96 148.43,143.82 152.00,143.82 C 155.57,143.82 159.13,143.96 162.70,143.96 C 166.27,143.96 169.83,142.50 173.40,142.50 C 176.97,142.50 180.53,142.50 184.10,142.50 C 187.67,142.50 191.23,142.50 194.80,142.50 C 198.37,142.50 201.93,129.25 205.50,129.25 C 209.07,129.25 212.63,112.03 216.20,112.03 C 219.77,112.03 223.33,106.99 226.90,106.99 C 230.47,106.99 234.03,92.15 237.60,92.15 C 241.17,92.15 244.73,96.13 248.30,96.13 C 251.87,96.13 255.43,94.14 259.00,94.14 C 262.57,94.14 266.13,94.14 269.70,94.14 C 273.27,94.14 276.83,104.07 280.40,104.07 C 283.97,104.07 287.53,104.07 291.10,104.07 C 294.67,104.07 298.23,109.38 301.80,109.38 C 305.37,109.38 308.93,108.05 312.50,108.05 C 316.07,108.05 319.63,104.07 323.20,104.07 C 326.77,104.07 330.33,109.38 333.90,109.38 C 337.47,109.38 341.03,104.07 344.60,104.07 C 348.17,104.07 351.73,104.07 355.30,104.07 C 358.87,104.07 362.43,104.07 366.00,104.07 C 369.57,104.07 373.13,104.07 376.70,104.07 C 380.27,104.07 383.83,104.07 387.40,104.07 C 390.97,104.07 394.53,106.72 398.10,106.72 C 401.67,106.72 405.23,104.07 408.80,104.07 C 412.37,104.07 415.93,109.38 419.50,109.38 C 423.07,109.38 426.63,109.38 430.20,109.38 C 433.77,109.38 437.33,109.38 440.90,109.38 C 444.47,109.38 448.03,109.38 451.60,109.38 C 455.17,109.38 458.73,109.38 462.30,109.38 C 465.87,109.38 469.43,109.38 473.00,109.38 C 476.57,109.38 480.13,109.38 483.70,109.38 C 487.27,109.38 490.83,104.07 494.40,104.07 C 497.97,104.07 501.53,79.03 505.10,79.03 C 508.67,79.03 512.23,69.63 515.80,69.63 C 519.37,69.63 522.93,69.63 526.50,69.63 C 530.07,69.63 533.63,82.88 537.20,82.88 C 540.77,82.88 544.33,82.88 547.90,82.88 C 551.47,82.88 555.03,55.98 558.60,55.98 C 562.17,55.98 565.73,55.84 569.30,55.84 C 572.87,55.84 576.43,36.50 580.00,36.50" data-product="Nvidia RTX 5080" fill="none" stroke="#5bb0c0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="419.50" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="430.20" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="440.90" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="451.60" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="462.30" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="473.00" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="483.70" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="494.40" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="505.10" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="515.80" cy="204.77" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="526.50" cy="204.77" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="537.20" cy="206.10" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="547.90" cy="208.75" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="558.60" cy="199.48" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="569.30" cy="202.13" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="580.00" cy="199.48" r="3" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="45.00" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="55.70" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="66.40" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="77.10" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="87.80" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="98.50" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="109.20" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="119.90" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="130.60" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="141.30" cy="227.30" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="152.00" cy="229.95" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="162.70" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="173.40" cy="228.63" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="184.10" cy="225.97" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="194.80" cy="224.65" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="205.50" cy="224.65" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="216.20" cy="223.32" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="226.90" cy="223.32" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="237.60" cy="222.00" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="248.30" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="259.00" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="269.70" cy="222.00" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="280.40" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="291.10" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="301.80" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="312.50" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="323.20" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="333.90" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="344.60" cy="215.51" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="355.30" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="366.00" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="376.70" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="387.40" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="398.10" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="408.80" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="419.50" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="430.20" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="440.90" cy="216.70" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="451.60" cy="222.00" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="462.30" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="473.00" cy="218.03" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="483.70" cy="215.38" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="494.40" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="505.10" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="515.80" cy="214.05" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="526.50" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="537.20" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="547.90" cy="212.72" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="558.60" cy="208.75" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="569.30" cy="206.10" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="580.00" cy="206.10" r="3" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="45.00" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="55.70" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="66.40" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="77.10" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="87.80" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="98.50" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="109.20" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="119.90" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="130.60" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="141.30" cy="239.22" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="152.00" cy="241.88" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="162.70" cy="238.56" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="173.40" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="184.10" cy="237.90" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="194.80" cy="236.84" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="205.50" cy="236.84" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="216.20" cy="233.93" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="226.90" cy="233.93" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="237.60" cy="233.93" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="248.30" cy="233.93" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="259.00" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="269.70" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="280.40" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="291.10" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="301.80" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="312.50" cy="229.95" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="323.20" cy="229.95" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="333.90" cy="229.16" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="344.60" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="355.30" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="366.00" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="376.70" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="387.40" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="398.10" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="408.80" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="419.50" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="430.20" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="440.90" cy="228.63" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="451.60" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="462.30" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="473.00" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="483.70" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="494.40" cy="225.97" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="505.10" cy="222.00" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="515.80" cy="227.30" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="526.50" cy="222.00" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="537.20" cy="220.81" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="547.90" cy="218.03" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="558.60" cy="215.38" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="569.30" cy="222.00" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="580.00" cy="222.00" r="3" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="45.00" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="55.70" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="66.40" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="77.10" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="87.80" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="98.50" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="109.20" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="119.90" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="130.60" cy="200.80" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="141.30" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="152.00" cy="202.13" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="162.70" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="173.40" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="184.10" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="194.80" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="205.50" cy="204.77" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="216.20" cy="198.15" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="226.90" cy="198.15" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="237.60" cy="198.15" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="248.30" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="259.00" cy="196.82" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="269.70" cy="191.53" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="280.40" cy="191.53" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="291.10" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="301.80" cy="194.18" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="312.50" cy="194.18" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="323.20" cy="191.53" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="333.90" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="344.60" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="355.30" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="366.00" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="376.70" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="387.40" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="398.10" cy="192.85" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="408.80" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="419.50" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="430.20" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="440.90" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="451.60" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="462.30" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="473.00" cy="195.50" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="483.70" cy="190.86" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="494.40" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="505.10" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="515.80" cy="191.53" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="526.50" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="537.20" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="547.90" cy="188.88" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="558.60" cy="186.62" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="569.30" cy="182.25" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="580.00" cy="182.25" r="3" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="45.00" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="55.70" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="66.40" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="77.10" cy="182.91" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="87.80" cy="186.22" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="98.50" cy="186.22" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="109.20" cy="188.88" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="119.90" cy="188.88" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="130.60" cy="188.88" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="141.30" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="152.00" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="162.70" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="173.40" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="184.10" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="194.80" cy="195.50" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="205.50" cy="192.85" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="216.20" cy="187.55" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="226.90" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="237.60" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="248.30" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="259.00" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="269.70" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="280.40" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="291.10" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="301.80" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="312.50" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="323.20" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="333.90" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="344.60" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="355.30" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="366.00" cy="186.22" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="376.70" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="387.40" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="398.10" cy="180.93" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="408.80" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="419.50" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="430.20" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="440.90" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="451.60" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="462.30" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="473.00" cy="182.25" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="483.70" cy="183.57" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="494.40" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="505.10" cy="179.60" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="515.80" cy="178.28" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="526.50" cy="176.95" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="537.20" cy="176.95" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="547.90" cy="174.30" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="558.60" cy="174.30" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="569.30" cy="169.00" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="580.00" cy="165.03" r="3" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="45.00" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="55.70" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="66.40" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="77.10" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="87.80" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="98.50" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="109.20" cy="244.53" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="119.90" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="130.60" cy="245.85" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="141.30" cy="247.18" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="152.00" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="162.70" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="173.40" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="184.10" cy="248.24" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="194.80" cy="248.24" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="205.50" cy="248.24" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="216.20" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="226.90" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="237.60" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="248.30" cy="248.50" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="259.00" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="269.70" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="280.40" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="291.10" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="301.80" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="312.50" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="323.20" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="333.90" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="344.60" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="355.30" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="366.00" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="376.70" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="387.40" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="398.10" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="408.80" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="419.50" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="430.20" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="440.90" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="451.60" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="462.30" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="473.00" cy="241.88" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="483.70" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="494.40" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="505.10" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="515.80" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="526.50" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="537.20" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="547.90" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="558.60" cy="240.55" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="569.30" cy="236.57" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="580.00" cy="236.57" r="3" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="45.00" cy="240.55" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="55.70" cy="240.55" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="66.40" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="77.10" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="87.80" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="98.50" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="109.20" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="119.90" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="130.60" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="141.30" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="152.00" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="162.70" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="173.40" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="184.10" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="194.80" cy="243.20" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="205.50" cy="243.20" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="216.20" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="226.90" cy="241.88" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="237.60" cy="240.55" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="248.30" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="259.00" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="269.70" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="280.40" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="291.10" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="301.80" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="312.50" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="323.20" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="333.90" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="344.60" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="355.30" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="366.00" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="376.70" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="387.40" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="398.10" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="408.80" cy="234.72" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="419.50" cy="235.25" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="430.20" cy="234.72" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="440.90" cy="234.72" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="451.60" cy="235.51" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="462.30" cy="236.44" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="473.00" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="483.70" cy="236.57" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="494.40" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="505.10" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="515.80" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="526.50" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="537.20" cy="233.93" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="547.90" cy="231.28" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="558.60" cy="231.28" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="569.30" cy="231.28" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="580.00" cy="231.28" r="3" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="45.00" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="55.70" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="66.40" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="77.10" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="87.80" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="98.50" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="109.20" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="119.90" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="130.60" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="141.30" cy="241.88" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="152.00" cy="244.53" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="162.70" cy="245.85" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="173.40" cy="245.85" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="184.10" cy="245.85" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="194.80" cy="248.50" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="205.50" cy="248.50" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="216.20" cy="243.86" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="226.90" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="237.60" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="248.30" cy="243.20" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="259.00" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="269.70" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="280.40" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="291.10" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="301.80" cy="240.55" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="312.50" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="323.20" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="333.90" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="344.60" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="355.30" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="366.00" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="376.70" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="387.40" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="398.10" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="408.80" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="419.50" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="430.20" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="440.90" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="451.60" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="462.30" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="473.00" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="483.70" cy="236.57" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="494.40" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="505.10" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="515.80" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="526.50" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="537.20" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="537.20" cy="235.38" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="558.60" cy="233.93" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="569.30" cy="233.93" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="580.00" cy="222.00" r="3" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="45.00" cy="235.25" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="55.70" cy="235.25" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="66.40" cy="236.44" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="77.10" cy="235.78" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="87.80" cy="235.25" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="98.50" cy="236.71" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="109.20" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="119.90" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="130.60" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="141.30" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="152.00" cy="237.90" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="162.70" cy="238.03" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="173.40" cy="238.03" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="184.10" cy="238.03" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="194.80" cy="238.03" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="205.50" cy="239.22" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="216.20" cy="240.55" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="226.90" cy="236.57" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="237.60" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="248.30" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="259.00" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="269.70" cy="235.38" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="280.40" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="291.10" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="301.80" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="312.50" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="323.20" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="333.90" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="344.60" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="355.30" cy="231.28" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="366.00" cy="231.28" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="376.70" cy="233.93" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="387.40" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="398.10" cy="228.76" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="408.80" cy="228.63" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="419.50" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="430.20" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="440.90" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="451.60" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="462.30" cy="229.95" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="473.00" cy="230.08" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="483.70" cy="228.63" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="494.40" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="515.80" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="526.50" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="537.20" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="547.90" cy="227.43" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="558.60" cy="224.65" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="569.30" cy="216.83" r="3" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="45.00" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="55.70" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="66.40" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="77.10" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="87.80" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="98.50" cy="224.78" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="109.20" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="119.90" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="130.60" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="141.30" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="152.00" cy="222.00" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="162.70" cy="222.00" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="173.40" cy="219.35" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="184.10" cy="219.35" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="194.80" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="205.50" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="216.20" cy="218.03" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="226.90" cy="215.38" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="237.60" cy="215.38" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="248.30" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="259.00" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="269.70" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="280.40" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="291.10" cy="206.10" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="301.80" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="312.50" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="323.20" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="333.90" cy="206.76" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="344.60" cy="208.75" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="355.30" cy="208.75" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="366.00" cy="208.75" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="376.70" cy="206.76" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="387.40" cy="210.07" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="398.10" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="408.80" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="419.50" cy="202.13" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="430.20" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="440.90" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="451.60" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="462.30" cy="200.14" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="473.00" cy="200.80" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="483.70" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="494.40" cy="188.88" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="505.10" cy="171.65" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="515.80" cy="172.58" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="526.50" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="537.20" cy="199.48" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="547.90" cy="171.65" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="558.60" cy="171.65" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="569.30" cy="170.46" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="580.00" cy="170.46" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="580.00" cy="170.46" r="3" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="45.00" cy="226.24" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="55.70" cy="229.95" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="66.40" cy="225.97" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="77.10" cy="229.29" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="87.80" cy="229.95" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="98.50" cy="229.95" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="109.20" cy="228.63" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="119.90" cy="229.69" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="130.60" cy="232.20" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="141.30" cy="229.95" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="152.00" cy="232.60" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="162.70" cy="232.60" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="173.40" cy="229.69" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="184.10" cy="233.53" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="194.80" cy="228.63" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="205.50" cy="228.63" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="216.20" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="226.90" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="237.60" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="248.30" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="259.00" cy="228.49" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="269.70" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="280.40" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="291.10" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="301.80" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="312.50" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="323.20" cy="227.30" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="333.90" cy="223.32" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="344.60" cy="223.32" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="355.30" cy="223.32" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="366.00" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="376.70" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="387.40" cy="222.00" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="398.10" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="408.80" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="419.50" cy="225.97" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="430.20" cy="225.97" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="440.90" cy="225.97" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="451.60" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="462.30" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="473.00" cy="231.28" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="483.70" cy="224.65" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="494.40" cy="219.35" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="505.10" cy="219.35" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="515.80" cy="223.46" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="526.50" cy="223.46" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="537.20" cy="223.46" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="547.90" cy="223.46" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="558.60" cy="210.34" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="569.30" cy="212.72" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="580.00" cy="212.72" r="3" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="45.00" cy="202.13" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="55.70" cy="202.13" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="66.40" cy="205.57" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="77.10" cy="202.66" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="87.80" cy="211.27" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="98.50" cy="208.88" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="109.20" cy="206.10" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="119.90" cy="208.75" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="130.60" cy="208.75" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="141.30" cy="211.40" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="152.00" cy="210.21" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="162.70" cy="208.75" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="173.40" cy="205.17" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="184.10" cy="203.45" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="194.80" cy="208.88" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="205.50" cy="208.88" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="216.20" cy="202.26" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="226.90" cy="203.45" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="237.60" cy="202.26" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="248.30" cy="192.85" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="259.00" cy="192.85" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="269.70" cy="192.85" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="280.40" cy="191.53" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="291.10" cy="192.19" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="301.80" cy="191.53" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="312.50" cy="194.97" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="323.20" cy="190.20" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="333.90" cy="191.53" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="344.60" cy="190.73" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="355.30" cy="191.53" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="366.00" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="376.70" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="387.40" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="398.10" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="408.80" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="419.50" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="430.20" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="440.90" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="451.60" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="462.30" cy="195.63" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="473.00" cy="200.80" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="483.70" cy="202.13" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="494.40" cy="174.96" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="505.10" cy="173.90" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="515.80" cy="169.00" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="526.50" cy="174.43" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="537.20" cy="178.94" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="547.90" cy="171.78" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="558.60" cy="171.78" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="569.30" cy="171.78" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="580.00" cy="170.46" r="3" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="45.00" cy="171.65" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="55.70" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="66.40" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="77.10" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="87.80" cy="175.76" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="98.50" cy="175.76" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="109.20" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="119.90" cy="175.76" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="130.60" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="141.30" cy="178.28" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="152.00" cy="182.38" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="162.70" cy="178.28" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="173.40" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="184.10" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="194.80" cy="175.76" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="205.50" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="216.20" cy="175.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="226.90" cy="165.16" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="237.60" cy="155.88" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="248.30" cy="142.50" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="259.00" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="269.70" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="280.40" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="291.10" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="301.80" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="312.50" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="323.20" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="333.90" cy="155.75" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="344.60" cy="143.82" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="355.30" cy="143.82" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="366.00" cy="143.82" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="376.70" cy="143.82" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="387.40" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="398.10" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="408.80" cy="155.75" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="419.50" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="430.20" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="440.90" cy="145.15" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="451.60" cy="153.10" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="462.30" cy="148.46" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="473.00" cy="155.75" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="483.70" cy="149.13" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="494.40" cy="138.53" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="505.10" cy="130.84" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="515.80" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="526.50" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="537.20" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="547.90" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="558.60" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="569.30" cy="122.63" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="580.00" cy="116.00" r="3" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="45.00" cy="129.25" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="55.70" cy="129.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="66.40" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="77.10" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="87.80" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="98.50" cy="151.91" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="109.20" cy="142.63" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="119.90" cy="145.15" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="130.60" cy="142.63" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="141.30" cy="143.96" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="152.00" cy="143.82" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="162.70" cy="143.96" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="173.40" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="184.10" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="194.80" cy="142.50" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="205.50" cy="129.25" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="216.20" cy="112.03" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="226.90" cy="106.99" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="237.60" cy="92.15" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="248.30" cy="96.13" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="259.00" cy="94.14" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="269.70" cy="94.14" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="280.40" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="291.10" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="301.80" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="312.50" cy="108.05" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="323.20" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="333.90" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="344.60" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="355.30" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="366.00" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="376.70" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="387.40" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="398.10" cy="106.72" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="408.80" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="419.50" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="430.20" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="440.90" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="451.60" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="462.30" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="473.00" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="483.70" cy="109.38" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="494.40" cy="104.07" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="505.10" cy="79.03" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="515.80" cy="69.63" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="526.50" cy="69.63" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="537.20" cy="82.88" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="547.90" cy="82.88" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="558.60" cy="55.98" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="569.30" cy="55.84" r="3" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="580.00" cy="36.50" r="3" fill="#5bb0c0" style="opacity:0;" /></svg><svg class="riv-line-chart-svg-mobile" style="overflow: visible;" fill="none" viewBox="0 0 600 440" width="100%" height="auto" aria-hidden="true"><g class="riv-grid"><line x1="40" x2="585" y1="375.00" y2="375.00" /><line x1="40" x2="585" y1="283.75" y2="283.75" /><line x1="40" x2="585" y1="192.50" y2="192.50" /><line x1="40" x2="585" y1="101.25" y2="101.25" /><line x1="40" x2="585" y1="10.00" y2="10.00" /><line x1="247.10" x2="247.10" y1="10" y2="375" /><line x1="465.10" x2="465.10" y1="10" y2="375" /></g><g class="riv-axes"><line x1="40" x2="40" y1="10" y2="375" stroke="#D1D5DB" /><line x1="40" x2="585" y1="375" y2="375" stroke="#D1D5DB" /><text x="32" y="375.00" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">0</text><text x="32" y="283.75" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">500</text><text x="32" y="192.50" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">1000</text><text x="32" y="101.25" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">1500</text><text x="32" y="10.00" dy="0.32em" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">2000</text><text x="247.10" y="387" transform="rotate(-45 247.10 387)" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">20 Week</text><text x="465.10" y="387" transform="rotate(-45 465.10 387)" text-anchor="end" style="font-size: 14px; font-weight: normal;" fill="#374151">40 Week</text></g><path class="riv-line-path" d="M 421.50,274.63 C 425.13,274.63 428.77,274.63 432.40,274.63 C 436.03,274.63 439.67,274.63 443.30,274.63 C 446.93,274.63 450.57,283.75 454.20,283.75 C 457.83,283.75 461.47,283.75 465.10,283.75 C 468.73,283.75 472.37,283.75 476.00,283.75 C 479.63,283.75 483.27,274.63 486.90,274.63 C 490.53,274.63 494.17,283.75 497.80,283.75 C 501.43,283.75 505.07,283.75 508.70,283.75 C 512.33,283.75 515.97,278.27 519.60,278.27 C 523.23,278.27 526.87,278.27 530.50,278.27 C 534.13,278.27 537.77,280.10 541.40,280.10 C 545.03,280.10 548.67,283.75 552.30,283.75 C 555.93,283.75 559.57,270.98 563.20,270.98 C 566.83,270.98 570.47,274.63 574.10,274.63 C 577.73,274.63 581.37,270.98 585.00,270.98" data-product="AMD Radeon RX 9070 GRE" fill="none" stroke="#E33235" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,307.48 C 43.63,307.48 47.27,307.48 50.90,307.48 C 54.53,307.48 58.17,307.48 61.80,307.48 C 65.43,307.48 69.07,307.48 72.70,307.48 C 76.33,307.48 79.97,311.13 83.60,311.13 C 87.23,311.13 90.87,311.13 94.50,311.13 C 98.13,311.13 101.77,311.13 105.40,311.13 C 109.03,311.13 112.67,311.13 116.30,311.13 C 119.93,311.13 123.57,311.13 127.20,311.13 C 130.83,311.13 134.47,309.30 138.10,309.30 C 141.73,309.30 145.37,312.95 149.00,312.95 C 152.63,312.95 156.27,311.13 159.90,311.13 C 163.53,311.13 167.17,311.13 170.80,311.13 C 174.43,311.13 178.07,307.48 181.70,307.48 C 185.33,307.48 188.97,305.65 192.60,305.65 C 196.23,305.65 199.87,305.65 203.50,305.65 C 207.13,305.65 210.77,303.82 214.40,303.82 C 218.03,303.82 221.67,303.82 225.30,303.82 C 228.93,303.82 232.57,302.00 236.20,302.00 C 239.83,302.00 243.47,294.70 247.10,294.70 C 250.73,294.70 254.37,294.70 258.00,294.70 C 261.63,294.70 265.27,302.00 268.90,302.00 C 272.53,302.00 276.17,294.70 279.80,294.70 C 283.43,294.70 287.07,294.70 290.70,294.70 C 294.33,294.70 297.97,294.70 301.60,294.70 C 305.23,294.70 308.87,294.70 312.50,294.70 C 316.13,294.70 319.77,294.70 323.40,294.70 C 327.03,294.70 330.67,294.70 334.30,294.70 C 337.93,294.70 341.57,293.06 345.20,293.06 C 348.83,293.06 352.47,294.70 356.10,294.70 C 359.73,294.70 363.37,294.70 367.00,294.70 C 370.63,294.70 374.27,296.52 377.90,296.52 C 381.53,296.52 385.17,296.52 388.80,296.52 C 392.43,296.52 396.07,294.70 399.70,294.70 C 403.33,294.70 406.97,296.52 410.60,296.52 C 414.23,296.52 417.87,294.70 421.50,294.70 C 425.13,294.70 428.77,294.70 432.40,294.70 C 436.03,294.70 439.67,294.70 443.30,294.70 C 446.93,294.70 450.57,302.00 454.20,302.00 C 457.83,302.00 461.47,296.52 465.10,296.52 C 468.73,296.52 472.37,296.52 476.00,296.52 C 479.63,296.52 483.27,292.88 486.90,292.88 C 490.53,292.88 494.17,289.23 497.80,289.23 C 501.43,289.23 505.07,289.23 508.70,289.23 C 512.33,289.23 515.97,291.05 519.60,291.05 C 523.23,291.05 526.87,289.23 530.50,289.23 C 534.13,289.23 537.77,289.23 541.40,289.23 C 545.03,289.23 548.67,289.23 552.30,289.23 C 555.93,289.23 559.57,283.75 563.20,283.75 C 566.83,283.75 570.47,280.10 574.10,280.10 C 577.73,280.10 581.37,280.10 585.00,280.10" data-product="AMD RX 9060 XT 16 GB" fill="none" stroke="#FE9F58" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,323.90 C 43.63,323.90 47.27,325.73 50.90,325.73 C 54.53,325.73 58.17,323.90 61.80,323.90 C 65.43,323.90 69.07,323.90 72.70,323.90 C 76.33,323.90 79.97,325.73 83.60,325.73 C 87.23,325.73 90.87,325.73 94.50,325.73 C 98.13,325.73 101.77,325.73 105.40,325.73 C 109.03,325.73 112.67,325.73 116.30,325.73 C 119.93,325.73 123.57,325.73 127.20,325.73 C 130.83,325.73 134.47,325.73 138.10,325.73 C 141.73,325.73 145.37,329.38 149.00,329.38 C 152.63,329.38 156.27,324.81 159.90,324.81 C 163.53,324.81 167.17,323.90 170.80,323.90 C 174.43,323.90 178.07,323.90 181.70,323.90 C 185.33,323.90 188.97,322.44 192.60,322.44 C 196.23,322.44 199.87,322.44 203.50,322.44 C 207.13,322.44 210.77,318.43 214.40,318.43 C 218.03,318.43 221.67,318.43 225.30,318.43 C 228.93,318.43 232.57,318.43 236.20,318.43 C 239.83,318.43 243.47,318.43 247.10,318.43 C 250.73,318.43 254.37,311.13 258.00,311.13 C 261.63,311.13 265.27,311.86 268.90,311.86 C 272.53,311.86 276.17,311.86 279.80,311.86 C 283.43,311.86 287.07,311.86 290.70,311.86 C 294.33,311.86 297.97,311.86 301.60,311.86 C 305.23,311.86 308.87,312.95 312.50,312.95 C 316.13,312.95 319.77,312.95 323.40,312.95 C 327.03,312.95 330.67,311.86 334.30,311.86 C 337.93,311.86 341.57,311.13 345.20,311.13 C 348.83,311.13 352.47,311.13 356.10,311.13 C 359.73,311.13 363.37,311.13 367.00,311.13 C 370.63,311.13 374.27,309.30 377.90,309.30 C 381.53,309.30 385.17,309.30 388.80,309.30 C 392.43,309.30 396.07,309.30 399.70,309.30 C 403.33,309.30 406.97,309.30 410.60,309.30 C 414.23,309.30 417.87,309.30 421.50,309.30 C 425.13,309.30 428.77,311.13 432.40,311.13 C 436.03,311.13 439.67,311.13 443.30,311.13 C 446.93,311.13 450.57,309.30 454.20,309.30 C 457.83,309.30 461.47,309.30 465.10,309.30 C 468.73,309.30 472.37,309.30 476.00,309.30 C 479.63,309.30 483.27,309.30 486.90,309.30 C 490.53,309.30 494.17,307.48 497.80,307.48 C 501.43,307.48 505.07,302.00 508.70,302.00 C 512.33,302.00 515.97,309.30 519.60,309.30 C 523.23,309.30 526.87,302.00 530.50,302.00 C 534.13,302.00 537.77,300.36 541.40,300.36 C 545.03,300.36 548.67,296.52 552.30,296.52 C 555.93,296.52 559.57,292.88 563.20,292.88 C 566.83,292.88 570.47,302.00 574.10,302.00 C 577.73,302.00 581.37,302.00 585.00,302.00" data-product="AMD RX 9060 XT 8 GB" fill="none" stroke="#1CA9C4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,265.50 C 43.63,265.50 47.27,265.50 50.90,265.50 C 54.53,265.50 58.17,274.63 61.80,274.63 C 65.43,274.63 69.07,274.63 72.70,274.63 C 76.33,274.63 79.97,265.50 83.60,265.50 C 87.23,265.50 90.87,265.50 94.50,265.50 C 98.13,265.50 101.77,274.63 105.40,274.63 C 109.03,274.63 112.67,274.63 116.30,274.63 C 119.93,274.63 123.57,272.80 127.20,272.80 C 130.83,272.80 134.47,274.63 138.10,274.63 C 141.73,274.63 145.37,274.63 149.00,274.63 C 152.63,274.63 156.27,278.27 159.90,278.27 C 163.53,278.27 167.17,278.27 170.80,278.27 C 174.43,278.27 178.07,278.27 181.70,278.27 C 185.33,278.27 188.97,278.27 192.60,278.27 C 196.23,278.27 199.87,278.27 203.50,278.27 C 207.13,278.27 210.77,269.15 214.40,269.15 C 218.03,269.15 221.67,269.15 225.30,269.15 C 228.93,269.15 232.57,269.15 236.20,269.15 C 239.83,269.15 243.47,265.50 247.10,265.50 C 250.73,265.50 254.37,267.32 258.00,267.32 C 261.63,267.32 265.27,260.02 268.90,260.02 C 272.53,260.02 276.17,260.02 279.80,260.02 C 283.43,260.02 287.07,261.85 290.70,261.85 C 294.33,261.85 297.97,263.68 301.60,263.68 C 305.23,263.68 308.87,263.68 312.50,263.68 C 316.13,263.68 319.77,260.02 323.40,260.02 C 327.03,260.02 330.67,261.85 334.30,261.85 C 337.93,261.85 341.57,261.85 345.20,261.85 C 348.83,261.85 352.47,261.85 356.10,261.85 C 359.73,261.85 363.37,261.85 367.00,261.85 C 370.63,261.85 374.27,261.85 377.90,261.85 C 381.53,261.85 385.17,265.50 388.80,265.50 C 392.43,265.50 396.07,261.85 399.70,261.85 C 403.33,261.85 406.97,265.50 410.60,265.50 C 414.23,265.50 417.87,265.50 421.50,265.50 C 425.13,265.50 428.77,265.50 432.40,265.50 C 436.03,265.50 439.67,265.50 443.30,265.50 C 446.93,265.50 450.57,265.50 454.20,265.50 C 457.83,265.50 461.47,265.50 465.10,265.50 C 468.73,265.50 472.37,265.50 476.00,265.50 C 479.63,265.50 483.27,259.11 486.90,259.11 C 490.53,259.11 494.17,256.38 497.80,256.38 C 501.43,256.38 505.07,256.38 508.70,256.38 C 512.33,256.38 515.97,260.02 519.60,260.02 C 523.23,260.02 526.87,256.38 530.50,256.38 C 534.13,256.38 537.77,256.38 541.40,256.38 C 545.03,256.38 548.67,256.38 552.30,256.38 C 555.93,256.38 559.57,253.27 563.20,253.27 C 566.83,253.27 570.47,247.25 574.10,247.25 C 577.73,247.25 581.37,247.25 585.00,247.25" data-product="AMD RX 9070" fill="none" stroke="#EB6F71" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,247.25 C 43.63,247.25 47.27,247.25 50.90,247.25 C 54.53,247.25 58.17,247.25 61.80,247.25 C 65.43,247.25 69.07,248.16 72.70,248.16 C 76.33,248.16 79.97,252.72 83.60,252.72 C 87.23,252.72 90.87,252.72 94.50,252.72 C 98.13,252.72 101.77,256.38 105.40,256.38 C 109.03,256.38 112.67,256.38 116.30,256.38 C 119.93,256.38 123.57,256.38 127.20,256.38 C 130.83,256.38 134.47,265.50 138.10,265.50 C 141.73,265.50 145.37,265.50 149.00,265.50 C 152.63,265.50 156.27,265.50 159.90,265.50 C 163.53,265.50 167.17,265.50 170.80,265.50 C 174.43,265.50 178.07,265.50 181.70,265.50 C 185.33,265.50 188.97,265.50 192.60,265.50 C 196.23,265.50 199.87,261.85 203.50,261.85 C 207.13,261.85 210.77,254.55 214.40,254.55 C 218.03,254.55 221.67,247.25 225.30,247.25 C 228.93,247.25 232.57,243.60 236.20,243.60 C 239.83,243.60 243.47,243.60 247.10,243.60 C 250.73,243.60 254.37,241.78 258.00,241.78 C 261.63,241.78 265.27,241.78 268.90,241.78 C 272.53,241.78 276.17,241.78 279.80,241.78 C 283.43,241.78 287.07,241.78 290.70,241.78 C 294.33,241.78 297.97,241.78 301.60,241.78 C 305.23,241.78 308.87,241.78 312.50,241.78 C 316.13,241.78 319.77,241.78 323.40,241.78 C 327.03,241.78 330.67,243.60 334.30,243.60 C 337.93,243.60 341.57,245.43 345.20,245.43 C 348.83,245.43 352.47,245.43 356.10,245.43 C 359.73,245.43 363.37,252.72 367.00,252.72 C 370.63,252.72 374.27,245.43 377.90,245.43 C 381.53,245.43 385.17,245.43 388.80,245.43 C 392.43,245.43 396.07,245.43 399.70,245.43 C 403.33,245.43 406.97,247.25 410.60,247.25 C 414.23,247.25 417.87,247.25 421.50,247.25 C 425.13,247.25 428.77,247.25 432.40,247.25 C 436.03,247.25 439.67,247.25 443.30,247.25 C 446.93,247.25 450.57,247.25 454.20,247.25 C 457.83,247.25 461.47,247.25 465.10,247.25 C 468.73,247.25 472.37,247.25 476.00,247.25 C 479.63,247.25 483.27,249.07 486.90,249.07 C 490.53,249.07 494.17,243.60 497.80,243.60 C 501.43,243.60 505.07,243.60 508.70,243.60 C 512.33,243.60 515.97,241.78 519.60,241.78 C 523.23,241.78 526.87,239.95 530.50,239.95 C 534.13,239.95 537.77,239.95 541.40,239.95 C 545.03,239.95 548.67,236.30 552.30,236.30 C 555.93,236.30 559.57,236.30 563.20,236.30 C 566.83,236.30 570.47,229.00 574.10,229.00 C 577.73,229.00 581.37,223.53 585.00,223.53" data-product="AMD RX 9070 XT" fill="none" stroke="#FFC08B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,333.02 C 43.63,333.02 47.27,333.02 50.90,333.02 C 54.53,333.02 58.17,333.02 61.80,333.02 C 65.43,333.02 69.07,333.02 72.70,333.02 C 76.33,333.02 79.97,333.02 83.60,333.02 C 87.23,333.02 90.87,333.02 94.50,333.02 C 98.13,333.02 101.77,333.02 105.40,333.02 C 109.03,333.02 112.67,338.50 116.30,338.50 C 119.93,338.50 123.57,334.85 127.20,334.85 C 130.83,334.85 134.47,336.68 138.10,336.68 C 141.73,336.68 145.37,338.50 149.00,338.50 C 152.63,338.50 156.27,338.50 159.90,338.50 C 163.53,338.50 167.17,338.50 170.80,338.50 C 174.43,338.50 178.07,338.13 181.70,338.13 C 185.33,338.13 188.97,338.13 192.60,338.13 C 196.23,338.13 199.87,338.13 203.50,338.13 C 207.13,338.13 210.77,338.50 214.40,338.50 C 218.03,338.50 221.67,338.50 225.30,338.50 C 228.93,338.50 232.57,338.50 236.20,338.50 C 239.83,338.50 243.47,338.50 247.10,338.50 C 250.73,338.50 254.37,329.38 258.00,329.38 C 261.63,329.38 265.27,329.38 268.90,329.38 C 272.53,329.38 276.17,329.38 279.80,329.38 C 283.43,329.38 287.07,329.38 290.70,329.38 C 294.33,329.38 297.97,329.38 301.60,329.38 C 305.23,329.38 308.87,329.38 312.50,329.38 C 316.13,329.38 319.77,329.38 323.40,329.38 C 327.03,329.38 330.67,329.38 334.30,329.38 C 337.93,329.38 341.57,329.38 345.20,329.38 C 348.83,329.38 352.47,327.55 356.10,327.55 C 359.73,327.55 363.37,327.55 367.00,327.55 C 370.63,327.55 374.27,327.55 377.90,327.55 C 381.53,327.55 385.17,327.55 388.80,327.55 C 392.43,327.55 396.07,327.55 399.70,327.55 C 403.33,327.55 406.97,327.55 410.60,327.55 C 414.23,327.55 417.87,327.55 421.50,327.55 C 425.13,327.55 428.77,329.38 432.40,329.38 C 436.03,329.38 439.67,329.38 443.30,329.38 C 446.93,329.38 450.57,329.38 454.20,329.38 C 457.83,329.38 461.47,327.55 465.10,327.55 C 468.73,327.55 472.37,329.38 476.00,329.38 C 479.63,329.38 483.27,327.55 486.90,327.55 C 490.53,327.55 494.17,327.55 497.80,327.55 C 501.43,327.55 505.07,327.55 508.70,327.55 C 512.33,327.55 515.97,327.55 519.60,327.55 C 523.23,327.55 526.87,327.55 530.50,327.55 C 534.13,327.55 537.77,327.55 541.40,327.55 C 545.03,327.55 548.67,327.55 552.30,327.55 C 555.93,327.55 559.57,327.55 563.20,327.55 C 566.83,327.55 570.47,322.07 574.10,322.07 C 577.73,322.07 581.37,322.07 585.00,322.07" data-product="Intel Arc B570" fill="none" stroke="#66C5D7" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,327.55 C 43.63,327.55 47.27,327.55 50.90,327.55 C 54.53,327.55 58.17,329.38 61.80,329.38 C 65.43,329.38 69.07,329.38 72.70,329.38 C 76.33,329.38 79.97,329.38 83.60,329.38 C 87.23,329.38 90.87,329.38 94.50,329.38 C 98.13,329.38 101.77,329.38 105.40,329.38 C 109.03,329.38 112.67,329.38 116.30,329.38 C 119.93,329.38 123.57,329.38 127.20,329.38 C 130.83,329.38 134.47,329.38 138.10,329.38 C 141.73,329.38 145.37,329.38 149.00,329.38 C 152.63,329.38 156.27,329.38 159.90,329.38 C 163.53,329.38 167.17,329.38 170.80,329.38 C 174.43,329.38 178.07,329.38 181.70,329.38 C 185.33,329.38 188.97,331.20 192.60,331.20 C 196.23,331.20 199.87,331.20 203.50,331.20 C 207.13,331.20 210.77,329.38 214.40,329.38 C 218.03,329.38 221.67,329.38 225.30,329.38 C 228.93,329.38 232.57,327.55 236.20,327.55 C 239.83,327.55 243.47,322.07 247.10,322.07 C 250.73,322.07 254.37,322.07 258.00,322.07 C 261.63,322.07 265.27,320.25 268.90,320.25 C 272.53,320.25 276.17,320.25 279.80,320.25 C 283.43,320.25 287.07,320.25 290.70,320.25 C 294.33,320.25 297.97,320.25 301.60,320.25 C 305.23,320.25 308.87,320.25 312.50,320.25 C 316.13,320.25 319.77,320.25 323.40,320.25 C 327.03,320.25 330.67,322.07 334.30,322.07 C 337.93,322.07 341.57,322.07 345.20,322.07 C 348.83,322.07 352.47,322.07 356.10,322.07 C 359.73,322.07 363.37,322.07 367.00,322.07 C 370.63,322.07 374.27,322.07 377.90,322.07 C 381.53,322.07 385.17,322.07 388.80,322.07 C 392.43,322.07 396.07,322.07 399.70,322.07 C 403.33,322.07 406.97,319.52 410.60,319.52 C 414.23,319.52 417.87,320.25 421.50,320.25 C 425.13,320.25 428.77,319.52 432.40,319.52 C 436.03,319.52 439.67,319.52 443.30,319.52 C 446.93,319.52 450.57,320.62 454.20,320.62 C 457.83,320.62 461.47,321.89 465.10,321.89 C 468.73,321.89 472.37,322.07 476.00,322.07 C 479.63,322.07 483.27,322.07 486.90,322.07 C 490.53,322.07 494.17,318.43 497.80,318.43 C 501.43,318.43 505.07,318.43 508.70,318.43 C 512.33,318.43 515.97,318.43 519.60,318.43 C 523.23,318.43 526.87,318.43 530.50,318.43 C 534.13,318.43 537.77,318.43 541.40,318.43 C 545.03,318.43 548.67,314.77 552.30,314.77 C 555.93,314.77 559.57,314.77 563.20,314.77 C 566.83,314.77 570.47,314.77 574.10,314.77 C 577.73,314.77 581.37,314.77 585.00,314.77" data-product="Intel Arc B580" fill="none" stroke="#B5282A" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,329.38 C 43.63,329.38 47.27,329.38 50.90,329.38 C 54.53,329.38 58.17,329.38 61.80,329.38 C 65.43,329.38 69.07,329.38 72.70,329.38 C 76.33,329.38 79.97,329.38 83.60,329.38 C 87.23,329.38 90.87,331.20 94.50,331.20 C 98.13,331.20 101.77,331.20 105.40,331.20 C 109.03,331.20 112.67,329.38 116.30,329.38 C 119.93,329.38 123.57,329.38 127.20,329.38 C 130.83,329.38 134.47,329.38 138.10,329.38 C 141.73,329.38 145.37,333.02 149.00,333.02 C 152.63,333.02 156.27,334.85 159.90,334.85 C 163.53,334.85 167.17,334.85 170.80,334.85 C 174.43,334.85 178.07,334.85 181.70,334.85 C 185.33,334.85 188.97,338.50 192.60,338.50 C 196.23,338.50 199.87,338.50 203.50,338.50 C 207.13,338.50 210.77,332.11 214.40,332.11 C 218.03,332.11 221.67,331.20 225.30,331.20 C 228.93,331.20 232.57,331.20 236.20,331.20 C 239.83,331.20 243.47,331.20 247.10,331.20 C 250.73,331.20 254.37,327.55 258.00,327.55 C 261.63,327.55 265.27,327.55 268.90,327.55 C 272.53,327.55 276.17,327.55 279.80,327.55 C 283.43,327.55 287.07,327.55 290.70,327.55 C 294.33,327.55 297.97,327.55 301.60,327.55 C 305.23,327.55 308.87,322.07 312.50,322.07 C 316.13,322.07 319.77,322.07 323.40,322.07 C 327.03,322.07 330.67,322.07 334.30,322.07 C 337.93,322.07 341.57,322.07 345.20,322.07 C 348.83,322.07 352.47,322.07 356.10,322.07 C 359.73,322.07 363.37,322.07 367.00,322.07 C 370.63,322.07 374.27,322.07 377.90,322.07 C 381.53,322.07 385.17,322.07 388.80,322.07 C 392.43,322.07 396.07,322.07 399.70,322.07 C 403.33,322.07 406.97,322.07 410.60,322.07 C 414.23,322.07 417.87,322.07 421.50,322.07 C 425.13,322.07 428.77,322.07 432.40,322.07 C 436.03,322.07 439.67,322.07 443.30,322.07 C 446.93,322.07 450.57,322.07 454.20,322.07 C 457.83,322.07 461.47,322.07 465.10,322.07 C 468.73,322.07 472.37,322.07 476.00,322.07 C 479.63,322.07 483.27,322.07 486.90,322.07 C 490.53,322.07 494.17,320.43 497.80,320.43 C 501.43,320.43 505.07,320.43 508.70,320.43 C 512.33,320.43 515.97,320.43 519.60,320.43 C 523.23,320.43 526.87,320.43 530.50,320.43 C 534.13,320.43 537.77,320.43 541.40,320.43 C 541.40,320.43 541.40,320.43 541.40,320.43 C 548.67,320.43 555.93,318.43 563.20,318.43 C 566.83,318.43 570.47,318.43 574.10,318.43 C 577.73,318.43 581.37,302.00 585.00,302.00" data-product="Nvidia RTX 5050" fill="none" stroke="#D07F46" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,320.25 C 43.63,320.25 47.27,320.25 50.90,320.25 C 54.53,320.25 58.17,321.89 61.80,321.89 C 65.43,321.89 69.07,320.98 72.70,320.98 C 76.33,320.98 79.97,320.25 83.60,320.25 C 87.23,320.25 90.87,322.26 94.50,322.26 C 98.13,322.26 101.77,320.43 105.40,320.43 C 109.03,320.43 112.67,320.43 116.30,320.43 C 119.93,320.43 123.57,320.43 127.20,320.43 C 130.83,320.43 134.47,320.43 138.10,320.43 C 141.73,320.43 145.37,323.90 149.00,323.90 C 152.63,323.90 156.27,324.08 159.90,324.08 C 163.53,324.08 167.17,324.08 170.80,324.08 C 174.43,324.08 178.07,324.08 181.70,324.08 C 185.33,324.08 188.97,324.08 192.60,324.08 C 196.23,324.08 199.87,325.73 203.50,325.73 C 207.13,325.73 210.77,327.55 214.40,327.55 C 218.03,327.55 221.67,322.07 225.30,322.07 C 228.93,322.07 232.57,320.43 236.20,320.43 C 239.83,320.43 243.47,320.43 247.10,320.43 C 250.73,320.43 254.37,320.43 258.00,320.43 C 261.63,320.43 265.27,320.43 268.90,320.43 C 272.53,320.43 276.17,312.95 279.80,312.95 C 283.43,312.95 287.07,312.95 290.70,312.95 C 294.33,312.95 297.97,311.31 301.60,311.31 C 305.23,311.31 308.87,311.31 312.50,311.31 C 316.13,311.31 319.77,311.31 323.40,311.31 C 327.03,311.31 330.67,311.31 334.30,311.31 C 337.93,311.31 341.57,311.31 345.20,311.31 C 348.83,311.31 352.47,314.77 356.10,314.77 C 359.73,314.77 363.37,314.77 367.00,314.77 C 370.63,314.77 374.27,318.43 377.90,318.43 C 381.53,318.43 385.17,311.31 388.80,311.31 C 392.43,311.31 396.07,311.31 399.70,311.31 C 403.33,311.31 406.97,311.13 410.60,311.13 C 414.23,311.13 417.87,312.95 421.50,312.95 C 425.13,312.95 428.77,312.95 432.40,312.95 C 436.03,312.95 439.67,312.95 443.30,312.95 C 446.93,312.95 450.57,312.95 454.20,312.95 C 457.83,312.95 461.47,312.95 465.10,312.95 C 468.73,312.95 472.37,313.13 476.00,313.13 C 479.63,313.13 483.27,311.13 486.90,311.13 C 490.53,311.13 494.17,309.48 497.80,309.48 C 505.07,309.48 512.33,309.48 519.60,309.48 C 523.23,309.48 526.87,309.48 530.50,309.48 C 534.13,309.48 537.77,309.48 541.40,309.48 C 545.03,309.48 548.67,309.48 552.30,309.48 C 555.93,309.48 559.57,305.65 563.20,305.65 C 566.83,305.65 570.47,294.88 574.10,294.88" data-product="Nvidia RTX 5060" fill="none" stroke="#e97a7b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,296.52 C 43.63,296.52 47.27,296.52 50.90,296.52 C 54.53,296.52 58.17,296.52 61.80,296.52 C 65.43,296.52 69.07,296.52 72.70,296.52 C 76.33,296.52 79.97,296.52 83.60,296.52 C 87.23,296.52 90.87,305.83 94.50,305.83 C 98.13,305.83 101.77,296.52 105.40,296.52 C 109.03,296.52 112.67,296.52 116.30,296.52 C 119.93,296.52 123.57,296.52 127.20,296.52 C 130.83,296.52 134.47,296.52 138.10,296.52 C 141.73,296.52 145.37,302.00 149.00,302.00 C 152.63,302.00 156.27,302.00 159.90,302.00 C 163.53,302.00 167.17,298.35 170.80,298.35 C 174.43,298.35 178.07,298.35 181.70,298.35 C 185.33,298.35 188.97,296.52 192.60,296.52 C 196.23,296.52 199.87,296.52 203.50,296.52 C 207.13,296.52 210.77,296.52 214.40,296.52 C 218.03,296.52 221.67,292.88 225.30,292.88 C 228.93,292.88 232.57,292.88 236.20,292.88 C 239.83,292.88 243.47,280.10 247.10,280.10 C 250.73,280.10 254.37,280.10 258.00,280.10 C 261.63,280.10 265.27,280.10 268.90,280.10 C 272.53,280.10 276.17,280.10 279.80,280.10 C 283.43,280.10 287.07,280.10 290.70,280.10 C 294.33,280.10 297.97,274.63 301.60,274.63 C 305.23,274.63 308.87,274.63 312.50,274.63 C 316.13,274.63 319.77,270.98 323.40,270.98 C 327.03,270.98 330.67,281.01 334.30,281.01 C 337.93,281.01 341.57,283.75 345.20,283.75 C 348.83,283.75 352.47,283.75 356.10,283.75 C 359.73,283.75 363.37,283.75 367.00,283.75 C 370.63,283.75 374.27,281.01 377.90,281.01 C 381.53,281.01 385.17,285.57 388.80,285.57 C 392.43,285.57 396.07,274.63 399.70,274.63 C 403.33,274.63 406.97,274.63 410.60,274.63 C 414.23,274.63 417.87,274.63 421.50,274.63 C 425.13,274.63 428.77,270.98 432.40,270.98 C 436.03,270.98 439.67,270.98 443.30,270.98 C 446.93,270.98 450.57,270.98 454.20,270.98 C 457.83,270.98 461.47,271.89 465.10,271.89 C 468.73,271.89 472.37,272.80 476.00,272.80 C 479.63,272.80 483.27,270.98 486.90,270.98 C 490.53,270.98 494.17,256.38 497.80,256.38 C 501.43,256.38 505.07,232.65 508.70,232.65 C 512.33,232.65 515.97,233.93 519.60,233.93 C 523.23,233.93 526.87,270.98 530.50,270.98 C 534.13,270.98 537.77,270.98 541.40,270.98 C 545.03,270.98 548.67,232.65 552.30,232.65 C 555.93,232.65 559.57,232.65 563.20,232.65 C 566.83,232.65 570.47,231.01 574.10,231.01 C 577.73,231.01 581.37,231.01 585.00,231.01 C 585.00,231.01 585.00,231.01 585.00,231.01" data-product="Nvidia RTX 5060 Ti 16 GB" fill="none" stroke="#e38e4f" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,307.84 C 43.63,307.84 47.27,312.95 50.90,312.95 C 54.53,312.95 58.17,307.48 61.80,307.48 C 65.43,307.48 69.07,312.04 72.70,312.04 C 76.33,312.04 79.97,312.95 83.60,312.95 C 87.23,312.95 90.87,312.95 94.50,312.95 C 98.13,312.95 101.77,311.13 105.40,311.13 C 109.03,311.13 112.67,312.58 116.30,312.58 C 119.93,312.58 123.57,316.05 127.20,316.05 C 130.83,316.05 134.47,312.95 138.10,312.95 C 141.73,312.95 145.37,316.60 149.00,316.60 C 152.63,316.60 156.27,316.60 159.90,316.60 C 163.53,316.60 167.17,312.58 170.80,312.58 C 174.43,312.58 178.07,317.88 181.70,317.88 C 185.33,317.88 188.97,311.13 192.60,311.13 C 196.23,311.13 199.87,311.13 203.50,311.13 C 207.13,311.13 210.77,314.77 214.40,314.77 C 218.03,314.77 221.67,314.77 225.30,314.77 C 228.93,314.77 232.57,314.77 236.20,314.77 C 239.83,314.77 243.47,314.77 247.10,314.77 C 250.73,314.77 254.37,310.94 258.00,310.94 C 261.63,310.94 265.27,309.30 268.90,309.30 C 272.53,309.30 276.17,309.30 279.80,309.30 C 283.43,309.30 287.07,309.30 290.70,309.30 C 294.33,309.30 297.97,309.30 301.60,309.30 C 305.23,309.30 308.87,309.30 312.50,309.30 C 316.13,309.30 319.77,309.30 323.40,309.30 C 327.03,309.30 330.67,303.82 334.30,303.82 C 337.93,303.82 341.57,303.82 345.20,303.82 C 348.83,303.82 352.47,303.82 356.10,303.82 C 359.73,303.82 363.37,305.65 367.00,305.65 C 370.63,305.65 374.27,305.65 377.90,305.65 C 381.53,305.65 385.17,302.00 388.80,302.00 C 392.43,302.00 396.07,305.65 399.70,305.65 C 403.33,305.65 406.97,305.65 410.60,305.65 C 414.23,305.65 417.87,307.48 421.50,307.48 C 425.13,307.48 428.77,307.48 432.40,307.48 C 436.03,307.48 439.67,307.48 443.30,307.48 C 446.93,307.48 450.57,314.77 454.20,314.77 C 457.83,314.77 461.47,314.77 465.10,314.77 C 468.73,314.77 472.37,314.77 476.00,314.77 C 479.63,314.77 483.27,305.65 486.90,305.65 C 490.53,305.65 494.17,298.35 497.80,298.35 C 501.43,298.35 505.07,298.35 508.70,298.35 C 512.33,298.35 515.97,304.01 519.60,304.01 C 523.23,304.01 526.87,304.01 530.50,304.01 C 534.13,304.01 537.77,304.01 541.40,304.01 C 545.03,304.01 548.67,304.01 552.30,304.01 C 555.93,304.01 559.57,285.94 563.20,285.94 C 566.83,285.94 570.47,289.23 574.10,289.23 C 577.73,289.23 581.37,289.23 585.00,289.23" data-product="Nvidia RTX 5060 Ti 8 GB" fill="none" stroke="#75bdd1" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,274.63 C 43.63,274.63 47.27,274.63 50.90,274.63 C 54.53,274.63 58.17,279.37 61.80,279.37 C 65.43,279.37 69.07,275.36 72.70,275.36 C 76.33,275.36 79.97,287.22 83.60,287.22 C 87.23,287.22 90.87,283.93 94.50,283.93 C 98.13,283.93 101.77,280.10 105.40,280.10 C 109.03,280.10 112.67,283.75 116.30,283.75 C 119.93,283.75 123.57,283.75 127.20,283.75 C 130.83,283.75 134.47,287.40 138.10,287.40 C 141.73,287.40 145.37,285.76 149.00,285.76 C 152.63,285.76 156.27,283.75 159.90,283.75 C 163.53,283.75 167.17,278.82 170.80,278.82 C 174.43,278.82 178.07,276.45 181.70,276.45 C 185.33,276.45 188.97,283.93 192.60,283.93 C 196.23,283.93 199.87,283.93 203.50,283.93 C 207.13,283.93 210.77,274.81 214.40,274.81 C 218.03,274.81 221.67,276.45 225.30,276.45 C 228.93,276.45 232.57,274.81 236.20,274.81 C 239.83,274.81 243.47,261.85 247.10,261.85 C 250.73,261.85 254.37,261.85 258.00,261.85 C 261.63,261.85 265.27,261.85 268.90,261.85 C 272.53,261.85 276.17,260.02 279.80,260.02 C 283.43,260.02 287.07,260.94 290.70,260.94 C 294.33,260.94 297.97,260.02 301.60,260.02 C 305.23,260.02 308.87,264.77 312.50,264.77 C 316.13,264.77 319.77,258.20 323.40,258.20 C 327.03,258.20 330.67,260.02 334.30,260.02 C 337.93,260.02 341.57,258.93 345.20,258.93 C 348.83,258.93 352.47,260.02 356.10,260.02 C 359.73,260.02 363.37,265.68 367.00,265.68 C 370.63,265.68 374.27,265.68 377.90,265.68 C 381.53,265.68 385.17,265.68 388.80,265.68 C 392.43,265.68 396.07,265.68 399.70,265.68 C 403.33,265.68 406.97,265.68 410.60,265.68 C 414.23,265.68 417.87,265.68 421.50,265.68 C 425.13,265.68 428.77,265.68 432.40,265.68 C 436.03,265.68 439.67,265.68 443.30,265.68 C 446.93,265.68 450.57,265.68 454.20,265.68 C 457.83,265.68 461.47,265.68 465.10,265.68 C 468.73,265.68 472.37,272.80 476.00,272.80 C 479.63,272.80 483.27,274.63 486.90,274.63 C 490.53,274.63 494.17,237.21 497.80,237.21 C 501.43,237.21 505.07,235.75 508.70,235.75 C 512.33,235.75 515.97,229.00 519.60,229.00 C 523.23,229.00 526.87,236.48 530.50,236.48 C 534.13,236.48 537.77,242.69 541.40,242.69 C 545.03,242.69 548.67,232.83 552.30,232.83 C 555.93,232.83 559.57,232.83 563.20,232.83 C 566.83,232.83 570.47,232.83 574.10,232.83 C 577.73,232.83 581.37,231.01 585.00,231.01" data-product="Nvidia RTX 5070" fill="none" stroke="#d26365" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,232.65 C 43.63,232.65 47.27,238.13 50.90,238.13 C 54.53,238.13 58.17,238.13 61.80,238.13 C 65.43,238.13 69.07,238.13 72.70,238.13 C 76.33,238.13 79.97,238.31 83.60,238.31 C 87.23,238.31 90.87,238.31 94.50,238.31 C 98.13,238.31 101.77,238.13 105.40,238.13 C 109.03,238.13 112.67,238.31 116.30,238.31 C 119.93,238.31 123.57,238.13 127.20,238.13 C 130.83,238.13 134.47,241.78 138.10,241.78 C 141.73,241.78 145.37,247.43 149.00,247.43 C 152.63,247.43 156.27,241.78 159.90,241.78 C 163.53,241.78 167.17,238.13 170.80,238.13 C 174.43,238.13 178.07,238.13 181.70,238.13 C 185.33,238.13 188.97,238.31 192.60,238.31 C 196.23,238.31 199.87,238.13 203.50,238.13 C 207.13,238.13 210.77,238.13 214.40,238.13 C 218.03,238.13 221.67,223.71 225.30,223.71 C 228.93,223.71 232.57,210.93 236.20,210.93 C 239.83,210.93 243.47,192.50 247.10,192.50 C 250.73,192.50 254.37,201.63 258.00,201.63 C 261.63,201.63 265.27,201.63 268.90,201.63 C 272.53,201.63 276.17,201.63 279.80,201.63 C 283.43,201.63 287.07,201.63 290.70,201.63 C 294.33,201.63 297.97,201.63 301.60,201.63 C 305.23,201.63 308.87,201.63 312.50,201.63 C 316.13,201.63 319.77,201.63 323.40,201.63 C 327.03,201.63 330.67,210.75 334.30,210.75 C 337.93,210.75 341.57,194.32 345.20,194.32 C 348.83,194.32 352.47,194.32 356.10,194.32 C 359.73,194.32 363.37,194.32 367.00,194.32 C 370.63,194.32 374.27,194.32 377.90,194.32 C 381.53,194.32 385.17,196.15 388.80,196.15 C 392.43,196.15 396.07,196.15 399.70,196.15 C 403.33,196.15 406.97,210.75 410.60,210.75 C 414.23,210.75 417.87,196.15 421.50,196.15 C 425.13,196.15 428.77,196.15 432.40,196.15 C 436.03,196.15 439.67,196.15 443.30,196.15 C 446.93,196.15 450.57,207.10 454.20,207.10 C 457.83,207.10 461.47,200.71 465.10,200.71 C 468.73,200.71 472.37,210.75 476.00,210.75 C 479.63,210.75 483.27,201.63 486.90,201.63 C 490.53,201.63 494.17,187.03 497.80,187.03 C 501.43,187.03 505.07,176.44 508.70,176.44 C 512.33,176.44 515.97,165.13 519.60,165.13 C 523.23,165.13 526.87,165.13 530.50,165.13 C 534.13,165.13 537.77,165.13 541.40,165.13 C 545.03,165.13 548.67,165.13 552.30,165.13 C 555.93,165.13 559.57,165.13 563.20,165.13 C 566.83,165.13 570.47,165.13 574.10,165.13 C 577.73,165.13 581.37,156.00 585.00,156.00" data-product="Nvidia RTX 5070 Ti" fill="none" stroke="#ffcea9" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><path class="riv-line-path" d="M 40.00,174.25 C 43.63,174.25 47.27,174.43 50.90,174.43 C 54.53,174.43 58.17,192.50 61.80,192.50 C 65.43,192.50 69.07,192.50 72.70,192.50 C 76.33,192.50 79.97,192.50 83.60,192.50 C 87.23,192.50 90.87,205.46 94.50,205.46 C 98.13,205.46 101.77,192.68 105.40,192.68 C 109.03,192.68 112.67,196.15 116.30,196.15 C 119.93,196.15 123.57,192.68 127.20,192.68 C 130.83,192.68 134.47,194.51 138.10,194.51 C 141.73,194.51 145.37,194.32 149.00,194.32 C 152.63,194.32 156.27,194.51 159.90,194.51 C 163.53,194.51 167.17,192.50 170.80,192.50 C 174.43,192.50 178.07,192.50 181.70,192.50 C 185.33,192.50 188.97,192.50 192.60,192.50 C 196.23,192.50 199.87,174.25 203.50,174.25 C 207.13,174.25 210.77,150.53 214.40,150.53 C 218.03,150.53 221.67,143.59 225.30,143.59 C 228.93,143.59 232.57,123.15 236.20,123.15 C 239.83,123.15 243.47,128.62 247.10,128.62 C 250.73,128.62 254.37,125.89 258.00,125.89 C 261.63,125.89 265.27,125.89 268.90,125.89 C 272.53,125.89 276.17,139.57 279.80,139.57 C 283.43,139.57 287.07,139.57 290.70,139.57 C 294.33,139.57 297.97,146.88 301.60,146.88 C 305.23,146.88 308.87,145.05 312.50,145.05 C 316.13,145.05 319.77,139.57 323.40,139.57 C 327.03,139.57 330.67,146.88 334.30,146.88 C 337.93,146.88 341.57,139.57 345.20,139.57 C 348.83,139.57 352.47,139.57 356.10,139.57 C 359.73,139.57 363.37,139.57 367.00,139.57 C 370.63,139.57 374.27,139.57 377.90,139.57 C 381.53,139.57 385.17,139.57 388.80,139.57 C 392.43,139.57 396.07,143.22 399.70,143.22 C 403.33,143.22 406.97,139.57 410.60,139.57 C 414.23,139.57 417.87,146.88 421.50,146.88 C 425.13,146.88 428.77,146.88 432.40,146.88 C 436.03,146.88 439.67,146.88 443.30,146.88 C 446.93,146.88 450.57,146.88 454.20,146.88 C 457.83,146.88 461.47,146.88 465.10,146.88 C 468.73,146.88 472.37,146.88 476.00,146.88 C 479.63,146.88 483.27,146.88 486.90,146.88 C 490.53,146.88 494.17,139.57 497.80,139.57 C 501.43,139.57 505.07,105.08 508.70,105.08 C 512.33,105.08 515.97,92.13 519.60,92.13 C 523.23,92.13 526.87,92.13 530.50,92.13 C 534.13,92.13 537.77,110.38 541.40,110.38 C 545.03,110.38 548.67,110.38 552.30,110.38 C 555.93,110.38 559.57,73.33 563.20,73.33 C 566.83,73.33 570.47,73.15 574.10,73.15 C 577.73,73.15 581.37,46.50 585.00,46.50" data-product="Nvidia RTX 5080" fill="none" stroke="#5bb0c0" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="421.50" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="432.40" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="443.30" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="454.20" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="465.10" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="476.00" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="486.90" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="497.80" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="508.70" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="519.60" cy="278.27" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="530.50" cy="278.27" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="541.40" cy="280.10" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="552.30" cy="283.75" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="563.20" cy="270.98" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="574.10" cy="274.63" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD Radeon RX 9070 GRE" cx="585.00" cy="270.98" r="2" fill="#E33235" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="40.00" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="50.90" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="61.80" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="72.70" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="83.60" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="94.50" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="105.40" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="116.30" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="127.20" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="138.10" cy="309.30" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="149.00" cy="312.95" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="159.90" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="170.80" cy="311.13" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="181.70" cy="307.48" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="192.60" cy="305.65" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="203.50" cy="305.65" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="214.40" cy="303.82" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="225.30" cy="303.82" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="236.20" cy="302.00" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="247.10" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="258.00" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="268.90" cy="302.00" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="279.80" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="290.70" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="301.60" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="312.50" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="323.40" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="334.30" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="345.20" cy="293.06" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="356.10" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="367.00" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="377.90" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="388.80" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="399.70" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="410.60" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="421.50" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="432.40" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="443.30" cy="294.70" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="454.20" cy="302.00" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="465.10" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="476.00" cy="296.52" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="486.90" cy="292.88" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="497.80" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="508.70" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="519.60" cy="291.05" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="530.50" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="541.40" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="552.30" cy="289.23" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="563.20" cy="283.75" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="574.10" cy="280.10" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 16 GB" cx="585.00" cy="280.10" r="2" fill="#FE9F58" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="40.00" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="50.90" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="61.80" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="72.70" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="83.60" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="94.50" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="105.40" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="116.30" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="127.20" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="138.10" cy="325.73" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="149.00" cy="329.38" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="159.90" cy="324.81" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="170.80" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="181.70" cy="323.90" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="192.60" cy="322.44" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="203.50" cy="322.44" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="214.40" cy="318.43" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="225.30" cy="318.43" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="236.20" cy="318.43" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="247.10" cy="318.43" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="258.00" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="268.90" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="279.80" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="290.70" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="301.60" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="312.50" cy="312.95" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="323.40" cy="312.95" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="334.30" cy="311.86" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="345.20" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="356.10" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="367.00" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="377.90" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="388.80" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="399.70" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="410.60" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="421.50" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="432.40" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="443.30" cy="311.13" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="454.20" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="465.10" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="476.00" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="486.90" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="497.80" cy="307.48" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="508.70" cy="302.00" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="519.60" cy="309.30" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="530.50" cy="302.00" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="541.40" cy="300.36" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="552.30" cy="296.52" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="563.20" cy="292.88" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="574.10" cy="302.00" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9060 XT 8 GB" cx="585.00" cy="302.00" r="2" fill="#1CA9C4" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="40.00" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="50.90" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="61.80" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="72.70" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="83.60" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="94.50" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="105.40" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="116.30" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="127.20" cy="272.80" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="138.10" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="149.00" cy="274.63" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="159.90" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="170.80" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="181.70" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="192.60" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="203.50" cy="278.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="214.40" cy="269.15" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="225.30" cy="269.15" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="236.20" cy="269.15" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="247.10" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="258.00" cy="267.32" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="268.90" cy="260.02" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="279.80" cy="260.02" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="290.70" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="301.60" cy="263.68" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="312.50" cy="263.68" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="323.40" cy="260.02" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="334.30" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="345.20" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="356.10" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="367.00" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="377.90" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="388.80" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="399.70" cy="261.85" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="410.60" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="421.50" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="432.40" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="443.30" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="454.20" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="465.10" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="476.00" cy="265.50" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="486.90" cy="259.11" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="497.80" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="508.70" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="519.60" cy="260.02" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="530.50" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="541.40" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="552.30" cy="256.38" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="563.20" cy="253.27" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="574.10" cy="247.25" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070" cx="585.00" cy="247.25" r="2" fill="#EB6F71" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="40.00" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="50.90" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="61.80" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="72.70" cy="248.16" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="83.60" cy="252.72" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="94.50" cy="252.72" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="105.40" cy="256.38" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="116.30" cy="256.38" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="127.20" cy="256.38" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="138.10" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="149.00" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="159.90" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="170.80" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="181.70" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="192.60" cy="265.50" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="203.50" cy="261.85" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="214.40" cy="254.55" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="225.30" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="236.20" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="247.10" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="258.00" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="268.90" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="279.80" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="290.70" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="301.60" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="312.50" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="323.40" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="334.30" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="345.20" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="356.10" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="367.00" cy="252.72" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="377.90" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="388.80" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="399.70" cy="245.43" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="410.60" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="421.50" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="432.40" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="443.30" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="454.20" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="465.10" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="476.00" cy="247.25" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="486.90" cy="249.07" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="497.80" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="508.70" cy="243.60" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="519.60" cy="241.78" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="530.50" cy="239.95" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="541.40" cy="239.95" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="552.30" cy="236.30" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="563.20" cy="236.30" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="574.10" cy="229.00" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="AMD RX 9070 XT" cx="585.00" cy="223.53" r="2" fill="#FFC08B" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="40.00" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="50.90" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="61.80" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="72.70" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="83.60" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="94.50" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="105.40" cy="333.02" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="116.30" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="127.20" cy="334.85" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="138.10" cy="336.68" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="149.00" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="159.90" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="170.80" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="181.70" cy="338.13" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="192.60" cy="338.13" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="203.50" cy="338.13" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="214.40" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="225.30" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="236.20" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="247.10" cy="338.50" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="258.00" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="268.90" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="279.80" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="290.70" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="301.60" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="312.50" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="323.40" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="334.30" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="345.20" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="356.10" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="367.00" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="377.90" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="388.80" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="399.70" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="410.60" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="421.50" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="432.40" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="443.30" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="454.20" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="465.10" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="476.00" cy="329.38" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="486.90" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="497.80" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="508.70" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="519.60" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="530.50" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="541.40" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="552.30" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="563.20" cy="327.55" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="574.10" cy="322.07" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B570" cx="585.00" cy="322.07" r="2" fill="#66C5D7" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="40.00" cy="327.55" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="50.90" cy="327.55" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="61.80" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="72.70" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="83.60" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="94.50" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="105.40" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="116.30" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="127.20" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="138.10" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="149.00" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="159.90" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="170.80" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="181.70" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="192.60" cy="331.20" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="203.50" cy="331.20" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="214.40" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="225.30" cy="329.38" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="236.20" cy="327.55" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="247.10" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="258.00" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="268.90" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="279.80" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="290.70" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="301.60" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="312.50" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="323.40" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="334.30" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="345.20" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="356.10" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="367.00" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="377.90" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="388.80" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="399.70" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="410.60" cy="319.52" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="421.50" cy="320.25" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="432.40" cy="319.52" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="443.30" cy="319.52" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="454.20" cy="320.62" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="465.10" cy="321.89" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="476.00" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="486.90" cy="322.07" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="497.80" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="508.70" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="519.60" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="530.50" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="541.40" cy="318.43" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="552.30" cy="314.77" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="563.20" cy="314.77" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="574.10" cy="314.77" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Intel Arc B580" cx="585.00" cy="314.77" r="2" fill="#B5282A" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="40.00" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="50.90" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="61.80" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="72.70" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="83.60" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="94.50" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="105.40" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="116.30" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="127.20" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="138.10" cy="329.38" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="149.00" cy="333.02" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="159.90" cy="334.85" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="170.80" cy="334.85" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="181.70" cy="334.85" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="192.60" cy="338.50" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="203.50" cy="338.50" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="214.40" cy="332.11" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="225.30" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="236.20" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="247.10" cy="331.20" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="258.00" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="268.90" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="279.80" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="290.70" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="301.60" cy="327.55" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="312.50" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="323.40" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="334.30" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="345.20" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="356.10" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="367.00" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="377.90" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="388.80" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="399.70" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="410.60" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="421.50" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="432.40" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="443.30" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="454.20" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="465.10" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="476.00" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="486.90" cy="322.07" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="497.80" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="508.70" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="519.60" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="530.50" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="541.40" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="541.40" cy="320.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="563.20" cy="318.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="574.10" cy="318.43" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5050" cx="585.00" cy="302.00" r="2" fill="#D07F46" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="40.00" cy="320.25" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="50.90" cy="320.25" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="61.80" cy="321.89" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="72.70" cy="320.98" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="83.60" cy="320.25" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="94.50" cy="322.26" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="105.40" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="116.30" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="127.20" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="138.10" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="149.00" cy="323.90" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="159.90" cy="324.08" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="170.80" cy="324.08" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="181.70" cy="324.08" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="192.60" cy="324.08" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="203.50" cy="325.73" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="214.40" cy="327.55" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="225.30" cy="322.07" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="236.20" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="247.10" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="258.00" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="268.90" cy="320.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="279.80" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="290.70" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="301.60" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="312.50" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="323.40" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="334.30" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="345.20" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="356.10" cy="314.77" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="367.00" cy="314.77" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="377.90" cy="318.43" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="388.80" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="399.70" cy="311.31" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="410.60" cy="311.13" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="421.50" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="432.40" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="443.30" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="454.20" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="465.10" cy="312.95" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="476.00" cy="313.13" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="486.90" cy="311.13" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="497.80" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="519.60" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="530.50" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="541.40" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="552.30" cy="309.48" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="563.20" cy="305.65" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060" cx="574.10" cy="294.88" r="2" fill="#e97a7b" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="40.00" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="50.90" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="61.80" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="72.70" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="83.60" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="94.50" cy="305.83" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="105.40" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="116.30" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="127.20" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="138.10" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="149.00" cy="302.00" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="159.90" cy="302.00" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="170.80" cy="298.35" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="181.70" cy="298.35" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="192.60" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="203.50" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="214.40" cy="296.52" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="225.30" cy="292.88" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="236.20" cy="292.88" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="247.10" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="258.00" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="268.90" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="279.80" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="290.70" cy="280.10" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="301.60" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="312.50" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="323.40" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="334.30" cy="281.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="345.20" cy="283.75" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="356.10" cy="283.75" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="367.00" cy="283.75" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="377.90" cy="281.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="388.80" cy="285.57" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="399.70" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="410.60" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="421.50" cy="274.63" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="432.40" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="443.30" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="454.20" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="465.10" cy="271.89" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="476.00" cy="272.80" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="486.90" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="497.80" cy="256.38" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="508.70" cy="232.65" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="519.60" cy="233.93" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="530.50" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="541.40" cy="270.98" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="552.30" cy="232.65" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="563.20" cy="232.65" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="574.10" cy="231.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="585.00" cy="231.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 16 GB" cx="585.00" cy="231.01" r="2" fill="#e38e4f" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="40.00" cy="307.84" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="50.90" cy="312.95" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="61.80" cy="307.48" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="72.70" cy="312.04" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="83.60" cy="312.95" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="94.50" cy="312.95" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="105.40" cy="311.13" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="116.30" cy="312.58" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="127.20" cy="316.05" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="138.10" cy="312.95" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="149.00" cy="316.60" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="159.90" cy="316.60" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="170.80" cy="312.58" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="181.70" cy="317.88" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="192.60" cy="311.13" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="203.50" cy="311.13" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="214.40" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="225.30" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="236.20" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="247.10" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="258.00" cy="310.94" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="268.90" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="279.80" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="290.70" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="301.60" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="312.50" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="323.40" cy="309.30" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="334.30" cy="303.82" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="345.20" cy="303.82" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="356.10" cy="303.82" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="367.00" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="377.90" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="388.80" cy="302.00" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="399.70" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="410.60" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="421.50" cy="307.48" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="432.40" cy="307.48" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="443.30" cy="307.48" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="454.20" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="465.10" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="476.00" cy="314.77" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="486.90" cy="305.65" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="497.80" cy="298.35" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="508.70" cy="298.35" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="519.60" cy="304.01" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="530.50" cy="304.01" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="541.40" cy="304.01" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="552.30" cy="304.01" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="563.20" cy="285.94" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="574.10" cy="289.23" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5060 Ti 8 GB" cx="585.00" cy="289.23" r="2" fill="#75bdd1" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="40.00" cy="274.63" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="50.90" cy="274.63" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="61.80" cy="279.37" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="72.70" cy="275.36" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="83.60" cy="287.22" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="94.50" cy="283.93" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="105.40" cy="280.10" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="116.30" cy="283.75" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="127.20" cy="283.75" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="138.10" cy="287.40" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="149.00" cy="285.76" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="159.90" cy="283.75" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="170.80" cy="278.82" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="181.70" cy="276.45" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="192.60" cy="283.93" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="203.50" cy="283.93" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="214.40" cy="274.81" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="225.30" cy="276.45" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="236.20" cy="274.81" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="247.10" cy="261.85" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="258.00" cy="261.85" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="268.90" cy="261.85" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="279.80" cy="260.02" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="290.70" cy="260.94" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="301.60" cy="260.02" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="312.50" cy="264.77" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="323.40" cy="258.20" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="334.30" cy="260.02" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="345.20" cy="258.93" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="356.10" cy="260.02" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="367.00" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="377.90" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="388.80" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="399.70" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="410.60" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="421.50" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="432.40" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="443.30" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="454.20" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="465.10" cy="265.68" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="476.00" cy="272.80" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="486.90" cy="274.63" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="497.80" cy="237.21" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="508.70" cy="235.75" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="519.60" cy="229.00" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="530.50" cy="236.48" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="541.40" cy="242.69" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="552.30" cy="232.83" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="563.20" cy="232.83" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="574.10" cy="232.83" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070" cx="585.00" cy="231.01" r="2" fill="#d26365" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="40.00" cy="232.65" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="50.90" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="61.80" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="72.70" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="83.60" cy="238.31" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="94.50" cy="238.31" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="105.40" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="116.30" cy="238.31" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="127.20" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="138.10" cy="241.78" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="149.00" cy="247.43" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="159.90" cy="241.78" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="170.80" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="181.70" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="192.60" cy="238.31" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="203.50" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="214.40" cy="238.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="225.30" cy="223.71" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="236.20" cy="210.93" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="247.10" cy="192.50" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="258.00" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="268.90" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="279.80" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="290.70" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="301.60" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="312.50" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="323.40" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="334.30" cy="210.75" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="345.20" cy="194.32" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="356.10" cy="194.32" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="367.00" cy="194.32" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="377.90" cy="194.32" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="388.80" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="399.70" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="410.60" cy="210.75" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="421.50" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="432.40" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="443.30" cy="196.15" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="454.20" cy="207.10" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="465.10" cy="200.71" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="476.00" cy="210.75" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="486.90" cy="201.63" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="497.80" cy="187.03" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="508.70" cy="176.44" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="519.60" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="530.50" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="541.40" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="552.30" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="563.20" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="574.10" cy="165.13" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5070 Ti" cx="585.00" cy="156.00" r="2" fill="#ffcea9" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="40.00" cy="174.25" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="50.90" cy="174.43" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="61.80" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="72.70" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="83.60" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="94.50" cy="205.46" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="105.40" cy="192.68" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="116.30" cy="196.15" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="127.20" cy="192.68" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="138.10" cy="194.51" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="149.00" cy="194.32" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="159.90" cy="194.51" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="170.80" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="181.70" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="192.60" cy="192.50" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="203.50" cy="174.25" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="214.40" cy="150.53" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="225.30" cy="143.59" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="236.20" cy="123.15" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="247.10" cy="128.62" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="258.00" cy="125.89" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="268.90" cy="125.89" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="279.80" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="290.70" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="301.60" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="312.50" cy="145.05" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="323.40" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="334.30" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="345.20" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="356.10" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="367.00" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="377.90" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="388.80" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="399.70" cy="143.22" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="410.60" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="421.50" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="432.40" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="443.30" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="454.20" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="465.10" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="476.00" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="486.90" cy="146.88" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="497.80" cy="139.57" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="508.70" cy="105.08" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="519.60" cy="92.13" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="530.50" cy="92.13" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="541.40" cy="110.38" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="552.30" cy="110.38" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="563.20" cy="73.33" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="574.10" cy="73.15" r="2" fill="#5bb0c0" style="opacity:0;" /><circle class="riv-dot" data-product="Nvidia RTX 5080" cx="585.00" cy="46.50" r="2" fill="#5bb0c0" style="opacity:0;" /></svg><div class="fv-x-axis-title">Week</div><div class="riv-line-legend" data-chart="fv-chart-1792679910923-z7ixryjjv-line-Lowest pricing"><button class="riv-legend-item " data-product="AMD Radeon RX 9070 GRE"><span class="riv-legend-marker" style="background-color: #E33235;"></span>AMD Radeon RX 9070 GRE</button><button class="riv-legend-item " data-product="AMD RX 9060 XT 16 GB"><span class="riv-legend-marker" style="background-color: #FE9F58;"></span>AMD RX 9060 XT 16 GB</button><button class="riv-legend-item " data-product="AMD RX 9060 XT 8 GB"><span class="riv-legend-marker" style="background-color: #1CA9C4;"></span>AMD RX 9060 XT 8 GB</button><button class="riv-legend-item " data-product="AMD RX 9070"><span class="riv-legend-marker" style="background-color: #EB6F71;"></span>AMD RX 9070</button><button class="riv-legend-item " data-product="AMD RX 9070 XT"><span class="riv-legend-marker" style="background-color: #FFC08B;"></span>AMD RX 9070 XT</button><button class="riv-legend-item " data-product="Intel Arc B570"><span class="riv-legend-marker" style="background-color: #66C5D7;"></span>Intel Arc B570</button><button class="riv-legend-item " data-product="Intel Arc B580"><span class="riv-legend-marker" style="background-color: #B5282A;"></span>Intel Arc B580</button><button class="riv-legend-item " data-product="Nvidia RTX 5050"><span class="riv-legend-marker" style="background-color: #D07F46;"></span>Nvidia RTX 5050</button><button class="riv-legend-item " data-product="Nvidia RTX 5060"><span class="riv-legend-marker" style="background-color: #e97a7b;"></span>Nvidia RTX 5060</button><button class="riv-legend-item " data-product="Nvidia RTX 5060 Ti 16 GB"><span class="riv-legend-marker" style="background-color: #e38e4f;"></span>Nvidia RTX 5060 Ti 16 GB</button><button class="riv-legend-item " data-product="Nvidia RTX 5060 Ti 8 GB"><span class="riv-legend-marker" style="background-color: #75bdd1;"></span>Nvidia RTX 5060 Ti 8 GB</button><button class="riv-legend-item " data-product="Nvidia RTX 5070"><span class="riv-legend-marker" style="background-color: #d26365;"></span>Nvidia RTX 5070</button><button class="riv-legend-item " data-product="Nvidia RTX 5070 Ti"><span class="riv-legend-marker" style="background-color: #ffcea9;"></span>Nvidia RTX 5070 Ti</button><button class="riv-legend-item " data-product="Nvidia RTX 5080"><span class="riv-legend-marker" style="background-color: #5bb0c0;"></span>Nvidia RTX 5080</button></div><table class="sr-only"><caption>Lowest pricing Data</caption><thead><tr><th>Timestamp (Week)</th><th>AMD Radeon RX 9070 GRE (Price, $)</th><th>AMD RX 9060 XT 16 GB (Price, $)</th><th>AMD RX 9060 XT 8 GB (Price, $)</th><th>AMD RX 9070 (Price, $)</th><th>AMD RX 9070 XT (Price, $)</th><th>Intel Arc B570 (Price, $)</th><th>Intel Arc B580 (Price, $)</th><th>Nvidia RTX 5050 (Price, $)</th><th>Nvidia RTX 5060 (Price, $)</th><th>Nvidia RTX 5060 Ti 16 GB (Price, $)</th><th>Nvidia RTX 5060 Ti 8 GB (Price, $)</th><th>Nvidia RTX 5070 (Price, $)</th><th>Nvidia RTX 5070 Ti (Price, $)</th><th>Nvidia RTX 5080 (Price, $)</th></tr></thead><tbody><tr><td>1</td><td>N/A</td><td>370</td><td>280</td><td>600</td><td>700</td><td>230</td><td>260</td><td>250</td><td>300</td><td>430</td><td>368</td><td>550</td><td>780</td><td>1100</td></tr><tr><td>2</td><td>N/A</td><td>370</td><td>270</td><td>600</td><td>700</td><td>230</td><td>260</td><td>250</td><td>300</td><td>430</td><td>340</td><td>550</td><td>750</td><td>1099</td></tr><tr><td>3</td><td>N/A</td><td>370</td><td>280</td><td>550</td><td>700</td><td>230</td><td>250</td><td>250</td><td>291</td><td>430</td><td>370</td><td>524</td><td>750</td><td>1000</td></tr><tr><td>4</td><td>N/A</td><td>370</td><td>280</td><td>550</td><td>695</td><td>230</td><td>250</td><td>250</td><td>296</td><td>430</td><td>345</td><td>546</td><td>750</td><td>1000</td></tr><tr><td>5</td><td>N/A</td><td>350</td><td>270</td><td>600</td><td>670</td><td>230</td><td>250</td><td>250</td><td>300</td><td>430</td><td>340</td><td>481</td><td>749</td><td>1000</td></tr><tr><td>6</td><td>N/A</td><td>350</td><td>270</td><td>600</td><td>670</td><td>230</td><td>250</td><td>240</td><td>289</td><td>379</td><td>340</td><td>499</td><td>749</td><td>929</td></tr><tr><td>7</td><td>N/A</td><td>350</td><td>270</td><td>550</td><td>650</td><td>230</td><td>250</td><td>240</td><td>299</td><td>430</td><td>350</td><td>520</td><td>750</td><td>999</td></tr><tr><td>8</td><td>N/A</td><td>350</td><td>270</td><td>550</td><td>650</td><td>200</td><td>250</td><td>250</td><td>299</td><td>430</td><td>342</td><td>500</td><td>749</td><td>980</td></tr><tr><td>9</td><td>N/A</td><td>350</td><td>270</td><td>560</td><td>650</td><td>220</td><td>250</td><td>250</td><td>299</td><td>430</td><td>323</td><td>500</td><td>750</td><td>999</td></tr><tr><td>10</td><td>N/A</td><td>360</td><td>270</td><td>550</td><td>600</td><td>210</td><td>250</td><td>250</td><td>299</td><td>430</td><td>340</td><td>480</td><td>730</td><td>989</td></tr><tr><td>11</td><td>N/A</td><td>340</td><td>250</td><td>550</td><td>600</td><td>200</td><td>250</td><td>230</td><td>280</td><td>400</td><td>320</td><td>489</td><td>699</td><td>990</td></tr><tr><td>12</td><td>N/A</td><td>350</td><td>275</td><td>530</td><td>600</td><td>200</td><td>250</td><td>220</td><td>279</td><td>400</td><td>320</td><td>500</td><td>730</td><td>989</td></tr><tr><td>13</td><td>N/A</td><td>350</td><td>280</td><td>530</td><td>600</td><td>200</td><td>250</td><td>220</td><td>279</td><td>420</td><td>342</td><td>527</td><td>750</td><td>1000</td></tr><tr><td>14</td><td>N/A</td><td>370</td><td>280</td><td>530</td><td>600</td><td>202</td><td>250</td><td>220</td><td>279</td><td>420</td><td>313</td><td>540</td><td>750</td><td>1000</td></tr><tr><td>15</td><td>N/A</td><td>380</td><td>288</td><td>530</td><td>600</td><td>202</td><td>240</td><td>200</td><td>279</td><td>430</td><td>350</td><td>499</td><td>749</td><td>1000</td></tr><tr><td>16</td><td>N/A</td><td>380</td><td>288</td><td>530</td><td>620</td><td>202</td><td>240</td><td>200</td><td>270</td><td>430</td><td>350</td><td>499</td><td>750</td><td>1100</td></tr><tr><td>17</td><td>N/A</td><td>390</td><td>310</td><td>580</td><td>660</td><td>200</td><td>250</td><td>235</td><td>260</td><td>430</td><td>330</td><td>549</td><td>750</td><td>1230</td></tr><tr><td>18</td><td>N/A</td><td>390</td><td>310</td><td>580</td><td>700</td><td>200</td><td>250</td><td>240</td><td>290</td><td>450</td><td>330</td><td>540</td><td>829</td><td>1268</td></tr><tr><td>19</td><td>N/A</td><td>400</td><td>310</td><td>580</td><td>720</td><td>200</td><td>260</td><td>240</td><td>299</td><td>450</td><td>330</td><td>549</td><td>899</td><td>1380</td></tr><tr><td>20</td><td>N/A</td><td>440</td><td>310</td><td>600</td><td>720</td><td>200</td><td>290</td><td>240</td><td>299</td><td>520</td><td>330</td><td>620</td><td>1000</td><td>1350</td></tr><tr><td>21</td><td>N/A</td><td>440</td><td>350</td><td>590</td><td>730</td><td>250</td><td>290</td><td>260</td><td>299</td><td>520</td><td>351</td><td>620</td><td>950</td><td>1365</td></tr><tr><td>22</td><td>N/A</td><td>400</td><td>346</td><td>630</td><td>730</td><td>250</td><td>300</td><td>260</td><td>299</td><td>520</td><td>360</td><td>620</td><td>950</td><td>1365</td></tr><tr><td>23</td><td>N/A</td><td>440</td><td>346</td><td>630</td><td>730</td><td>250</td><td>300</td><td>260</td><td>340</td><td>520</td><td>360</td><td>630</td><td>950</td><td>1290</td></tr><tr><td>24</td><td>N/A</td><td>440</td><td>346</td><td>620</td><td>730</td><td>250</td><td>300</td><td>260</td><td>340</td><td>520</td><td>360</td><td>625</td><td>950</td><td>1290</td></tr><tr><td>25</td><td>N/A</td><td>440</td><td>346</td><td>610</td><td>730</td><td>250</td><td>300</td><td>260</td><td>349</td><td>550</td><td>360</td><td>630</td><td>950</td><td>1250</td></tr><tr><td>26</td><td>N/A</td><td>440</td><td>340</td><td>610</td><td>730</td><td>250</td><td>300</td><td>290</td><td>349</td><td>550</td><td>360</td><td>604</td><td>950</td><td>1260</td></tr><tr><td>27</td><td>N/A</td><td>440</td><td>340</td><td>630</td><td>730</td><td>250</td><td>300</td><td>290</td><td>349</td><td>570</td><td>360</td><td>640</td><td>950</td><td>1290</td></tr><tr><td>28</td><td>N/A</td><td>440</td><td>346</td><td>620</td><td>720</td><td>250</td><td>290</td><td>290</td><td>349</td><td>515</td><td>390</td><td>630</td><td>900</td><td>1250</td></tr><tr><td>29</td><td>N/A</td><td>449</td><td>350</td><td>620</td><td>710</td><td>250</td><td>290</td><td>290</td><td>349</td><td>500</td><td>390</td><td>636</td><td>990</td><td>1290</td></tr><tr><td>30</td><td>N/A</td><td>440</td><td>350</td><td>620</td><td>710</td><td>260</td><td>290</td><td>290</td><td>330</td><td>500</td><td>390</td><td>630</td><td>990</td><td>1290</td></tr><tr><td>31</td><td>N/A</td><td>440</td><td>350</td><td>620</td><td>670</td><td>260</td><td>290</td><td>290</td><td>330</td><td>500</td><td>380</td><td>599</td><td>990</td><td>1290</td></tr><tr><td>32</td><td>N/A</td><td>430</td><td>360</td><td>620</td><td>710</td><td>260</td><td>290</td><td>290</td><td>310</td><td>515</td><td>380</td><td>599</td><td>990</td><td>1290</td></tr><tr><td>33</td><td>N/A</td><td>430</td><td>360</td><td>600</td><td>710</td><td>260</td><td>290</td><td>290</td><td>349</td><td>490</td><td>400</td><td>599</td><td>980</td><td>1290</td></tr><tr><td>34</td><td>N/A</td><td>440</td><td>360</td><td>620</td><td>710</td><td>260</td><td>290</td><td>290</td><td>349</td><td>550</td><td>380</td><td>599</td><td>980</td><td>1270</td></tr><tr><td>35</td><td>N/A</td><td>430</td><td>360</td><td>600</td><td>700</td><td>260</td><td>304</td><td>290</td><td>350</td><td>550</td><td>380</td><td>599</td><td>900</td><td>1290</td></tr><tr><td>36</td><td>550</td><td>440</td><td>360</td><td>600</td><td>700</td><td>260</td><td>300</td><td>290</td><td>340</td><td>550</td><td>370</td><td>599</td><td>980</td><td>1250</td></tr><tr><td>37</td><td>550</td><td>440</td><td>350</td><td>600</td><td>700</td><td>250</td><td>304</td><td>290</td><td>340</td><td>570</td><td>370</td><td>599</td><td>980</td><td>1250</td></tr><tr><td>38</td><td>550</td><td>440</td><td>350</td><td>600</td><td>700</td><td>250</td><td>304</td><td>290</td><td>340</td><td>570</td><td>370</td><td>599</td><td>980</td><td>1250</td></tr><tr><td>39</td><td>500</td><td>400</td><td>360</td><td>600</td><td>700</td><td>250</td><td>298</td><td>290</td><td>340</td><td>570</td><td>330</td><td>599</td><td>920</td><td>1250</td></tr><tr><td>40</td><td>500</td><td>430</td><td>360</td><td>600</td><td>700</td><td>260</td><td>291</td><td>290</td><td>340</td><td>565</td><td>330</td><td>599</td><td>955</td><td>1250</td></tr><tr><td>41</td><td>500</td><td>430</td><td>360</td><td>600</td><td>700</td><td>250</td><td>290</td><td>290</td><td>339</td><td>560</td><td>330</td><td>560</td><td>900</td><td>1250</td></tr><tr><td>42</td><td>550</td><td>450</td><td>360</td><td>635</td><td>690</td><td>260</td><td>290</td><td>290</td><td>350</td><td>570</td><td>380</td><td>550</td><td>950</td><td>1250</td></tr><tr><td>43</td><td>500</td><td>470</td><td>370</td><td>650</td><td>720</td><td>260</td><td>310</td><td>299</td><td>359</td><td>650</td><td>420</td><td>755</td><td>1030</td><td>1290</td></tr><tr><td>44</td><td>500</td><td>470</td><td>400</td><td>650</td><td>720</td><td>260</td><td>310</td><td>299</td><td>N/A</td><td>780</td><td>420</td><td>763</td><td>1088</td><td>1479</td></tr><tr><td>45</td><td>530</td><td>460</td><td>360</td><td>630</td><td>730</td><td>260</td><td>310</td><td>299</td><td>359</td><td>773</td><td>389</td><td>800</td><td>1150</td><td>1550</td></tr><tr><td>46</td><td>530</td><td>470</td><td>400</td><td>650</td><td>740</td><td>260</td><td>310</td><td>299</td><td>359</td><td>570</td><td>389</td><td>759</td><td>1150</td><td>1550</td></tr><tr><td>47</td><td>520</td><td>470</td><td>409</td><td>650</td><td>740</td><td>260</td><td>310</td><td>299</td><td>359</td><td>570</td><td>389</td><td>725</td><td>1150</td><td>1450</td></tr><tr><td>48</td><td>500</td><td>470</td><td>430</td><td>650</td><td>760</td><td>260</td><td>330</td><td>N/A</td><td>359</td><td>780</td><td>389</td><td>779</td><td>1150</td><td>1450</td></tr><tr><td>49</td><td>570</td><td>500</td><td>450</td><td>667</td><td>760</td><td>260</td><td>330</td><td>310</td><td>380</td><td>780</td><td>488</td><td>779</td><td>1150</td><td>1653</td></tr><tr><td>50</td><td>550</td><td>520</td><td>400</td><td>700</td><td>800</td><td>290</td><td>330</td><td>310</td><td>439</td><td>789</td><td>470</td><td>779</td><td>1150</td><td>1654</td></tr><tr><td>51</td><td>570</td><td>520</td><td>400</td><td>700</td><td>830</td><td>290</td><td>330</td><td>400</td><td>N/A</td><td>789</td><td>470</td><td>789</td><td>1200</td><td>1800</td></tr></tbody></table><script type="application/json" class="riv-line-chart-data">{"products":[{"name":"AMD Radeon RX 9070 GRE","displayName":"AMD Radeon RX 9070 GRE","color":"#E33235"},{"name":"AMD RX 9060 XT 16 GB","displayName":"AMD RX 9060 XT 16 GB","color":"#FE9F58"},{"name":"AMD RX 9060 XT 8 GB","displayName":"AMD RX 9060 XT 8 GB","color":"#1CA9C4"},{"name":"AMD RX 9070","displayName":"AMD RX 9070","color":"#EB6F71"},{"name":"AMD RX 9070 XT","displayName":"AMD RX 9070 XT","color":"#FFC08B"},{"name":"Intel Arc B570","displayName":"Intel Arc B570","color":"#66C5D7"},{"name":"Intel Arc B580","displayName":"Intel Arc B580","color":"#B5282A"},{"name":"Nvidia RTX 5050","displayName":"Nvidia RTX 5050","color":"#D07F46"},{"name":"Nvidia RTX 5060","displayName":"Nvidia RTX 5060","color":"#e97a7b"},{"name":"Nvidia RTX 5060 Ti 16 GB","displayName":"Nvidia RTX 5060 Ti 16 GB","color":"#e38e4f"},{"name":"Nvidia RTX 5060 Ti 8 GB","displayName":"Nvidia RTX 5060 Ti 8 GB","color":"#75bdd1"},{"name":"Nvidia RTX 5070","displayName":"Nvidia RTX 5070","color":"#d26365"},{"name":"Nvidia RTX 5070 Ti","displayName":"Nvidia RTX 5070 Ti","color":"#ffcea9"},{"name":"Nvidia RTX 5080","displayName":"Nvidia RTX 5080","color":"#5bb0c0"}],"timestampUnit":"Week","unit":"Price, $","xAxisLabel":"Week","data":[{"timestamp":1,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":1,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":1,"productName":"AMD RX 9070","value":600},{"timestamp":1,"productName":"AMD RX 9070 XT","value":700},{"timestamp":1,"productName":"Intel Arc B570","value":230},{"timestamp":1,"productName":"Intel Arc B580","value":260},{"timestamp":1,"productName":"Nvidia RTX 5050","value":250},{"timestamp":1,"productName":"Nvidia RTX 5060","value":300},{"timestamp":1,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":1,"productName":"Nvidia RTX 5060 Ti 8 GB","value":368},{"timestamp":1,"productName":"Nvidia RTX 5070","value":550},{"timestamp":1,"productName":"Nvidia RTX 5070 Ti","value":780},{"timestamp":1,"productName":"Nvidia RTX 5080","value":1100},{"timestamp":2,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":2,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":2,"productName":"AMD RX 9070","value":600},{"timestamp":2,"productName":"AMD RX 9070 XT","value":700},{"timestamp":2,"productName":"Intel Arc B570","value":230},{"timestamp":2,"productName":"Intel Arc B580","value":260},{"timestamp":2,"productName":"Nvidia RTX 5050","value":250},{"timestamp":2,"productName":"Nvidia RTX 5060","value":300},{"timestamp":2,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":2,"productName":"Nvidia RTX 5060 Ti 8 GB","value":340},{"timestamp":2,"productName":"Nvidia RTX 5070","value":550},{"timestamp":2,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":2,"productName":"Nvidia RTX 5080","value":1099},{"timestamp":3,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":3,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":3,"productName":"AMD RX 9070","value":550},{"timestamp":3,"productName":"AMD RX 9070 XT","value":700},{"timestamp":3,"productName":"Intel Arc B570","value":230},{"timestamp":3,"productName":"Intel Arc B580","value":250},{"timestamp":3,"productName":"Nvidia RTX 5050","value":250},{"timestamp":3,"productName":"Nvidia RTX 5060","value":291},{"timestamp":3,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":3,"productName":"Nvidia RTX 5060 Ti 8 GB","value":370},{"timestamp":3,"productName":"Nvidia RTX 5070","value":524},{"timestamp":3,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":3,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":4,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":4,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":4,"productName":"AMD RX 9070","value":550},{"timestamp":4,"productName":"AMD RX 9070 XT","value":695},{"timestamp":4,"productName":"Intel Arc B570","value":230},{"timestamp":4,"productName":"Intel Arc B580","value":250},{"timestamp":4,"productName":"Nvidia RTX 5050","value":250},{"timestamp":4,"productName":"Nvidia RTX 5060","value":296},{"timestamp":4,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":4,"productName":"Nvidia RTX 5060 Ti 8 GB","value":345},{"timestamp":4,"productName":"Nvidia RTX 5070","value":546},{"timestamp":4,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":4,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":5,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":5,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":5,"productName":"AMD RX 9070","value":600},{"timestamp":5,"productName":"AMD RX 9070 XT","value":670},{"timestamp":5,"productName":"Intel Arc B570","value":230},{"timestamp":5,"productName":"Intel Arc B580","value":250},{"timestamp":5,"productName":"Nvidia RTX 5050","value":250},{"timestamp":5,"productName":"Nvidia RTX 5060","value":300},{"timestamp":5,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":5,"productName":"Nvidia RTX 5060 Ti 8 GB","value":340},{"timestamp":5,"productName":"Nvidia RTX 5070","value":481},{"timestamp":5,"productName":"Nvidia RTX 5070 Ti","value":749},{"timestamp":5,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":6,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":6,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":6,"productName":"AMD RX 9070","value":600},{"timestamp":6,"productName":"AMD RX 9070 XT","value":670},{"timestamp":6,"productName":"Intel Arc B570","value":230},{"timestamp":6,"productName":"Intel Arc B580","value":250},{"timestamp":6,"productName":"Nvidia RTX 5050","value":240},{"timestamp":6,"productName":"Nvidia RTX 5060","value":289},{"timestamp":6,"productName":"Nvidia RTX 5060 Ti 16 GB","value":379},{"timestamp":6,"productName":"Nvidia RTX 5060 Ti 8 GB","value":340},{"timestamp":6,"productName":"Nvidia RTX 5070","value":499},{"timestamp":6,"productName":"Nvidia RTX 5070 Ti","value":749},{"timestamp":6,"productName":"Nvidia RTX 5080","value":929},{"timestamp":7,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":7,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":7,"productName":"AMD RX 9070","value":550},{"timestamp":7,"productName":"AMD RX 9070 XT","value":650},{"timestamp":7,"productName":"Intel Arc B570","value":230},{"timestamp":7,"productName":"Intel Arc B580","value":250},{"timestamp":7,"productName":"Nvidia RTX 5050","value":240},{"timestamp":7,"productName":"Nvidia RTX 5060","value":299},{"timestamp":7,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":7,"productName":"Nvidia RTX 5060 Ti 8 GB","value":350},{"timestamp":7,"productName":"Nvidia RTX 5070","value":520},{"timestamp":7,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":7,"productName":"Nvidia RTX 5080","value":999},{"timestamp":8,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":8,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":8,"productName":"AMD RX 9070","value":550},{"timestamp":8,"productName":"AMD RX 9070 XT","value":650},{"timestamp":8,"productName":"Intel Arc B570","value":200},{"timestamp":8,"productName":"Intel Arc B580","value":250},{"timestamp":8,"productName":"Nvidia RTX 5050","value":250},{"timestamp":8,"productName":"Nvidia RTX 5060","value":299},{"timestamp":8,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":8,"productName":"Nvidia RTX 5060 Ti 8 GB","value":342},{"timestamp":8,"productName":"Nvidia RTX 5070","value":500},{"timestamp":8,"productName":"Nvidia RTX 5070 Ti","value":749},{"timestamp":8,"productName":"Nvidia RTX 5080","value":980},{"timestamp":9,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":9,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":9,"productName":"AMD RX 9070","value":560},{"timestamp":9,"productName":"AMD RX 9070 XT","value":650},{"timestamp":9,"productName":"Intel Arc B570","value":220},{"timestamp":9,"productName":"Intel Arc B580","value":250},{"timestamp":9,"productName":"Nvidia RTX 5050","value":250},{"timestamp":9,"productName":"Nvidia RTX 5060","value":299},{"timestamp":9,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":9,"productName":"Nvidia RTX 5060 Ti 8 GB","value":323},{"timestamp":9,"productName":"Nvidia RTX 5070","value":500},{"timestamp":9,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":9,"productName":"Nvidia RTX 5080","value":999},{"timestamp":10,"productName":"AMD RX 9060 XT 16 GB","value":360},{"timestamp":10,"productName":"AMD RX 9060 XT 8 GB","value":270},{"timestamp":10,"productName":"AMD RX 9070","value":550},{"timestamp":10,"productName":"AMD RX 9070 XT","value":600},{"timestamp":10,"productName":"Intel Arc B570","value":210},{"timestamp":10,"productName":"Intel Arc B580","value":250},{"timestamp":10,"productName":"Nvidia RTX 5050","value":250},{"timestamp":10,"productName":"Nvidia RTX 5060","value":299},{"timestamp":10,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":10,"productName":"Nvidia RTX 5060 Ti 8 GB","value":340},{"timestamp":10,"productName":"Nvidia RTX 5070","value":480},{"timestamp":10,"productName":"Nvidia RTX 5070 Ti","value":730},{"timestamp":10,"productName":"Nvidia RTX 5080","value":989},{"timestamp":11,"productName":"AMD RX 9060 XT 16 GB","value":340},{"timestamp":11,"productName":"AMD RX 9060 XT 8 GB","value":250},{"timestamp":11,"productName":"AMD RX 9070","value":550},{"timestamp":11,"productName":"AMD RX 9070 XT","value":600},{"timestamp":11,"productName":"Intel Arc B570","value":200},{"timestamp":11,"productName":"Intel Arc B580","value":250},{"timestamp":11,"productName":"Nvidia RTX 5050","value":230},{"timestamp":11,"productName":"Nvidia RTX 5060","value":280},{"timestamp":11,"productName":"Nvidia RTX 5060 Ti 16 GB","value":400},{"timestamp":11,"productName":"Nvidia RTX 5060 Ti 8 GB","value":320},{"timestamp":11,"productName":"Nvidia RTX 5070","value":489},{"timestamp":11,"productName":"Nvidia RTX 5070 Ti","value":699},{"timestamp":11,"productName":"Nvidia RTX 5080","value":990},{"timestamp":12,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":12,"productName":"AMD RX 9060 XT 8 GB","value":275},{"timestamp":12,"productName":"AMD RX 9070","value":530},{"timestamp":12,"productName":"AMD RX 9070 XT","value":600},{"timestamp":12,"productName":"Intel Arc B570","value":200},{"timestamp":12,"productName":"Intel Arc B580","value":250},{"timestamp":12,"productName":"Nvidia RTX 5050","value":220},{"timestamp":12,"productName":"Nvidia RTX 5060","value":279},{"timestamp":12,"productName":"Nvidia RTX 5060 Ti 16 GB","value":400},{"timestamp":12,"productName":"Nvidia RTX 5060 Ti 8 GB","value":320},{"timestamp":12,"productName":"Nvidia RTX 5070","value":500},{"timestamp":12,"productName":"Nvidia RTX 5070 Ti","value":730},{"timestamp":12,"productName":"Nvidia RTX 5080","value":989},{"timestamp":13,"productName":"AMD RX 9060 XT 16 GB","value":350},{"timestamp":13,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":13,"productName":"AMD RX 9070","value":530},{"timestamp":13,"productName":"AMD RX 9070 XT","value":600},{"timestamp":13,"productName":"Intel Arc B570","value":200},{"timestamp":13,"productName":"Intel Arc B580","value":250},{"timestamp":13,"productName":"Nvidia RTX 5050","value":220},{"timestamp":13,"productName":"Nvidia RTX 5060","value":279},{"timestamp":13,"productName":"Nvidia RTX 5060 Ti 16 GB","value":420},{"timestamp":13,"productName":"Nvidia RTX 5060 Ti 8 GB","value":342},{"timestamp":13,"productName":"Nvidia RTX 5070","value":527},{"timestamp":13,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":13,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":14,"productName":"AMD RX 9060 XT 16 GB","value":370},{"timestamp":14,"productName":"AMD RX 9060 XT 8 GB","value":280},{"timestamp":14,"productName":"AMD RX 9070","value":530},{"timestamp":14,"productName":"AMD RX 9070 XT","value":600},{"timestamp":14,"productName":"Intel Arc B570","value":202},{"timestamp":14,"productName":"Intel Arc B580","value":250},{"timestamp":14,"productName":"Nvidia RTX 5050","value":220},{"timestamp":14,"productName":"Nvidia RTX 5060","value":279},{"timestamp":14,"productName":"Nvidia RTX 5060 Ti 16 GB","value":420},{"timestamp":14,"productName":"Nvidia RTX 5060 Ti 8 GB","value":313},{"timestamp":14,"productName":"Nvidia RTX 5070","value":540},{"timestamp":14,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":14,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":15,"productName":"AMD RX 9060 XT 16 GB","value":380},{"timestamp":15,"productName":"AMD RX 9060 XT 8 GB","value":288},{"timestamp":15,"productName":"AMD RX 9070","value":530},{"timestamp":15,"productName":"AMD RX 9070 XT","value":600},{"timestamp":15,"productName":"Intel Arc B570","value":202},{"timestamp":15,"productName":"Intel Arc B580","value":240},{"timestamp":15,"productName":"Nvidia RTX 5050","value":200},{"timestamp":15,"productName":"Nvidia RTX 5060","value":279},{"timestamp":15,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":15,"productName":"Nvidia RTX 5060 Ti 8 GB","value":350},{"timestamp":15,"productName":"Nvidia RTX 5070","value":499},{"timestamp":15,"productName":"Nvidia RTX 5070 Ti","value":749},{"timestamp":15,"productName":"Nvidia RTX 5080","value":1000},{"timestamp":16,"productName":"AMD RX 9060 XT 16 GB","value":380},{"timestamp":16,"productName":"AMD RX 9060 XT 8 GB","value":288},{"timestamp":16,"productName":"AMD RX 9070","value":530},{"timestamp":16,"productName":"AMD RX 9070 XT","value":620},{"timestamp":16,"productName":"Intel Arc B570","value":202},{"timestamp":16,"productName":"Intel Arc B580","value":240},{"timestamp":16,"productName":"Nvidia RTX 5050","value":200},{"timestamp":16,"productName":"Nvidia RTX 5060","value":270},{"timestamp":16,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":16,"productName":"Nvidia RTX 5060 Ti 8 GB","value":350},{"timestamp":16,"productName":"Nvidia RTX 5070","value":499},{"timestamp":16,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":16,"productName":"Nvidia RTX 5080","value":1100},{"timestamp":17,"productName":"AMD RX 9060 XT 16 GB","value":390},{"timestamp":17,"productName":"AMD RX 9060 XT 8 GB","value":310},{"timestamp":17,"productName":"AMD RX 9070","value":580},{"timestamp":17,"productName":"AMD RX 9070 XT","value":660},{"timestamp":17,"productName":"Intel Arc B570","value":200},{"timestamp":17,"productName":"Intel Arc B580","value":250},{"timestamp":17,"productName":"Nvidia RTX 5050","value":235},{"timestamp":17,"productName":"Nvidia RTX 5060","value":260},{"timestamp":17,"productName":"Nvidia RTX 5060 Ti 16 GB","value":430},{"timestamp":17,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":17,"productName":"Nvidia RTX 5070","value":549},{"timestamp":17,"productName":"Nvidia RTX 5070 Ti","value":750},{"timestamp":17,"productName":"Nvidia RTX 5080","value":1230},{"timestamp":18,"productName":"AMD RX 9060 XT 16 GB","value":390},{"timestamp":18,"productName":"AMD RX 9060 XT 8 GB","value":310},{"timestamp":18,"productName":"AMD RX 9070","value":580},{"timestamp":18,"productName":"AMD RX 9070 XT","value":700},{"timestamp":18,"productName":"Intel Arc B570","value":200},{"timestamp":18,"productName":"Intel Arc B580","value":250},{"timestamp":18,"productName":"Nvidia RTX 5050","value":240},{"timestamp":18,"productName":"Nvidia RTX 5060","value":290},{"timestamp":18,"productName":"Nvidia RTX 5060 Ti 16 GB","value":450},{"timestamp":18,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":18,"productName":"Nvidia RTX 5070","value":540},{"timestamp":18,"productName":"Nvidia RTX 5070 Ti","value":829},{"timestamp":18,"productName":"Nvidia RTX 5080","value":1268},{"timestamp":19,"productName":"AMD RX 9060 XT 16 GB","value":400},{"timestamp":19,"productName":"AMD RX 9060 XT 8 GB","value":310},{"timestamp":19,"productName":"AMD RX 9070","value":580},{"timestamp":19,"productName":"AMD RX 9070 XT","value":720},{"timestamp":19,"productName":"Intel Arc B570","value":200},{"timestamp":19,"productName":"Intel Arc B580","value":260},{"timestamp":19,"productName":"Nvidia RTX 5050","value":240},{"timestamp":19,"productName":"Nvidia RTX 5060","value":299},{"timestamp":19,"productName":"Nvidia RTX 5060 Ti 16 GB","value":450},{"timestamp":19,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":19,"productName":"Nvidia RTX 5070","value":549},{"timestamp":19,"productName":"Nvidia RTX 5070 Ti","value":899},{"timestamp":19,"productName":"Nvidia RTX 5080","value":1380},{"timestamp":20,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":20,"productName":"AMD RX 9060 XT 8 GB","value":310},{"timestamp":20,"productName":"AMD RX 9070","value":600},{"timestamp":20,"productName":"AMD RX 9070 XT","value":720},{"timestamp":20,"productName":"Intel Arc B570","value":200},{"timestamp":20,"productName":"Intel Arc B580","value":290},{"timestamp":20,"productName":"Nvidia RTX 5050","value":240},{"timestamp":20,"productName":"Nvidia RTX 5060","value":299},{"timestamp":20,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":20,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":20,"productName":"Nvidia RTX 5070","value":620},{"timestamp":20,"productName":"Nvidia RTX 5070 Ti","value":1000},{"timestamp":20,"productName":"Nvidia RTX 5080","value":1350},{"timestamp":21,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":21,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":21,"productName":"AMD RX 9070","value":590},{"timestamp":21,"productName":"AMD RX 9070 XT","value":730},{"timestamp":21,"productName":"Intel Arc B570","value":250},{"timestamp":21,"productName":"Intel Arc B580","value":290},{"timestamp":21,"productName":"Nvidia RTX 5050","value":260},{"timestamp":21,"productName":"Nvidia RTX 5060","value":299},{"timestamp":21,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":21,"productName":"Nvidia RTX 5060 Ti 8 GB","value":351},{"timestamp":21,"productName":"Nvidia RTX 5070","value":620},{"timestamp":21,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":21,"productName":"Nvidia RTX 5080","value":1365},{"timestamp":22,"productName":"AMD RX 9060 XT 16 GB","value":400},{"timestamp":22,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":22,"productName":"AMD RX 9070","value":630},{"timestamp":22,"productName":"AMD RX 9070 XT","value":730},{"timestamp":22,"productName":"Intel Arc B570","value":250},{"timestamp":22,"productName":"Intel Arc B580","value":300},{"timestamp":22,"productName":"Nvidia RTX 5050","value":260},{"timestamp":22,"productName":"Nvidia RTX 5060","value":299},{"timestamp":22,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":22,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":22,"productName":"Nvidia RTX 5070","value":620},{"timestamp":22,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":22,"productName":"Nvidia RTX 5080","value":1365},{"timestamp":23,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":23,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":23,"productName":"AMD RX 9070","value":630},{"timestamp":23,"productName":"AMD RX 9070 XT","value":730},{"timestamp":23,"productName":"Intel Arc B570","value":250},{"timestamp":23,"productName":"Intel Arc B580","value":300},{"timestamp":23,"productName":"Nvidia RTX 5050","value":260},{"timestamp":23,"productName":"Nvidia RTX 5060","value":340},{"timestamp":23,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":23,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":23,"productName":"Nvidia RTX 5070","value":630},{"timestamp":23,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":23,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":24,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":24,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":24,"productName":"AMD RX 9070","value":620},{"timestamp":24,"productName":"AMD RX 9070 XT","value":730},{"timestamp":24,"productName":"Intel Arc B570","value":250},{"timestamp":24,"productName":"Intel Arc B580","value":300},{"timestamp":24,"productName":"Nvidia RTX 5050","value":260},{"timestamp":24,"productName":"Nvidia RTX 5060","value":340},{"timestamp":24,"productName":"Nvidia RTX 5060 Ti 16 GB","value":520},{"timestamp":24,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":24,"productName":"Nvidia RTX 5070","value":625},{"timestamp":24,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":24,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":25,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":25,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":25,"productName":"AMD RX 9070","value":610},{"timestamp":25,"productName":"AMD RX 9070 XT","value":730},{"timestamp":25,"productName":"Intel Arc B570","value":250},{"timestamp":25,"productName":"Intel Arc B580","value":300},{"timestamp":25,"productName":"Nvidia RTX 5050","value":260},{"timestamp":25,"productName":"Nvidia RTX 5060","value":349},{"timestamp":25,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":25,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":25,"productName":"Nvidia RTX 5070","value":630},{"timestamp":25,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":25,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":26,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":26,"productName":"AMD RX 9060 XT 8 GB","value":340},{"timestamp":26,"productName":"AMD RX 9070","value":610},{"timestamp":26,"productName":"AMD RX 9070 XT","value":730},{"timestamp":26,"productName":"Intel Arc B570","value":250},{"timestamp":26,"productName":"Intel Arc B580","value":300},{"timestamp":26,"productName":"Nvidia RTX 5050","value":290},{"timestamp":26,"productName":"Nvidia RTX 5060","value":349},{"timestamp":26,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":26,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":26,"productName":"Nvidia RTX 5070","value":604},{"timestamp":26,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":26,"productName":"Nvidia RTX 5080","value":1260},{"timestamp":27,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":27,"productName":"AMD RX 9060 XT 8 GB","value":340},{"timestamp":27,"productName":"AMD RX 9070","value":630},{"timestamp":27,"productName":"AMD RX 9070 XT","value":730},{"timestamp":27,"productName":"Intel Arc B570","value":250},{"timestamp":27,"productName":"Intel Arc B580","value":300},{"timestamp":27,"productName":"Nvidia RTX 5050","value":290},{"timestamp":27,"productName":"Nvidia RTX 5060","value":349},{"timestamp":27,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":27,"productName":"Nvidia RTX 5060 Ti 8 GB","value":360},{"timestamp":27,"productName":"Nvidia RTX 5070","value":640},{"timestamp":27,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":27,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":28,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":28,"productName":"AMD RX 9060 XT 8 GB","value":346},{"timestamp":28,"productName":"AMD RX 9070","value":620},{"timestamp":28,"productName":"AMD RX 9070 XT","value":720},{"timestamp":28,"productName":"Intel Arc B570","value":250},{"timestamp":28,"productName":"Intel Arc B580","value":290},{"timestamp":28,"productName":"Nvidia RTX 5050","value":290},{"timestamp":28,"productName":"Nvidia RTX 5060","value":349},{"timestamp":28,"productName":"Nvidia RTX 5060 Ti 16 GB","value":515},{"timestamp":28,"productName":"Nvidia RTX 5060 Ti 8 GB","value":390},{"timestamp":28,"productName":"Nvidia RTX 5070","value":630},{"timestamp":28,"productName":"Nvidia RTX 5070 Ti","value":900},{"timestamp":28,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":29,"productName":"AMD RX 9060 XT 16 GB","value":449},{"timestamp":29,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":29,"productName":"AMD RX 9070","value":620},{"timestamp":29,"productName":"AMD RX 9070 XT","value":710},{"timestamp":29,"productName":"Intel Arc B570","value":250},{"timestamp":29,"productName":"Intel Arc B580","value":290},{"timestamp":29,"productName":"Nvidia RTX 5050","value":290},{"timestamp":29,"productName":"Nvidia RTX 5060","value":349},{"timestamp":29,"productName":"Nvidia RTX 5060 Ti 16 GB","value":500},{"timestamp":29,"productName":"Nvidia RTX 5060 Ti 8 GB","value":390},{"timestamp":29,"productName":"Nvidia RTX 5070","value":636},{"timestamp":29,"productName":"Nvidia RTX 5070 Ti","value":990},{"timestamp":29,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":30,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":30,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":30,"productName":"AMD RX 9070","value":620},{"timestamp":30,"productName":"AMD RX 9070 XT","value":710},{"timestamp":30,"productName":"Intel Arc B570","value":260},{"timestamp":30,"productName":"Intel Arc B580","value":290},{"timestamp":30,"productName":"Nvidia RTX 5050","value":290},{"timestamp":30,"productName":"Nvidia RTX 5060","value":330},{"timestamp":30,"productName":"Nvidia RTX 5060 Ti 16 GB","value":500},{"timestamp":30,"productName":"Nvidia RTX 5060 Ti 8 GB","value":390},{"timestamp":30,"productName":"Nvidia RTX 5070","value":630},{"timestamp":30,"productName":"Nvidia RTX 5070 Ti","value":990},{"timestamp":30,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":31,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":31,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":31,"productName":"AMD RX 9070","value":620},{"timestamp":31,"productName":"AMD RX 9070 XT","value":670},{"timestamp":31,"productName":"Intel Arc B570","value":260},{"timestamp":31,"productName":"Intel Arc B580","value":290},{"timestamp":31,"productName":"Nvidia RTX 5050","value":290},{"timestamp":31,"productName":"Nvidia RTX 5060","value":330},{"timestamp":31,"productName":"Nvidia RTX 5060 Ti 16 GB","value":500},{"timestamp":31,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":31,"productName":"Nvidia RTX 5070","value":599},{"timestamp":31,"productName":"Nvidia RTX 5070 Ti","value":990},{"timestamp":31,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":32,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":32,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":32,"productName":"AMD RX 9070","value":620},{"timestamp":32,"productName":"AMD RX 9070 XT","value":710},{"timestamp":32,"productName":"Intel Arc B570","value":260},{"timestamp":32,"productName":"Intel Arc B580","value":290},{"timestamp":32,"productName":"Nvidia RTX 5050","value":290},{"timestamp":32,"productName":"Nvidia RTX 5060","value":310},{"timestamp":32,"productName":"Nvidia RTX 5060 Ti 16 GB","value":515},{"timestamp":32,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":32,"productName":"Nvidia RTX 5070","value":599},{"timestamp":32,"productName":"Nvidia RTX 5070 Ti","value":990},{"timestamp":32,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":33,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":33,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":33,"productName":"AMD RX 9070","value":600},{"timestamp":33,"productName":"AMD RX 9070 XT","value":710},{"timestamp":33,"productName":"Intel Arc B570","value":260},{"timestamp":33,"productName":"Intel Arc B580","value":290},{"timestamp":33,"productName":"Nvidia RTX 5050","value":290},{"timestamp":33,"productName":"Nvidia RTX 5060","value":349},{"timestamp":33,"productName":"Nvidia RTX 5060 Ti 16 GB","value":490},{"timestamp":33,"productName":"Nvidia RTX 5060 Ti 8 GB","value":400},{"timestamp":33,"productName":"Nvidia RTX 5070","value":599},{"timestamp":33,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":33,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":34,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":34,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":34,"productName":"AMD RX 9070","value":620},{"timestamp":34,"productName":"AMD RX 9070 XT","value":710},{"timestamp":34,"productName":"Intel Arc B570","value":260},{"timestamp":34,"productName":"Intel Arc B580","value":290},{"timestamp":34,"productName":"Nvidia RTX 5050","value":290},{"timestamp":34,"productName":"Nvidia RTX 5060","value":349},{"timestamp":34,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":34,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":34,"productName":"Nvidia RTX 5070","value":599},{"timestamp":34,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":34,"productName":"Nvidia RTX 5080","value":1270},{"timestamp":35,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":35,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":35,"productName":"AMD RX 9070","value":600},{"timestamp":35,"productName":"AMD RX 9070 XT","value":700},{"timestamp":35,"productName":"Intel Arc B570","value":260},{"timestamp":35,"productName":"Intel Arc B580","value":304},{"timestamp":35,"productName":"Nvidia RTX 5050","value":290},{"timestamp":35,"productName":"Nvidia RTX 5060","value":350},{"timestamp":35,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":35,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":35,"productName":"Nvidia RTX 5070","value":599},{"timestamp":35,"productName":"Nvidia RTX 5070 Ti","value":900},{"timestamp":35,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":36,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":36,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":36,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":36,"productName":"AMD RX 9070","value":600},{"timestamp":36,"productName":"AMD RX 9070 XT","value":700},{"timestamp":36,"productName":"Intel Arc B570","value":260},{"timestamp":36,"productName":"Intel Arc B580","value":300},{"timestamp":36,"productName":"Nvidia RTX 5050","value":290},{"timestamp":36,"productName":"Nvidia RTX 5060","value":340},{"timestamp":36,"productName":"Nvidia RTX 5060 Ti 16 GB","value":550},{"timestamp":36,"productName":"Nvidia RTX 5060 Ti 8 GB","value":370},{"timestamp":36,"productName":"Nvidia RTX 5070","value":599},{"timestamp":36,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":36,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":37,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":37,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":37,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":37,"productName":"AMD RX 9070","value":600},{"timestamp":37,"productName":"AMD RX 9070 XT","value":700},{"timestamp":37,"productName":"Intel Arc B570","value":250},{"timestamp":37,"productName":"Intel Arc B580","value":304},{"timestamp":37,"productName":"Nvidia RTX 5050","value":290},{"timestamp":37,"productName":"Nvidia RTX 5060","value":340},{"timestamp":37,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":37,"productName":"Nvidia RTX 5060 Ti 8 GB","value":370},{"timestamp":37,"productName":"Nvidia RTX 5070","value":599},{"timestamp":37,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":37,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":38,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":38,"productName":"AMD RX 9060 XT 16 GB","value":440},{"timestamp":38,"productName":"AMD RX 9060 XT 8 GB","value":350},{"timestamp":38,"productName":"AMD RX 9070","value":600},{"timestamp":38,"productName":"AMD RX 9070 XT","value":700},{"timestamp":38,"productName":"Intel Arc B570","value":250},{"timestamp":38,"productName":"Intel Arc B580","value":304},{"timestamp":38,"productName":"Nvidia RTX 5050","value":290},{"timestamp":38,"productName":"Nvidia RTX 5060","value":340},{"timestamp":38,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":38,"productName":"Nvidia RTX 5060 Ti 8 GB","value":370},{"timestamp":38,"productName":"Nvidia RTX 5070","value":599},{"timestamp":38,"productName":"Nvidia RTX 5070 Ti","value":980},{"timestamp":38,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":39,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":39,"productName":"AMD RX 9060 XT 16 GB","value":400},{"timestamp":39,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":39,"productName":"AMD RX 9070","value":600},{"timestamp":39,"productName":"AMD RX 9070 XT","value":700},{"timestamp":39,"productName":"Intel Arc B570","value":250},{"timestamp":39,"productName":"Intel Arc B580","value":298},{"timestamp":39,"productName":"Nvidia RTX 5050","value":290},{"timestamp":39,"productName":"Nvidia RTX 5060","value":340},{"timestamp":39,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":39,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":39,"productName":"Nvidia RTX 5070","value":599},{"timestamp":39,"productName":"Nvidia RTX 5070 Ti","value":920},{"timestamp":39,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":40,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":40,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":40,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":40,"productName":"AMD RX 9070","value":600},{"timestamp":40,"productName":"AMD RX 9070 XT","value":700},{"timestamp":40,"productName":"Intel Arc B570","value":260},{"timestamp":40,"productName":"Intel Arc B580","value":291},{"timestamp":40,"productName":"Nvidia RTX 5050","value":290},{"timestamp":40,"productName":"Nvidia RTX 5060","value":340},{"timestamp":40,"productName":"Nvidia RTX 5060 Ti 16 GB","value":565},{"timestamp":40,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":40,"productName":"Nvidia RTX 5070","value":599},{"timestamp":40,"productName":"Nvidia RTX 5070 Ti","value":955},{"timestamp":40,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":41,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":41,"productName":"AMD RX 9060 XT 16 GB","value":430},{"timestamp":41,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":41,"productName":"AMD RX 9070","value":600},{"timestamp":41,"productName":"AMD RX 9070 XT","value":700},{"timestamp":41,"productName":"Intel Arc B570","value":250},{"timestamp":41,"productName":"Intel Arc B580","value":290},{"timestamp":41,"productName":"Nvidia RTX 5050","value":290},{"timestamp":41,"productName":"Nvidia RTX 5060","value":339},{"timestamp":41,"productName":"Nvidia RTX 5060 Ti 16 GB","value":560},{"timestamp":41,"productName":"Nvidia RTX 5060 Ti 8 GB","value":330},{"timestamp":41,"productName":"Nvidia RTX 5070","value":560},{"timestamp":41,"productName":"Nvidia RTX 5070 Ti","value":900},{"timestamp":41,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":42,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":42,"productName":"AMD RX 9060 XT 16 GB","value":450},{"timestamp":42,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":42,"productName":"AMD RX 9070","value":635},{"timestamp":42,"productName":"AMD RX 9070 XT","value":690},{"timestamp":42,"productName":"Intel Arc B570","value":260},{"timestamp":42,"productName":"Intel Arc B580","value":290},{"timestamp":42,"productName":"Nvidia RTX 5050","value":290},{"timestamp":42,"productName":"Nvidia RTX 5060","value":350},{"timestamp":42,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":42,"productName":"Nvidia RTX 5060 Ti 8 GB","value":380},{"timestamp":42,"productName":"Nvidia RTX 5070","value":550},{"timestamp":42,"productName":"Nvidia RTX 5070 Ti","value":950},{"timestamp":42,"productName":"Nvidia RTX 5080","value":1250},{"timestamp":43,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":43,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":43,"productName":"AMD RX 9060 XT 8 GB","value":370},{"timestamp":43,"productName":"AMD RX 9070","value":650},{"timestamp":43,"productName":"AMD RX 9070 XT","value":720},{"timestamp":43,"productName":"Intel Arc B570","value":260},{"timestamp":43,"productName":"Intel Arc B580","value":310},{"timestamp":43,"productName":"Nvidia RTX 5050","value":299},{"timestamp":43,"productName":"Nvidia RTX 5060","value":359},{"timestamp":43,"productName":"Nvidia RTX 5060 Ti 16 GB","value":650},{"timestamp":43,"productName":"Nvidia RTX 5060 Ti 8 GB","value":420},{"timestamp":43,"productName":"Nvidia RTX 5070","value":755},{"timestamp":43,"productName":"Nvidia RTX 5070 Ti","value":1030},{"timestamp":43,"productName":"Nvidia RTX 5080","value":1290},{"timestamp":44,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":44,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":44,"productName":"AMD RX 9060 XT 8 GB","value":400},{"timestamp":44,"productName":"AMD RX 9070","value":650},{"timestamp":44,"productName":"AMD RX 9070 XT","value":720},{"timestamp":44,"productName":"Intel Arc B570","value":260},{"timestamp":44,"productName":"Intel Arc B580","value":310},{"timestamp":44,"productName":"Nvidia RTX 5050","value":299},{"timestamp":44,"productName":"Nvidia RTX 5060 Ti 16 GB","value":780},{"timestamp":44,"productName":"Nvidia RTX 5060 Ti 8 GB","value":420},{"timestamp":44,"productName":"Nvidia RTX 5070","value":763},{"timestamp":44,"productName":"Nvidia RTX 5070 Ti","value":1088},{"timestamp":44,"productName":"Nvidia RTX 5080","value":1479},{"timestamp":45,"productName":"AMD Radeon RX 9070 GRE","value":530},{"timestamp":45,"productName":"AMD RX 9060 XT 16 GB","value":460},{"timestamp":45,"productName":"AMD RX 9060 XT 8 GB","value":360},{"timestamp":45,"productName":"AMD RX 9070","value":630},{"timestamp":45,"productName":"AMD RX 9070 XT","value":730},{"timestamp":45,"productName":"Intel Arc B570","value":260},{"timestamp":45,"productName":"Intel Arc B580","value":310},{"timestamp":45,"productName":"Nvidia RTX 5050","value":299},{"timestamp":45,"productName":"Nvidia RTX 5060","value":359},{"timestamp":45,"productName":"Nvidia RTX 5060 Ti 16 GB","value":773},{"timestamp":45,"productName":"Nvidia RTX 5060 Ti 8 GB","value":389},{"timestamp":45,"productName":"Nvidia RTX 5070","value":800},{"timestamp":45,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":45,"productName":"Nvidia RTX 5080","value":1550},{"timestamp":46,"productName":"AMD Radeon RX 9070 GRE","value":530},{"timestamp":46,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":46,"productName":"AMD RX 9060 XT 8 GB","value":400},{"timestamp":46,"productName":"AMD RX 9070","value":650},{"timestamp":46,"productName":"AMD RX 9070 XT","value":740},{"timestamp":46,"productName":"Intel Arc B570","value":260},{"timestamp":46,"productName":"Intel Arc B580","value":310},{"timestamp":46,"productName":"Nvidia RTX 5050","value":299},{"timestamp":46,"productName":"Nvidia RTX 5060","value":359},{"timestamp":46,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":46,"productName":"Nvidia RTX 5060 Ti 8 GB","value":389},{"timestamp":46,"productName":"Nvidia RTX 5070","value":759},{"timestamp":46,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":46,"productName":"Nvidia RTX 5080","value":1550},{"timestamp":47,"productName":"AMD Radeon RX 9070 GRE","value":520},{"timestamp":47,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":47,"productName":"AMD RX 9060 XT 8 GB","value":409},{"timestamp":47,"productName":"AMD RX 9070","value":650},{"timestamp":47,"productName":"AMD RX 9070 XT","value":740},{"timestamp":47,"productName":"Intel Arc B570","value":260},{"timestamp":47,"productName":"Intel Arc B580","value":310},{"timestamp":47,"productName":"Nvidia RTX 5050","value":299},{"timestamp":47,"productName":"Nvidia RTX 5050","value":299},{"timestamp":47,"productName":"Nvidia RTX 5060","value":359},{"timestamp":47,"productName":"Nvidia RTX 5060 Ti 16 GB","value":570},{"timestamp":47,"productName":"Nvidia RTX 5060 Ti 8 GB","value":389},{"timestamp":47,"productName":"Nvidia RTX 5070","value":725},{"timestamp":47,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":47,"productName":"Nvidia RTX 5080","value":1450},{"timestamp":48,"productName":"AMD Radeon RX 9070 GRE","value":500},{"timestamp":48,"productName":"AMD RX 9060 XT 16 GB","value":470},{"timestamp":48,"productName":"AMD RX 9060 XT 8 GB","value":430},{"timestamp":48,"productName":"AMD RX 9070","value":650},{"timestamp":48,"productName":"AMD RX 9070 XT","value":760},{"timestamp":48,"productName":"Intel Arc B570","value":260},{"timestamp":48,"productName":"Intel Arc B580","value":330},{"timestamp":48,"productName":"Nvidia RTX 5060","value":359},{"timestamp":48,"productName":"Nvidia RTX 5060 Ti 16 GB","value":780},{"timestamp":48,"productName":"Nvidia RTX 5060 Ti 8 GB","value":389},{"timestamp":48,"productName":"Nvidia RTX 5070","value":779},{"timestamp":48,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":48,"productName":"Nvidia RTX 5080","value":1450},{"timestamp":49,"productName":"AMD Radeon RX 9070 GRE","value":570},{"timestamp":49,"productName":"AMD RX 9060 XT 16 GB","value":500},{"timestamp":49,"productName":"AMD RX 9060 XT 8 GB","value":450},{"timestamp":49,"productName":"AMD RX 9070","value":667},{"timestamp":49,"productName":"AMD RX 9070 XT","value":760},{"timestamp":49,"productName":"Intel Arc B570","value":260},{"timestamp":49,"productName":"Intel Arc B580","value":330},{"timestamp":49,"productName":"Nvidia RTX 5050","value":310},{"timestamp":49,"productName":"Nvidia RTX 5060","value":380},{"timestamp":49,"productName":"Nvidia RTX 5060 Ti 16 GB","value":780},{"timestamp":49,"productName":"Nvidia RTX 5060 Ti 8 GB","value":488},{"timestamp":49,"productName":"Nvidia RTX 5070","value":779},{"timestamp":49,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":49,"productName":"Nvidia RTX 5080","value":1653},{"timestamp":50,"productName":"AMD Radeon RX 9070 GRE","value":550},{"timestamp":50,"productName":"AMD RX 9060 XT 16 GB","value":520},{"timestamp":50,"productName":"AMD RX 9060 XT 8 GB","value":400},{"timestamp":50,"productName":"AMD RX 9070","value":700},{"timestamp":50,"productName":"AMD RX 9070 XT","value":800},{"timestamp":50,"productName":"Intel Arc B570","value":290},{"timestamp":50,"productName":"Intel Arc B580","value":330},{"timestamp":50,"productName":"Nvidia RTX 5050","value":310},{"timestamp":50,"productName":"Nvidia RTX 5060","value":439},{"timestamp":50,"productName":"Nvidia RTX 5060 Ti 16 GB","value":789},{"timestamp":50,"productName":"Nvidia RTX 5060 Ti 8 GB","value":470},{"timestamp":50,"productName":"Nvidia RTX 5070","value":779},{"timestamp":50,"productName":"Nvidia RTX 5070 Ti","value":1150},{"timestamp":50,"productName":"Nvidia RTX 5080","value":1654},{"timestamp":51,"productName":"AMD Radeon RX 9070 GRE","value":570},{"timestamp":51,"productName":"AMD RX 9060 XT 16 GB","value":520},{"timestamp":51,"productName":"AMD RX 9060 XT 8 GB","value":400},{"timestamp":51,"productName":"AMD RX 9070","value":700},{"timestamp":51,"productName":"AMD RX 9070 XT","value":830},{"timestamp":51,"productName":"Intel Arc B570","value":290},{"timestamp":51,"productName":"Intel Arc B580","value":330},{"timestamp":51,"productName":"Nvidia RTX 5050","value":400},{"timestamp":51,"productName":"Nvidia RTX 5060 Ti 16 GB","value":789},{"timestamp":51,"productName":"Nvidia RTX 5060 Ti 16 GB","value":789},{"timestamp":51,"productName":"Nvidia RTX 5060 Ti 8 GB","value":470},{"timestamp":51,"productName":"Nvidia RTX 5070","value":789},{"timestamp":51,"productName":"Nvidia RTX 5070 Ti","value":1200},{"timestamp":51,"productName":"Nvidia RTX 5080","value":1800}],"xMin":1,"xMax":51,"yMin":0,"yMax":2000}</script></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-1792679910923-z7ixryjjv', false); });      } else {        initialize('fv-chart-1792679910923-z7ixryjjv', false);      }    })();      </script></div><p>If you were in need of a graphics card right now, I'd probably buy an RX 9070 GRE for <a href="https://www.bestbuy.com/product/gigabyte-radeon-rx-9070-gre-gaming-oc-12g-gddr6-pci-express-5-0-graphics-card-black/J3ZW9X73CR" target="_blank">$570</a>—that's only $20 over MSRP. </p><p>That's about as good as it gets.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Game industry legend Warren Spector blows up over BioWare's closure: 'it's utter bulls**t' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Immersive sim legend Warren Spector shared some thoughts on yesterday's closure of BioWare, and they're uncharacteristically spicy—so much so that he led into them with a warning for sensitive readers.</p><p>"I try very hard not to curse at any time but especially in public. Unfortunately for my vocabulary and the delicate sensibilities of some who read this I can’t control myself. Hell, I don’t want to control myself," Spector wrote in a brief message on <a href="https://www.linkedin.com/feed/update/urn:li:activity:7518774616589316097/" target="_blank">LinkedIn</a>.</p><p>"BioWare is more than just another studio. For decades it's played a central role in the history of our medium. They, for many years, as effectively as any studio, married art and commerce. Their work changed things."</p><p>And then, the cursing, and the warning that sensitive readers should cover their eyes while Warren gives 'em both barrels: "This is such bad news, such a devastating historic event all I can say is that it’s utter bullshit. Anyone who participated in this travesty should be ashamed."</p><p>It is perhaps not the eruption of ear-scalding profanity you were expecting (or hoping for), but the truth is that Spector has been a studiously even-tempered professional throughout his career. I don't know if I've ever heard him publicly say anything harsher than "heck" or maybe "gosh darn" for as long as I've been following him—PCG pal Joshua Wolens described Spector as "so pure, like if hot chocolate was a guy," and I think that pretty much nails it.</p><p>Easy as it is to joke, though (and I suspect Spector is playing to character somewhat here), his message does very aptly reflect the weight of the moment. The closure of BioWare is a pronounced symptom of an industry (and a world, really) that's gone wrong in some very fundamental ways. What kind of multi-billion-dollar game company, supposedly one of the best, looks at a studio like BioWare and says, "Nah, I can't do anything with that?" </p><p>The fact that EA managed to make mild-mannered Warren Spector—who's supposed to be enjoying his <a href="https://www.pcgamer.com/gaming-industry/industry-legend-warren-spector-is-retiring-im-feeling-like-ive-done-what-i-set-out-to-do/" target="_blank">retirement</a>—straight-up call bullshit on the whole thing speaks volumes about how bad a botch this really is.</p><p>But he wasn't finished. "Maybe all of the people who participated—the folks in suits (real or virtual) should lose their damn jobs," Spector continued. "I ask them to ponder this: What do you contribute to gaming? What price do you pay for failure? I’d love to see THEM on the unemployment line instead of the people who do real work. Why is it always the do-ers and makers who pay the price? Someone explain that to me!<br><br>"I wish I had more curse words."</p><p>Spector is correct: As we've seen so many times before, it's never the C-suite that suffers when the axe falls and hundreds or thousands of the people who actually make games get put out of work. Roughly 400 people lost their jobs at EA yesterday, including those impacted by the BioWare closure; CEO Andrew Wilson, meanwhile, was paid <a href="https://www.pcgamer.com/gaming-industry/after-laying-off-battlefield-6-developers-ea-pays-its-ceo-usd38-million-because-battlefield-6-did-so-well/" target="_blank">more than $38.5 million in 2026</a>—$8 million more than he was paid in 2025. Regardless of whether or not Spector has more curse words at his disposal, I think he picked absolutely the correct one for the moment: This is bullshit.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="f2faaf7c-ce24-11f1-9198-355dcadd4b14" 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="f2faaf7c-ce24-11f1-9198-355dcadd4b14" 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/gaming-industry/game-industry-legend-warren-spector-blows-up-over-biowares-closure-its-utter-bulls-t/</link>
                                                                            <description>
                            <![CDATA[ The recently retired producer of System Shock, Ultima Underworld, Deus Ex, and so many more wants to know why "the folks in suits" aren't losing their jobs. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">6ijUWy9xzigD66UybSCzEg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/LH6e7uZsB3iHwLwo4HnvRS-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 14:38:38 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 18:42:55 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Industry]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/LH6e7uZsB3iHwLwo4HnvRS-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Warren Spector speaking at 2016 PC Gaming Show]]></media:description>                                                            <media:text><![CDATA[Warren Spector speaking at 2016 PC Gaming Show]]></media:text>
                                <media:title type="plain"><![CDATA[Warren Spector speaking at 2016 PC Gaming Show]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/LH6e7uZsB3iHwLwo4HnvRS-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Immersive sim legend Warren Spector shared some thoughts on yesterday's closure of BioWare, and they're uncharacteristically spicy—so much so that he led into them with a warning for sensitive readers.</p><p>"I try very hard not to curse at any time but especially in public. Unfortunately for my vocabulary and the delicate sensibilities of some who read this I can’t control myself. Hell, I don’t want to control myself," Spector wrote in a brief message on <a href="https://www.linkedin.com/feed/update/urn:li:activity:7518774616589316097/" target="_blank">LinkedIn</a>.</p><p>"BioWare is more than just another studio. For decades it's played a central role in the history of our medium. They, for many years, as effectively as any studio, married art and commerce. Their work changed things."</p><p>And then, the cursing, and the warning that sensitive readers should cover their eyes while Warren gives 'em both barrels: "This is such bad news, such a devastating historic event all I can say is that it’s utter bullshit. Anyone who participated in this travesty should be ashamed."</p><p>It is perhaps not the eruption of ear-scalding profanity you were expecting (or hoping for), but the truth is that Spector has been a studiously even-tempered professional throughout his career. I don't know if I've ever heard him publicly say anything harsher than "heck" or maybe "gosh darn" for as long as I've been following him—PCG pal Joshua Wolens described Spector as "so pure, like if hot chocolate was a guy," and I think that pretty much nails it.</p><p>Easy as it is to joke, though (and I suspect Spector is playing to character somewhat here), his message does very aptly reflect the weight of the moment. The closure of BioWare is a pronounced symptom of an industry (and a world, really) that's gone wrong in some very fundamental ways. What kind of multi-billion-dollar game company, supposedly one of the best, looks at a studio like BioWare and says, "Nah, I can't do anything with that?" </p><p>The fact that EA managed to make mild-mannered Warren Spector—who's supposed to be enjoying his <a href="https://www.pcgamer.com/gaming-industry/industry-legend-warren-spector-is-retiring-im-feeling-like-ive-done-what-i-set-out-to-do/" target="_blank">retirement</a>—straight-up call bullshit on the whole thing speaks volumes about how bad a botch this really is.</p><p>But he wasn't finished. "Maybe all of the people who participated—the folks in suits (real or virtual) should lose their damn jobs," Spector continued. "I ask them to ponder this: What do you contribute to gaming? What price do you pay for failure? I’d love to see THEM on the unemployment line instead of the people who do real work. Why is it always the do-ers and makers who pay the price? Someone explain that to me!<br><br>"I wish I had more curse words."</p><p>Spector is correct: As we've seen so many times before, it's never the C-suite that suffers when the axe falls and hundreds or thousands of the people who actually make games get put out of work. Roughly 400 people lost their jobs at EA yesterday, including those impacted by the BioWare closure; CEO Andrew Wilson, meanwhile, was paid <a href="https://www.pcgamer.com/gaming-industry/after-laying-off-battlefield-6-developers-ea-pays-its-ceo-usd38-million-because-battlefield-6-did-so-well/" target="_blank">more than $38.5 million in 2026</a>—$8 million more than he was paid in 2025. Regardless of whether or not Spector has more curse words at his disposal, I think he picked absolutely the correct one for the moment: This is bullshit.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="f2faaf7c-ce24-11f1-9198-355dcadd4b14" 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="f2faaf7c-ce24-11f1-9198-355dcadd4b14" 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[ Where to find the Sotoyama region Treasure Hunt in Forza Horizon 6 ]]></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:1408px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XusNbfF5xzsipwtLDnHVUn" name="forza-horizon-6-sotoyama-treasure-hunt-1" alt="Forza 6 Sotoyama treasure hunt location" src="https://cdn.mos.cms.futurecdn.net/XusNbfF5xzsipwtLDnHVUn-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1408" height="792" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/XusNbfF5xzsipwtLDnHVUn-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: Playground Games)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Key deets</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="khABfqeTatFVVvFtyi8hGb" name="forza-horizon-6-sotoyama-treasure-hunt" caption="" alt="Forza 6 Sotoyama treasure hunt chest" src="https://cdn.mos.cms.futurecdn.net/khABfqeTatFVVvFtyi8hGb-1920-80.jpg" 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: Playground Games)</span></figcaption></figure><p class="fancy-box__body-text"><strong>🚘 </strong>The treasure chest is in east Sotoyama on the shore of a big lake, north of Soni Circuit.</p></div></div><p>It's winter time in <a href="https://www.pcgamer.com/forza-horizon-6/" target="_blank">Forza Horizon 6</a>'s Horizon Meets series, so once again we have a new Treasure Hunt to find to get some seasonal points for earning the newest automobiles on offer.</p><p>This week, the chest is in east Sotoyama, the northernmost region, by a mountain lake. You can see it in the image above, but this one is exceptionally easy to spot on the map.</p><ol start="1"><li>Just pan north on the map from Soni Circuit in Takashiro and you'll spot the big pool in the far east of Sotoyama.</li><li>The chest itself is on the beach that runs along its right side from northeast to southwest.</li></ol><p>Head there and smash the chest to get 100,000 credits, 5,000 XP, and three Season Progress. Also make sure to complete the new photo challenge, too, if you're looking for extra points.</p><div class="product"><a data-dimension112="7d166046-cbb6-11f1-8790-ddb5d909d2b4" data-action="Deal Block" data-label="Forza Horizon 6 car list" data-dimension48="Forza Horizon 6 car list" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="XGqaMWAZJwWt5niuFeWgNB" name="forza horizon 6 boxout" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/XGqaMWAZJwWt5niuFeWgNB-1920-80.jpg" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-car-list/" target="_blank" data-dimension112="7d166046-cbb6-11f1-8790-ddb5d909d2b4" data-action="Deal Block" data-label="Forza Horizon 6 car list" data-dimension48="Forza Horizon 6 car list" data-dimension25=""><strong>Forza Horizon 6 car list</strong></a>: All the rides you can collect.<br><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-best-cars" target="_blank"><strong>Forza Horizon 6 best cars</strong></a>: What to buy and tune.<br><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-treasure-car-locations/" target="_blank"><strong>Forza Horizon 6 Treasure Cars</strong></a>: Skip the clues.<br><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-barn-finds/" target="_blank"><strong>Forza Horizon 6 Barn Finds</strong></a>: Track down these relics.<br><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-review/" target="_blank"><strong>Forza Horizon 6 review</strong></a>: What we think.</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/racing/forza-horizon-6-sotoyama-treasure-hunt-location/</link>
                                                                            <description>
                            <![CDATA[ Track this chest to a mountain lake. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">JdQ95xbumtWcBtNWZSxsGQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/khABfqeTatFVVvFtyi8hGb-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 14:35:54 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 14:37:00 +0000</updated>
                                                                                                                                            <category><![CDATA[Racing]]></category>
                                                    <category><![CDATA[Games]]></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>
                                                                                                        <dc:contributor><![CDATA[ Phil Savage ]]></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/khABfqeTatFVVvFtyi8hGb-1920-80.jpg">
                                                            <media:credit><![CDATA[Playground Games]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Forza 6 Sotoyama treasure hunt chest]]></media:description>                                                            <media:text><![CDATA[Forza 6 Sotoyama treasure hunt chest]]></media:text>
                                <media:title type="plain"><![CDATA[Forza 6 Sotoyama treasure hunt chest]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/khABfqeTatFVVvFtyi8hGb-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:1408px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XusNbfF5xzsipwtLDnHVUn" name="forza-horizon-6-sotoyama-treasure-hunt-1" alt="Forza 6 Sotoyama treasure hunt location" src="https://cdn.mos.cms.futurecdn.net/XusNbfF5xzsipwtLDnHVUn-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1408" height="792" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/XusNbfF5xzsipwtLDnHVUn-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: Playground Games)</span></figcaption></figure><div  class="fancy-box"><div class="fancy_box-title">Key deets</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="khABfqeTatFVVvFtyi8hGb" name="forza-horizon-6-sotoyama-treasure-hunt" caption="" alt="Forza 6 Sotoyama treasure hunt chest" src="https://cdn.mos.cms.futurecdn.net/khABfqeTatFVVvFtyi8hGb-1920-80.jpg" 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: Playground Games)</span></figcaption></figure><p class="fancy-box__body-text"><strong>🚘 </strong>The treasure chest is in east Sotoyama on the shore of a big lake, north of Soni Circuit.</p></div></div><p>It's winter time in <a href="https://www.pcgamer.com/forza-horizon-6/" target="_blank">Forza Horizon 6</a>'s Horizon Meets series, so once again we have a new Treasure Hunt to find to get some seasonal points for earning the newest automobiles on offer.</p><p>This week, the chest is in east Sotoyama, the northernmost region, by a mountain lake. You can see it in the image above, but this one is exceptionally easy to spot on the map.</p><ol start="1"><li>Just pan north on the map from Soni Circuit in Takashiro and you'll spot the big pool in the far east of Sotoyama.</li><li>The chest itself is on the beach that runs along its right side from northeast to southwest.</li></ol><p>Head there and smash the chest to get 100,000 credits, 5,000 XP, and three Season Progress. Also make sure to complete the new photo challenge, too, if you're looking for extra points.</p><div class="product"><a data-dimension112="7d166046-cbb6-11f1-8790-ddb5d909d2b4" data-action="Deal Block" data-label="Forza Horizon 6 car list" data-dimension48="Forza Horizon 6 car list" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="XGqaMWAZJwWt5niuFeWgNB" name="forza horizon 6 boxout" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/XGqaMWAZJwWt5niuFeWgNB-1920-80.jpg" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-car-list/" target="_blank" data-dimension112="7d166046-cbb6-11f1-8790-ddb5d909d2b4" data-action="Deal Block" data-label="Forza Horizon 6 car list" data-dimension48="Forza Horizon 6 car list" data-dimension25=""><strong>Forza Horizon 6 car list</strong></a>: All the rides you can collect.<br><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-best-cars" target="_blank"><strong>Forza Horizon 6 best cars</strong></a>: What to buy and tune.<br><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-treasure-car-locations/" target="_blank"><strong>Forza Horizon 6 Treasure Cars</strong></a>: Skip the clues.<br><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-barn-finds/" target="_blank"><strong>Forza Horizon 6 Barn Finds</strong></a>: Track down these relics.<br><a href="https://www.pcgamer.com/games/racing/forza-horizon-6-review/" target="_blank"><strong>Forza Horizon 6 review</strong></a>: What we think.</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ No more waiting on shaders to compile as Nvidia's latest driver adds advanced shader delivery: users report lower RAM usage in Call of Duty: Modern Warfare 4 and Gears of War: E-Day ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In the era of speedy solid state drives, I barely remember the last time I saw a loading screen. I say 'barely' because it was, in fact, last night as I waited for <a href="https://www.pcgamer.com/star-wars-zero-company/" target="_blank">Star Wars Zero Company</a> to compile its shaders for a <em>second time </em>following a crash I encountered during the tutorial mission. Some of us are just blessed (read: cursed) like that. Thankfully, more and more games are moving towards pre-compiling shaders.</p><p>Case in point, Nvidia just released a fresh GeForce Game Ready Driver <a href="https://www.nvidia.com/en-us/geforce/news/phantom-blade-zero-nvidia-geforce-game-ready-driver/#advanced-shader-delivery" target="_blank">that adds support for Advanced Shader Delivery</a> in both <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> and <a href="https://www.pcgamer.com/games/third-person-shooter/gears-of-war-e-day-review/">Gears of War: E-Day</a>. I've not had a chance to test the Nvidia GeForce 621.01 WHQL driver yet, but journalist Sebastian Castellanos notes "considerably lower system RAM usage" with it installed.</p><p><a href="https://x.com/Sebasti66855537/status/2113032509919555652" target="_blank">He wrote on X</a>, "In Gears of War: E-Day, [RAM usage is] about 7-8 GB lower in my case. CPU usage is still relatively high though."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>To briefly recap, Advanced Shader Delivery is Microsoft tech that compiles a game's shaders before you ever hit 'play', distributing them during the download process and banishing that pesky in-game load screen. This update brings support to all RTX GPUs, from the 20-series to the 50-series, but the tech is only available for certain games.</p><p>Back in May, <a href="https://www.pcgamer.com/hardware/graphics-cards/advanced-shader-delivery-banishes-long-loads-and-shader-stutter-on-first-time-launch-but-only-for-certain-games-and-there-are-a-number-of-other-caveats-too/" target="_blank">Microsoft worked with AMD</a> to get Advanced Shader Delivery support in a number of games—but only if you download them via the Xbox app. It's the same story here, <a href="https://www.nvidia.com/en-us/geforce/news/phantom-blade-zero-nvidia-geforce-game-ready-driver/#advanced-shader-delivery" target="_blank">with Nvidia writing</a>, "When you download or update a supported title, the exact Precompiled Shader Database (PSDB) tailored to your rig is bundled with your download via the Xbox PC app, meaning ASD-supported games purchased from the Microsoft Store will offer a seamless experience."</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="ZkAd6Pu64tN54SNVBUpoeG" name="[4K] XBOX Games Showcase 2026  Gears of War E-Day Direct 00-57-25" alt="Marcus Fenix wearing a bandana in Gears of War: E-Day." src="https://cdn.mos.cms.futurecdn.net/ZkAd6Pu64tN54SNVBUpoeG-1920-80.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Games Studios.)</span></figcaption></figure><p>Nvidia also breaks down why one cannot simply add Advanced Shader Delivery to every game, and why waiting around for a game to compile shaders is even a thing to begin with. "Modern games rely on tens of thousands of complex shaders," Nvidia explains, "However, generic shader files must be compiled locally into instructions specific to your GPU and driver version, which is a CPU-heavy process that forces players to wait up to 30 minutes every time a game launches or updates.</p><p>"Pre-compiling every possible combination on the developer’s side would mean users download terabytes of data with each new game and update, leaving local compilation as the long-standing norm." Nvidia goes on, "Microsoft’s new Advanced Shader Delivery solves this by offloading the heavy lifting to the cloud."</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/graphics-cards/no-more-waiting-on-shaders-to-compile-as-nvidias-latest-driver-adds-advanced-shader-delivery-users-report-lower-ram-usage-in-call-of-duty-modern-warfare-4-and-gears-of-war-e-day/</link>
                                                                            <description>
                            <![CDATA[ Instead of waiting around at your rig, the cloud can do all of the heavy lifting instead. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DSeRVSQX3YDFG9pB4Qxowk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/puRh9PgaH6xDQExD4HsSbM-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 14:17:48 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Graphics Cards]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jess Kinghorn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she&#039;s either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.&amp;nbsp;&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/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>
                                <p>In the era of speedy solid state drives, I barely remember the last time I saw a loading screen. I say 'barely' because it was, in fact, last night as I waited for <a href="https://www.pcgamer.com/star-wars-zero-company/" target="_blank">Star Wars Zero Company</a> to compile its shaders for a <em>second time </em>following a crash I encountered during the tutorial mission. Some of us are just blessed (read: cursed) like that. Thankfully, more and more games are moving towards pre-compiling shaders.</p><p>Case in point, Nvidia just released a fresh GeForce Game Ready Driver <a href="https://www.nvidia.com/en-us/geforce/news/phantom-blade-zero-nvidia-geforce-game-ready-driver/#advanced-shader-delivery" target="_blank">that adds support for Advanced Shader Delivery</a> in both <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> and <a href="https://www.pcgamer.com/games/third-person-shooter/gears-of-war-e-day-review/">Gears of War: E-Day</a>. I've not had a chance to test the Nvidia GeForce 621.01 WHQL driver yet, but journalist Sebastian Castellanos notes "considerably lower system RAM usage" with it installed.</p><p><a href="https://x.com/Sebasti66855537/status/2113032509919555652" target="_blank">He wrote on X</a>, "In Gears of War: E-Day, [RAM usage is] about 7-8 GB lower in my case. CPU usage is still relatively high though."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>To briefly recap, Advanced Shader Delivery is Microsoft tech that compiles a game's shaders before you ever hit 'play', distributing them during the download process and banishing that pesky in-game load screen. This update brings support to all RTX GPUs, from the 20-series to the 50-series, but the tech is only available for certain games.</p><p>Back in May, <a href="https://www.pcgamer.com/hardware/graphics-cards/advanced-shader-delivery-banishes-long-loads-and-shader-stutter-on-first-time-launch-but-only-for-certain-games-and-there-are-a-number-of-other-caveats-too/" target="_blank">Microsoft worked with AMD</a> to get Advanced Shader Delivery support in a number of games—but only if you download them via the Xbox app. It's the same story here, <a href="https://www.nvidia.com/en-us/geforce/news/phantom-blade-zero-nvidia-geforce-game-ready-driver/#advanced-shader-delivery" target="_blank">with Nvidia writing</a>, "When you download or update a supported title, the exact Precompiled Shader Database (PSDB) tailored to your rig is bundled with your download via the Xbox PC app, meaning ASD-supported games purchased from the Microsoft Store will offer a seamless experience."</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="ZkAd6Pu64tN54SNVBUpoeG" name="[4K] XBOX Games Showcase 2026  Gears of War E-Day Direct 00-57-25" alt="Marcus Fenix wearing a bandana in Gears of War: E-Day." src="https://cdn.mos.cms.futurecdn.net/ZkAd6Pu64tN54SNVBUpoeG-1920-80.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Xbox Games Studios.)</span></figcaption></figure><p>Nvidia also breaks down why one cannot simply add Advanced Shader Delivery to every game, and why waiting around for a game to compile shaders is even a thing to begin with. "Modern games rely on tens of thousands of complex shaders," Nvidia explains, "However, generic shader files must be compiled locally into instructions specific to your GPU and driver version, which is a CPU-heavy process that forces players to wait up to 30 minutes every time a game launches or updates.</p><p>"Pre-compiling every possible combination on the developer’s side would mean users download terabytes of data with each new game and update, leaving local compilation as the long-standing norm." Nvidia goes on, "Microsoft’s new Advanced Shader Delivery solves this by offloading the heavy lifting to the cloud."</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'What we were cooking was really cool': An award-winning science fiction author was working on Mass Effect 5's story ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.pcgamer.com/gaming-industry/with-bioware-dead-ea-lays-out-its-next-chapter-and-its-pretty-much-as-predicted-guns-and-football-are-fine-and-everything-else-is-under-the-microscope/">Mass Effect 5 is officially cancelled</a> and <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">EA's shutting BioWare down</a>, putting an end to decades of some of the best RPGs in gaming—and while I don't have too much positive to say about BioWare's later run (Veilguard was a decent action RPG with a <a href="https://www.pcgamer.com/games/dragon-age/dragon-age-the-veilguards-story-does-get-better-but-its-clunky-script-makes-such-a-bad-first-impression-and-those-problems-never-quite-go-away/">story I couldn't stand</a>), much of that has to do with EA's management of it. </p><p>Regardless of my nervousness towards ME5, I think it's a shame that I never got to find out whether it'd fix my issues with the Veilguard's storytelling or not. Especially since it's just been revealed that an award-winning science fiction author was on board.</p><p>Derek Künsken is a science fiction author who has won an Asimov Reader's Award (from the Asimov Science Fiction magazine) in 2012 for The Way of the Needle. More recently in 2021, he also snagged an Aurora Award (from the Canadian SF and Fantasy Association) for Tool Use by the Humans of Danzhai County. He's often a finalist in these categories, too.</p><p>Künsken <a href="https://x.com/DerekKunsken/status/2113093927532150789" target="_blank">wrote on X</a>: "I have a weird announcement. On and off for the last five years, as a contract writer, and as a senior writer on staff, I've been hoping to be allowed to say where I worked. Today I finally got the green light: I've been working on the next Mass Effect.</p><p>"Unfortunately, the light turned green because BioWare is being shuttered. Over the coming weeks, I'll get more clarity on what I can say about what I did and saw and learned. I hope it's more than nothing—what we were cooking was really cool. I can say that everyone I met at BioWare was a decent human being, an expert in their field, and was ambitiously imaginative about what a future experience of Bioware could be. Working closely with Parrish Ley and Mary DeMarle will be highlights of my writing career."</p><p>I want to clarify my above cynicism: Even when I'm <a href="https://www.pcgamer.com/games/we-cant-keep-making-videogame-stories-for-players-who-arent-paying-attention-to-them/">critically tearing into a videogame</a> for its writing, I do so with the understanding that there's a huge gulf between what a writer puts in and what actually comes out. Videogames are monstrously complicated beasts, and sometimes development cycles are so terribly tangled that even solid authors can't spin a good yarn out of them.</p><p>For instance, writers who produce some of the best companions in RPGs (Tali'zorah, Mordin Solus, and Solas) don't turn around and <a href="https://www.pcgamer.com/games/dragon-age/dragon-age-the-veilguards-leap-forward-in-trans-inclusion-comes-from-a-heartfelt-place-but-its-problems-left-me-feeling-frustrated-angry-and-tired/">create a Taash</a> because they got hit very hard with a brick in between games and became bad at their job—more often than not, the structure of the studio has changed enough to make that job very hard. That David Gaider, the guy who made Dragon Age, <a href="https://www.pcgamer.com/former-dragon-age-lead-writer-claims-bioware-quietly-resented-its-writers/">left partially because he was done EA's increasing hostility towards the craft</a> makes me confident in that assumption.</p><p>All this to say, I don't know if Mass Effect 5 would've been an incredible story: But I will say it's a damn shame that none of the work Künsken put into it (a clearly talented science fiction writer in his own right) will have a chance to prove me wrong. Or the work of any of the game's writers, for that matter. </p><div class="product"><a data-dimension112="293022ca-ce20-11f1-9ec7-f51096dc4337" 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="293022ca-ce20-11f1-9ec7-f51096dc4337" 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/gaming-industry/what-we-were-cooking-was-really-cool-an-award-winning-science-fiction-author-was-working-on-mass-effect-5s-story/</link>
                                                                            <description>
                            <![CDATA[ What could've been. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VjD4suHssJrXPSJbpxNzL9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/F3eXTFDWsp68CubFBo3KVg-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 13:54:53 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Industry]]></category>
                                                                                                <author><![CDATA[ harvey.randall@futurenet.com (Harvey Randall) ]]></author>                    <dc:creator><![CDATA[ Harvey Randall ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Rws7mDGqrkaXrNKCH4jZ2D-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/F3eXTFDWsp68CubFBo3KVg-1920-80.jpg">
                                                            <media:credit><![CDATA[BioWare]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Mass Effect 4 teaser image]]></media:description>                                                            <media:text><![CDATA[Mass Effect 4 teaser image]]></media:text>
                                <media:title type="plain"><![CDATA[Mass Effect 4 teaser image]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/F3eXTFDWsp68CubFBo3KVg-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.pcgamer.com/gaming-industry/with-bioware-dead-ea-lays-out-its-next-chapter-and-its-pretty-much-as-predicted-guns-and-football-are-fine-and-everything-else-is-under-the-microscope/">Mass Effect 5 is officially cancelled</a> and <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">EA's shutting BioWare down</a>, putting an end to decades of some of the best RPGs in gaming—and while I don't have too much positive to say about BioWare's later run (Veilguard was a decent action RPG with a <a href="https://www.pcgamer.com/games/dragon-age/dragon-age-the-veilguards-story-does-get-better-but-its-clunky-script-makes-such-a-bad-first-impression-and-those-problems-never-quite-go-away/">story I couldn't stand</a>), much of that has to do with EA's management of it. </p><p>Regardless of my nervousness towards ME5, I think it's a shame that I never got to find out whether it'd fix my issues with the Veilguard's storytelling or not. Especially since it's just been revealed that an award-winning science fiction author was on board.</p><p>Derek Künsken is a science fiction author who has won an Asimov Reader's Award (from the Asimov Science Fiction magazine) in 2012 for The Way of the Needle. More recently in 2021, he also snagged an Aurora Award (from the Canadian SF and Fantasy Association) for Tool Use by the Humans of Danzhai County. He's often a finalist in these categories, too.</p><p>Künsken <a href="https://x.com/DerekKunsken/status/2113093927532150789" target="_blank">wrote on X</a>: "I have a weird announcement. On and off for the last five years, as a contract writer, and as a senior writer on staff, I've been hoping to be allowed to say where I worked. Today I finally got the green light: I've been working on the next Mass Effect.</p><p>"Unfortunately, the light turned green because BioWare is being shuttered. Over the coming weeks, I'll get more clarity on what I can say about what I did and saw and learned. I hope it's more than nothing—what we were cooking was really cool. I can say that everyone I met at BioWare was a decent human being, an expert in their field, and was ambitiously imaginative about what a future experience of Bioware could be. Working closely with Parrish Ley and Mary DeMarle will be highlights of my writing career."</p><p>I want to clarify my above cynicism: Even when I'm <a href="https://www.pcgamer.com/games/we-cant-keep-making-videogame-stories-for-players-who-arent-paying-attention-to-them/">critically tearing into a videogame</a> for its writing, I do so with the understanding that there's a huge gulf between what a writer puts in and what actually comes out. Videogames are monstrously complicated beasts, and sometimes development cycles are so terribly tangled that even solid authors can't spin a good yarn out of them.</p><p>For instance, writers who produce some of the best companions in RPGs (Tali'zorah, Mordin Solus, and Solas) don't turn around and <a href="https://www.pcgamer.com/games/dragon-age/dragon-age-the-veilguards-leap-forward-in-trans-inclusion-comes-from-a-heartfelt-place-but-its-problems-left-me-feeling-frustrated-angry-and-tired/">create a Taash</a> because they got hit very hard with a brick in between games and became bad at their job—more often than not, the structure of the studio has changed enough to make that job very hard. That David Gaider, the guy who made Dragon Age, <a href="https://www.pcgamer.com/former-dragon-age-lead-writer-claims-bioware-quietly-resented-its-writers/">left partially because he was done EA's increasing hostility towards the craft</a> makes me confident in that assumption.</p><p>All this to say, I don't know if Mass Effect 5 would've been an incredible story: But I will say it's a damn shame that none of the work Künsken put into it (a clearly talented science fiction writer in his own right) will have a chance to prove me wrong. Or the work of any of the game's writers, for that matter. </p><div class="product"><a data-dimension112="293022ca-ce20-11f1-9ec7-f51096dc4337" 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="293022ca-ce20-11f1-9ec7-f51096dc4337" 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[ Over '30 million rounds of PvE were played' over the last week in Arc Raiders but Embark still needs 'a bit of time to understand what the data is telling us' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Good things rarely last forever, as is the case with the iconic UK biscuit Happy Faces and now <a href="https://www.pcgamer.com/uk/arc-raiders/">Arc Raiders'</a> PvE test. We knew it wasn't going to last long as Embark announced that it would only stick around for a week, but it disappearing from the game still sucks. </p><p><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-pve-test-is-finally-here-and-its-the-perfect-reason-to-jump-back-in/">I loved the PvE test</a>, it was a lot of fun and a very nice alternative to what can be a quite intense PvP experience. I played both over the last week, and while I got better loot in PvP, it was nice jumping into PvE every now and then just to have a chill experience killing arc and running around a pretty map. </p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112530365399089225"><p lang="en" dir="ltr">The limited-time PvE matchmaking toggle test has ended - we want to thank everyone that came to take part and who provided us with valuable data and insights.More than 30 million rounds of PvE were played over the testing period - this gives us a huge amount of information to analyze! As such, we’re going to need a short period of time to dive into the numbers and draw out the insights.Check the blog link for a breakdown of the next steps, and submit your thoughts and feedback!https://t.co/1WnbyDq66T<a href="https://twitter.com/cantworkitout/status/2112530365399089225">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>So what's next? Well, now PvE is over Embark needs to figure out whether the whole ordeal was worth it or not and whether the team should bring it back. "More than 30 million rounds of PvE were played over the testing period," Embark says in an <a href="https://arcraiders.com/news/pve-test-thanks-for-playing" target="_blank">official blog post</a>. "This gives us a huge amount of information to analyse. As such, we're going to need a short period of time to dive into the numbers and draw out the insights." </p><p>Arc Raiders has certainly experienced a revival since the release of its major Frozen Trail update alongside the PvE test. The concurrent player count jumped from 50,000 to 185,000, Steam reviews are back to Mostly Positive and its recent Steam blog post announcing the PvE test got 17,000 upvotes compared to Frozen Trail's 7,000. PvE has been a massive hit, and I'd call it a success. </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="BksdJY7HdmdgDz36nV9DZZ" name="Arc Raiders Frozen Trail screenshots" alt="Arc Raiders Frozen Trail screenshots" src="https://cdn.mos.cms.futurecdn.net/BksdJY7HdmdgDz36nV9DZZ-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: Embark Studios)</span></figcaption></figure><p>But to ensure it gets the most up to date sentiments Embark is asking players to submit their opinions to the PvE-test-feedback channel in the <a href="https://discordapp.com/channels/1107589599045361695/1559498786290663585" target="_blank">official Discord</a>, as well as completing a survey that will be sent out to a few players from October 22. </p><p>"We need a bit of time to understand what the data is telling us, and what our community is saying," the blog post continues. "On a surface reading, we know that the test has been polarising. As always, our decision on how to proceed will prioritize the overall health and enjoyability of the game.  </p><p>"We don’t yet know what the outcome of the data analysis will be, but we expect to be able to follow up with further information in November." </p><p>I don't actually believe that this test is as polarising as Embark thinks it is. Because at the end of the day if this is what will bring players back to Arc Raiders then adding PvE is the only sensible way forward. Unfortunately, as it is with all live service games, once a game is out there in the wild it no longer belongs solely to the developers. PvE may not be the original intended experience, but if it's the one that will keep this game afloat then I say go for it. </p><div class="product"><a data-dimension112="756ffd18-ce1b-11f1-96ec-877bb412a0bc" data-action="Deal Block" data-label="Arc Raiders guide: What's hot this weekArc Raiders roadmap: New and improvedArc Raiders best skills: Survive the surfaceArc Raiders best weapons: Just don't lose themArc Raiders Expeditions: Retire your RaiderArc Raiders quests: All the missions and how to beat 'em Arc Raiders guide" data-dimension48="Arc Raiders guide: What's hot this weekArc Raiders roadmap: New and improvedArc Raiders best skills: Survive the surfaceArc Raiders best weapons: Just don't lose themArc Raiders Expeditions: Retire your RaiderArc Raiders quests: All the missions and how to beat 'em Arc Raiders guide" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1080px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="TCou4LpWxSUzfBu3QPeR6P" name="arc-raiders-boxout" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/TCou4LpWxSUzfBu3QPeR6P-1920-80.jpg" mos="" align="middle" fullscreen="" width="1080" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong></strong><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-guide/" target="_blank" data-dimension112="756ffd18-ce1b-11f1-96ec-877bb412a0bc" data-action="Deal Block" data-label="Arc Raiders guide: What's hot this weekArc Raiders roadmap: New and improvedArc Raiders best skills: Survive the surfaceArc Raiders best weapons: Just don't lose themArc Raiders Expeditions: Retire your RaiderArc Raiders quests: All the missions and how to beat 'em Arc Raiders guide" data-dimension48="Arc Raiders guide: What's hot this weekArc Raiders roadmap: New and improvedArc Raiders best skills: Survive the surfaceArc Raiders best weapons: Just don't lose themArc Raiders Expeditions: Retire your RaiderArc Raiders quests: All the missions and how to beat 'em Arc Raiders guide" data-dimension25=""><strong>Arc Raiders guide</strong></a>: What's hot this week<br><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-2025-roadmap/" target="_blank"><strong>Arc Raiders roadmap</strong></a>: New and improved<br><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-best-skills/" target="_blank"><strong>Arc Raiders best skills</strong></a>: Survive the surface<br><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-best-weapons-tier-list/" target="_blank"><strong>Arc Raiders best weapons</strong></a>: Just don't lose them<br><strong></strong><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-expeditions/" target="_blank"><strong>Arc Raiders Expeditions</strong></a>: Retire your Raider<br><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-quests-missions" target="_blank"><strong>Arc Raiders quests</strong></a>: All the missions and how to beat 'em</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/third-person-shooter/over-30-million-rounds-of-pve-were-played-over-the-last-week-in-arc-raiders-but-embark-still-needs-a-bit-of-time-to-understand-what-the-data-is-telling-us/</link>
                                                                            <description>
                            <![CDATA[ I'm very sad to see the tail end of PvE in Arc Raiders. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">avYxSxGXCk74pRViunu6uN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/RqU48Ce8fMUZhWnU5CV8bH-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 13:26:25 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Third Person Shooter]]></category>
                                                    <category><![CDATA[Games]]></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/RqU48Ce8fMUZhWnU5CV8bH-1920-80.jpg">
                                                            <media:credit><![CDATA[Embark Studios]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Arc Raiders Storm Hut - Man in mask]]></media:description>                                                            <media:text><![CDATA[Arc Raiders Storm Hut - Man in mask]]></media:text>
                                <media:title type="plain"><![CDATA[Arc Raiders Storm Hut - Man in mask]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/RqU48Ce8fMUZhWnU5CV8bH-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Good things rarely last forever, as is the case with the iconic UK biscuit Happy Faces and now <a href="https://www.pcgamer.com/uk/arc-raiders/">Arc Raiders'</a> PvE test. We knew it wasn't going to last long as Embark announced that it would only stick around for a week, but it disappearing from the game still sucks. </p><p><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-pve-test-is-finally-here-and-its-the-perfect-reason-to-jump-back-in/">I loved the PvE test</a>, it was a lot of fun and a very nice alternative to what can be a quite intense PvP experience. I played both over the last week, and while I got better loot in PvP, it was nice jumping into PvE every now and then just to have a chill experience killing arc and running around a pretty map. </p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112530365399089225"><p lang="en" dir="ltr">The limited-time PvE matchmaking toggle test has ended - we want to thank everyone that came to take part and who provided us with valuable data and insights.More than 30 million rounds of PvE were played over the testing period - this gives us a huge amount of information to analyze! As such, we’re going to need a short period of time to dive into the numbers and draw out the insights.Check the blog link for a breakdown of the next steps, and submit your thoughts and feedback!https://t.co/1WnbyDq66T<a href="https://twitter.com/cantworkitout/status/2112530365399089225">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>So what's next? Well, now PvE is over Embark needs to figure out whether the whole ordeal was worth it or not and whether the team should bring it back. "More than 30 million rounds of PvE were played over the testing period," Embark says in an <a href="https://arcraiders.com/news/pve-test-thanks-for-playing" target="_blank">official blog post</a>. "This gives us a huge amount of information to analyse. As such, we're going to need a short period of time to dive into the numbers and draw out the insights." </p><p>Arc Raiders has certainly experienced a revival since the release of its major Frozen Trail update alongside the PvE test. The concurrent player count jumped from 50,000 to 185,000, Steam reviews are back to Mostly Positive and its recent Steam blog post announcing the PvE test got 17,000 upvotes compared to Frozen Trail's 7,000. PvE has been a massive hit, and I'd call it a success. </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="BksdJY7HdmdgDz36nV9DZZ" name="Arc Raiders Frozen Trail screenshots" alt="Arc Raiders Frozen Trail screenshots" src="https://cdn.mos.cms.futurecdn.net/BksdJY7HdmdgDz36nV9DZZ-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: Embark Studios)</span></figcaption></figure><p>But to ensure it gets the most up to date sentiments Embark is asking players to submit their opinions to the PvE-test-feedback channel in the <a href="https://discordapp.com/channels/1107589599045361695/1559498786290663585" target="_blank">official Discord</a>, as well as completing a survey that will be sent out to a few players from October 22. </p><p>"We need a bit of time to understand what the data is telling us, and what our community is saying," the blog post continues. "On a surface reading, we know that the test has been polarising. As always, our decision on how to proceed will prioritize the overall health and enjoyability of the game.  </p><p>"We don’t yet know what the outcome of the data analysis will be, but we expect to be able to follow up with further information in November." </p><p>I don't actually believe that this test is as polarising as Embark thinks it is. Because at the end of the day if this is what will bring players back to Arc Raiders then adding PvE is the only sensible way forward. Unfortunately, as it is with all live service games, once a game is out there in the wild it no longer belongs solely to the developers. PvE may not be the original intended experience, but if it's the one that will keep this game afloat then I say go for it. </p><div class="product"><a data-dimension112="756ffd18-ce1b-11f1-96ec-877bb412a0bc" data-action="Deal Block" data-label="Arc Raiders guide: What's hot this weekArc Raiders roadmap: New and improvedArc Raiders best skills: Survive the surfaceArc Raiders best weapons: Just don't lose themArc Raiders Expeditions: Retire your RaiderArc Raiders quests: All the missions and how to beat 'em Arc Raiders guide" data-dimension48="Arc Raiders guide: What's hot this weekArc Raiders roadmap: New and improvedArc Raiders best skills: Survive the surfaceArc Raiders best weapons: Just don't lose themArc Raiders Expeditions: Retire your RaiderArc Raiders quests: All the missions and how to beat 'em Arc Raiders guide" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1080px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="TCou4LpWxSUzfBu3QPeR6P" name="arc-raiders-boxout" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/TCou4LpWxSUzfBu3QPeR6P-1920-80.jpg" mos="" align="middle" fullscreen="" width="1080" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong></strong><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-guide/" target="_blank" data-dimension112="756ffd18-ce1b-11f1-96ec-877bb412a0bc" data-action="Deal Block" data-label="Arc Raiders guide: What's hot this weekArc Raiders roadmap: New and improvedArc Raiders best skills: Survive the surfaceArc Raiders best weapons: Just don't lose themArc Raiders Expeditions: Retire your RaiderArc Raiders quests: All the missions and how to beat 'em Arc Raiders guide" data-dimension48="Arc Raiders guide: What's hot this weekArc Raiders roadmap: New and improvedArc Raiders best skills: Survive the surfaceArc Raiders best weapons: Just don't lose themArc Raiders Expeditions: Retire your RaiderArc Raiders quests: All the missions and how to beat 'em Arc Raiders guide" data-dimension25=""><strong>Arc Raiders guide</strong></a>: What's hot this week<br><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-2025-roadmap/" target="_blank"><strong>Arc Raiders roadmap</strong></a>: New and improved<br><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-best-skills/" target="_blank"><strong>Arc Raiders best skills</strong></a>: Survive the surface<br><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-best-weapons-tier-list/" target="_blank"><strong>Arc Raiders best weapons</strong></a>: Just don't lose them<br><strong></strong><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-expeditions/" target="_blank"><strong>Arc Raiders Expeditions</strong></a>: Retire your Raider<br><a href="https://www.pcgamer.com/games/third-person-shooter/arc-raiders-quests-missions" target="_blank"><strong>Arc Raiders quests</strong></a>: All the missions and how to beat 'em</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Redditor's mother-in-law finds missing Steam Deck on train, returns it to its rightful owner in a soap box nine months later ]]></title>
                                                                                                <dc:content><![CDATA[ <p>A redditor's mother-in-law found a <a href="https://www.pcgamer.com/steam-deck-oled-review/" target="_blank">Steam Deck OLED </a>on an Amtrak train—and ever since, the redditor has been trying to send it back to its rightful owner. Now it's finally on its way home. </p><p>Apparently, the redditor's mother-in-law found the device several months prior, but "she had no idea what to do with it or how to even turn it on. She just came to visit and handed it over to me this weekend."</p><p>The user, <a href="https://www.reddit.com/user/vgalz/submitted/" target="_blank">vgalz</a>, originally tried looking on the Steam, Steam Deck, and Amtrak subreddits to find the owner. Having no luck, they then reached out to Steam Support representatives, who said they couldn't connect the finder with the owner but did recommend reporting the missing Deck to local law enforcement. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>Vgalz also tried to befriend the owner on Steam, tried to log into their account to get their name, and commented on a Redditor's post who they believed owned the Deck, all to no avail. </p><p>It turns out that the original owner posted about their missing device on the Steam Deck subreddit, but it was missed because they made the <a href="https://www.reddit.com/r/SteamDeck/comments/1qga5nf/lost_my_steamdeck_in_alexandria/" target="_blank">post nine months ago</a>. </p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/SteamDeck/comments/1xc009c/final_update_the_steam_deck_that_was_lost_on_a">FINAL UPDATE: The Steam Deck that was lost on a train is on its way home!</a><figcaption><cite> from <a href="https://www.reddit.com/r/SteamDeck">r/SteamDeck</a></cite></figcaption></blockquote></figure><script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>And so, with the user found (and with the owner of the device verified), the redditor sent it back home in a hand soap box. </p><p>Vgalz says, "It took a little bit of effort but it feels amazingly good to have helped get this baby home"</p><p>They continue, "And to everyone reading.. if you get the opportunity to do a good deed for someone, please do. If everyone does the selfish thing every time, then the world just sucks. Everyone has the ability to be better than that. And it feels really good to do it."</p><p>In between the device being lost and being found again, the <a href="https://www.pcgamer.com/hardware/valves-steam-deck-price-jumps-by-nearly-50-percent-now-costs-usd949-for-a-1tb-model/" target="_blank">Steam Deck has seen a significant price increase</a>, with the 512 GB OLED model going from $549 to $789 and the 1 TB OLED model going from $649 to $949. That had to have made the loss sting even harder, but, it's always nice to see a happy ending. </p><p>And even Vgalz benefited from the situation, as a separate redditor gifted them a game as a reward for their kindness. Everyone involved, give yourselves a pat on the back. </p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/handheld-gaming-pcs/redditors-mother-in-law-finds-missing-steam-deck-on-train-returns-it-to-its-rightful-owner-in-a-soap-box-nine-months-later/</link>
                                                                            <description>
                            <![CDATA[ From Steam train to Steam pain to Steam gain. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">5xiyrVmtRrQBVd4rK6satV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/5Y6T5m3GaQ4mnGXcEPp8GK-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 12:18:18 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming PCs]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                    <category><![CDATA[Gaming PCs]]></category>
                                                                                                                    <dc:creator><![CDATA[ James Bentley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.&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/5Y6T5m3GaQ4mnGXcEPp8GK-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Deck OLED handheld PC]]></media:description>                                                            <media:text><![CDATA[Valve Steam Deck OLED handheld PC]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Deck OLED handheld PC]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/5Y6T5m3GaQ4mnGXcEPp8GK-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>A redditor's mother-in-law found a <a href="https://www.pcgamer.com/steam-deck-oled-review/" target="_blank">Steam Deck OLED </a>on an Amtrak train—and ever since, the redditor has been trying to send it back to its rightful owner. Now it's finally on its way home. </p><p>Apparently, the redditor's mother-in-law found the device several months prior, but "she had no idea what to do with it or how to even turn it on. She just came to visit and handed it over to me this weekend."</p><p>The user, <a href="https://www.reddit.com/user/vgalz/submitted/" target="_blank">vgalz</a>, originally tried looking on the Steam, Steam Deck, and Amtrak subreddits to find the owner. Having no luck, they then reached out to Steam Support representatives, who said they couldn't connect the finder with the owner but did recommend reporting the missing Deck to local law enforcement. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>Vgalz also tried to befriend the owner on Steam, tried to log into their account to get their name, and commented on a Redditor's post who they believed owned the Deck, all to no avail. </p><p>It turns out that the original owner posted about their missing device on the Steam Deck subreddit, but it was missed because they made the <a href="https://www.reddit.com/r/SteamDeck/comments/1qga5nf/lost_my_steamdeck_in_alexandria/" target="_blank">post nine months ago</a>. </p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/SteamDeck/comments/1xc009c/final_update_the_steam_deck_that_was_lost_on_a">FINAL UPDATE: The Steam Deck that was lost on a train is on its way home!</a><figcaption><cite> from <a href="https://www.reddit.com/r/SteamDeck">r/SteamDeck</a></cite></figcaption></blockquote></figure><script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>And so, with the user found (and with the owner of the device verified), the redditor sent it back home in a hand soap box. </p><p>Vgalz says, "It took a little bit of effort but it feels amazingly good to have helped get this baby home"</p><p>They continue, "And to everyone reading.. if you get the opportunity to do a good deed for someone, please do. If everyone does the selfish thing every time, then the world just sucks. Everyone has the ability to be better than that. And it feels really good to do it."</p><p>In between the device being lost and being found again, the <a href="https://www.pcgamer.com/hardware/valves-steam-deck-price-jumps-by-nearly-50-percent-now-costs-usd949-for-a-1tb-model/" target="_blank">Steam Deck has seen a significant price increase</a>, with the 512 GB OLED model going from $549 to $789 and the 1 TB OLED model going from $649 to $949. That had to have made the loss sting even harder, but, it's always nice to see a happy ending. </p><p>And even Vgalz benefited from the situation, as a separate redditor gifted them a game as a reward for their kindness. Everyone involved, give yourselves a pat on the back. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ As Final Fantasy 14's doors remain closed, surviving players are stepping in to keep everyone's crops alive ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The Final Fantasy 14 community is getting a real green thumb as it rolls up its sleeves to help water player gardens all over Eorzea.</p><p>In case you missed it, a huge security vulnerability in the programming language PHP has rendered websites across the internet into the dark as (presumably very tired) teams across the globe undertake emergency maintenance. That's extended to certain games, too, including Final Fantasy 14.</p><p>Square Enix suspended the MMO's login servers on October 21, leaving many unable to play. Only console players and those who are chronic AFKers (hello, it's me) were left in an eerily quiet game. The problem with having so many unable to log in? Well, Final Fantasy 14 has a gardening system for those with player housing. If you're growing crops, you need to make sure you're watering them. Leave them dry for too long? That'll be a big ol' Rest in Peace to your would-be harvest.</p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/ffxiv/comments/1xc16an/php_watering_service">PHP Watering Service</a><figcaption><cite> from <a href="https://www.reddit.com/r/ffxiv">r/ffxiv</a></cite></figcaption></blockquote></figure><script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>That's a problem in itself, but especially for one of its most popular crops: Thavnarian Onions. The seeds alone require cross-breeding, and then take a whole five days to grow. That's an awful lot of time and investment wasted if the crops die. </p><p>So it warmed my heart a little to see players who <em>are </em>able to hop into the game offering their watering services to those who remain locked out. A Reddit post called "<a href="https://www.reddit.com/r/ffxiv/s/tGPJEYS3um" target="_blank">PHP Watering Service</a>" cropped up overnight, allowing players to comment their house ward and plot (because Final Fantasy 14 is an insane game that doesn't have instanced housing) for unsundered green thumbs to go and tend to.</p><p>It's one of those real sweet moments of community coming together to lend a hand—watering other people's crops doesn't require any sort of special permissions, and it's a small act of kindness to ensure folks don't come back to the game to an onion famine. I even tried to lend a hand myself, but players have been <em>so </em>quick to jump in and assist that I haven't actually had the chance yet.</p><p>Square Enix has now said it expects to re-enable logins later today—as of writing, the game has been dark for many for around 18 hours. It's not exactly the longest outage videogames have ever seen, but it's been lovely to see how people come together in this game nevertheless.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/final-fantasy/as-final-fantasy-14s-doors-remain-closed-surviving-players-are-stepping-in-to-keep-everyones-crops-alive/</link>
                                                                            <description>
                            <![CDATA[ No onion famine today, please. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UyoNuZeufZHJU3wuBz5EWd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cuNMZFBwQRmqvHwvcLvqdX-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 12:04:49 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Final Fantasy]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[RPG]]></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/cuNMZFBwQRmqvHwvcLvqdX-1920-80.jpg">
                                                            <media:credit><![CDATA[Square Enix]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A Viera watering in Final Fantasy 14.]]></media:description>                                                            <media:text><![CDATA[A Viera watering in Final Fantasy 14.]]></media:text>
                                <media:title type="plain"><![CDATA[A Viera watering in Final Fantasy 14.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cuNMZFBwQRmqvHwvcLvqdX-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Final Fantasy 14 community is getting a real green thumb as it rolls up its sleeves to help water player gardens all over Eorzea.</p><p>In case you missed it, a huge security vulnerability in the programming language PHP has rendered websites across the internet into the dark as (presumably very tired) teams across the globe undertake emergency maintenance. That's extended to certain games, too, including Final Fantasy 14.</p><p>Square Enix suspended the MMO's login servers on October 21, leaving many unable to play. Only console players and those who are chronic AFKers (hello, it's me) were left in an eerily quiet game. The problem with having so many unable to log in? Well, Final Fantasy 14 has a gardening system for those with player housing. If you're growing crops, you need to make sure you're watering them. Leave them dry for too long? That'll be a big ol' Rest in Peace to your would-be harvest.</p><figure><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/ffxiv/comments/1xc16an/php_watering_service">PHP Watering Service</a><figcaption><cite> from <a href="https://www.reddit.com/r/ffxiv">r/ffxiv</a></cite></figcaption></blockquote></figure><script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><p>That's a problem in itself, but especially for one of its most popular crops: Thavnarian Onions. The seeds alone require cross-breeding, and then take a whole five days to grow. That's an awful lot of time and investment wasted if the crops die. </p><p>So it warmed my heart a little to see players who <em>are </em>able to hop into the game offering their watering services to those who remain locked out. A Reddit post called "<a href="https://www.reddit.com/r/ffxiv/s/tGPJEYS3um" target="_blank">PHP Watering Service</a>" cropped up overnight, allowing players to comment their house ward and plot (because Final Fantasy 14 is an insane game that doesn't have instanced housing) for unsundered green thumbs to go and tend to.</p><p>It's one of those real sweet moments of community coming together to lend a hand—watering other people's crops doesn't require any sort of special permissions, and it's a small act of kindness to ensure folks don't come back to the game to an onion famine. I even tried to lend a hand myself, but players have been <em>so </em>quick to jump in and assist that I haven't actually had the chance yet.</p><p>Square Enix has now said it expects to re-enable logins later today—as of writing, the game has been dark for many for around 18 hours. It's not exactly the longest outage videogames have ever seen, but it's been lovely to see how people come together in this game nevertheless.</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[ The iconic Windows fish screensaver was inspired by a dentist's office, which makes a lot of sense when you think about it ]]></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/M8sHVVZhVVA" allowfullscreen></iframe></div></div><p>If you've ever been to a dentist's office, there's a good chance you might associate them with little aquariums. Well, it turns out that link is also how we got the classic After Dark Fish screensaver that PC users enjoyed in the early '90s. </p><p>That's according to Ed Fries, co-founder of After Dark and former vice president of Game Publishing at Microsoft, who <a href="https://www.youtube.com/watch?v=M8sHVVZhVVA" target="_blank">spoke to Jesse Petrilla about it recently.</a> Reportedly, an artist approached Fries as she was working on a scene set in a dentist's office, and "she wanted to have an aquarium in it because there's always an aquarium in a dentist's office." </p><p>"And she said, is there any way I could have a little part of the screen and have fish move in it?" Fries supposedly told them, "I'm a video game programmer. I can make fish move on the screen. Give me the fish, and I'll make them move." </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>Fries made a looping animation for them, then went back to the artist to ask for some bigger fish characters they could use for "this crazy idea" they had. With the new larger fishes in hand, Fries then stayed late at the office and turned his entire screen into one big aquarium.</p><p>This screensaver started life as stills of fish moving, with parentheses on screen to mimic water moving, and o's to represent bubbles. Fries says that people in his office asked for copies of the screensaver, "and pretty soon when I'd go home at night, I'd see it running on all these computers around the office, which was fun. Anyway, that was kind of the start of my whole fish phase of my career, which I don't always talk about."</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:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nzbM5Eowe2EfYj8AGhzRA5" name="After Dark - Fish World screen saver 0-18 screenshot" alt="After Dark's fish screensaver" src="https://cdn.mos.cms.futurecdn.net/nzbM5Eowe2EfYj8AGhzRA5-1920-80.png" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: After Dark)</span></figcaption></figure><p>This screensaver led to the official After Dark fish screensaver that became synonymous with Windows screensavers in the '90s. Fries was hired full-time to work on Excel for Microsoft, and he decided to make the new screensaver while learning how to work in Windows. He then started work on a Mac version of the screensaver after a co-worker on the Microsoft Word team asked Fries to do it.</p><p>This co-worker then wrote a fish editor where users could customise their fish in their tanks. "There was a whole kind of group of people at Microsoft at that time, like an underground group that made useless games, useless stuff. That group, which I was part of, called themselves bogus software." </p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/the-iconic-windows-fish-screensaver-was-inspired-by-a-dentists-office-which-makes-a-lot-of-sense-when-you-think-about-it/</link>
                                                                            <description>
                            <![CDATA[ Top ten screensaver? ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">uKzqwc2wfiyHJqmZJWT38U</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/nzbM5Eowe2EfYj8AGhzRA5-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 10:58:33 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 12:29:07 +0000</updated>
                                                                                                                                            <category><![CDATA[Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ James Bentley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/nzbM5Eowe2EfYj8AGhzRA5-1920-80.png">
                                                            <media:credit><![CDATA[After Dark]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[After Dark&#039;s fish screensaver]]></media:description>                                                            <media:text><![CDATA[After Dark&#039;s fish screensaver]]></media:text>
                                <media:title type="plain"><![CDATA[After Dark&#039;s fish screensaver]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/nzbM5Eowe2EfYj8AGhzRA5-1920-80.png" />
                                                                                                                                                                    <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/M8sHVVZhVVA" allowfullscreen></iframe></div></div><p>If you've ever been to a dentist's office, there's a good chance you might associate them with little aquariums. Well, it turns out that link is also how we got the classic After Dark Fish screensaver that PC users enjoyed in the early '90s. </p><p>That's according to Ed Fries, co-founder of After Dark and former vice president of Game Publishing at Microsoft, who <a href="https://www.youtube.com/watch?v=M8sHVVZhVVA" target="_blank">spoke to Jesse Petrilla about it recently.</a> Reportedly, an artist approached Fries as she was working on a scene set in a dentist's office, and "she wanted to have an aquarium in it because there's always an aquarium in a dentist's office." </p><p>"And she said, is there any way I could have a little part of the screen and have fish move in it?" Fries supposedly told them, "I'm a video game programmer. I can make fish move on the screen. Give me the fish, and I'll make them move." </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>Fries made a looping animation for them, then went back to the artist to ask for some bigger fish characters they could use for "this crazy idea" they had. With the new larger fishes in hand, Fries then stayed late at the office and turned his entire screen into one big aquarium.</p><p>This screensaver started life as stills of fish moving, with parentheses on screen to mimic water moving, and o's to represent bubbles. Fries says that people in his office asked for copies of the screensaver, "and pretty soon when I'd go home at night, I'd see it running on all these computers around the office, which was fun. Anyway, that was kind of the start of my whole fish phase of my career, which I don't always talk about."</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:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nzbM5Eowe2EfYj8AGhzRA5" name="After Dark - Fish World screen saver 0-18 screenshot" alt="After Dark's fish screensaver" src="https://cdn.mos.cms.futurecdn.net/nzbM5Eowe2EfYj8AGhzRA5-1920-80.png" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: After Dark)</span></figcaption></figure><p>This screensaver led to the official After Dark fish screensaver that became synonymous with Windows screensavers in the '90s. Fries was hired full-time to work on Excel for Microsoft, and he decided to make the new screensaver while learning how to work in Windows. He then started work on a Mac version of the screensaver after a co-worker on the Microsoft Word team asked Fries to do it.</p><p>This co-worker then wrote a fish editor where users could customise their fish in their tanks. "There was a whole kind of group of people at Microsoft at that time, like an underground group that made useless games, useless stuff. That group, which I was part of, called themselves bogus software." </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Mass Effect's Amazon series is reportedly continuing after BioWare shutdown, which'll make an uncomfortable gravestone for the studio's work ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">BioWare has shut down</a>, and while that doesn't <em>inherently </em>mean we won't be seeing more Mass Effect—EA owns the rights to that IP—the next Mass Effect game's been cancelled, and I certainly wouldn't hold my breath for EA to make anything that <a href="https://www.pcgamer.com/gaming-industry/with-bioware-dead-ea-lays-out-its-next-chapter-and-its-pretty-much-as-predicted-guns-and-football-are-fine-and-everything-else-is-under-the-microscope/">isn't sports, Sims, or shooter</a> related in the near future. </p><p>According to <a href="https://www.ign.com/articles/mass-effect-tv-series-prime-video-bioware-closure" target="_blank">sources who spoke to IGN</a>, however, <a href="https://www.pcgamer.com/mass-effect-tv-show-cast-release-rumors/">the TV series</a>, which has been in the works at Prime Video since 2024, will still go ahead. It'll be set after the original trilogy, so it won't be quite so awkward as seeing Commander Shepherd making winks and nods to a series of games built by a slowly-dismantled studio, but still.</p><p>There's something deeply bittersweet about a videogame series arriving after the studio responsible for its creation has gone out of business. And perhaps reflective of how EA has treated BioWare itself—grabbing a studio known for making some of the best RPGs ever—and chipping away at it. Coasting on the good will from a studio it had precious little <a href="https://www.pcgamer.com/gaming-industry/eager-to-move-on-from-failure-ex-producer-mark-darrah-thinks-bioware-suffered-spinning-plates-for-ea-starving-itself-for-talent-as-it-ate-itself-alive-we-werent-getting-the-people/">interest in managing</a> and rarely gave a fair shot at doing what it was actually good at.</p><p>I mean, just look at Anthem. I could point to <a href="https://www.pcgamer.com/games/third-person-shooter/former-anthem-lead-producer-says-flying-in-biowares-doomed-live-action-shooter-is-proof-of-the-dysfunction-in-its-development-its-anthems-worst-feature-because-the-consequences-of-flying-arent-adequately-taken-into-account/">any number of developer tell-alls</a> that might suggest EA didn't know what to do with the studio it'd bought. Or former executive producer Mark Darrah, who <a href="https://www.pcgamer.com/games/dragon-age/ea-is-a-hedge-fund-with-a-videogame-hobby-former-dragon-age-boss-says-and-thats-why-he-reckons-the-series-is-probably-dead-and-buried/">said</a>: "Someone once described to me EA as a hedge fund with a videogame hobby that it wished it didn’t spend so much money on. And I think that remains true."</p><p>Dragon Age: The Veilguard itself went through development hell as a live service game, only to come out and meet with <a href="https://www.pcgamer.com/games/dragon-age/dragon-age-the-veilguard-review/">middling reviews</a>. I had plenty of negative things to say about it, but the fact we still got a semi-decent action RPG out of that slow-motion trainwreck is honestly commendable. The <a href="https://www.pcgamer.com/games/rpg/it-sure-sounds-like-ea-thinks-cutting-dragon-age-the-veilguards-live-service-components-was-a-mistake/">lesson EA seemingly took</a>, however, was that it should've committed to that live service vision than just… I don't know, having the studio famed for single-player RPGs make a single-player RPG from the get-go?</p><p>In this sense, the deal with Prime feels like the last wringing out of a nearly-dry towel. The final few drops of profitability to be had out of Mass Effect before a final nail is driven into its coffin and, in true EA fashion, if it <em>is </em>good, it'll be created by people who the publisher can't rightfully stake any claim or credit over. <a href="https://www.pcgamer.com/how-bioware-went-back-in-time-to-make-mass-effect-legendary-edition/">BioWare's legacy'll</a> live on less uncomfortably in the <a href="https://www.pcgamer.com/gaming-industry/cd-projekt-boss-pays-tribute-to-bioware-for-helping-bring-the-witcher-to-life-20-years-ago-bioware-has-been-a-massive-part-of-cdpr-history/">games it inspired</a>, though, of that I'm sure.</p><div class="product"><a data-dimension112="a57a98a2-ce06-11f1-ac2b-0b9279d9294c" 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="a57a98a2-ce06-11f1-ac2b-0b9279d9294c" 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/movies-tv/mass-effects-amazon-series-is-reportedly-continuing-after-bioware-shutdown-whichll-make-an-uncomfortable-gravestone-for-the-studios-work/</link>
                                                                            <description>
                            <![CDATA[ Here lies BioWare's sci-fi opera, you can tell because we put 'Mass Effect' on the gravestone. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DKCfKo2fjQG6rBMBUUcKTX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ncQwyMwrdc34veGSVsc8DP-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 10:52:44 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Movies & TV]]></category>
                                                                                                <author><![CDATA[ harvey.randall@futurenet.com (Harvey Randall) ]]></author>                    <dc:creator><![CDATA[ Harvey Randall ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Rws7mDGqrkaXrNKCH4jZ2D-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/ncQwyMwrdc34veGSVsc8DP-1920-80.jpg">
                                                            <media:credit><![CDATA[null]]></media:credit>
                                                                                                                                                                                                                                                                                                                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ncQwyMwrdc34veGSVsc8DP-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">BioWare has shut down</a>, and while that doesn't <em>inherently </em>mean we won't be seeing more Mass Effect—EA owns the rights to that IP—the next Mass Effect game's been cancelled, and I certainly wouldn't hold my breath for EA to make anything that <a href="https://www.pcgamer.com/gaming-industry/with-bioware-dead-ea-lays-out-its-next-chapter-and-its-pretty-much-as-predicted-guns-and-football-are-fine-and-everything-else-is-under-the-microscope/">isn't sports, Sims, or shooter</a> related in the near future. </p><p>According to <a href="https://www.ign.com/articles/mass-effect-tv-series-prime-video-bioware-closure" target="_blank">sources who spoke to IGN</a>, however, <a href="https://www.pcgamer.com/mass-effect-tv-show-cast-release-rumors/">the TV series</a>, which has been in the works at Prime Video since 2024, will still go ahead. It'll be set after the original trilogy, so it won't be quite so awkward as seeing Commander Shepherd making winks and nods to a series of games built by a slowly-dismantled studio, but still.</p><p>There's something deeply bittersweet about a videogame series arriving after the studio responsible for its creation has gone out of business. And perhaps reflective of how EA has treated BioWare itself—grabbing a studio known for making some of the best RPGs ever—and chipping away at it. Coasting on the good will from a studio it had precious little <a href="https://www.pcgamer.com/gaming-industry/eager-to-move-on-from-failure-ex-producer-mark-darrah-thinks-bioware-suffered-spinning-plates-for-ea-starving-itself-for-talent-as-it-ate-itself-alive-we-werent-getting-the-people/">interest in managing</a> and rarely gave a fair shot at doing what it was actually good at.</p><p>I mean, just look at Anthem. I could point to <a href="https://www.pcgamer.com/games/third-person-shooter/former-anthem-lead-producer-says-flying-in-biowares-doomed-live-action-shooter-is-proof-of-the-dysfunction-in-its-development-its-anthems-worst-feature-because-the-consequences-of-flying-arent-adequately-taken-into-account/">any number of developer tell-alls</a> that might suggest EA didn't know what to do with the studio it'd bought. Or former executive producer Mark Darrah, who <a href="https://www.pcgamer.com/games/dragon-age/ea-is-a-hedge-fund-with-a-videogame-hobby-former-dragon-age-boss-says-and-thats-why-he-reckons-the-series-is-probably-dead-and-buried/">said</a>: "Someone once described to me EA as a hedge fund with a videogame hobby that it wished it didn’t spend so much money on. And I think that remains true."</p><p>Dragon Age: The Veilguard itself went through development hell as a live service game, only to come out and meet with <a href="https://www.pcgamer.com/games/dragon-age/dragon-age-the-veilguard-review/">middling reviews</a>. I had plenty of negative things to say about it, but the fact we still got a semi-decent action RPG out of that slow-motion trainwreck is honestly commendable. The <a href="https://www.pcgamer.com/games/rpg/it-sure-sounds-like-ea-thinks-cutting-dragon-age-the-veilguards-live-service-components-was-a-mistake/">lesson EA seemingly took</a>, however, was that it should've committed to that live service vision than just… I don't know, having the studio famed for single-player RPGs make a single-player RPG from the get-go?</p><p>In this sense, the deal with Prime feels like the last wringing out of a nearly-dry towel. The final few drops of profitability to be had out of Mass Effect before a final nail is driven into its coffin and, in true EA fashion, if it <em>is </em>good, it'll be created by people who the publisher can't rightfully stake any claim or credit over. <a href="https://www.pcgamer.com/how-bioware-went-back-in-time-to-make-mass-effect-legendary-edition/">BioWare's legacy'll</a> live on less uncomfortably in the <a href="https://www.pcgamer.com/gaming-industry/cd-projekt-boss-pays-tribute-to-bioware-for-helping-bring-the-witcher-to-life-20-years-ago-bioware-has-been-a-massive-part-of-cdpr-history/">games it inspired</a>, though, of that I'm sure.</p><div class="product"><a data-dimension112="a57a98a2-ce06-11f1-ac2b-0b9279d9294c" 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="a57a98a2-ce06-11f1-ac2b-0b9279d9294c" 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[ Star Wars: The Old Republic lead writer calls out BioWare for snubbing the MMO ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Yesterday was a pretty bleak day for the videogame industry, as <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">BioWare announced the end of its more than 30-year run</a>. It's closing down and development on the next Mass Effect has ceased. For <a href="https://www.pcgamer.com/uk/star-wars-the-old-republic/" target="_blank">Star Wars: The Old Republic</a> lead writer Caitlin Sullivan Kelly, however, the announcement was upsetting for an additional reason: SWTOR was snubbed. </p><p>In BioWare's post, shared on social media, the studio listed Baldur's Gate, Neverwinter Nights, Star Wars: Knights of the Old Republic, Dragon Age, Mass Effect and Anthem. But not the MMO that's been running for nearly 15 years. </p><p>Quoting the announcement, Kelly said, "No mention of the game that's been going for almost 15 years, that supported the studio and all of its projects with income and manpower and time (sometimes to our own detriment). Heartbreaking."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113064547364057111"><p lang="en" dir="ltr">No mention of the game that's been going for almost fifteen years, that supported the studio and all of its projects with income and manpower and time (sometimes to our own detriment). Heartbreaking.<a href="https://twitter.com/cantworkitout/status/2113064547364057111">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>The desire to get recognition for hard work and maintaining a successful MMO when so many others have fallen by the wayside is entirely understandable, but there's important context that makes this seem less like a snub than is being implied. </p><p>While BioWare did create SWTOR and ran it for many years, it's now a Broadsword game and has been since 2023. Which is fortunate, because now it's safe from the impact of BioWare closing down. </p><p>Now, this alone should not preclude it from getting a mention. Baldur's Gate got a nod, even though the latest game in the series was developed by Larian and, like SWTOR, won't be affected by the studio's demise. </p><p>But I'd argue that most of the nods are for franchises, rather than individual games. It doesn't mention Dragon Age: Origins or Inquisition, either, just Dragon Age. Since KoTOR is in the list, that also covers SWTOR, which is technically a sequel. </p><p>It's not the only omission, either. It's wild that Anthem—a catastrophic failure that kicked off BioWare's worst era—got a nod and not Jade Empire. Sonic: Chronicles also doesn't get a look in, but that's perhaps a bit more understandable. </p><p>All that said, SWTOR absolutely deserves a shout out. Its creation was a vast undertaking, featuring more writing and voice work than any of BioWare's games before or after. And since then it's weathered so many storms and persevered. While it doesn't boast the player numbers of WoW or FF14, it's still undeniably been a success. It's also the one BioWare game that will continue even after the studio's demise. </p><p>So BioWare should have absolutely celebrated this feather in its cap, but I don't think it was snubbed. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="7c14cd02-ce06-11f1-9c24-b732aed1a3b4" 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="7c14cd02-ce06-11f1-9c24-b732aed1a3b4" 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/mmo/star-wars-the-old-republic-lead-writer-calls-out-bioware-for-snubbing-the-mmo/</link>
                                                                            <description>
                            <![CDATA[ The long-running MMO didn't get a mention when BioWare announced it was closing. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9ofkZ6P6EtCywZRFR7YnF9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VhX9aPj2cv9pvwxxepKE6C-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 10:51:53 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[MMO]]></category>
                                                    <category><![CDATA[Games]]></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>
                                                                                                                                <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/VhX9aPj2cv9pvwxxepKE6C-1920-80.jpg">
                                                            <media:credit><![CDATA[EA]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Master&#039;s Enigma update art]]></media:description>                                                            <media:text><![CDATA[The Master&#039;s Enigma update art]]></media:text>
                                <media:title type="plain"><![CDATA[The Master&#039;s Enigma update art]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VhX9aPj2cv9pvwxxepKE6C-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Yesterday was a pretty bleak day for the videogame industry, as <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">BioWare announced the end of its more than 30-year run</a>. It's closing down and development on the next Mass Effect has ceased. For <a href="https://www.pcgamer.com/uk/star-wars-the-old-republic/" target="_blank">Star Wars: The Old Republic</a> lead writer Caitlin Sullivan Kelly, however, the announcement was upsetting for an additional reason: SWTOR was snubbed. </p><p>In BioWare's post, shared on social media, the studio listed Baldur's Gate, Neverwinter Nights, Star Wars: Knights of the Old Republic, Dragon Age, Mass Effect and Anthem. But not the MMO that's been running for nearly 15 years. </p><p>Quoting the announcement, Kelly said, "No mention of the game that's been going for almost 15 years, that supported the studio and all of its projects with income and manpower and time (sometimes to our own detriment). Heartbreaking."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113064547364057111"><p lang="en" dir="ltr">No mention of the game that's been going for almost fifteen years, that supported the studio and all of its projects with income and manpower and time (sometimes to our own detriment). Heartbreaking.<a href="https://twitter.com/cantworkitout/status/2113064547364057111">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>The desire to get recognition for hard work and maintaining a successful MMO when so many others have fallen by the wayside is entirely understandable, but there's important context that makes this seem less like a snub than is being implied. </p><p>While BioWare did create SWTOR and ran it for many years, it's now a Broadsword game and has been since 2023. Which is fortunate, because now it's safe from the impact of BioWare closing down. </p><p>Now, this alone should not preclude it from getting a mention. Baldur's Gate got a nod, even though the latest game in the series was developed by Larian and, like SWTOR, won't be affected by the studio's demise. </p><p>But I'd argue that most of the nods are for franchises, rather than individual games. It doesn't mention Dragon Age: Origins or Inquisition, either, just Dragon Age. Since KoTOR is in the list, that also covers SWTOR, which is technically a sequel. </p><p>It's not the only omission, either. It's wild that Anthem—a catastrophic failure that kicked off BioWare's worst era—got a nod and not Jade Empire. Sonic: Chronicles also doesn't get a look in, but that's perhaps a bit more understandable. </p><p>All that said, SWTOR absolutely deserves a shout out. Its creation was a vast undertaking, featuring more writing and voice work than any of BioWare's games before or after. And since then it's weathered so many storms and persevered. While it doesn't boast the player numbers of WoW or FF14, it's still undeniably been a success. It's also the one BioWare game that will continue even after the studio's demise. </p><p>So BioWare should have absolutely celebrated this feather in its cap, but I don't think it was snubbed. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="7c14cd02-ce06-11f1-9c24-b732aed1a3b4" 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="7c14cd02-ce06-11f1-9c24-b732aed1a3b4" 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[ Best Black Friday controller deals ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If there's one thing I'm sure of this November, it's that there will be some great Black Friday controller deals going around. It's going to still be tough to get full systems, graphics cards, and especially memory and storage at big discounts, but there will be peripherals going for a song. That's particular exciting because things have been changing in controllers over the past year, and previous models are still quality, but will likely have big discounts attached to them.</p><p><strong>👉</strong><a href="https://www.pcgamer.com/black-friday-pc-gaming-deals/" target="_blank"><strong>All our favorite Black Friday PC gaming deals</strong></a><strong>👈</strong></p><p>When it comes to the key high-end technology of today, such as TMR sticks and Hall effect triggers, that isn't necessarily the preserve of the super-premium $200 controllers. Companies such as GameSir and Easy SMX have brought these features down into the mainstream and you can find some of the <a href="https://www.pcgamer.com/best-controller-for-pc-gaming/" target="_blank">best PC controllers</a> sporting them for bargain prices right now. </p><h2 id="where-to-find-the-best-black-friday-controller-deals">Where to find the best Black Friday controller deals</h2><ul><li><strong>Amazon: </strong><a href="https://www.amazon.com/s?k=controllers&crid=39ANCIZGH03O&sprefix=controller%2Caps%2C179&ref=nb_sb_noss_1" target="_blank"><strong>All the pads you could ever want</strong></a></li><li><strong>Walmart:</strong> <a href="https://www.walmart.com/search?q=controllers" target="_blank">Solid controllers, series savings</a></li><li><strong>Best Buy:</strong> <a href="https://www.bestbuy.com/site/searchpage.jsp?id=pcat17071&st=controllers" target="_blank">Big name pads with big value discounts</a></li><li><strong>Newegg:</strong> <a href="https://www.newegg.com/p/pl?d=controllers" target="_blank">Big savings on big brand controllers</a></li></ul><div class="vizualizer-embed"><iframe   srcdoc="<!DOCTYPE html><html><head>  <style>    #widget-t4n1495 *:not(svg):not(path) { box-sizing: border-box; }    #widget-t4n1495 h1, #widget-t4n1495 p, #widget-t4n1495 h3 { margin: 0; line-height: normal; }    body { margin: 0; background: transparent; font-family: ui-sans-serif, system-ui, sans-serif; }  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {  *, ::before, ::after, ::backdrop { --tw-translate-x: 0; --tw-translate-y: 0; --tw-translate-z: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scale-z: 1; --tw-rotate-x: initial; --tw-rotate-y: initial; --tw-rotate-z: initial; --tw-skew-x: initial; --tw-skew-y: initial; --tw-scroll-snap-strictness: proximity; --tw-space-y-reverse: 0; --tw-space-x-reverse: 0; --tw-divide-y-reverse: 0; --tw-border-style: solid; --tw-gradient-position: initial; --tw-gradient-from: #0000; --tw-gradient-via: #0000; --tw-gradient-to: #0000; --tw-gradient-stops: initial; --tw-gradient-via-stops: initial; --tw-gradient-from-position: 0%; --tw-gradient-via-position: 50%; --tw-gradient-to-position: 100%; --tw-leading: initial; --tw-font-weight: initial; --tw-tracking: initial; --tw-ordinal: initial; --tw-slashed-zero: initial; --tw-numeric-figure: initial; --tw-numeric-spacing: initial; --tw-numeric-fraction: initial; --tw-shadow: 0 0 #0000; --tw-shadow-color: initial; --tw-shadow-alpha: 100%; --tw-inset-shadow: 0 0 #0000; --tw-inset-shadow-color: initial; --tw-inset-shadow-alpha: 100%; --tw-ring-color: initial; --tw-ring-shadow: 0 0 #0000; --tw-inset-ring-color: initial; --tw-inset-ring-shadow: 0 0 #0000; --tw-ring-inset: initial; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-outline-style: solid; --tw-blur: initial; --tw-brightness: initial; --tw-contrast: initial; --tw-grayscale: initial; --tw-hue-rotate: initial; --tw-invert: initial; --tw-opacity: initial; --tw-saturate: initial; --tw-sepia: initial; --tw-drop-shadow: initial; --tw-drop-shadow-color: initial; --tw-drop-shadow-alpha: 100%; --tw-drop-shadow-size: initial; --tw-backdrop-blur: initial; --tw-backdrop-brightness: initial; --tw-backdrop-contrast: initial; --tw-backdrop-grayscale: initial; --tw-backdrop-hue-rotate: initial; --tw-backdrop-invert: initial; --tw-backdrop-opacity: initial; --tw-backdrop-saturate: initial; --tw-backdrop-sepia: initial; --tw-duration: initial; --tw-ease: initial; }}#widget-t4n1495, :host { --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-50: oklch(97.1% .013 17.38); --color-red-100: oklch(93.6% .032 17.717); --color-red-400: oklch(70.4% .191 22.216); --color-red-500: oklch(63.7% .237 25.331); --color-red-600: oklch(57.7% .245 27.325); --color-red-700: oklch(50.5% .213 27.518); --color-orange-50: oklch(98% .016 73.684); --color-orange-600: oklch(64.6% .222 41.116); --color-orange-700: oklch(55.3% .195 38.402); --color-amber-50: oklch(98.7% .022 95.277); --color-amber-600: oklch(66.6% .179 58.318); --color-amber-700: oklch(55.5% .163 48.998); --color-yellow-50: oklch(98.7% .026 102.212); --color-yellow-300: oklch(90.5% .182 98.111); --color-yellow-500: oklch(79.5% .184 86.047); --color-yellow-600: oklch(68.1% .162 75.834); --color-yellow-700: oklch(55.4% .135 66.442); --color-yellow-800: oklch(47.6% .114 61.907); --color-lime-700: oklch(53.2% .157 131.589); --color-green-50: oklch(98.2% .018 155.826); --color-green-100: oklch(96.2% .044 156.743); --color-green-400: oklch(79.2% .209 151.711); --color-green-500: oklch(72.3% .219 149.579); --color-green-600: oklch(62.7% .194 149.214); --color-green-700: oklch(52.7% .154 150.069); --color-teal-50: oklch(98.4% .014 180.72); --color-teal-600: oklch(60% .118 184.704); --color-teal-700: oklch(51.1% .096 186.391); --color-blue-50: oklch(97% .014 254.604); --color-blue-500: oklch(62.3% .214 259.815); --color-blue-600: oklch(54.6% .245 262.881); --color-blue-700: oklch(48.8% .243 264.376); --color-indigo-50: oklch(96.2% .018 272.314); --color-indigo-600: oklch(51.1% .262 276.966); --color-purple-50: oklch(97.7% .014 308.299); --color-purple-400: oklch(71.4% .203 305.504); --color-purple-600: oklch(55.8% .288 302.321); --color-purple-700: oklch(49.6% .265 301.924); --color-pink-600: oklch(59.2% .249 .584); --color-rose-50: oklch(96.9% .015 12.422); --color-rose-100: oklch(94.1% .03 12.58); --color-rose-500: oklch(64.5% .246 16.439); --color-rose-600: oklch(58.6% .253 17.585); --color-slate-50: oklch(98.4% .003 247.858); --color-slate-400: oklch(70.4% .04 256.788); --color-slate-500: oklch(55.4% .046 257.417); --color-slate-600: oklch(44.6% .043 257.281); --color-slate-900: oklch(20.8% .042 265.755); --color-gray-50: oklch(98.5% .002 247.839); --color-gray-100: oklch(96.7% .003 264.542); --color-gray-200: oklch(92.8% .006 264.531); --color-gray-300: oklch(87.2% .01 258.338); --color-gray-400: oklch(70.7% .022 261.325); --color-gray-500: oklch(55.1% .027 264.364); --color-gray-600: oklch(44.6% .03 256.802); --color-gray-700: oklch(37.3% .034 259.733); --color-gray-800: oklch(27.8% .033 256.848); --color-gray-900: oklch(21% .034 264.665); --color-gray-950: oklch(13% .028 261.692); --color-zinc-300: oklch(87.1% .006 286.286); --color-zinc-800: oklch(27.4% .006 286.033); --color-zinc-900: oklch(21% .006 285.885); --color-neutral-50: oklch(98.5% 0 0); --color-neutral-100: oklch(97% 0 0); --color-neutral-200: oklch(92.2% 0 0); --color-neutral-300: oklch(87% 0 0); --color-neutral-400: oklch(70.8% 0 0); --color-neutral-500: oklch(55.6% 0 0); --color-neutral-600: oklch(43.9% 0 0); --color-neutral-700: oklch(37.1% 0 0); --color-neutral-800: oklch(26.9% 0 0); --color-neutral-900: oklch(20.5% 0 0); --color-neutral-950: oklch(14.5% 0 0); --color-black: #000; --color-white: #fff; --spacing: 4px; --breakpoint-xl: 1280px; --container-sm: 384px; --container-md: 448px; --container-lg: 512px; --container-xl: 576px; --container-2xl: 672px; --container-4xl: 896px; --container-6xl: 1152px; --container-7xl: 1280px; --text-xs: 12px; --text-xs--line-height: calc(1 / .75); --text-sm: 14px; --text-sm--line-height: calc(1.25 / .875); --text-base: 16px; --text-base--line-height: 1.5; --text-lg: 18px; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 20px; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 24px; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 30px; --text-3xl--line-height: 1.2; --text-4xl: 36px; --text-4xl--line-height: calc(2.5 / 2.25); --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; --font-weight-black: 900; --tracking-tight: -.025em; --tracking-normal: 0em; --tracking-wide: .025em; --tracking-wider: .05em; --tracking-widest: .1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --radius-xs: 2px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 12px; --radius-2xl: 16px; --radius-3xl: 24px; --radius-4xl: 32px; --ease-in: cubic-bezier(.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, .2, 1); --ease-in-out: cubic-bezier(.4, 0, .2, 1); --animate-spin: spin 1s linear infinite; --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; --blur-sm: 8px; --default-transition-duration: .15s; --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1); --default-font-family: var(--font-sans); --default-mono-font-family: var(--font-mono); }*, ::after, ::before, ::backdrop { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }::file-selector-button { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }html, :host { text-size-adjust: 100%; tab-size: 4; line-height: 1.5; font-family: var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); font-feature-settings: var(--default-font-feature-settings,normal); font-variation-settings: var(--default-font-variation-settings,normal); -webkit-tap-highlight-color: transparent; }hr { height: 0px; color: inherit; border-top-width: 1px; }abbr:where([title]) { text-decoration: underline dotted; }h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }a { color: inherit; text-decoration: inherit; }b, strong { font-weight: bolder; }code, kbd, samp, pre { font-family: var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); font-feature-settings: var(--default-mono-font-feature-settings,normal); font-variation-settings: var(--default-mono-font-variation-settings,normal); font-size: 1em; }small { font-size: 80%; }sub, sup { vertical-align: baseline; font-size: 75%; line-height: 0; position: relative; }sub { bottom: -0.25em; }sup { top: -0.5em; }table { text-indent: 0px; border-color: inherit; border-collapse: collapse; }progress { vertical-align: baseline; }summary { display: list-item; }ol, ul, menu { list-style: none; }img, svg, video, canvas, audio, iframe, embed, object { vertical-align: middle; display: block; }img, video { max-width: 100%; height: auto; }button, input, select, optgroup, textarea { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }::file-selector-button { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }:where(select:is([multiple], [size])) optgroup { font-weight: bolder; }:where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; }::file-selector-button { margin-inline-end: 4px; }::placeholder { opacity: 1; }@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {  ::placeholder { color: currentcolor; }  @supports (color:color-mix(in lab,red,red)) {  ::placeholder { color: color-mix(currentcolor, transparent); }}}textarea { resize: vertical; }::-webkit-search-decoration { appearance: none; }::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; }::-webkit-datetime-edit { display: inline-flex; }::-webkit-datetime-edit-fields-wrapper { padding: 0px; }::-webkit-datetime-edit { padding-block: 0px; }::-webkit-datetime-edit-year-field { padding-block: 0px; }::-webkit-datetime-edit-month-field { padding-block: 0px; }::-webkit-datetime-edit-day-field { padding-block: 0px; }::-webkit-datetime-edit-hour-field { padding-block: 0px; }::-webkit-datetime-edit-minute-field { padding-block: 0px; }::-webkit-datetime-edit-second-field { padding-block: 0px; }::-webkit-datetime-edit-millisecond-field { padding-block: 0px; }::-webkit-datetime-edit-meridiem-field { padding-block: 0px; }::-webkit-calendar-picker-indicator { line-height: 1; }button, input:where([type="button"], [type="reset"], [type="submit"]) { appearance: button; }::file-selector-button { appearance: button; }::-webkit-inner-spin-button { height: auto; }::-webkit-outer-spin-button { height: auto; }[hidden]:where(:not([hidden="until-found"])) { display: none !important; }@layer components;.\@container { container-type: inline-size; }.pointer-events-auto { pointer-events: auto; }.pointer-events-none { pointer-events: none; }.collapse { visibility: collapse; }.invisible { visibility: hidden; }.visible { visibility: visible; }.sr-only { clip-path: inset(50%); white-space: nowrap; border-width: 0px; width: 1px; height: 1px; margin: -1px; padding: 0px; position: absolute; overflow: hidden; }.absolute { position: absolute; }.fixed { position: fixed; }.relative { position: relative; }.static { position: static; }.sticky { position: sticky; }.inset-0 { inset: calc(var(--spacing) * 0); }.top-0 { top: calc(var(--spacing) * 0); }.top-1 { top: calc(var(--spacing) * 1); }.top-1\/2 { top: 50%; }.top-3 { top: calc(var(--spacing) * 3); }.top-4 { top: calc(var(--spacing) * 4); }.top-\[76px\] { top: 76px; }.top-\[80px\] { top: 80px; }.top-auto { top: auto; }.top-full { top: 100%; }.-right-0, .right-0 { right: calc(var(--spacing) * 0); }.right-1 { right: calc(var(--spacing) * 1); }.right-2 { right: calc(var(--spacing) * 2); }.right-3 { right: calc(var(--spacing) * 3); }.right-4 { right: calc(var(--spacing) * 4); }.right-full { right: 100%; }.-bottom-0, .bottom-0 { bottom: calc(var(--spacing) * 0); }.bottom-3 { bottom: calc(var(--spacing) * 3); }.bottom-4 { bottom: calc(var(--spacing) * 4); }.bottom-full { bottom: 100%; }.-left-2 { left: calc(var(--spacing) * -2); }.left-0 { left: calc(var(--spacing) * 0); }.left-1 { left: calc(var(--spacing) * 1); }.left-1\/2 { left: 50%; }.left-2 { left: calc(var(--spacing) * 2); }.left-3 { left: calc(var(--spacing) * 3); }.left-4 { left: calc(var(--spacing) * 4); }.left-auto { left: auto; }.left-full { left: 100%; }.isolate { isolation: isolate; }.z-10 { z-index: 10; }.z-20 { z-index: 20; }.z-50 { z-index: 50; }.z-\[60\] { z-index: 60; }.z-\[99\] { z-index: 99; }.z-\[100\] { z-index: 100; }.z-\[9999\] { z-index: 9999; }.z-\[10000\] { z-index: 10000; }.z-\[10001\] { z-index: 10001; }.z-\[var\(--burger-btn-z-index\,1\)\] { z-index: var(--burger-btn-z-index,1); }.order-first { order: -9999; }.col-span-2 { grid-column: span 2 / span 2; }.col-span-3 { grid-column: span 3 / span 3; }.col-span-7 { grid-column: span 7 / span 7; }.col-span-10 { grid-column: span 10 / span 10; }.row-3 { grid-row: 3; }.row-4 { grid-row: 4; }.float-end { float: inline-end; }.float-left { float: left; }.float-start { float: inline-start; }.clear-both { clear: both; }.clear-left { clear: left; }.container { width: 100%; }@media (min-width: 640px) {  .container { max-width: 640px; }}@media (min-width: 768px) {  .container { max-width: 768px; }}@media (min-width: 1024px) {  .container { max-width: 1024px; }}@media (min-width: 1280px) {  .container { max-width: 1280px; }}@media (min-width: 1536px) {  .container { max-width: 1536px; }}.m-0 { margin: calc(var(--spacing) * 0); }.m-1 { margin: calc(var(--spacing) * 1); }.m-4 { margin: calc(var(--spacing) * 4); }.m-auto { margin: auto; }.-mx-4 { margin-inline: calc(var(--spacing) * -4); }.mx-0 { margin-inline: calc(var(--spacing) * 0); }.mx-1 { margin-inline: calc(var(--spacing) * 1); }.mx-2 { margin-inline: calc(var(--spacing) * 2); }.mx-4 { margin-inline: calc(var(--spacing) * 4); }.mx-auto { margin-inline: auto; }.-my-2 { margin-block: calc(var(--spacing) * -2); }.my-0 { margin-block: calc(var(--spacing) * 0); }.my-1 { margin-block: calc(var(--spacing) * 1); }.my-2 { margin-block: calc(var(--spacing) * 2); }.my-3 { margin-block: calc(var(--spacing) * 3); }.my-4 { margin-block: calc(var(--spacing) * 4); }.my-5 { margin-block: calc(var(--spacing) * 5); }.my-6 { margin-block: calc(var(--spacing) * 6); }.my-7 { margin-block: calc(var(--spacing) * 7); }.my-8 { margin-block: calc(var(--spacing) * 8); }.my-10 { margin-block: calc(var(--spacing) * 10); }.my-auto { margin-block: auto; }.ms-4 { margin-inline-start: calc(var(--spacing) * 4); }.me-2 { margin-inline-end: calc(var(--spacing) * 2); }.prose { color: var(--tw-prose-#widget-t4n1495); max-width: 65ch; }.prose :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }.prose :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-lead); margin-top: 1.2em; margin-bottom: 1.2em; font-size: 1.25em; line-height: 1.6; }.prose :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-links); font-weight: 500; text-decoration: underline; }.prose :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600; }.prose :where(a strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(blockquote strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(thead th strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; list-style-type: decimal; }.prose :where(ol[type="A"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where(ol[type="a"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-alpha; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-alpha; }.prose :where(ol[type="I"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-roman; }.prose :where(ol[type="i"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-roman; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-roman; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-roman; }.prose :where(ol[type="1"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: decimal; }.prose :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; list-style-type: disc; }.prose :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { color: var(--tw-prose-counters); font-weight: 400; }.prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { color: var(--tw-prose-bullets); }.prose :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.25em; font-weight: 600; }.prose :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-top: 3em; margin-bottom: 3em; }.prose :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-quotes); border-inline-start-width: 4px; border-inline-start-color: var(--tw-prose-quote-borders); quotes: "“" "”" "‘" "’"; margin-top: 1.6em; margin-bottom: 1.6em; padding-inline-start: 1em; font-style: italic; font-weight: 500; }.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::before { content: open-quote; }.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: close-quote; }.prose :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 0px; margin-bottom: 0.888889em; font-size: 2.25em; font-weight: 800; line-height: 1.11111; }.prose :where(h1 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 900; }.prose :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 2em; margin-bottom: 1em; font-size: 1.5em; font-weight: 700; line-height: 1.33333; }.prose :where(h2 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 800; }.prose :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.6em; margin-bottom: 0.6em; font-size: 1.25em; font-weight: 600; line-height: 1.6; }.prose :where(h3 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 700; }.prose :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.5em; margin-bottom: 0.5em; font-weight: 600; line-height: 1.5; }.prose :where(h4 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 700; }.prose :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; display: block; }.prose :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-kbd); box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows); padding-top: 0.1875em; padding-inline: 0.375em; padding-bottom: 0.1875em; border-radius: 5px; font-family: inherit; font-size: 0.875em; font-weight: 500; }.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-code); font-size: 0.875em; font-weight: 600; }.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: "`"; }.prose :where(a code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h1 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-size: 0.875em; }.prose :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-size: 0.9em; }.prose :where(h4 code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(blockquote code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(thead th code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-pre-code); background-color: var(--tw-prose-pre-bg); padding-top: 0.857143em; padding-inline: 1.14286em; padding-bottom: 0.857143em; border-radius: 6px; margin-top: 1.71429em; margin-bottom: 1.71429em; font-size: 0.875em; font-weight: 400; line-height: 1.71429; overflow-x: auto; }.prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit; background-color: rgba(0, 0, 0, 0); border-width: 0px; border-radius: 0px; padding: 0px; }.prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: none; }.prose :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { table-layout: auto; width: 100%; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.71429; }.prose :where(thead):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders); }.prose :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); vertical-align: bottom; padding-inline: 0.571429em; padding-bottom: 0.571429em; font-weight: 600; }.prose :where(t#widget-t4n1495 tr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); }.prose :where(t#widget-t4n1495 tr:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 0px; }.prose :where(t#widget-t4n1495 td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { vertical-align: baseline; }.prose :where(tfoot):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-top-width: 1px; border-top-color: var(--tw-prose-th-borders); }.prose :where(tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { vertical-align: top; }.prose :where(th, td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { text-align: start; }.prose :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-captions); margin-top: 0.857143em; font-size: 0.875em; line-height: 1.42857; }.prose { --tw-prose-#widget-t4n1495: oklch(37.3% .034 259.733); --tw-prose-headings: oklch(21% .034 264.665); --tw-prose-lead: oklch(44.6% .03 256.802); --tw-prose-links: oklch(21% .034 264.665); --tw-prose-bold: oklch(21% .034 264.665); --tw-prose-counters: oklch(55.1% .027 264.364); --tw-prose-bullets: oklch(87.2% .01 258.338); --tw-prose-hr: oklch(92.8% .006 264.531); --tw-prose-quotes: oklch(21% .034 264.665); --tw-prose-quote-borders: oklch(92.8% .006 264.531); --tw-prose-captions: oklch(55.1% .027 264.364); --tw-prose-kbd: oklch(21% .034 264.665); --tw-prose-kbd-shadows: oklab(21% -.00316127 -.0338527/.1); --tw-prose-code: oklch(21% .034 264.665); --tw-prose-pre-code: oklch(92.8% .006 264.531); --tw-prose-pre-bg: oklch(27.8% .033 256.848); --tw-prose-th-borders: oklch(87.2% .01 258.338); --tw-prose-td-borders: oklch(92.8% .006 264.531); --tw-prose-invert-#widget-t4n1495: oklch(87.2% .01 258.338); --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: oklch(70.7% .022 261.325); --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: oklch(70.7% .022 261.325); --tw-prose-invert-bullets: oklch(44.6% .03 256.802); --tw-prose-invert-hr: oklch(37.3% .034 259.733); --tw-prose-invert-quotes: oklch(96.7% .003 264.542); --tw-prose-invert-quote-borders: oklch(37.3% .034 259.733); --tw-prose-invert-captions: oklch(70.7% .022 261.325); --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: #ffffff1a; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: oklch(87.2% .01 258.338); --tw-prose-invert-pre-bg: #00000080; --tw-prose-invert-th-borders: oklch(44.6% .03 256.802); --tw-prose-invert-td-borders: oklch(37.3% .034 259.733); font-size: 16px; line-height: 1.75; }.prose :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; }.prose :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0.375em; }.prose :where(.prose > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; }.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; }.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }.prose :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }.prose :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.5em; padding-inline-start: 1.625em; }.prose :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose :where(t#widget-t4n1495 td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.571429em; padding-inline: 0.571429em; padding-bottom: 0.571429em; }.prose :where(t#widget-t4n1495 td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose :where(t#widget-t4n1495 td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose :where(.prose > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 0px; }.prose-lg { font-size: 18px; line-height: 1.77778; }.prose-lg :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }.prose-lg :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.09091em; margin-bottom: 1.09091em; font-size: 1.22222em; line-height: 1.45455; }.prose-lg :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 1.66667em; padding-inline-start: 1em; }.prose-lg :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0.833333em; font-size: 2.66667em; line-height: 1; }.prose-lg :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.86667em; margin-bottom: 1.06667em; font-size: 1.66667em; line-height: 1.33333; }.prose-lg :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 0.666667em; font-size: 1.33333em; line-height: 1.5; }.prose-lg :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 0.444444em; line-height: 1.55556; }.prose-lg :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose-lg :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.222222em; padding-inline: 0.444444em; padding-bottom: 0.222222em; border-radius: 5px; font-size: 0.888889em; }.prose-lg :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.888889em; }.prose-lg :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.866667em; }.prose-lg :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.875em; }.prose-lg :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 1em; padding-inline: 1.5em; padding-bottom: 1em; border-radius: 6px; margin-top: 2em; margin-bottom: 2em; font-size: 0.888889em; line-height: 1.75; }.prose-lg :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; padding-inline-start: 1.55556em; }.prose-lg :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.666667em; margin-bottom: 0.666667em; }.prose-lg :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0.444444em; }.prose-lg :where(.prose-lg > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }.prose-lg :where(.prose-lg > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(.prose-lg > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.33333em; }.prose-lg :where(.prose-lg > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(.prose-lg > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.33333em; }.prose-lg :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }.prose-lg :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }.prose-lg :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.666667em; padding-inline-start: 1.55556em; }.prose-lg :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 3.11111em; margin-bottom: 3.11111em; }.prose-lg :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose-lg :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.888889em; line-height: 1.5; }.prose-lg :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline: 0.75em; padding-bottom: 0.75em; }.prose-lg :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose-lg :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose-lg :where(t#widget-t4n1495 td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.75em; padding-inline: 0.75em; padding-bottom: 0.75em; }.prose-lg :where(t#widget-t4n1495 td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose-lg :where(t#widget-t4n1495 td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose-lg :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose-lg :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1em; font-size: 0.888889em; line-height: 1.5; }.prose-lg :where(.prose-lg > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose-lg :where(.prose-lg > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 0px; }.mt-0 { margin-top: calc(var(--spacing) * 0); }.mt-1 { margin-top: calc(var(--spacing) * 1); }.mt-2 { margin-top: calc(var(--spacing) * 2); }.mt-3 { margin-top: calc(var(--spacing) * 3); }.mt-4 { margin-top: calc(var(--spacing) * 4); }.mt-5 { margin-top: calc(var(--spacing) * 5); }.mt-6 { margin-top: calc(var(--spacing) * 6); }.mt-7 { margin-top: calc(var(--spacing) * 7); }.mt-8 { margin-top: calc(var(--spacing) * 8); }.mt-10 { margin-top: calc(var(--spacing) * 10); }.mt-auto { margin-top: auto; }.-mr-1 { margin-right: calc(var(--spacing) * -1); }.mr-0 { margin-right: calc(var(--spacing) * 0); }.mr-1 { margin-right: calc(var(--spacing) * 1); }.mr-1\.5 { margin-right: calc(var(--spacing) * 1.5); }.mr-2 { margin-right: calc(var(--spacing) * 2); }.mr-3 { margin-right: calc(var(--spacing) * 3); }.mr-4 { margin-right: calc(var(--spacing) * 4); }.mr-5 { margin-right: calc(var(--spacing) * 5); }.mr-8 { margin-right: calc(var(--spacing) * 8); }.mr-auto { margin-right: auto; }.mb-0 { margin-bottom: calc(var(--spacing) * 0); }.mb-1 { margin-bottom: calc(var(--spacing) * 1); }.mb-2 { margin-bottom: calc(var(--spacing) * 2); }.mb-3 { margin-bottom: calc(var(--spacing) * 3); }.mb-4 { margin-bottom: calc(var(--spacing) * 4); }.mb-5 { margin-bottom: calc(var(--spacing) * 5); }.mb-6 { margin-bottom: calc(var(--spacing) * 6); }.mb-7 { margin-bottom: calc(var(--spacing) * 7); }.mb-8 { margin-bottom: calc(var(--spacing) * 8); }.mb-10 { margin-bottom: calc(var(--spacing) * 10); }.-ml-1 { margin-left: calc(var(--spacing) * -1); }.-ml-2 { margin-left: calc(var(--spacing) * -2); }.-ml-5 { margin-left: calc(var(--spacing) * -5); }.ml-0 { margin-left: calc(var(--spacing) * 0); }.ml-0\.5 { margin-left: calc(var(--spacing) * .5); }.ml-1 { margin-left: calc(var(--spacing) * 1); }.ml-2 { margin-left: calc(var(--spacing) * 2); }.ml-3 { margin-left: calc(var(--spacing) * 3); }.ml-4 { margin-left: calc(var(--spacing) * 4); }.ml-6 { margin-left: calc(var(--spacing) * 6); }.ml-8 { margin-left: calc(var(--spacing) * 8); }.ml-auto { margin-left: auto; }.box-border { box-sizing: border-box; }.line-clamp-2 { -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }.line-clamp-3 { -webkit-line-clamp: 3; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }.block { display: block; }.contents { display: contents; }.flex { display: flex; }.flow-root { display: flow-root; }.grid { display: grid; }.hidden { display: none; }.inline { display: inline; }.inline-block { display: inline-block; }.inline-flex { display: inline-flex; }.table { display: table; }.table-row { display: table-row; }.aspect-square { aspect-ratio: 1 / 1; }.size-1 { width: calc(var(--spacing) * 1); height: calc(var(--spacing) * 1); }.size-1\.5 { width: calc(var(--spacing) * 1.5); height: calc(var(--spacing) * 1.5); }.size-2 { width: calc(var(--spacing) * 2); height: calc(var(--spacing) * 2); }.size-3 { width: calc(var(--spacing) * 3); height: calc(var(--spacing) * 3); }.size-4 { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); }.size-5 { width: calc(var(--spacing) * 5); height: calc(var(--spacing) * 5); }.size-6 { width: calc(var(--spacing) * 6); height: calc(var(--spacing) * 6); }.size-7 { width: calc(var(--spacing) * 7); height: calc(var(--spacing) * 7); }.size-8 { width: calc(var(--spacing) * 8); height: calc(var(--spacing) * 8); }.size-9 { width: calc(var(--spacing) * 9); height: calc(var(--spacing) * 9); }.size-10 { width: calc(var(--spacing) * 10); height: calc(var(--spacing) * 10); }.size-12 { width: calc(var(--spacing) * 12); height: calc(var(--spacing) * 12); }.size-16 { width: calc(var(--spacing) * 16); height: calc(var(--spacing) * 16); }.size-20 { width: calc(var(--spacing) * 20); height: calc(var(--spacing) * 20); }.size-40 { width: calc(var(--spacing) * 40); height: calc(var(--spacing) * 40); }.size-full { width: 100%; height: 100%; }.h-1 { height: calc(var(--spacing) * 1); }.h-1\.5 { height: calc(var(--spacing) * 1.5); }.h-2 { height: calc(var(--spacing) * 2); }.h-3 { height: calc(var(--spacing) * 3); }.h-4 { height: calc(var(--spacing) * 4); }.h-5 { height: calc(var(--spacing) * 5); }.h-6 { height: calc(var(--spacing) * 6); }.h-7 { height: calc(var(--spacing) * 7); }.h-8 { height: calc(var(--spacing) * 8); }.h-9 { height: calc(var(--spacing) * 9); }.h-10 { height: calc(var(--spacing) * 10); }.h-12 { height: calc(var(--spacing) * 12); }.h-14 { height: calc(var(--spacing) * 14); }.h-16 { height: calc(var(--spacing) * 16); }.h-20 { height: calc(var(--spacing) * 20); }.h-24 { height: calc(var(--spacing) * 24); }.h-28 { height: calc(var(--spacing) * 28); }.h-64 { height: calc(var(--spacing) * 64); }.h-\[30px\] { height: 30px; }.h-\[40px\] { height: 40px; }.h-\[44px\] { height: 44px; }.h-\[76px\] { height: 76px; }.h-\[600px\] { height: 600px; }.h-\[var\(--logo-height-mobile\,25px\)\] { height: var(--logo-height-mobile,25px); }.h-\[var\(--site-header-height\,60px\)\] { height: var(--site-header-height,60px); }.h-auto { height: auto; }.h-fit { height: fit-content; }.h-full { height: 100%; }.h-min { height: min-content; }.h-px { height: 1px; }.h-screen { height: 100vh; }.max-h-0 { max-height: calc(var(--spacing) * 0); }.max-h-6 { max-height: calc(var(--spacing) * 6); }.max-h-12 { max-height: calc(var(--spacing) * 12); }.max-h-32 { max-height: calc(var(--spacing) * 32); }.max-h-80 { max-height: calc(var(--spacing) * 80); }.max-h-\[90vh\] { max-height: 90vh; }.max-h-\[var\(--logo-height-mobile\,25px\)\] { max-height: var(--logo-height-mobile,25px); }.min-h-8 { min-height: calc(var(--spacing) * 8); }.min-h-10 { min-height: calc(var(--spacing) * 10); }.min-h-\[400px\] { min-height: 400px; }.min-h-full { min-height: 100%; }.min-h-screen { min-height: 100vh; }.w-0 { width: calc(var(--spacing) * 0); }.w-1 { width: calc(var(--spacing) * 1); }.w-1\.5 { width: calc(var(--spacing) * 1.5); }.w-1\/3 { width: 33.3333%; }.w-1\/4 { width: 25%; }.w-2 { width: calc(var(--spacing) * 2); }.w-3 { width: calc(var(--spacing) * 3); }.w-4 { width: calc(var(--spacing) * 4); }.w-5 { width: calc(var(--spacing) * 5); }.w-6 { width: calc(var(--spacing) * 6); }.w-8 { width: calc(var(--spacing) * 8); }.w-9 { width: calc(var(--spacing) * 9); }.w-10 { width: calc(var(--spacing) * 10); }.w-12 { width: calc(var(--spacing) * 12); }.w-16 { width: calc(var(--spacing) * 16); }.w-20 { width: calc(var(--spacing) * 20); }.w-24 { width: calc(var(--spacing) * 24); }.w-28 { width: calc(var(--spacing) * 28); }.w-32 { width: calc(var(--spacing) * 32); }.w-36 { width: calc(var(--spacing) * 36); }.w-40 { width: calc(var(--spacing) * 40); }.w-44 { width: calc(var(--spacing) * 44); }.w-48 { width: calc(var(--spacing) * 48); }.w-56 { width: calc(var(--spacing) * 56); }.w-64 { width: calc(var(--spacing) * 64); }.w-\[140px\] { width: 140px; }.w-auto { width: auto; }.w-fit { width: fit-content; }.w-full { width: 100%; }.w-max { width: max-content; }.w-px { width: 1px; }.w-screen { width: 100vw; }.max-w-2xl { max-width: var(--container-2xl); }.max-w-4xl { max-width: var(--container-4xl); }.max-w-6xl { max-width: var(--container-6xl); }.max-w-7xl { max-width: var(--container-7xl); }.max-w-32 { max-width: calc(var(--spacing) * 32); }.max-w-40 { max-width: calc(var(--spacing) * 40); }.max-w-64 { max-width: calc(var(--spacing) * 64); }.max-w-\[960px\] { max-width: 960px; }.max-w-\[65ch\] { max-width: 65ch; }.max-w-\[1200px\] { max-width: 1200px; }.max-w-\[min\(var\(--site-header-max-width\,970px\)\,98dvw\)\] { max-width: min(var(--site-header-max-width,970px),98dvw); }.max-w-full { max-width: 100%; }.max-w-lg { max-width: var(--container-lg); }.max-w-md { max-width: var(--container-md); }.max-w-none { max-width: none; }.max-w-screen-xl { max-width: var(--breakpoint-xl); }.max-w-sm { max-width: var(--container-sm); }.max-w-xl { max-width: var(--container-xl); }.min-w-0 { min-width: calc(var(--spacing) * 0); }.min-w-8 { min-width: calc(var(--spacing) * 8); }.min-w-10 { min-width: calc(var(--spacing) * 10); }.min-w-16 { min-width: calc(var(--spacing) * 16); }.min-w-20 { min-width: calc(var(--spacing) * 20); }.min-w-36 { min-width: calc(var(--spacing) * 36); }.min-w-40 { min-width: calc(var(--spacing) * 40); }.min-w-52 { min-width: calc(var(--spacing) * 52); }.min-w-\[800px\] { min-width: 800px; }.min-w-\[var\(--tray-bell-min-width\,40px\)\] { min-width: var(--tray-bell-min-width,40px); }.min-w-full { min-width: 100%; }.flex-0 { flex: 0 1 0%; }.flex-1 { flex: 1 1 0%; }.flex-none { flex: 0 0 auto; }.flex-shrink { flex-shrink: 1; }.flex-shrink-0 { flex-shrink: 0; }.shrink { flex-shrink: 1; }.shrink-0 { flex-shrink: 0; }.flex-grow, .grow { flex-grow: 1; }.grow-0 { flex-grow: 0; }.basis-1 { flex-basis: calc(var(--spacing) * 1); }.basis-2 { flex-basis: calc(var(--spacing) * 2); }.basis-3 { flex-basis: calc(var(--spacing) * 3); }.basis-11 { flex-basis: calc(var(--spacing) * 11); }.basis-13 { flex-basis: calc(var(--spacing) * 13); }.basis-auto { flex-basis: auto; }.basis-full { flex-basis: 100%; }.border-collapse { border-collapse: collapse; }.origin-center { transform-origin: 50% center; }.origin-top-right { transform-origin: 100% 0px; }.-translate-x-1 { --tw-translate-x: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-x-1\/2 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-x-2 { --tw-translate-x: calc(var(--spacing) * -2); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-x-0 { --tw-translate-x: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-x-4 { --tw-translate-x: calc(var(--spacing) * 4); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-1 { --tw-translate-y: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-1\/2 { --tw-translate-y: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-full { --tw-translate-y: -100%; translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-0 { --tw-translate-y: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-4 { --tw-translate-y: calc(var(--spacing) * 4); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-full { --tw-translate-y: 100%; translate: var(--tw-translate-x) var(--tw-translate-y); }.scale-95 { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); }.scale-100 { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); }.-rotate-90 { rotate: -90deg; }.rotate-90 { rotate: 90deg; }.rotate-180 { rotate: 180deg; }.transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); }.animate-pulse { animation: var(--animate-pulse); }.animate-spin { animation: var(--animate-spin); }.cursor-default { cursor: default; }.cursor-not-allowed { cursor: not-allowed; }.cursor-pointer { cursor: pointer; }.resize { resize: both; }.resize-y { resize: vertical; }.snap-x { scroll-snap-type: x var(--tw-scroll-snap-strictness); }.snap-mandatory { --tw-scroll-snap-strictness: mandatory; }.snap-start { scroll-snap-align: start; }.list-outside { list-style-position: outside; }.list-disc { list-style-type: disc; }.list-none { list-style-type: none; }.appearance-none { appearance: none; }.grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }.grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }.grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }.grid-rows-2 { grid-template-rows: repeat(2, minmax(0px, 1fr)); }.flex-col { flex-direction: column; }.flex-row { flex-direction: row; }.flex-row-reverse { flex-direction: row-reverse; }.flex-nowrap { flex-wrap: nowrap; }.flex-wrap { flex-wrap: wrap; }.place-items-center { place-items: center; }.content-around { align-content: space-around; }.content-center { align-content: center; }.content-stretch { align-content: stretch; }.items-baseline { align-items: baseline; }.items-center { align-items: center; }.items-end { align-items: flex-end; }.items-start { align-items: flex-start; }.items-stretch { align-items: stretch; }.justify-between { justify-content: space-between; }.justify-center { justify-content: center; }.justify-end { justify-content: flex-end; }.justify-start { justify-content: flex-start; }.gap-0 { gap: calc(var(--spacing) * 0); }.gap-1 { gap: calc(var(--spacing) * 1); }.gap-1\.5 { gap: calc(var(--spacing) * 1.5); }.gap-2 { gap: calc(var(--spacing) * 2); }.gap-2\.5 { gap: calc(var(--spacing) * 2.5); }.gap-3 { gap: calc(var(--spacing) * 3); }.gap-4 { gap: calc(var(--spacing) * 4); }.gap-5 { gap: calc(var(--spacing) * 5); }.gap-6 { gap: calc(var(--spacing) * 6); }.gap-8 { gap: calc(var(--spacing) * 8); }.gap-\[var\(--site-header-gap\,0\10.4px\)\] { gap: var(--site-header-gap,10.4px); }.gap-px { gap: 1px; }:where(.space-y-1 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))); }.gap-x-1 { column-gap: calc(var(--spacing) * 1); }.gap-x-3 { column-gap: calc(var(--spacing) * 3); }.gap-x-4 { column-gap: calc(var(--spacing) * 4); }.gap-x-5 { column-gap: calc(var(--spacing) * 5); }.gap-x-8 { column-gap: calc(var(--spacing) * 8); }.gap-x-10 { column-gap: calc(var(--spacing) * 10); }:where(.space-x-3 > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse))); }.gap-y-1 { row-gap: calc(var(--spacing) * 1); }.gap-y-2 { row-gap: calc(var(--spacing) * 2); }.gap-y-3 { row-gap: calc(var(--spacing) * 3); }.gap-y-4 { row-gap: calc(var(--spacing) * 4); }.gap-y-6 { row-gap: calc(var(--spacing) * 6); }.gap-y-12 { row-gap: calc(var(--spacing) * 12); }:where(.divide-y > :not(:last-child)) { --tw-divide-y-reverse: 0; border-bottom-style: var(--tw-border-style); border-top-style: var(--tw-border-style); border-top-width: calc(1px * var(--tw-divide-y-reverse)); border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); }:where(.divide-neutral-100 > :not(:last-child)) { border-color: var(--color-neutral-100); }:where(.divide-white > :not(:last-child)) { border-color: var(--color-white); }.self-center { align-self: center; }.self-start { align-self: flex-start; }.truncate { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }.overflow-auto { overflow: auto; }.overflow-hidden { overflow: hidden; }.overflow-visible { overflow: visible; }.overflow-x-auto { overflow-x: auto; }.overflow-x-hidden { overflow-x: hidden; }.overflow-x-scroll { overflow-x: scroll; }.overflow-y-auto { overflow-y: auto; }.overflow-y-clip { overflow-y: clip; }.overflow-y-hidden { overflow-y: hidden; }.overflow-y-visible { overflow-y: visible; }.overscroll-x-contain { overscroll-behavior-x: contain; }.scroll-smooth { scroll-behavior: smooth; }.rounded { border-radius: 4px; }.rounded-2xl { border-radius: var(--radius-2xl); }.rounded-3xl { border-radius: var(--radius-3xl); }.rounded-4xl { border-radius: var(--radius-4xl); }.rounded-\[50\%\] { border-radius: 50%; }.rounded-\[var\(--image--border-radius\,0\)\] { border-radius: var(--image--border-radius,0); }.rounded-full { border-radius: 3.40282e+38px; }.rounded-lg { border-radius: var(--radius-lg); }.rounded-md { border-radius: var(--radius-md); }.rounded-none { border-radius: 0px; }.rounded-sm { border-radius: var(--radius-sm); }.rounded-xl { border-radius: var(--radius-xl); }.rounded-xs { border-radius: var(--radius-xs); }.rounded-t-2xl { border-top-left-radius: var(--radius-2xl); border-top-right-radius: var(--radius-2xl); }.rounded-l-full { border-top-left-radius: 3.40282e+38px; border-bottom-left-radius: 3.40282e+38px; }.rounded-tl-lg { border-top-left-radius: var(--radius-lg); }.rounded-r-full { border-top-right-radius: 3.40282e+38px; border-bottom-right-radius: 3.40282e+38px; }.rounded-tr-lg { border-top-right-radius: var(--radius-lg); }.rounded-b-none { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; }.rounded-br-lg { border-bottom-right-radius: var(--radius-lg); }.rounded-bl-lg { border-bottom-left-radius: var(--radius-lg); }.border { border-style: var(--tw-border-style); border-width: 1px; }.border-0 { border-style: var(--tw-border-style); border-width: 0px; }.border-1 { border-style: var(--tw-border-style); border-width: 1px; }.border-2 { border-style: var(--tw-border-style); border-width: 2px; }.border-8 { border-style: var(--tw-border-style); border-width: 8px; }.border-x-0 { border-inline-style: var(--tw-border-style); border-inline-width: 0px; }.border-y { border-block-style: var(--tw-border-style); border-block-width: 1px; }.border-y-0 { border-block-style: var(--tw-border-style); border-block-width: 0px; }.border-y-2 { border-block-style: var(--tw-border-style); border-block-width: 2px; }.border-t { border-top-style: var(--tw-border-style); border-top-width: 1px; }.border-t-2 { border-top-style: var(--tw-border-style); border-top-width: 2px; }.border-r { border-right-style: var(--tw-border-style); border-right-width: 1px; }.border-r-0 { border-right-style: var(--tw-border-style); border-right-width: 0px; }.border-b { border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; }.border-b-0 { border-bottom-style: var(--tw-border-style); border-bottom-width: 0px; }.border-b-2 { border-bottom-style: var(--tw-border-style); border-bottom-width: 2px; }.border-l { border-left-style: var(--tw-border-style); border-left-width: 1px; }.border-dashed { --tw-border-style: dashed; border-style: dashed; }.border-none { --tw-border-style: none; border-style: none; }.border-solid { --tw-border-style: solid; border-style: solid; }.border-\(--footer-nav-border-color\) { border-color: var(--footer-nav-border-color); }.border-\[\#DC1F26\] { border-color: rgb(220, 31, 38); }.border-black { border-color: var(--color-black); }.border-gray-100 { border-color: var(--color-gray-100); }.border-gray-200 { border-color: var(--color-gray-200); }.border-gray-300 { border-color: var(--color-gray-300); }.border-gray-400 { border-color: var(--color-gray-400); }.border-gray-500 { border-color: var(--color-gray-500); }.border-gray-600 { border-color: var(--color-gray-600); }.border-gray-700 { border-color: var(--color-gray-700); }.border-gray-800 { border-color: var(--color-gray-800); }.border-green-600 { border-color: var(--color-green-600); }.border-neutral-100 { border-color: var(--color-neutral-100); }.border-neutral-200 { border-color: var(--color-neutral-200); }.border-neutral-300 { border-color: var(--color-neutral-300); }.border-red-600 { border-color: var(--color-red-600); }.border-rose-100 { border-color: var(--color-rose-100); }.border-slate-600 { border-color: var(--color-slate-600); }.border-transparent { border-color: rgba(0, 0, 0, 0); }.border-white { border-color: var(--color-white); }.border-yellow-300 { border-color: var(--color-yellow-300); }.border-yellow-500 { border-color: var(--color-yellow-500); }.border-t-black { border-top-color: var(--color-black); }.border-t-neutral-500 { border-top-color: var(--color-neutral-500); }.border-r-neutral-100 { border-right-color: var(--color-neutral-100); }.border-r-neutral-200 { border-right-color: var(--color-neutral-200); }.border-b-black { border-bottom-color: var(--color-black); }.border-b-neutral-200 { border-bottom-color: var(--color-neutral-200); }.border-b-neutral-300 { border-bottom-color: var(--color-neutral-300); }.border-l-neutral-200 { border-left-color: var(--color-neutral-200); }.bg-\(--footer-bg-color\) { background-color: var(--footer-bg-color); }.bg-\[\#33333370\] { background-color: rgba(51, 51, 51, 0.44); }.bg-\[\#DC1F26\] { background-color: rgb(220, 31, 38); }.bg-\[\#ededed\] { background-color: rgb(237, 237, 237); }.bg-\[var\(--region-redirect-banner-background\,var\(--brand-color-1\)\)\] { background-color: var(--region-redirect-banner-background,var(--brand-color-1)); }.bg-\[var\(--site-header-background-color\,white\)\] { background-color: var(--site-header-background-color,white); }.bg-amber-50 { background-color: var(--color-amber-50); }.bg-black { background-color: var(--color-black); }.bg-blue-50 { background-color: var(--color-blue-50); }.bg-gray-50 { background-color: var(--color-gray-50); }.bg-gray-100 { background-color: var(--color-gray-100); }.bg-gray-200 { background-color: var(--color-gray-200); }.bg-gray-300 { background-color: var(--color-gray-300); }.bg-gray-500 { background-color: var(--color-gray-500); }.bg-gray-500\/75 { background-color: rgba(106, 114, 130, 0.75); }@supports (color:color-mix(in lab,red,red)) {  .bg-gray-500\/75 { background-color: color-mix(in oklab,var(--color-gray-500) 75%,transparent); }}.bg-gray-800 { background-color: var(--color-gray-800); }.bg-gray-900 { background-color: var(--color-gray-900); }.bg-gray-950 { background-color: var(--color-gray-950); }.bg-green-50 { background-color: var(--color-green-50); }.bg-green-100 { background-color: var(--color-green-100); }.bg-green-500 { background-color: var(--color-green-500); }.bg-green-600 { background-color: var(--color-green-600); }.bg-inherit { background-color: inherit; }.bg-neutral-50 { background-color: var(--color-neutral-50); }.bg-neutral-50\/50 { background-color: rgba(250, 250, 250, 0.5); }@supports (color:color-mix(in lab,red,red)) {  .bg-neutral-50\/50 { background-color: color-mix(in oklab,var(--color-neutral-50) 50%,transparent); }}.bg-neutral-100 { background-color: var(--color-neutral-100); }.bg-neutral-200 { background-color: var(--color-neutral-200); }.bg-neutral-300 { background-color: var(--color-neutral-300); }.bg-neutral-500 { background-color: var(--color-neutral-500); }.bg-neutral-600 { background-color: var(--color-neutral-600); }.bg-neutral-800 { background-color: var(--color-neutral-800); }.bg-neutral-900 { background-color: var(--color-neutral-900); }.bg-neutral-900\/40 { background-color: rgba(23, 23, 23, 0.4); }@supports (color:color-mix(in lab,red,red)) {  .bg-neutral-900\/40 { background-color: color-mix(in oklab,var(--color-neutral-900) 40%,transparent); }}.bg-neutral-950 { background-color: var(--color-neutral-950); }.bg-orange-50 { background-color: var(--color-orange-50); }.bg-purple-50 { background-color: var(--color-purple-50); }.bg-red-50 { background-color: var(--color-red-50); }.bg-red-100 { background-color: var(--color-red-100); }.bg-red-500 { background-color: var(--color-red-500); }.bg-red-600 { background-color: var(--color-red-600); }.bg-rose-50 { background-color: var(--color-rose-50); }.bg-rose-500 { background-color: var(--color-rose-500); }.bg-slate-50 { background-color: var(--color-slate-50); }.bg-slate-500 { background-color: var(--color-slate-500); }.bg-slate-900 { background-color: var(--color-slate-900); }.bg-teal-50 { background-color: var(--color-teal-50); }.bg-transparent { background-color: rgba(0, 0, 0, 0); }.bg-white { background-color: var(--color-white); }.bg-yellow-50 { background-color: var(--color-yellow-50); }.bg-yellow-500 { background-color: var(--color-yellow-500); }.bg-zinc-300 { background-color: var(--color-zinc-300); }.bg-zinc-800 { background-color: var(--color-zinc-800); }.bg-zinc-900 { background-color: var(--color-zinc-900); }.bg-gradient-to-l { --tw-gradient-position: to left in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }.bg-gradient-to-t { --tw-gradient-position: to top in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }.bg-none { background-image: none; }.from-gray-100 { --tw-gradient-from: var(--color-gray-100); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.from-gray-950 { --tw-gradient-from: var(--color-gray-950); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.from-white { --tw-gradient-from: var(--color-white); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-gray-200 { --tw-gradient-to: var(--color-gray-200); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-gray-800 { --tw-gradient-to: var(--color-gray-800); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-transparent { --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.bg-cover { background-size: cover; }.bg-center { background-position: 50% center; }.bg-repeat { background-repeat: repeat; }.fill-gray-500 { fill: var(--color-gray-500); }.fill-white { fill: var(--color-white); }.object-contain { object-fit: contain; }.object-cover { object-fit: cover; }.object-center { object-position: center center; }.p-0 { padding: calc(var(--spacing) * 0); }.p-1 { padding: calc(var(--spacing) * 1); }.p-1\.5 { padding: calc(var(--spacing) * 1.5); }.p-2 { padding: calc(var(--spacing) * 2); }.p-3 { padding: calc(var(--spacing) * 3); }.p-4 { padding: calc(var(--spacing) * 4); }.p-5 { padding: calc(var(--spacing) * 5); }.p-6 { padding: calc(var(--spacing) * 6); }.p-8 { padding: calc(var(--spacing) * 8); }.px-0 { padding-inline: calc(var(--spacing) * 0); }.px-1 { padding-inline: calc(var(--spacing) * 1); }.px-2 { padding-inline: calc(var(--spacing) * 2); }.px-2\.5 { padding-inline: calc(var(--spacing) * 2.5); }.px-3 { padding-inline: calc(var(--spacing) * 3); }.px-4 { padding-inline: calc(var(--spacing) * 4); }.px-5 { padding-inline: calc(var(--spacing) * 5); }.px-6 { padding-inline: calc(var(--spacing) * 6); }.px-8 { padding-inline: calc(var(--spacing) * 8); }.px-12 { padding-inline: calc(var(--spacing) * 12); }.py-0 { padding-block: calc(var(--spacing) * 0); }.py-0\.5 { padding-block: calc(var(--spacing) * .5); }.py-1 { padding-block: calc(var(--spacing) * 1); }.py-1\.5 { padding-block: calc(var(--spacing) * 1.5); }.py-2 { padding-block: calc(var(--spacing) * 2); }.py-2\.5 { padding-block: calc(var(--spacing) * 2.5); }.py-3 { padding-block: calc(var(--spacing) * 3); }.py-4 { padding-block: calc(var(--spacing) * 4); }.py-5 { padding-block: calc(var(--spacing) * 5); }.py-6 { padding-block: calc(var(--spacing) * 6); }.py-7 { padding-block: calc(var(--spacing) * 7); }.py-8 { padding-block: calc(var(--spacing) * 8); }.py-10 { padding-block: calc(var(--spacing) * 10); }.py-12 { padding-block: calc(var(--spacing) * 12); }.py-24 { padding-block: calc(var(--spacing) * 24); }.pt-1 { padding-top: calc(var(--spacing) * 1); }.pt-2 { padding-top: calc(var(--spacing) * 2); }.pt-3 { padding-top: calc(var(--spacing) * 3); }.pt-4 { padding-top: calc(var(--spacing) * 4); }.pt-5 { padding-top: calc(var(--spacing) * 5); }.pt-6 { padding-top: calc(var(--spacing) * 6); }.pt-7 { padding-top: calc(var(--spacing) * 7); }.pt-8 { padding-top: calc(var(--spacing) * 8); }.pr-0 { padding-right: calc(var(--spacing) * 0); }.pr-1 { padding-right: calc(var(--spacing) * 1); }.pr-2 { padding-right: calc(var(--spacing) * 2); }.pr-3 { padding-right: calc(var(--spacing) * 3); }.pr-4 { padding-right: calc(var(--spacing) * 4); }.pr-5 { padding-right: calc(var(--spacing) * 5); }.pr-6 { padding-right: calc(var(--spacing) * 6); }.pr-8 { padding-right: calc(var(--spacing) * 8); }.pr-10 { padding-right: calc(var(--spacing) * 10); }.pr-12 { padding-right: calc(var(--spacing) * 12); }.pb-0 { padding-bottom: calc(var(--spacing) * 0); }.pb-1 { padding-bottom: calc(var(--spacing) * 1); }.pb-2 { padding-bottom: calc(var(--spacing) * 2); }.pb-3 { padding-bottom: calc(var(--spacing) * 3); }.pb-4 { padding-bottom: calc(var(--spacing) * 4); }.pb-5 { padding-bottom: calc(var(--spacing) * 5); }.pb-6 { padding-bottom: calc(var(--spacing) * 6); }.pb-8 { padding-bottom: calc(var(--spacing) * 8); }.pb-12 { padding-bottom: calc(var(--spacing) * 12); }.pb-\[var\(--strapline-padding-bottom\,12px\)\] { padding-bottom: var(--strapline-padding-bottom,12px); }.pl-0 { padding-left: calc(var(--spacing) * 0); }.pl-1 { padding-left: calc(var(--spacing) * 1); }.pl-1\.5 { padding-left: calc(var(--spacing) * 1.5); }.pl-2 { padding-left: calc(var(--spacing) * 2); }.pl-3 { padding-left: calc(var(--spacing) * 3); }.pl-4 { padding-left: calc(var(--spacing) * 4); }.pl-8 { padding-left: calc(var(--spacing) * 8); }.pl-9 { padding-left: calc(var(--spacing) * 9); }.pl-12 { padding-left: calc(var(--spacing) * 12); }.text-center { text-align: center; }.text-left { text-align: left; }.text-right { text-align: right; }.-indent-0 { text-indent: calc(var(--spacing) * 0); }.align-middle { vertical-align: middle; }.align-text-top { vertical-align: text-top; }.align-top { vertical-align: top; }.font-mono { font-family: var(--font-mono); }.font-sans { font-family: var(--font-sans); }.font-serif { font-family: var(--font-serif); }.text-2xl { font-size: var(--text-2xl); line-height: var(--tw-leading,var(--text-2xl--line-height)); }.text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }.text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }.text-base { font-size: var(--text-base); line-height: var(--tw-leading,var(--text-base--line-height)); }.text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }.text-sm { font-size: var(--text-sm); line-height: var(--tw-leading,var(--text-sm--line-height)); }.text-xl { font-size: var(--text-xl); line-height: var(--tw-leading,var(--text-xl--line-height)); }.text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }.text-\[10px\] { font-size: 10px; }.text-\[11px\] { font-size: 11px; }.text-\[length\:var\(--strapline-font-size\,13px\)\] { font-size: var(--strapline-font-size,13px); }.leading-2 { --tw-leading: calc(var(--spacing) * 2); line-height: calc(var(--spacing) * 2); }.leading-3 { --tw-leading: calc(var(--spacing) * 3); line-height: calc(var(--spacing) * 3); }.leading-4 { --tw-leading: calc(var(--spacing) * 4); line-height: calc(var(--spacing) * 4); }.leading-5 { --tw-leading: calc(var(--spacing) * 5); line-height: calc(var(--spacing) * 5); }.leading-6 { --tw-leading: calc(var(--spacing) * 6); line-height: calc(var(--spacing) * 6); }.leading-7 { --tw-leading: calc(var(--spacing) * 7); line-height: calc(var(--spacing) * 7); }.leading-8 { --tw-leading: calc(var(--spacing) * 8); line-height: calc(var(--spacing) * 8); }.leading-10 { --tw-leading: calc(var(--spacing) * 10); line-height: calc(var(--spacing) * 10); }.leading-none { --tw-leading: 1; line-height: 1; }.leading-normal { --tw-leading: var(--leading-normal); line-height: var(--leading-normal); }.leading-relaxed { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }.leading-snug { --tw-leading: var(--leading-snug); line-height: var(--leading-snug); }.leading-tight { --tw-leading: var(--leading-tight); line-height: var(--leading-tight); }.font-black { --tw-font-weight: var(--font-weight-black); font-weight: var(--font-weight-black); }.font-bold { --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); }.font-extrabold { --tw-font-weight: var(--font-weight-extrabold); font-weight: var(--font-weight-extrabold); }.font-medium { --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); }.font-normal { --tw-font-weight: var(--font-weight-normal); font-weight: var(--font-weight-normal); }.font-semibold { --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); }.tracking-normal { --tw-tracking: var(--tracking-normal); letter-spacing: var(--tracking-normal); }.tracking-tight { --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); }.tracking-wide { --tw-tracking: var(--tracking-wide); letter-spacing: var(--tracking-wide); }.tracking-wider { --tw-tracking: var(--tracking-wider); letter-spacing: var(--tracking-wider); }.tracking-widest { --tw-tracking: var(--tracking-widest); letter-spacing: var(--tracking-widest); }.text-nowrap { text-wrap: nowrap; }.text-wrap { text-wrap: wrap; }.break-words { overflow-wrap: break-word; }.text-ellipsis { text-overflow: ellipsis; }.whitespace-break-spaces { white-space: break-spaces; }.whitespace-normal { white-space: normal; }.whitespace-nowrap { white-space: nowrap; }.whitespace-pre { white-space: pre; }.text-\(--footer-text-color\) { color: var(--footer-text-color); }.text-\[\#DC1F26\] { color: rgb(220, 31, 38); }.text-\[var\(--site-header-text-color\,\#333\)\] { color: var(--site-header-text-color,#333); }.text-amber-700 { color: var(--color-amber-700); }.text-black { color: var(--color-black); }.text-blue-500 { color: var(--color-blue-500); }.text-blue-700 { color: var(--color-blue-700); }.text-current { color: currentcolor; }.text-gray-50 { color: var(--color-gray-50); }.text-gray-100 { color: var(--color-gray-100); }.text-gray-200 { color: var(--color-gray-200); }.text-gray-300 { color: var(--color-gray-300); }.text-gray-400 { color: var(--color-gray-400); }.text-gray-500 { color: var(--color-gray-500); }.text-gray-600 { color: var(--color-gray-600); }.text-gray-700 { color: var(--color-gray-700); }.text-gray-800 { color: var(--color-gray-800); }.text-gray-900 { color: var(--color-gray-900); }.text-green-50 { color: var(--color-green-50); }.text-green-400 { color: var(--color-green-400); }.text-green-500 { color: var(--color-green-500); }.text-green-600 { color: var(--color-green-600); }.text-green-700 { color: var(--color-green-700); }.text-inherit { color: inherit; }.text-lime-700 { color: var(--color-lime-700); }.text-neutral-100 { color: var(--color-neutral-100); }.text-neutral-200 { color: var(--color-neutral-200); }.text-neutral-300 { color: var(--color-neutral-300); }.text-neutral-400 { color: var(--color-neutral-400); }.text-neutral-500 { color: var(--color-neutral-500); }.text-neutral-600 { color: var(--color-neutral-600); }.text-neutral-700 { color: var(--color-neutral-700); }.text-neutral-800 { color: var(--color-neutral-800); }.text-neutral-900 { color: var(--color-neutral-900); }.text-orange-700 { color: var(--color-orange-700); }.text-pink-600 { color: var(--color-pink-600); }.text-purple-700 { color: var(--color-purple-700); }.text-red-50 { color: var(--color-red-50); }.text-red-500 { color: var(--color-red-500); }.text-red-600 { color: var(--color-red-600); }.text-red-700 { color: var(--color-red-700); }.text-rose-600 { color: var(--color-rose-600); }.text-slate-50 { color: var(--color-slate-50); }.text-slate-500 { color: var(--color-slate-500); }.text-teal-700 { color: var(--color-teal-700); }.text-white { color: var(--color-white); }.text-yellow-700 { color: var(--color-yellow-700); }.text-yellow-800 { color: var(--color-yellow-800); }.\[text-transform\:var\(--strapline-text-transform\,uppercase\)\] { text-transform: var(--strapline-text-transform,uppercase); }.capitalize { text-transform: capitalize; }.lowercase { text-transform: lowercase; }.normal-case { text-transform: none; }.uppercase { text-transform: uppercase; }.italic { font-style: italic; }.ordinal { --tw-ordinal: ordinal; font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); }.line-through { text-decoration-line: line-through; }.no-underline { text-decoration-line: none; }.underline { text-decoration-line: underline; }.decoration-current { text-decoration-color: currentcolor; }.decoration-transparent { text-decoration-color: rgba(0, 0, 0, 0); }.decoration-solid { text-decoration-style: solid; }.underline-offset-2 { text-underline-offset: 2px; }.placeholder-neutral-500::placeholder { color: var(--color-neutral-500); }.opacity-0 { opacity: 0; }.opacity-30 { opacity: 0.3; }.opacity-40 { opacity: 0.4; }.opacity-50 { opacity: 0.5; }.opacity-80 { opacity: 0.8; }.opacity-100 { opacity: 1; }.shadow { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-2xl { --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color,#00000040); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.4\)\] { --tw-shadow: 0 20px 60px -15px var(--tw-shadow-color,#0006); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-inner { --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-lg { --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-md { --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-none { --tw-shadow: 0 0 #0000; box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-sm { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-xl { --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-xs { --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color,#0000000d); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-0 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-1 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-4 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-amber-600 { --tw-ring-color: var(--color-amber-600); }.ring-black { --tw-ring-color: var(--color-black); }.ring-blue-600 { --tw-ring-color: var(--color-blue-600); }.ring-gray-300 { --tw-ring-color: var(--color-gray-300); }.ring-green-600 { --tw-ring-color: var(--color-green-600); }.ring-orange-600 { --tw-ring-color: var(--color-orange-600); }.ring-purple-400 { --tw-ring-color: var(--color-purple-400); }.ring-purple-600 { --tw-ring-color: var(--color-purple-600); }.ring-red-600 { --tw-ring-color: var(--color-red-600); }.ring-slate-600 { --tw-ring-color: var(--color-slate-600); }.ring-teal-600 { --tw-ring-color: var(--color-teal-600); }.ring-white { --tw-ring-color: var(--color-white); }.ring-yellow-600 { --tw-ring-color: var(--color-yellow-600); }.outline-hidden { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .outline-hidden { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.outline, .outline-1 { outline-style: var(--tw-outline-style); outline-width: 1px; }.outline-transparent { outline-color: rgba(0, 0, 0, 0); }.blur { --tw-blur: blur(8px); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.brightness-0 { --tw-brightness: brightness(0%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.contrast-100 { --tw-contrast: contrast(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.grayscale { --tw-grayscale: grayscale(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.invert { --tw-invert: invert(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.filter { filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.backdrop-blur-sm { --tw-backdrop-blur: blur(var(--blur-sm)); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }.backdrop-filter { backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }.transition { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-all { transition-property: all; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-colors { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-opacity { transition-property: opacity; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-shadow { transition-property: box-shadow; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-transform { transition-property: transform, translate, scale, rotate; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.duration-75 { --tw-duration: 75ms; transition-duration: 75ms; }.duration-100 { --tw-duration: .1s; transition-duration: 0.1s; }.duration-150 { --tw-duration: .15s; transition-duration: 0.15s; }.duration-200 { --tw-duration: .2s; transition-duration: 0.2s; }.duration-300 { --tw-duration: .3s; transition-duration: 0.3s; }.duration-500 { --tw-duration: .5s; transition-duration: 0.5s; }.ease-in { --tw-ease: var(--ease-in); transition-timing-function: var(--ease-in); }.ease-in-out { --tw-ease: var(--ease-in-out); transition-timing-function: var(--ease-in-out); }.ease-out { --tw-ease: var(--ease-out); transition-timing-function: var(--ease-out); }.prose-neutral { --tw-prose-#widget-t4n1495: oklch(37.1% 0 0); --tw-prose-headings: oklch(20.5% 0 0); --tw-prose-lead: oklch(43.9% 0 0); --tw-prose-links: oklch(20.5% 0 0); --tw-prose-bold: oklch(20.5% 0 0); --tw-prose-counters: oklch(55.6% 0 0); --tw-prose-bullets: oklch(87% 0 0); --tw-prose-hr: oklch(92.2% 0 0); --tw-prose-quotes: oklch(20.5% 0 0); --tw-prose-quote-borders: oklch(92.2% 0 0); --tw-prose-captions: oklch(55.6% 0 0); --tw-prose-kbd: oklch(20.5% 0 0); --tw-prose-kbd-shadows: oklab(20.5% 0 0/.1); --tw-prose-code: oklch(20.5% 0 0); --tw-prose-pre-code: oklch(92.2% 0 0); --tw-prose-pre-bg: oklch(26.9% 0 0); --tw-prose-th-borders: oklch(87% 0 0); --tw-prose-td-borders: oklch(92.2% 0 0); --tw-prose-invert-#widget-t4n1495: oklch(87% 0 0); --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: oklch(70.8% 0 0); --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: oklch(70.8% 0 0); --tw-prose-invert-bullets: oklch(43.9% 0 0); --tw-prose-invert-hr: oklch(37.1% 0 0); --tw-prose-invert-quotes: oklch(97% 0 0); --tw-prose-invert-quote-borders: oklch(37.1% 0 0); --tw-prose-invert-captions: oklch(70.8% 0 0); --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: #ffffff1a; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: oklch(87% 0 0); --tw-prose-invert-pre-bg: #00000080; --tw-prose-invert-th-borders: oklch(43.9% 0 0); --tw-prose-invert-td-borders: oklch(37.1% 0 0); }.outline-none { --tw-outline-style: none; outline-style: none; }.select-none { user-select: none; }.ring-inset { --tw-ring-inset: inset; }:is(.\*\:pointer-events-auto > *) { pointer-events: auto; }@media (hover: hover) {  .group-hover\:text-\[\#DC1F26\]:is(:where(.group):hover *) { color: rgb(220, 31, 38); }  .group-hover\:opacity-100:is(:where(.group):hover *) { opacity: 1; }}.visited\:text-inherit:visited { color: inherit; }.empty\:border-none:empty { --tw-border-style: none; border-style: none; }@media (hover: hover) {  .hover\:border-black:hover { border-color: var(--color-black); }  .hover\:border-neutral-300:hover { border-color: var(--color-neutral-300); }  .hover\:bg-\[\#b8181e\]:hover { background-color: rgb(184, 24, 30); }  .hover\:bg-black:hover { background-color: var(--color-black); }  .hover\:bg-blue-50:hover { background-color: var(--color-blue-50); }  .hover\:bg-green-50:hover { background-color: var(--color-green-50); }  .hover\:bg-green-700:hover { background-color: var(--color-green-700); }  .hover\:bg-indigo-50:hover { background-color: var(--color-indigo-50); }  .hover\:bg-neutral-50:hover { background-color: var(--color-neutral-50); }  .hover\:bg-neutral-100:hover { background-color: var(--color-neutral-100); }  .hover\:bg-neutral-200:hover { background-color: var(--color-neutral-200); }  .hover\:bg-neutral-800:hover { background-color: var(--color-neutral-800); }  .hover\:bg-red-50:hover { background-color: var(--color-red-50); }  .hover\:bg-red-700:hover { background-color: var(--color-red-700); }  .hover\:text-\[\#DC1F26\]:hover { color: rgb(220, 31, 38); }  .hover\:text-blue-600:hover { color: var(--color-blue-600); }  .hover\:text-gray-500:hover { color: var(--color-gray-500); }  .hover\:text-indigo-600:hover { color: var(--color-indigo-600); }  .hover\:text-inherit:hover { color: inherit; }  .hover\:text-neutral-700:hover { color: var(--color-neutral-700); }  .hover\:text-neutral-900:hover { color: var(--color-neutral-900); }  .hover\:text-red-600:hover { color: var(--color-red-600); }  .hover\:no-underline:hover { text-decoration-line: none; }  .hover\:underline:hover { text-decoration-line: underline; }  .hover\:decoration-transparent:hover { text-decoration-color: rgba(0, 0, 0, 0); }  .hover\:underline-offset-2:hover { text-underline-offset: 2px; }}.focus\:border-rose-500:focus { border-color: var(--color-rose-500); }.focus\:text-inherit:focus { color: inherit; }.focus\:decoration-transparent:focus { text-decoration-color: rgba(0, 0, 0, 0); }.focus\:ring-1:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-2:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-4:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-\[\#DC1F26\]:focus { --tw-ring-color: #dc1f26; }.focus\:ring-\[\#DC1F26\]\/20:focus { --tw-ring-color: oklab(57.3239% .195826 .0976754/.2); }.focus\:ring-rose-500:focus { --tw-ring-color: var(--color-rose-500); }.focus\:ring-offset-1:focus { --tw-ring-offset-width: 1px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); }.focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); }.focus\:outline-hidden:focus { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .focus\:outline-hidden:focus { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.focus\:outline-1:focus { outline-style: var(--tw-outline-style); outline-width: 1px; }.focus\:outline-none:focus { --tw-outline-style: none; outline-style: none; }.focus\:\[outline-style\:auto\]:focus { outline-style: auto; }.focus-visible\:ring-2:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus-visible\:ring-gray-900:focus-visible { --tw-ring-color: var(--color-gray-900); }.focus-visible\:outline-hidden:focus-visible { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .focus-visible\:outline-hidden:focus-visible { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.active\:text-inherit:active { color: inherit; }@media not all and (min-width: 640px) {  .max-sm\:top-full { top: 100%; }  .max-sm\:left-2\/4 { left: 50%; }  .max-sm\:hidden { display: none; }  .max-sm\:min-w-\[300px\] { min-width: 300px; }  .max-sm\:-translate-x-2\/4 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }}@media (min-width: 640px) {  .sm\:visible { visibility: visible; }  .sm\:relative { position: relative; }  .sm\:top-4 { top: calc(var(--spacing) * 4); }  .sm\:top-\[88px\] { top: 88px; }  .sm\:top-\[92px\] { top: 92px; }  .sm\:right-3 { right: calc(var(--spacing) * 3); }  .sm\:right-4 { right: calc(var(--spacing) * 4); }  .sm\:left-3 { left: calc(var(--spacing) * 3); }  .sm\:order-3 { order: 3; }  .sm\:mx-auto { margin-inline: auto; }  .sm\:my-8 { margin-block: calc(var(--spacing) * 8); }  .sm\:mt-5 { margin-top: calc(var(--spacing) * 5); }  .sm\:mt-6 { margin-top: calc(var(--spacing) * 6); }  .sm\:mb-6 { margin-bottom: calc(var(--spacing) * 6); }  .sm\:mb-8 { margin-bottom: calc(var(--spacing) * 8); }  .sm\:block { display: block; }  .sm\:flex { display: flex; }  .sm\:hidden { display: none; }  .sm\:inline { display: inline; }  .sm\:h-6 { height: calc(var(--spacing) * 6); }  .sm\:h-12 { height: calc(var(--spacing) * 12); }  .sm\:h-\[50px\] { height: 50px; }  .sm\:h-\[var\(--logo-height-desktop\,auto\)\] { height: var(--logo-height-desktop,auto); }  .sm\:max-h-full { max-height: 100%; }  .sm\:w-6 { width: calc(var(--spacing) * 6); }  .sm\:w-12 { width: calc(var(--spacing) * 12); }  .sm\:w-64 { width: calc(var(--spacing) * 64); }  .sm\:w-\[480px\] { width: 480px; }  .sm\:max-w-full { max-width: 100%; }  .sm\:max-w-sm { max-width: var(--container-sm); }  .sm\:min-w-auto { min-width: auto; }  .sm\:translate-y-0 { --tw-translate-y: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }  .sm\:scale-95 { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); }  .sm\:scale-100 { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); }  .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }  .sm\:flex-row { flex-direction: row; }  .sm\:items-center { align-items: center; }  .sm\:border-r { border-right-style: var(--tw-border-style); border-right-width: 1px; }  .sm\:border-solid { --tw-border-style: solid; border-style: solid; }  .sm\:border-gray-300 { border-color: var(--color-gray-300); }  .sm\:p-0 { padding: calc(var(--spacing) * 0); }  .sm\:p-3 { padding: calc(var(--spacing) * 3); }  .sm\:p-6 { padding: calc(var(--spacing) * 6); }  .sm\:p-8 { padding: calc(var(--spacing) * 8); }  .sm\:px-0 { padding-inline: calc(var(--spacing) * 0); }  .sm\:px-4 { padding-inline: calc(var(--spacing) * 4); }  .sm\:py-4 { padding-block: calc(var(--spacing) * 4); }  .sm\:pl-14 { padding-left: calc(var(--spacing) * 14); }  .sm\:text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }  .sm\:text-base { font-size: var(--text-base); line-height: var(--tw-leading,var(--text-base--line-height)); }}@media (min-width: 768px) {  .md\:visible { visibility: visible; }  .md\:inline { display: inline; }  .md\:h-screen { height: 100vh; }  .md\:w-80 { width: calc(var(--spacing) * 80); }  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }  .md\:flex-row { flex-direction: row; }  .md\:overflow-hidden { overflow: hidden; }  .md\:overflow-y-auto { overflow-y: auto; }  .md\:p-12 { padding: calc(var(--spacing) * 12); }  .md\:text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }  .md\:text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }  .md\:text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }}.prose-headings\:font-serif :where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-p\:font-serif :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-family: var(--font-serif); }.prose-p\:leading-relaxed :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }.prose-p\:text-neutral-700 :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--color-neutral-700); }@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-rotate-x { syntax: "*"; inherits: false; }@property --tw-rotate-y { syntax: "*"; inherits: false; }@property --tw-rotate-z { syntax: "*"; inherits: false; }@property --tw-skew-x { syntax: "*"; inherits: false; }@property --tw-skew-y { syntax: "*"; inherits: false; }@property --tw-scroll-snap-strictness { syntax: "*"; inherits: false; initial-value: proximity; }@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-space-x-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-divide-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }@property --tw-gradient-position { syntax: "*"; inherits: false; }@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-stops { syntax: "*"; inherits: false; }@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }@property --tw-leading { syntax: "*"; inherits: false; }@property --tw-font-weight { syntax: "*"; inherits: false; }@property --tw-tracking { syntax: "*"; inherits: false; }@property --tw-ordinal { syntax: "*"; inherits: false; }@property --tw-slashed-zero { syntax: "*"; inherits: false; }@property --tw-numeric-figure { syntax: "*"; inherits: false; }@property --tw-numeric-spacing { syntax: "*"; inherits: false; }@property --tw-numeric-fraction { syntax: "*"; inherits: false; }@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-shadow-color { syntax: "*"; inherits: false; }@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-ring-color { syntax: "*"; inherits: false; }@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-inset-ring-color { syntax: "*"; inherits: false; }@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-ring-inset { syntax: "*"; inherits: false; }@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0; }@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-outline-style { syntax: "*"; inherits: false; initial-value: solid; }@property --tw-blur { syntax: "*"; inherits: false; }@property --tw-brightness { syntax: "*"; inherits: false; }@property --tw-contrast { syntax: "*"; inherits: false; }@property --tw-grayscale { syntax: "*"; inherits: false; }@property --tw-hue-rotate { syntax: "*"; inherits: false; }@property --tw-invert { syntax: "*"; inherits: false; }@property --tw-opacity { syntax: "*"; inherits: false; }@property --tw-saturate { syntax: "*"; inherits: false; }@property --tw-sepia { syntax: "*"; inherits: false; }@property --tw-drop-shadow { syntax: "*"; inherits: false; }@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }@property --tw-backdrop-blur { syntax: "*"; inherits: false; }@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }@property --tw-backdrop-invert { syntax: "*"; inherits: false; }@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }@property --tw-duration { syntax: "*"; inherits: false; }@property --tw-ease { syntax: "*"; inherits: false; }@keyframes spin {   100% { transform: rotate(360deg); }}@keyframes pulse {   50% { opacity: 0.5; }}      .pcg-results-list { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }      .pcg-result-item { margin: 0; padding: 0; list-style: none; }      .pcg-result-btn { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 1rem; border: none; background: transparent; cursor: pointer; text-align: left; transition: background 0.2s; height: 76px; }      .pcg-result-btn.hovered { background-color: #f9fafb; }      .pcg-result-border { border-bottom: 1px solid #f5f5f5; }      .pcg-result-content { display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding-right: 1rem; flex: 1; }      .pcg-result-meta-row { display: flex; align-items: center; gap: 0.5rem; overflow: hidden; }      .pcg-result-title { color: #000000; font-weight: bold; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }      .pcg-meta-date { color: #737373; font-size: 0.75rem; text-transform: uppercase; letter-spacing: -0.025em; flex-shrink: 0; }      .pcg-result-summary { color: #737373; font-size: 0.75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 0.25rem; }      .pcg-result-actions { display: flex; align-items: center; gap: 1rem; flex: none; }      .pcg-score { color: #DC1F26; font-weight: 900; font-size: 1.25rem; font-style: italic; }      .pcg-result-arrow { color: #d4d4d4; transition: color 0.2s; }      .pcg-reader-msg { text-align: center; padding: 2rem; color: #737373; }      .pcg-reader-loading { display: flex; justify-content: center; align-items: center; height: 100%; min-height: 400px; }      .pcg-reader-loading p { color: #DC1F26; }      .pcg-prose-content { max-width: 65ch; margin: 0 auto; padding: 0 0.5rem; }      .pcg-reader-header { margin-bottom: 2rem; }      .pcg-reader-title { font-size: 1.75rem; font-weight: bold; line-height: 1.2; margin-bottom: 1rem; }      .pcg-reader-meta { display: flex; gap: 0.75rem; align-items: center; font-size: 0.875rem; font-weight: 500; color: #52525b; text-transform: uppercase; letter-spacing: 0.05em; }      .pcg-reader-meta-divider { color: #d4d4d8; }      .pcg-reader-body { line-height: 1.6; color: #262626; font-size: 1.125rem; }      .pcg-prose-content img { width: 100%; height: auto; margin: 1.5rem 0; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); border-radius: 0.5rem; }       .pcg-prose-content a { color: #e11d48; text-decoration: none; font-weight: 500; }       .pcg-prose-content a:hover { text-decoration: underline; }       .pcg-prose-content p { margin-bottom: 1.5em !important; display: block !important; }    </style></head><body style="margin:0; padding:0; background:transparent;">  <div style="position: relative;">    <div class="w-full max-w-2xl mx-auto flex justify-center" id="widget-t4n1495"><div class="w-full max-w-2xl mx-auto font-sans relative"><div id="pcg-search-container" class="bg-[#ededed] p-2 sm:p-3 rounded-full shadow-sm relative z-20 flex items-center"><div class="relative w-full text-sm sm:text-base md:text-lg"><div class="absolute left-4 top-1/2 -translate-y-1/2 text-[#DC1F26]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search w-5 h-5 sm:w-6 sm:h-6" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></div><input id="pcg-search" placeholder="Search our 55 controller reviews" class="w-full bg-white border-2 border-[#DC1F26] rounded-full py-3 sm:py-4 pl-12 sm:pl-14 pr-10 outline-none text-black placeholder-neutral-500 shadow-inner focus:ring-4 focus:ring-[#DC1F26]/20 transition-all font-medium text-ellipsis overflow-hidden" type="text" value=""></div></div><div id="pcg-footer-stats" class="mt-4 text-center text-sm sm:text-base font-semibold text-neutral-600 px-4">PC Gamer has reviewed <span id="pcg-total-reviews">1336</span> PC gaming goodies since 2020</div></div>      <section id="pcg-dropdown-container" class="absolute top-[76px] sm:top-[88px] left-2 right-2 sm:left-3 sm:right-3 z-50 bg-white border-2 border-[#DC1F26] rounded-2xl shadow-xl flex-col overflow-hidden" style="display: none; max-height: 380px;">        <header style="display: flex; align-items: center; justify-content: space-between; background: #fafafa; padding: 0.75rem 1rem; border-bottom: 1px solid #f5f5f5;">          <h3 id="pcg-dropdown-title" style="font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #737373; margin: 0;">Latest Reviews</h3>          <div style="display: flex; align-items: center;">            <span style="font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #737373; margin-right: 1.25rem; user-select: none;">Score</span>            <button id="pcg-close-btn" aria-label="Close" style="color: #a3a3a3; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;">               <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="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>            </button>          </div>        </header>        <nav aria-label="Search Results" id="pcg-results" style="overflow-y: auto;">        </nav>      </section>            <article id="pcg-reader-container" class="absolute top-[80px] sm:top-[92px] left-2 right-2 sm:left-3 sm:right-3 z-[100] bg-white border-2 border-[#DC1F26] rounded-2xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.4)] flex-col overflow-hidden" style="display: none; height: 600px;">        <header style="display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid #f5f5f5; flex: none; background: white; position: relative;">          <div style="flex: 1;">            <span style="font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #a3a3a3;">Reader view</span>          </div>                    <div style="position: absolute; left: 50%; transform: translateX(-50%); text-align: center;" id="pcg-reader-link-container">          </div>          <div style="flex: 1; display: flex; justify-content: flex-end;">            <button id="pcg-reader-close" aria-label="Close Reader" style="color: #a3a3a3; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;">              <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="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>            </button>          </div>        </header>        <div id="pcg-reader-content" style="flex: 1; padding: 1rem 1rem 3rem; overflow-y: auto; background: white; font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;">        </div>      </article>    </div>  </div>        <script>        const API_BASE = "https://airedale-version-review-widget-builder.ai.studio";        const CATEGORY = "Controller";        const INITIALLY_OPEN = false;        // Embedded complete category data        let LOCAL_REVIEWS = JSON.parse(decodeURIComponent("%5B%7B%22id%22%3A%228NKgZmo3fxQQhxjqHrn2AB%22%2C%22title%22%3A%22Scuf%20Omega%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Fscuf-omega-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-09-07T15%3A02%3A11Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FPfiU4gZmnbsVoGaYsi3iY8.jpg%22%2C%22strapline%22%3A%22Closer%20to%20an%20Alpha%20or%20Beta%20than%20an%20Omega.%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22controller%22%2C%22wireless%20controller%22%2C%22wired%20controller%22%2C%22game%20controller%22%2C%22PC%20controller%22%2C%22Scuf%22%2C%22Scuf%20Omega%22%5D%2C%22score%22%3A70%2C%22summary%22%3A%22Closer%20to%20an%20Alpha%20or%20Beta%20than%20an%20Omega.%22%7D%2C%7B%22id%22%3A%22UqYpGJHzTjVNBBmU2SrrJn%22%2C%22title%22%3A%22GameSir%20T7%20Pro%20Sugar%20Whirl%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgame-pads%2Fgamesir-t7-pro-sugar-whirl-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-14T13%3A13%3A19Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2Fmx7yo6es2nmRYz34Vbuagg.jpg%22%2C%22strapline%22%3A%22Not%20quite%20the%20sweetest%20of%20treats.%22%2C%22categories%22%3A%5B%22Game%20Pads%22%2C%22Hardware%22%2C%22Controllers%22%5D%2C%22tags%22%3A%5B%22Review%22%2C%22Hardware%22%2C%22GameSir%22%2C%22Xbox%20Wireless%20Controller%22%2C%22Pink%22%2C%22Blue%22%2C%22purple%22%2C%22wireless%20controller%22%2C%22charging%22%2C%22charging%20stand%22%2C%22dock%22%2C%22TMR%20sticks%22%2C%22Hall%20effect%22%5D%2C%22score%22%3A75%2C%22summary%22%3A%22Not%20quite%20the%20sweetest%20of%20treats.%22%7D%2C%7B%22id%22%3A%22LxaJz5yKcWogc5hm5z84mj%22%2C%22title%22%3A%22GameSir%20G7%20Pro%208K%20Aimlabs%20Edition%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Fgamesir-g7-pro-8k-aimlabs-edition-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-05-01T11%3A37%3A15Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FuT6Y9ABVa5DY9xXcAJrEwf.jpg%22%2C%22strapline%22%3A%22Would%20you%20pay%20%2410%20more%20for%20higher%20polling%3F%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22controller%22%2C%22PC%20controller%22%2C%22game%20controller%22%2C%22wireless%20controller%22%2C%22Hardware%22%2C%22GameSir%22%2C%22GameSir%20G7%20Pro%208K%22%2C%22TMR%22%2C%22TMR%20sticks%22%2C%22GameSir%20g7%20Pro%208K%20Aimlabs%20Edition%22%5D%2C%22score%22%3A84%2C%22summary%22%3A%22Would%20you%20pay%20%2410%20more%20for%20higher%20polling%3F%22%7D%2C%7B%22id%22%3A%22B4p3aPJNV2Ckc47kSywXKQ%22%2C%22title%22%3A%22Steam%20Controller%20(2026)%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgame-pads%2Fsteam-controller-2026-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-04-27T17%3A00%3A00Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FaUXA7Xr75b7Xuvt2S6eeKY.jpg%22%2C%22strapline%22%3A%22Second%20time's%20the%20charm.%22%2C%22categories%22%3A%5B%22Game%20Pads%22%2C%22Hardware%22%2C%22Controllers%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Valve%22%2C%22Steam%20Controller%22%2C%22controller%22%2C%22game%20pad%22%2C%22Steam%22%5D%2C%22score%22%3A83%2C%22summary%22%3A%22Second%20time's%20the%20charm.%22%7D%2C%7B%22id%22%3A%22WRLnnowV6sabshmTC8HujQ%22%2C%22title%22%3A%22EasySMX%20D05%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Feasysmx-d05-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-03-31T15%3A00%3A43Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FPqjBcwBzNJUwKiWav7NBZF.jpg%22%2C%22strapline%22%3A%22You%20can%20get%20Hall%20effect%20controllers%20slightly%20cheaper%2C%20but%20you'd%20struggle%20to%20find%20as%20feature-rich%20a%20package%20without%20some%20heavy%2C%20heavy%20sales.%20%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22controller%22%2C%22wired%20controller%22%2C%22wireless%20controller%22%2C%22budget%22%2C%22Hall%20effect%22%2C%22EasySMX%22%2C%22EasySMX%20D10%22%2C%22Hardware%22%5D%2C%22score%22%3A87%2C%22summary%22%3A%22You%20can%20get%20Hall%20effect%20controllers%20slightly%20cheaper%2C%20but%20you'd%20struggle%20to%20find%20as%20feature-rich%20a%20package%20without%20some%20heavy%2C%20heavy%20sales.%20%22%7D%2C%7B%22id%22%3A%22fM5EQd4AH6qDUADhLjdeqe%22%2C%22title%22%3A%22EasySMX%20D10%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Feasysmx-d10-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-03-27T15%3A14%3A14Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FUgLVpPDZm7T9ZV36sAHGz4.jpg%22%2C%22strapline%22%3A%22A%20feature-rich%20budget%20TMR%20controller%20that%20only%20sometimes%20feels%20like%20a%20compromise.%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22controller%22%2C%22game%20controller%22%2C%22budget%22%2C%22TMR%22%2C%22TMR%20sticks%22%2C%22Hall%20effect%22%2C%22Review%22%2C%22Hardware%22%5D%2C%22score%22%3A80%2C%22summary%22%3A%22A%20feature-rich%20budget%20TMR%20controller%20that%20only%20sometimes%20feels%20like%20a%20compromise.%22%7D%2C%7B%22id%22%3A%22euxMmPNTRBtjcL6Rz4W3kD%22%2C%22title%22%3A%22Hyperkin%20Competitor%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgame-pads%2Fhyperkin-competitor-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-03-24T11%3A59%3A23Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2F3TEoYfnGkzXiCm8xisUHGZ.jpg%22%2C%22strapline%22%3A%22It%20competes%20with%20a%20home%20field%20advantage%20on%20bang%20for%20buck%2C%20but%20can%20fall%20short%20on%20away%20games.%22%2C%22categories%22%3A%5B%22Game%20Pads%22%2C%22Hardware%22%2C%22Controllers%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22controller%22%2C%22game%20pad%22%2C%22Hyperkin%22%5D%2C%22score%22%3A72%2C%22summary%22%3A%22It%20competes%20with%20a%20home%20field%20advantage%20on%20bang%20for%20buck%2C%20but%20can%20fall%20short%20on%20away%20games.%22%7D%2C%7B%22id%22%3A%22fjGZ5xcK8LaBGjLhbCCzjU%22%2C%22title%22%3A%22Moza%20AB9%20FFB%20Base%20%2B%20MH16%20Flightstick%20%2B%20MTP%20Throttle%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Fmoza-ab9-ffb-base-mh16-flightstick-mtp-throttle-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-02-18T14%3A48%3A01Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2F7sPx82rcLMVn5XmFgPZj97.jpg%22%2C%22strapline%22%3A%22One%20for%20the%20serious%20flight%20simmers%2C%20but%20a%20very%20impressive%20experience.%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Flight%20Sims%22%2C%22force%20feedback%22%2C%22MOZA%22%2C%22joystick%22%2C%22flight%20stick%22%2C%22throttle%20controller%22%2C%22Moza%20AB9%20FFB%20Base%22%2C%22Moza%20MH16%20Flightstick%22%2C%22MSFS%202024%22%5D%2C%22score%22%3A86%2C%22summary%22%3A%22One%20for%20the%20serious%20flight%20simmers%2C%20but%20a%20very%20impressive%20experience.%22%7D%2C%7B%22id%22%3A%22NobwmgxJUWpkrLFPmkrnxL%22%2C%22title%22%3A%22Victrix%20Pro%20BFG%20Reloaded%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgame-pads%2Fvictrix-pro-bfg-reloaded-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222025-11-05T10%3A33%3A51Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2Fw5YASeamdYp7YnYfoUvq.jpg%22%2C%22strapline%22%3A%22A%20boon%20for%20fight%20pad%20lovers%2C%20but%20not%20a%20controller%20for%20the%20mainstream.%22%2C%22categories%22%3A%5B%22Game%20Pads%22%2C%22Hardware%22%2C%22Controllers%22%5D%2C%22tags%22%3A%5B%22PDP%22%2C%22Turtle%20Beach%22%2C%22Hardware%22%2C%22controller%22%5D%2C%22score%22%3A70%2C%22summary%22%3A%22A%20boon%20for%20fight%20pad%20lovers%2C%20but%20not%20a%20controller%20for%20the%20mainstream.%22%7D%2C%7B%22id%22%3A%22ifyAnNg9BLtnbkM7627JrR%22%2C%22title%22%3A%228BitDo%20Pro%203%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2F8bitdo-pro-3-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222025-10-24T16%3A21%3A45Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2F2ViNbtNwhhNsspHfd3k2A5.jpg%22%2C%22strapline%22%3A%22My%20new%20everyday%20controller%2C%20despite%20its%20flaws.%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22controller%22%2C%22wireless%20controller%22%2C%228bitdo%22%2C%228BitDo%20Pro%203%22%2C%22PC%20controller%22%5D%2C%22score%22%3A76%2C%22summary%22%3A%22My%20new%20everyday%20controller%2C%20despite%20its%20flaws.%22%7D%5D"));                const searchInput = document.getElementById("pcg-search");        const resultsContainer = document.getElementById("pcg-results");        const dropdownContainer = document.getElementById("pcg-dropdown-container");        const closeBtn = document.getElementById("pcg-close-btn");        const titleSpan = document.getElementById("pcg-dropdown-title");                const readerContainer = document.getElementById("pcg-reader-container");        const readerContent = document.getElementById("pcg-reader-content");        const readerCloseBtn = document.getElementById("pcg-reader-close");                let debounceTimer;                function updateIframeHeight(isDropdownOpen, isReaderOpen = false) {          let newHeight = '140px';          if (isReaderOpen) {            newHeight = '720px';          } else if (isDropdownOpen) {            newHeight = '500px';          }                    let resizedSuccessfully = false;          try {            if (window.frameElement) {              window.frameElement.style.height = newHeight;              resizedSuccessfully = true;            }          } catch (e) {            // Ignore cross-origin error when accessing frameElement          }                    if (!resizedSuccessfully && window.parent && window.parent !== window) {            try {              // Send message to parent only for cross-origin resizing               // using '*' to avoid target origin mismatch errors              window.parent.postMessage({ type: 'pcg-widget-resize', height: newHeight }, '*');            } catch (e) {}          }        }        function closeReader() {          readerContainer.style.display = 'none';          readerContent.innerHTML = '';          updateIframeHeight(dropdownContainer.style.display === 'flex', false);        }        if (readerCloseBtn) readerCloseBtn.addEventListener('click', closeReader);                function closeDropdown() {          dropdownContainer.style.display = 'none';          updateIframeHeight(false, readerContainer.style.display === 'flex');        }                function openDropdown() {          dropdownContainer.style.display = 'flex';          closeReader();          updateIframeHeight(true, false);        }                if (closeBtn) closeBtn.addEventListener("click", closeDropdown);                document.addEventListener("click", (e) => {           if (!searchInput.contains(e.target) && !dropdownContainer.contains(e.target) && !readerContainer.contains(e.target)) {               closeDropdown();           }        });                const TOTAL_COUNT = 1336;        const CATEGORY_COUNT = 55;        function initializeStats() {           const totalSpan = document.getElementById("pcg-total-reviews");           if (totalSpan) totalSpan.textContent = TOTAL_COUNT;                      if (searchInput && CATEGORY_COUNT > 0) {             function formatCat(cat) {               if (cat === "PC gaming hardware") return "PC gaming hardware";               if (cat === "Handheld Gaming PCs") return "handheld gaming PC";                if (cat === "Gaming PCs") return "gaming PC";               if (cat === "Gaming Mice") return "gaming mouse";               if (cat === "Memory" || cat === "Cooling" || cat === "Lighting" || cat === "Hardware") return cat.toLowerCase();               if (cat === "Earbuds & Headphones") return "earbud & headphone";               return cat.replace(/s$/i, '').toLowerCase();             }             const formattedCat = formatCat(CATEGORY);             searchInput.placeholder = CATEGORY_COUNT > 50 ? "Search our " + CATEGORY_COUNT + " " + formattedCat + " reviews" : "Search our " + formattedCat + " reviews";           }        }                initializeStats();        function fetchResults(q) {          if (q) {             titleSpan.textContent = "Search Results";          } else {             titleSpan.textContent = "Latest " + (CATEGORY === "PC gaming hardware" ? "PC gaming hardware" : CATEGORY) + " Reviews";          }                     if (!q) {            renderResults(LOCAL_REVIEWS);            return;          }                    resultsContainer.innerHTML = '<p style="padding:2rem;text-align:center;color:#737373;">Loading...</p>';                    fetch(API_BASE + "/api/reviews?category=" + encodeURIComponent(CATEGORY) + "&q=" + encodeURIComponent(q) + "&limit=20")            .then(res => res.json())            .then(data => {               renderResults(data.results || []);            })            .catch(err => {               console.error("Search failed:", err);               resultsContainer.innerHTML = '<p style="padding:2rem;text-align:center;color:#DC1F26;">Error searching reviews.</p>';            });        }                function renderResults(results) {          if(!results || results.length === 0) {            resultsContainer.innerHTML = '<p class="pcg-reader-msg">No results found.</p>';            return;          }          let html = '<ul class="pcg-results-list">';          results.forEach((res, i) => {            let scoreHtml = res.score ? '<div class="pcg-score" aria-label="Score: ' + res.score + '">' + res.score + '</div>' : '';                        // Format URL properly            let targetUrl = res.url.startsWith("http") ? res.url : "https://www.pcgamer.com" + res.url;                        let borderClass = i < results.length - 1 ? 'pcg-result-border' : '';                        let dateHtml = '';            if (res.publishDate) {              try {                let dateStr = new Date(res.publishDate).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });                dateHtml = '<span class="pcg-meta-date">' + dateStr + '</span>';              } catch(e) {}            }                        let subHtml = '<span class="pcg-result-summary">' + (res.summary || "") + '</span>';                        html += '<li class="pcg-result-item"><button aria-label="Read ' + (res.title || "Review").replace(/"/g, '&quot;') + '" onclick="openReaderInPage(\'' + targetUrl + '\')" class="pcg-result-btn ' + borderClass + '" onmouseover="this.classList.add(\'hovered\')" onmouseout="this.classList.remove(\'hovered\')" >' +                  '<div class="pcg-result-content">' +                    '<div class="pcg-result-meta-row">' +                       '<span class="pcg-result-title">' + (res.title || "Review") + '</span>' +                      dateHtml +                     '</div>' +                    subHtml +                  '</div>' +                  '<div class="pcg-result-actions">' +                    scoreHtml +                    '<span class="pcg-result-arrow" aria-hidden="true">→</span>' +                  '</div>' +              '</button></li>';          });          html += '</ul>';          resultsContainer.innerHTML = html;                    updateJSONLD(results);        }        function updateJSONLD(results) {          let ldScript = document.getElementById('pcg-json-ld');          if (!ldScript) {            ldScript = document.createElement('script');            ldScript.type = 'application/ld+json';            ldScript.id = 'pcg-json-ld';            document.head.appendChild(ldScript);          }                    const itemListElements = results.slice(0, 50).map((res, index) => {            let targetUrl = res.url.startsWith("http") ? res.url : "https://www.pcgamer.com" + res.url;            let itemName = (res.title || "Product").replace(/\s+review$/i, '');            let schemaItem = {              "@type": "Product",              "name": itemName,              "image": res.image || targetUrl,              "review": {                "@type": "Review",                "url": targetUrl,                "name": res.title || "Review",                "datePublished": res.publishDate || new Date().toISOString().split('T')[0],                "author": {                  "@type": "Organization",                  "name": "PC Gamer"                },                "publisher": {                  "@type": "Organization",                  "name": "PC Gamer"                }              }            };            if (res.score) {              schemaItem.review.reviewRating = {                "@type": "Rating",                "ratingValue": res.score,                "bestRating": "100",                "worstRating": "1"              };            }            return {              "@type": "ListItem",              "position": index + 1,              "item": schemaItem            };          });          const schema = {            "@context": "https://schema.org",            "@type": "ItemList",            "itemListElement": itemListElements          };          ldScript.textContent = JSON.stringify(schema);        }        function openReaderInPage(targetUrl) {          closeDropdown();          readerContainer.style.display = 'flex';          updateIframeHeight(false, true);          const readerLinkContainer = document.getElementById("pcg-reader-link-container");          if (readerLinkContainer) {            readerLinkContainer.innerHTML = '<a href="' + targetUrl + '" target="_blank" rel="noopener noreferrer" class="bg-[#DC1F26] text-white px-3 py-1.5 rounded-full font-sans text-[11px] md:text-xs font-bold hover:bg-black transition-colors border-2 border-[#DC1F26] hover:border-black shadow-sm inline-block" style="text-decoration: none;">Read full review</a>';          }          readerContent.innerHTML = '<div class="pcg-reader-loading"><p>Loading article...</p></div>';          fetch(API_BASE + "/api/content?q=" + btoa(targetUrl))            .then(res => res.json())            .then(data => {               if(!data || !data.content) {                 readerContent.innerHTML = '<div class="pcg-reader-msg">Could not load article content.</div>';                 return;               }               let html = '<div class="pcg-prose-content">';               html += '<header class="pcg-reader-header">';               html += '<h1 class="pcg-reader-title">' + (data.title || '') + '</h1>';                              if (data.byline || data.date) {                 html += '<div class="pcg-reader-meta">';                 if (data.byline) {                   html += '<span>BY ' + data.byline + '</span>';                 }                 if (data.byline && data.date) {                   html += '<span class="pcg-reader-meta-divider">|</span>';                 }                 if (data.date) {                   html += '<span>PUBLISHED ' + data.date + '</span>';                 }                 html += '</div>';               }               html += '</header>';                              html += '<div class="pcg-reader-body">';               html += data.content;               html += '</div></div>';                              readerContent.innerHTML = html;            })            .catch(err => {               console.error(err);               readerContent.innerHTML = '<div class="pcg-reader-msg">An error occurred loading the article.</div>';            });        }        const searchBoxContainer = document.getElementById("pcg-search-container");        if (searchBoxContainer) {           searchBoxContainer.addEventListener("click", () => {              openDropdown();           });        }                if (searchInput) {          searchInput.addEventListener("focus", () => {             openDropdown();          });          searchInput.addEventListener("click", () => {             openDropdown();          });          searchInput.addEventListener("input", (e) => {            openDropdown();            clearTimeout(debounceTimer);            debounceTimer = setTimeout(() => fetchResults(e.target.value), 500);          });                    // Initial render with embedded cache          fetchResults("");                    if (INITIALLY_OPEN) {            openDropdown();          }                    // Background revalidate          fetch(API_BASE + "/api/reviews?category=" + encodeURIComponent(CATEGORY) + "&limit=10")            .then(res => res.json())            .then(data => {               if (data && data.results && data.results.length > 0) {                 LOCAL_REVIEWS = data.results;                 // If the user hasn't typed anything yet, refresh the UI silently                 if (!searchInput.value) {                   fetchResults("");                 }               }            })            .catch(err => console.error("Background refresh failed:", err));        }      </script>    </body></html>"   width="100%"   height="140"   style="border: none; width: 100%; max-width: 1024px; margin: 0 auto; display: block; background: transparent; transition: height 0.3s ease-out;"   title="PC Gamer Controller Widget"></iframe></div><h2 class="article-body__section" id="section-black-friday-controller-deals"><span>Black Friday controller deals </span></h2><div class="product"><a data-dimension112="fac0354e-cdff-11f1-b691-a1d834e6d980" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="$24.99" href="https://www.walmart.com/ip/GameSir-Nova-Lite-USB-Gamepad-Wireless-Bluetooth-Joystick-for-Apple-Arcade-Games/5394301595" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:425px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="qrNkN3FB5J5tnFHGYuiYtE" name="Nova Lite" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/qrNkN3FB5J5tnFHGYuiYtE-1920-80.jpg" mos="" align="middle" fullscreen="" width="425" height="425" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>It's incredible to think you can spend so little and get a stick drift-resistant wireless controller that doesn't completely suck. Luckily for the GameSir Nova Lite, it does all of the above and manages to feel good and light in the hands, too. </p><p><strong>Key specs: Wireless (Bluetooth and 2.4 GHz) | Asymmetric | Hall effect</strong><a class="view-deal button" href="https://www.walmart.com/ip/GameSir-Nova-Lite-USB-Gamepad-Wireless-Bluetooth-Joystick-for-Apple-Arcade-Games/5394301595" target="_blank" rel="nofollow" data-dimension112="fac0354e-cdff-11f1-b691-a1d834e6d980" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="$24.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac035b2-cdff-11f1-b99c-65c51c333c09" data-action="Deal Block" data-label="Ultimate 2C" data-dimension48="Ultimate 2C" data-dimension25="$29.99" href="https://www.amazon.com/dp/B0D736BCNM/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="VzGnuWAwAyES8AAmGqAW9d" name="8BitDo Ultimate 2C Wireless Controller.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/VzGnuWAwAyES8AAmGqAW9d-1920-80.jpg" mos="" align="middle" fullscreen="" width="200" height="200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0D736BCNM/?th=1" target="_blank" rel="nofollow" data-dimension112="fac035b2-cdff-11f1-b99c-65c51c333c09" data-action="Deal Block" data-label="Ultimate 2C" data-dimension48="Ultimate 2C" data-dimension25="$29.99">Ultimate 2C: $29.99</a></strong><br>We've already raved about Hall effect joysticks and how they spell the end for the dreaded stick drift. In this wireless gaming controller, they're a welcome feature, but this handful of gaming hardware packs a few quirky surprises too. For instance, there are <em>extra </em>bumper buttons.</p><p><strong>Key specs: Hall effect sticks, triggers | 2.4G wireless | 19 h battery</strong><a class="view-deal button" href="https://www.amazon.com/dp/B0D736BCNM/?th=1" target="_blank" rel="nofollow" data-dimension112="fac035b2-cdff-11f1-b99c-65c51c333c09" data-action="Deal Block" data-label="Ultimate 2C" data-dimension48="Ultimate 2C" data-dimension25="$29.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03616-cdff-11f1-9b33-6bb894b7e678" data-action="Deal Block" data-label="Ultimate 3-mode" data-dimension48="Ultimate 3-mode" data-dimension25="$39.99" href="https://www.amazon.com/Ultimate-Controller-Joysticks-Triggers-Gaming-Console/dp/B0D1VHH4C5?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="TsR8EiJ3DDMXkFgnBrMDYB" name="PCGamer Deal Block (34)" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/TsR8EiJ3DDMXkFgnBrMDYB-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Ultimate-Controller-Joysticks-Triggers-Gaming-Console/dp/B0D1VHH4C5?th=1" target="_blank" rel="nofollow" data-dimension112="fac03616-cdff-11f1-9b33-6bb894b7e678" data-action="Deal Block" data-label="Ultimate 3-mode" data-dimension48="Ultimate 3-mode" data-dimension25="$39.99">Ultimate 3-mode: was $69.99 now $39.99</a></strong><br>Though not the latest Ultimate controller to date, it is the best-priced right now, and with a cute included charging dock and stick-drift-resistant sticks, it's sure to last you a long time. The only real caveat to me is the 250 Hz polling (200 Hz wireless), which is better than Sony and Microsoft, but it means a 4-5 ms response time to your device. </p><p><strong>Key specs: Wired and Wireless | Hall effect joysticks and impulse triggers | 2 back paddle buttons | 3.5 mm jack | up to 250 Hz polling | 250 g</strong><a class="view-deal button" href="https://www.amazon.com/Ultimate-Controller-Joysticks-Triggers-Gaming-Console/dp/B0D1VHH4C5?th=1" target="_blank" rel="nofollow" data-dimension112="fac03616-cdff-11f1-9b33-6bb894b7e678" data-action="Deal Block" data-label="Ultimate 3-mode" data-dimension48="Ultimate 3-mode" data-dimension25="$39.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03670-cdff-11f1-a8c6-e7db2d0d0af1" data-action="Deal Block" data-label="X05 Pro" data-dimension48="X05 Pro" data-dimension25="$43.69" href="https://www.amazon.com/EasySMX-X05Pro-Wireless-Gaming-Controller-Charging/dp/B0GVS7HTWZ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:425px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="3eZyZnfyR9iAHvwpLaYTFo" name="D05" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/3eZyZnfyR9iAHvwpLaYTFo-1920-80.jpg" mos="" align="middle" fullscreen="" width="425" height="425" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The X05 Pro doesn't look like a budget controller. It uses Hall effect for the thumbsticks, which makes it resistant to stick drift. Moreover, it's wireless and comes with a charging dock. It's an easy pick even at full price.</p><p><strong>Key specs: Wireless (2.4 + Bluetooth) | HE sticks </strong><a class="view-deal button" href="https://www.amazon.com/EasySMX-X05Pro-Wireless-Gaming-Controller-Charging/dp/B0GVS7HTWZ" target="_blank" rel="nofollow" data-dimension112="fac03670-cdff-11f1-a8c6-e7db2d0d0af1" data-action="Deal Block" data-label="X05 Pro" data-dimension48="X05 Pro" data-dimension25="$43.69">View Deal</a></p></div><div class="product"><a data-dimension112="fac036d4-cdff-11f1-8dc4-e9b0e9e20eff" data-action="Deal Block" data-label="Wireless controller" data-dimension48="Wireless controller" data-dimension25="$49.49" href="https://www.walmart.com/ip/Microsoft-Xbox-Wireless-Controller-Carbon-Black/15060559533?classType=VARIANT&athbdg=L1200&from=/search" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="YTRwUu9W6d8x3mJzaimi69" name="1781604007.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/YTRwUu9W6d8x3mJzaimi69-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Microsoft-Xbox-Wireless-Controller-Carbon-Black/15060559533?classType=VARIANT&athbdg=L1200&from=/search" target="_blank" rel="nofollow" data-dimension112="fac036d4-cdff-11f1-8dc4-e9b0e9e20eff" data-action="Deal Block" data-label="Wireless controller" data-dimension48="Wireless controller" data-dimension25="$49.49">Wireless controller: was $64 now $49.49</a></strong><br>It may be vulnerable to stick drift (and that's a big downside), but it's hard to deny the quality on show with Microsoft's Xbox controller. Textured grips, clicky buttons, a nice weight and feel: it's got everything you need, ergonomically speaking.</p><p><strong>Key specs: Wireless | Asymmetric sticks </strong></p><p><strong>Price watch: </strong><a href="https://www.bestbuy.com/product/microsoft-xbox-wireless-controller-for-xbox-series-x-xbox-series-s-xbox-one-pcs-and-cloud-enabled-devices-deep-pink/JJGXPXQ257" target="_blank">Best Buy $69.99</a><strong> </strong>| <a href="https://www.amazon.com/Xbox-Wireless-Gaming-Controller-Headsets-Console/dp/B0F1J12R6N/ref=sr_1_3" target="_blank">Amazon $54</a></p></div><div class="product"><a data-dimension112="fac0372e-cdff-11f1-8cac-1db318e56d67" data-action="Deal Block" data-label="Valor Pro (wired)" data-dimension48="Valor Pro (wired)" data-dimension25="$69.99" href="https://www.scufgaming.com/us/en/p/scuf-valor-pro-black" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:964px;"><p class="vanilla-image-block" style="padding-top:98.96%;"><img id="Cyg8mvo5nBb2p5NVftwaoj" name="1792663014.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Cyg8mvo5nBb2p5NVftwaoj-1920-80.jpg" mos="" align="middle" fullscreen="" width="964" height="954" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.scufgaming.com/us/en/p/scuf-valor-pro-black" target="_blank" rel="nofollow" data-dimension112="fac0372e-cdff-11f1-8cac-1db318e56d67" data-action="Deal Block" data-label="Valor Pro (wired)" data-dimension48="Valor Pro (wired)" data-dimension25="$69.99">Valor Pro (wired): was $99.99 now $69.99</a></strong><br>This is the <a href="https://www.pcgamer.com/best-controller-for-pc-gaming/#section-the-best-wired-controller" target="_blank">best wired controller for PC gaming</a> because it's just so damn satisfying to use. Everything about it screams quality, from the clicky DPAD to thunky back paddles. And it's fairly modular and customizable, too.</p><p><strong>Key specs: Wired (USB-C) | Hall effect thumbsticks | 260 g</strong></p><p><strong>Price check: </strong><a href="https://www.amazon.com/gp/aw/d/B0DTB3F17W" target="_blank">Amazon $109.99</a><a class="view-deal button" href="https://www.scufgaming.com/us/en/p/scuf-valor-pro-black" target="_blank" rel="nofollow" data-dimension112="fac0372e-cdff-11f1-8cac-1db318e56d67" data-action="Deal Block" data-label="Valor Pro (wired)" data-dimension48="Valor Pro (wired)" data-dimension25="$69.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03792-cdff-11f1-9c8a-29d049b3edba" data-action="Deal Block" data-label="Wolverine V3 Pro 8K" data-dimension48="Wolverine V3 Pro 8K" data-dimension25="$151.99" href="https://www.amazon.com/dp/B0FC9DTDJ3" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="oyWyECCjM2npsCm4FAktzU" name="PCGamer Deal Block (9)" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/oyWyECCjM2npsCm4FAktzU-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>With a great feel, superb specs, and a bunch of remappable buttons, the Wolverine V3 Pro 8K is not only viable as a competitive choice, but comfy enough for everyday use. </p><p><strong>Key specs: Up to 8,000 Hz | TMR thumbsticks | Hall effect triggers |</strong> <strong>included carry case | Wireless and wired | 20 hour battery life (with 1,000 Hz polling)</strong><a class="view-deal button" href="https://www.amazon.com/dp/B0FC9DTDJ3" target="_blank" rel="nofollow" data-dimension112="fac03792-cdff-11f1-9c8a-29d049b3edba" data-action="Deal Block" data-label="Wolverine V3 Pro 8K" data-dimension48="Wolverine V3 Pro 8K" data-dimension25="$151.99">View Deal</a></p></div><ul><li><a href="#main"><strong>Back to top ^</strong></a></li></ul><div class="vizualizer-embed"><fc-author-commerce-widget data-fcaw-version="1" data-fcaw-full-bleed="false">  <style data-fcaw-host-protection>fc-author-commerce-widget[data-fcaw-version="1"] {  display: block !important;  width: 100% !important;  min-width: 0 !important;  max-width: none !important;  isolation: isolate !important;  contain: style !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]{  width: min(    1200px,    var(--fcaw-viewport-width, 100vw)  ) !important;  max-width: 1200px !important;  margin-left: var(    --fcaw-full-bleed-offset,    calc(50% - min(600px, 50vw))  ) !important;  margin-right: 0 !important;  position: relative !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]  #tg-df-spreadsheet-filters {  width: min(    1500px,    var(--fcaw-viewport-width, 100vw)  ) !important;  max-width: 1500px !important;  margin-left: calc(    (      100% -      min(1500px, var(--fcaw-viewport-width, 100vw))    ) / 2  ) !important;  margin-right: 0 !important;}fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::before,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::after {  box-sizing: border-box;}</style>  <div data-fcaw-fallback class="fcaw-v1-fallback">    <style>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with 'tg-df-' to prevent CMS style leakage.    */    .tg-df-container { user-select: text; -webkit-user-select: text;      container-type: inline-size;      container-name: tg-df;                  --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-widget-host[data-tg-df-full-bleed="true"]    {      width: min(        1200px,        var(--fcaw-viewport-width, 100vw)      ) !important;      max-width: 1200px !important;      margin-left: calc(        (          100% -          min(1200px, var(--fcaw-viewport-width, 100vw))        ) / 2      ) !important;      margin-right: 0 !important;      position: relative !important;    }    .tg-df-widget-host[data-tg-df-full-bleed="true"]      #tg-df-spreadsheet-filters {      width: min(        1500px,        var(--fcaw-viewport-width, 100vw)      ) !important;      max-width: 1500px !important;      margin-left: calc(        (          100% -          min(1500px, var(--fcaw-viewport-width, 100vw))        ) / 2      ) !important;      margin-right: 0 !important;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;      position: relative;      z-index: 20;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      margin: 0 auto;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: var(--tg-df-blue);    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters-container {      position: relative;      width: 100%;      max-width: 42rem;    }    .tg-df-scroll-btn {      display: none;      position: absolute;      top: 50%;      transform: translateY(-50%);      width: 32px;      height: 32px;      background: white;      border: 1px solid var(--tg-df-border);      border-radius: 50%;      align-items: center;      justify-content: center;      cursor: pointer;      z-index: 10;      box-shadow: 0 2px 8px rgba(0,0,0,0.1);      color: var(--tg-df-text-primary);      padding: 0;    }    .tg-df-scroll-btn svg {      width: 16px;      height: 16px;    }    .tg-df-scroll-btn:hover {      background: #f4f4f4;    }    .tg-df-scroll-btn.left {      left: 0px;    }    .tg-df-scroll-btn.right {      right: 0px;    }        .tg-df-filters {      display: flex;      justify-content: center;      width: 100%;      gap: 12px;      margin: 0 auto;      max-width: 42rem;    }                 .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;      width: 100%;      max-width: 280px;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      width: 100%;      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }    .tg-df-scroll-btn {      position: absolute;      top: 50%;      transform: translateY(-50%);      width: 32px;      height: 32px;      background: white;      border: 1px solid var(--tg-df-border);      border-radius: 50%;      align-items: center;      justify-content: center;      cursor: pointer;      z-index: 10;      box-shadow: 0 2px 8px rgba(0,0,0,0.1);      color: var(--tg-df-text-primary);      padding: 0;    }    .tg-df-scroll-btn svg {      width: 16px;      height: 16px;    }    .tg-df-scroll-btn:hover {      background: #f4f4f4;    }    .tg-df-scroll-btn.left {      left: 4px;    }    .tg-df-scroll-btn.right {      right: 4px;    }    @container tg-df (max-width: 768px) {      .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; }      .tg-df-filters-container {      position: relative;      width: 100%;      max-width: 42rem;      margin: 0 auto;    }    .tg-df-filters {        justify-content: center;        width: 100%;        margin: 0 auto;        margin-bottom: -320px;        padding: 0 0 320px 0;        display: flex;        flex-wrap: nowrap;        gap: 8px;        overflow-x: auto;        overflow-y: hidden;        pointer-events: none;        scrollbar-width: none;        -webkit-overflow-scrolling: touch;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }      .tg-df-sort-wrapper {        pointer-events: auto;        flex: 0 0 auto;        width: 175px;        min-width: 175px;      }    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: calc(100% + 32px);      max-width: none;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;      margin: 0 -16px -16px -16px;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }    .tg-df-buying-guide-badge {      left: auto;      right: 12px;      max-width: calc(100% - 24px);      overflow: hidden;      text-overflow: ellipsis;      white-space: nowrap;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges { position: absolute; bottom: 8px; left: 8px; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 0; z-index: 10; }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-card-listings {      margin: 0 0 12px;    }    .tg-df-card-listings-title {      display: block;      color: var(--tg-df-text-muted);      font-size: 11px;      font-weight: 700;      letter-spacing: 0.45px;      line-height: 1.2;      margin-bottom: 4px;      text-transform: uppercase;    }    .tg-df-card-listings-links {      border-top: 1px solid var(--tg-df-border);    }    .tg-df-container .tg-df-card-listing-link {      align-items: center;      border-bottom: 1px solid var(--tg-df-border);      box-sizing: border-box;      color: var(--tg-df-blue);      display: flex;      font-size: 13px;      font-weight: 700;      justify-content: space-between;      line-height: 1.2;      min-height: 34px;      padding: 5px 2px;      text-decoration: none;    }    .tg-df-container .tg-df-card-listing-link::after {      content: '↗';      font-size: 14px;      font-weight: 600;      margin-left: 8px;    }    .tg-df-container .tg-df-card-listing-link:hover,    .tg-df-container .tg-df-card-listing-link:focus-visible {      background: #f8fafc;      color: var(--tg-df-blue);      outline: 2px solid var(--tg-df-blue);      outline-offset: -2px;      text-decoration: none;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: calc(100% + 32px);      max-width: none;      box-sizing: border-box;      background-color: var(--tg-df-blue);      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;      margin: 0 -16px -16px -16px;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      filter: brightness(0.85);    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 120px;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /* Optional mobile 2x2 filter grid */    .tg-df-mobile-2x2-container {      display: none;      width: 100%;      margin: 0 0 16px 0;      position: relative;      z-index: 30;    }    .tg-df-mobile-2x2-grid {      display: grid;      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);      width: 100%;      border: 1px solid var(--tg-df-border, #e2e8f0);      background: var(--tg-df-bg, #ffffff);    }    .tg-df-container .tg-df-mobile-grid-cell {      appearance: none;      display: flex;      align-items: center;      justify-content: space-between;      min-width: 0;      padding: 12px 14px;      font-family: inherit;      font-size: 11px;      font-weight: 600;      line-height: 1.2;      text-transform: uppercase;      letter-spacing: 0.5px;      text-align: left;      color: var(--tg-df-text-muted, #64748b);      background: var(--tg-df-bg, #ffffff);      border: 0;      border-radius: 0;      cursor: pointer;      box-shadow: none;    }    .tg-df-mobile-grid-cell > span {      overflow: hidden;      text-overflow: ellipsis;      white-space: nowrap;    }    .tg-df-mobile-grid-cell > svg {      flex: 0 0 auto;      margin-left: 8px;      transition: transform 0.15s ease;    }    .tg-df-mobile-grid-cell > svg.is-open {      transform: rotate(180deg);    }    .tg-df-mobile-grid-cell {      border-bottom: 1px solid var(--tg-df-border, #e2e8f0);    }    .tg-df-mobile-grid-cell:nth-child(odd) {      border-right: 1px solid var(--tg-df-border, #e2e8f0);    }    .tg-df-mobile-2x2-grid--even .tg-df-mobile-grid-cell:nth-last-child(-n + 2) {      border-bottom: 0;    }    .tg-df-mobile-2x2-grid--odd .tg-df-mobile-grid-cell:last-child {      grid-column: 1 / -1;      border-right: 0;      border-bottom: 0;    }    .tg-df-container .tg-df-mobile-grid-cell.active,    .tg-df-container .tg-df-mobile-grid-cell:hover {      background: var(--tg-df-bg-secondary, #f8fafc);      color: var(--tg-df-text, #0f172a);    }    .tg-df-container .tg-df-mobile-grid-cell.has-active-filter {      background: var(--tg-df-blue, #1f69ff);      color: #ffffff;    }    .tg-df-mobile-menu-drawer {      width: 100%;      max-height: 260px;      overflow-y: auto;      overscroll-behavior: contain;      border: 1px solid var(--tg-df-border, #e2e8f0);      border-top: 0;      background: var(--tg-df-bg, #ffffff);      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);    }    .tg-df-container .tg-df-mobile-menu-item {      appearance: none;      display: flex;      align-items: center;      justify-content: space-between;      width: 100%;      min-height: 42px;      padding: 12px 16px;      font-family: inherit;      font-size: 12px;      font-weight: 500;      line-height: 1.3;      text-align: left;      color: var(--tg-df-text, #0f172a);      background: var(--tg-df-bg, #ffffff);      border: 0;      border-bottom: 1px solid #f1f5f9;      border-radius: 0;      cursor: pointer;      box-shadow: none;    }    .tg-df-container .tg-df-mobile-menu-item:last-child {      border-bottom: 0;    }    .tg-df-container .tg-df-mobile-menu-item.selected {      color: var(--tg-df-blue, #1f69ff);      background: rgba(31, 105, 255, 0.08);      font-weight: 600;    }    .tg-df-container .tg-df-mobile-menu-item:hover {      background: var(--tg-df-bg-secondary, #f8fafc);    }    .tg-df-mobile-cell-badge {      display: inline-flex;      align-items: center;      justify-content: center;      padding: 2px 6px;      margin-left: 4px;      color: var(--tg-df-blue, #1f69ff);      background: rgba(31, 105, 255, 0.1);      border-radius: 9999px;      font-size: 10px;      font-weight: 700;    }    @container tg-df (max-width: 599px) {      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-mobile-2x2-container {        display: block !important;        z-index: 50;        background: var(--tg-df-bg, #ffffff);        box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"]        .tg-df-mobile-2x2-container {        position: sticky !important;        top: var(--fcaw-mobile-sticky-offset, 0px);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-controls {        display: none !important;      }    }    @media (max-width: 599px) {      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-mobile-2x2-container {        display: block !important;        z-index: 50;        background: var(--tg-df-bg, #ffffff);        box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"]        .tg-df-mobile-2x2-container {        position: sticky !important;        top: var(--fcaw-mobile-sticky-offset, 0px);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-controls {        display: none !important;      }    }    /* A non-full-bleed desktop embed is constrained to the article column.       Reuse the compact filter grid there instead of squeezing the rails. */    @container tg-df (min-width: 600px) {      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-mobile-2x2-container {        display: block !important;      }      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-controls {        display: none !important;      }    }    @media (min-width: 600px) {      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-mobile-2x2-container {        display: block !important;      }      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-controls {        display: none !important;      }    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-mobile-authors { gap: 16px !important; }      .tg-df-mobile-authors .tg-df-author-row-item { width: 56px !important; }      .tg-df-mobile-authors .tg-df-author-img-wrapper { width: 48px !important; height: 48px !important; }      .tg-df-mobile-authors .tg-df-author-brand-logo { width: 18px !important; height: 18px !important; bottom: -2px !important; right: -2px !important; }      .tg-df-mobile-authors .tg-df-author-row-name { font-size: 11px !important; }      .tg-df-mobile-authors .tg-df-author-row-role { font-size: 10px !important; }            .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; }      .tg-df-controls {        padding: 16px 0 8px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }                  .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;        width: auto;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 8px;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 5px 12px !important;        font-size: 11px !important;        height: 30px !important;        min-height: 30px !important;        border-radius: 0 !important;        flex: 0 0 auto;        text-align: center;        white-space: nowrap;        line-height: 1.2;        margin: 8px 0 0;      }    }    @media (max-width: 599px) {      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 5px 12px !important;        font-size: 11px !important;        height: 30px !important;        min-height: 30px !important;        border-radius: 0 !important;        flex: 0 0 auto;        text-align: center;        white-space: nowrap;        line-height: 1.2;        margin: 8px 0 0;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;      width: 100vw;      max-width: 1200px;      position: relative;      left: 50%;      transform: translateX(-50%);    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: var(--tg-df-blue);      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }        .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: var(--tg-df-blue);      position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }      .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: var(--tg-df-blue);      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 14px;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }        .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;      scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }    .tg-df-container .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-carousel-scroll-left {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: rgba(255, 255, 255, 0.4);      color: var(--tg-df-blue);      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);      border: none;      cursor: pointer;      transition: background-color 0.2s;      margin-top: -4px;      z-index: 10;    }    .tg-df-container .tg-df-carousel-scroll-right {      right: 0;    }    .tg-df-container .tg-df-carousel-scroll-left {      left: 0;    }    .tg-df-container .tg-df-carousel-scroll-right:hover,    .tg-df-container .tg-df-carousel-scroll-left:hover {      background-color: rgba(255, 255, 255, 0.6);    }    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left {       height: 30px;       width: 30px;       background-color: rgba(255, 255, 255, 0.8);       box-shadow: 0 2px 4px rgba(0,0,0,0.1);       margin-top: 0;       color: #0f4098;    }    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right:hover,    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left:hover {       background-color: white;    }    .tg-df-container .tg-df-grid-wrapper {       position: relative;    }    .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-left {       background-color: white;       box-shadow: 0 4px 12px rgba(0,0,0,0.15);       top: 40%;       width: 44px;       height: 44px;       color: #0f4098;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue);    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue);    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }            .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn {      display: inline-flex;      align-items: center;    }    .tg-df-container .tg-df-carousel-filter-btn:hover, .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      width: calc(100% + 24px);      border-radius: 0;      padding: 8px 10px;      margin: auto -12px -12px -12px;      background-color: var(--tg-df-blue);    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.40);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; padding-right: 12px; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @media (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }      .tg-df-container .hawk-deal-widget-title-product-title,      .tg-df-container .hawk-deal-widget-title-price,      .tg-df-container .hawk-deal-widget-title-retailer {        font-size: 14px !important;        line-height: 1.35 !important;        font-weight: 700 !important;      }      .tg-df-container .hawk-deal-widget-title-was-price {        font-size: 13px !important;        line-height: 1.35 !important;      }      .tg-df-container .hawk-deal-widget-text-body-main {        font-size: 14px !important;        line-height: 1.35 !important;        margin-bottom: 8px !important;      }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    /* BESPOKE AUTHOR HEADER STYLES - MAX ISOLATION PROTECTION */    .tg-df-author-embed {      width: 100% !important;      font-family: inherit !important;      background: transparent !important;      margin: 0 !important;      padding: 0 !important;      border: none !important;    }    .tg-df-author-section {      display: block !important;      width: 100% !important;      max-width: 100% !important;      opacity: 1 !important;      overflow: visible !important;      background: transparent !important;      border: none !important;      margin: 0 auto !important;      padding: 0 !important;      box-shadow: none !important;    }    .tg-df-author-card {      text-align: center !important;      padding: 1.75rem 1rem 1.25rem 1rem !important;      margin: 0 auto !important;      max-width: 48rem !important;      background: transparent !important;      border: none !important;      border-radius: 0 !important;      box-sizing: border-box !important;      box-shadow: none !important;    }    .tg-df-author-image {      width: 180px !important;      height: 180px !important;      border-radius: 50% !important;      object-fit: cover !important;      margin: 0 auto 0.75rem auto !important;      display: block !important;      border: none !important;      box-shadow: none !important;      max-width: 100% !important;    }    .tg-df-author-media-slot {      width: 100% !important;      height: 180px !important;      min-height: 180px !important;      margin: 0 auto 0.75rem auto !important;      display: flex !important;      align-items: center !important;      justify-content: center !important;    }    .tg-df-author-media-slot .tg-df-author-image {      margin: 0 auto !important;    }    .tg-df-author-profile-image-wrapper {      position: relative !important;      width: 180px !important;      height: 180px !important;      margin: 0 auto 0.75rem auto !important;      flex: 0 0 auto !important;    }    .tg-df-author-profile-brand-logo {      position: absolute !important;      right: 12px !important;      bottom: 12px !important;      width: 42px !important;      height: 42px !important;      padding: 0 !important;      border: 3px solid var(--tg-df-bg, #fff) !important;      border-radius: 50% !important;      background: #000 !important;      object-fit: contain !important;      box-sizing: border-box !important;    }    .tg-df-author-curated-by {      font-size: 0.875rem !important;      color: #6B7280 !important;      font-style: normal !important;      margin: 0 0 0.25rem 0 !important;      padding: 0 !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;      letter-spacing: normal !important;      line-height: 1.4 !important;    }    .tg-df-author-name {      font-size: 2rem !important;      font-weight: 300 !important;      color: #111827 !important;      margin: 0 0 0.25rem 0 !important;      padding: 0 !important;      line-height: 1.1 !important;      letter-spacing: -0.02em !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;    }    .tg-df-author-role {      font-size: 0.9375rem !important;      font-weight: 500 !important;      color: var(--tg-df-blue, #1F69FF) !important;      margin: 0 0 1.25rem 0 !important;      padding: 0 !important;      line-height: 1.3 !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;    }    .tg-df-author-meta-slot {      width: 100% !important;      min-height: 88px !important;      display: flex !important;      flex-direction: column !important;      align-items: center !important;      justify-content: flex-start !important;    }    .tg-df-author-meta-slot--site {      padding-top: 1rem !important;    }    .tg-df-author-meta-slot--no-social {      min-height: 0 !important;    }    .tg-df-author-meta-slot--no-social .tg-df-author-role {      margin-bottom: 0.5rem !important;    }    .tg-df-author-social-links {      display: flex !important;      flex-wrap: wrap !important;      align-items: center !important;      justify-content: center !important;      gap: 1rem !important;      margin: 0 auto 1.25rem auto !important;      padding: 0 !important;      max-width: 42rem !important;      width: 100% !important;      list-style: none !important;      background: none !important;      border: none !important;      box-shadow: none !important;    }    .tg-df-author-social-btn {      display: inline-flex !important;      align-items: center !important;      justify-content: center !important;      padding: 0 !important;      border-radius: 50% !important;      background-color: #f2f2f2 !important;      color: #111111 !important;      font-size: 0.8125rem !important;      font-weight: 500 !important;      text-decoration: none !important;      transition: all 0.2s ease !important;      border: 0 !important;      line-height: 1 !important;      box-shadow: none !important;      cursor: pointer !important;      outline: none !important;      margin: 0 !important;      height: 34px !important;      width: 34px !important;      min-width: 34px !important;      box-sizing: border-box !important;    }    .tg-df-author-social-btn:hover {      background-color: #dedede !important;      color: #111111 !important;      transform: translateY(-1px) !important;    }    .tg-df-author-social-btn > svg {      width: 19px !important;      height: 19px !important;      flex-shrink: 0 !important;      display: block !important;      margin: 0 !important;    }    .tg-df-author-social-btn[data-social-key="facebook"] > svg {      transform: scale(1.25) !important;    }    .tg-df-author-social-btn[data-social-key="pinterest"] > svg,    .tg-df-author-social-btn[data-social-key="tiktok"] > svg {      transform: scale(1.2) !important;    }    .tg-df-author-bio {      max-width: 42rem !important;      margin: 0 auto 1.25rem auto !important;      padding: 0 0.5rem !important;      color: #4b5563 !important;      line-height: 1.6 !important;      font-weight: 300 !important;      font-size: 0.9375rem !important;      text-align: center !important;      background: none !important;      border: none !important;      border-radius: 0 !important;      box-shadow: none !important;      display: block !important;      height: auto !important;      overflow: visible !important;    }    .tg-df-author-bio-shell--stable {      width: 100% !important;      box-sizing: border-box !important;    }    .tg-df-author-bio--clamped {      min-height: 4.8em !important;      height: 4.8em !important;      max-height: 4.8em !important;      display: -webkit-box !important;      -webkit-box-orient: vertical !important;      -webkit-line-clamp: 3 !important;      overflow: hidden !important;    }    .tg-df-author-bio--expanded {      min-height: 4.8em !important;      height: auto !important;      max-height: none !important;      display: block !important;      overflow: visible !important;    }    .tg-df-author-bio--static,    .tg-df-author-bio--static:hover,    .tg-df-author-bio--static:focus,    .tg-df-author-bio--static:focus-visible {      outline: none !important;      box-shadow: none !important;      cursor: default !important;    }    .tg-df-author-bio-toggle-slot {      height: 28px !important;      display: flex !important;      align-items: center !important;      justify-content: center !important;      margin: 0.125rem 0 0 !important;    }    .tg-df-author-bio-toggle {      appearance: none !important;      border: 0 !important;      border-bottom: 1px solid currentColor !important;      border-radius: 0 !important;      padding: 0.125rem 0 !important;      margin: 0 !important;      background: transparent !important;      color: #4b5563 !important;      box-shadow: none !important;      font: inherit !important;      font-size: 0.75rem !important;      font-weight: 600 !important;      line-height: 1.2 !important;      text-decoration: none !important;      text-transform: none !important;      cursor: pointer !important;    }    .tg-df-author-bio a {      color: var(--tg-df-blue, #1F69FF) !important;      text-decoration: underline !important;      font-weight: 400 !important;      background: none !important;      border: none !important;      padding: 0 !important;      margin: 0 !important;      border-radius: 0 !important;      display: inline !important;      box-shadow: none !important;    }    .tg-df-author-bio p,    .tg-df-author-bio div,    .tg-df-author-bio span {      margin: 0 !important;      padding: 0 !important;      color: inherit !important;      font: inherit !important;      line-height: inherit !important;      text-align: inherit !important;      text-transform: none !important;      letter-spacing: normal !important;      background: none !important;      border: none !important;      box-shadow: none !important;    }    .tg-df-author-bio strong,    .tg-df-author-bio b {      font-weight: 600 !important;    }    .tg-df-author-bio em,    .tg-df-author-bio i {      font-style: italic !important;    }    @container tg-df (min-width: 600px) {      .tg-df-author-image {        width: 180px !important;        height: 180px !important;      }      .tg-df-author-name {        font-size: 2.5rem !important;      }    }    @media (min-width: 600px) {      .tg-df-author-image {        width: 180px !important;        height: 180px !important;      }      .tg-df-author-name {        font-size: 2.5rem !important;      }    }    @container tg-df (max-width: 768px) {      .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; }    }    @media (max-width: 768px) {      .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; }    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; }      .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; }      .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; }      .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; }      .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }    }    @media (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; }      .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; }      .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; }      .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; }      .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }    }        .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button {      align-items: center; background-color: var(--tg-df-blue); box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;    }    .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button:hover { filter: brightness(0.85); text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }    .tg-df-active-badges-row {      display: flex;      flex-wrap: wrap;      gap: 8px;      align-items: center;      margin-top: 12px;      margin-bottom: 16px;      width: 100%;    }    .tg-df-active-badge {      display: inline-flex;      align-items: center;      gap: 6px;      padding: 8px 14px;      background-color: var(--tg-df-blue, #1f69ff);      color: #ffffff;      border: 1px solid var(--tg-df-blue, #1f69ff);      border-radius: 0px;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      line-height: 1;    }    .tg-df-badge-remove {      display: inline-flex;      align-items: center;      justify-content: center;      width: 16px;      height: 16px;      border-radius: 0px;      border: none;      background: rgba(255, 255, 255, 0.25);      color: #ffffff;      cursor: pointer;      padding: 0;      margin-left: 4px;      transition: background-color 0.15s, color 0.15s;    }    .tg-df-badge-remove:hover {      background: rgba(255, 255, 255, 0.45);      color: #ffffff;    }    .tg-df-badge-clear-all {      display: inline-flex;      align-items: center;      justify-content: center;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      line-height: 1;      padding: 8px 14px;      color: var(--tg-df-text-muted, #64748b);      cursor: pointer;      background: #ffffff;      border: 1px solid var(--tg-df-border, #e2e8f0);      border-radius: 0px;      transition: all 0.15s ease;    }    .tg-df-badge-clear-all:hover {      background: var(--tg-df-blue, #1f69ff);      color: #ffffff;      border-color: var(--tg-df-blue, #1f69ff);    }    .tg-df-savings-squad-header {      margin-bottom: 24px;      text-align: center;    }    .tg-df-banner-img-desktop {      display: block;      width: 100%;      height: auto;      margin-bottom: 32px;    }    .tg-df-banner-img-mobile {      display: none;      width: 100%;      height: auto;      margin-bottom: 32px;    }    @container tg-df (max-width: 600px) {      .tg-df-banner-img-desktop {        display: none;      }      .tg-df-banner-img-mobile {        display: block;      }    }    .tg-df-header-title {      font-size: 28px;      font-weight: 700;      color: var(--tg-df-text);      margin: 32px 0 12px 0;      line-height: 1.3;    }    .tg-df-header-subtitle {      font-size: 16px;      color: var(--tg-df-text-muted);      margin: 0 0 32px 0;      line-height: 1.5;    }    @container tg-df (max-width: 599px) {      .tg-df-filters-container { display: none !important; }      #tg-df-controls { display: none !important; }      .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; }      .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; }      .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; }    }    @media (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-filters-container { display: none !important; }      #tg-df-controls { display: none !important; }      .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; }      .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; }      .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; }    }    /* Article Intro Content Styling */    .tg-df-article-content {      font-size: 1rem;      line-height: 1.7;      color: #334155;    }    .tg-df-article-content p {      margin-bottom: 1.25rem;      line-height: 1.7;      font-size: 1rem;      color: #334155;    }    .tg-df-article-content > p:first-of-type::first-letter {      font-size: 3.25rem;      font-weight: 700;      float: left;      line-height: 0.85;      margin-right: 0.5rem;      margin-top: 0.15rem;      color: #0f172a;      font-family: inherit;    }    .tg-df-article-content a {      color: #0066cc;      text-decoration: underline;      font-weight: 500;    }    .tg-df-article-content a:hover {      color: #004499;    }    .tg-df-article-content strong, .tg-df-article-content b {      font-weight: 700;      color: #0f172a;    }    .tg-df-article-section-banner {      border-bottom: 2px solid #e6007e;      margin: 2.25rem 0 1.25rem 0;      position: relative;      clear: both;    }    .tg-df-article-section-banner span {      background-color: #e6007e;      color: #ffffff;      padding: 6px 16px;      font-weight: 700;      font-size: 0.875rem;      text-transform: uppercase;      letter-spacing: 0.05em;      display: inline-block;    }  </style><div class="tg-df-widget-host" data-vizualizer-embed="true" data-tg-df-full-bleed="false" data-tg-df-mobile-dropdowns="true" data-tg-df-sticky-mobile-filters="false" style="--tg-df-blue: #DC191B;"><div class="tg-df-container article-body" style="background-color: transparent;"><div id="tg-df-spreadsheet-filters" style="display: block; margin-bottom: 16px;"><div class="tg-df-categories-row-container" style="border-bottom: 1px solid var(--tg-df-border); position: relative;"><button aria-label="Scroll left" class="tg-df-scroll-btn left tg-df-desktop-only" type="button" style="display: none;"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M15 18l-6-6 6-6"></path></svg></button><button aria-label="Scroll right" class="tg-df-scroll-btn right tg-df-desktop-only" type="button" style="display: none;"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M9 18l6-6-6-6"></path></svg></button><div class="tg-df-categories-row" style="display: flex; overflow-x: auto; scrollbar-width: none;"><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Hardware <span style="color: var(--tg-df-blue); font-size: 10px;">66</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Monitors <span style="color: var(--tg-df-blue); font-size: 10px;">9</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming PCs <span style="color: var(--tg-df-blue); font-size: 10px;">7</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Mice <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Headsets <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Audio <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">SSDs <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Storage <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Laptops <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Controllers <span style="color: var(--tg-df-blue); font-size: 10px;">1</span></button></div></div></div><div class="tg-df-mobile-2x2-container"><div class="tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--odd"><button type="button" class="tg-df-mobile-grid-cell" aria-expanded="false"><span>CATEGORIES</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button><button type="button" class="tg-df-mobile-grid-cell" aria-expanded="false"><span>PRICES</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button><button type="button" class="tg-df-mobile-grid-cell has-active-filter" aria-expanded="false"><span>DISCOUNTS (25%+)</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button></div></div><div class="tg-df-controls" id="tg-df-controls" style="display: flex; margin-top: 12px; margin-bottom: 16px; justify-content: center;"><div class="tg-df-filters-container" style="position: relative; width: 100%; max-width: 800px; margin: 0px auto;"><button class="tg-df-scroll-btn left" style="display: none;"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"></path></svg></button><button class="tg-df-scroll-btn right" style="display: none;"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"></path></svg></button><div class="tg-df-filters"><div class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper" style="display: flex;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path></svg><select class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices"><option value="all">All Prices</option><option value="under50">Under $50</option><option value="50_100">$50 - $100</option><option value="100_200">$100 - $200</option><option value="200_500">$200 - $500</option><option value="over500">Over $500</option></select></div><div class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper" style="display: flex;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path></svg><select class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount"><option value="all">Any discount</option><option value="5">Min 5%</option><option value="10">Min 10%</option><option value="15">Min 15%</option><option value="20">Min 20%</option><option value="25">Min 25%</option><option value="30">Min 30%</option><option value="40">Min 40%</option><option value="50">Min 50%</option><option value="60">Min 60%</option><option value="70">Min 70%</option></select></div><div class="tg-df-sort-wrapper" id="tg-df-review-sort-wrapper" style="display: none;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 7h16M7 12h10m-7 5h4"></path></svg><select class="tg-df-filter-select" id="tg-df-review-sort" aria-label="Sort Reviews"><option value="date_desc">Most recent</option><option value="rating_desc">Highest rating</option><option value="scored_first">Scored products first</option></select></div></div></div></div><div class="tg-df-active-badges-row" style="display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-top: 10px; margin-bottom: 16px;"><span class="tg-df-active-badge">Min 25% off<button type="button" class="tg-df-badge-remove" aria-label="Remove Min 25% off"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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></span></div><div class="tg-df-grid-wrapper"><div class="tg-df-grid article-body tg-df-grid-auto" id="tg-df-grid"><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-0" data-merchant="Amazon" data-previous-price="34.99" data-price="25.99" data-product-name="G203 | Wired"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $9</span><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G203 | Wired" class="tg-df-card-image" loading="lazy" src="http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G203 | Wired"><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G203 | Wired</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>25.99</span></span><span class="tg-df-card-msrp">$34.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Glorious" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-0" data-merchant="Amazon" data-previous-price="59.99" data-price="26.31" data-product-name="GHS Eternal | 40 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $33.68</span><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="GHS Eternal | 40 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="GHS Eternal | 40 mm drivers"><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Glorious GHS Eternal | 40 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>26.31</span></span><span class="tg-df-card-msrp">$59.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-1" data-merchant="Amazon" data-previous-price="49.99" data-price="29.99" data-product-name="G305 Lightspeed | Wireless"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G305 Lightspeed | Wireless" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G305 Lightspeed | Wireless"><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G305 Lightspeed | Wireless</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>29.99</span></span><span class="tg-df-card-msrp">$49.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-86" data-merchant="Amazon" data-previous-price="49.99" data-price="29.99" data-product-name="G305 Lightspeed"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G305 Lightspeed" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G305 Lightspeed"><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G305 Lightspeed</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>29.99</span></span><span class="tg-df-card-msrp">$49.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-87" data-merchant="Bestbuy" data-previous-price="69.99" data-price="34.98" data-product-name="Basilisk V3"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $35.01</span><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Basilisk V3" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Basilisk V3"><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer Basilisk V3</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>34.98</span></span><span class="tg-df-card-msrp">$69.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Bestbuy</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-3" data-merchant="Amazon" data-previous-price="69.99" data-price="37.99" data-product-name="G502 Hero | Wired"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $32</span><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G502 Hero | Wired" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G502 Hero | Wired"><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G502 Hero | Wired</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>37.99</span></span><span class="tg-df-card-msrp">$69.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-80" data-merchant="Amazon" data-previous-price="59.99" data-price="39.79" data-product-name="BlackShark V2 X"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20.2</span><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="BlackShark V2 X" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="BlackShark V2 X"><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer BlackShark V2 X</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>39.79</span></span><span class="tg-df-card-msrp">$59.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-1" data-merchant="Amazon" data-previous-price="79.99" data-price="39.99" data-product-name="G432 | 50 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $40</span><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G432 | 50 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G432 | 50 mm drivers"><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G432 | 50 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>39.99</span></span><span class="tg-df-card-msrp">$79.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-2" data-merchant="Amazon" data-previous-price="79.99" data-price="44.99" data-product-name="Kraken V4 X | 40 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $35</span><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Kraken V4 X | 40 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Kraken V4 X | 40 mm drivers"><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer Kraken V4 X | 40 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>44.99</span></span><span class="tg-df-card-msrp">$79.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Turtle Beach" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-5" data-merchant="Amazon" data-previous-price="99.99" data-price="54.99" data-product-name="Burst II Air | Wireless"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $45</span><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Burst II Air | Wireless" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Burst II Air | Wireless"><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Turtle Beach Burst II Air | Wireless</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>54.99</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="HyperX" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-5" data-merchant="Amazon" data-previous-price="99.99" data-price="57.99" data-product-name="Cloud III | 53 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $42</span><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Cloud III | 53 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Cloud III | 53 mm drivers"><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>HyperX Cloud III | 53 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>57.99</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Nothing" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-15" data-merchant="Amazon" data-previous-price="79" data-price="59" data-product-name="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)"><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Nothing Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>59</span></span><span class="tg-df-card-msrp">$79</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="KTC" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-40" data-merchant="Newegg" data-previous-price="99.99" data-price="62.49" data-product-name="H24V27"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $37.5</span><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="H24V27" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="H24V27"><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>KTC H24V27</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code &quot;LDSF246&quot; for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>62.49</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Newegg</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Scuf" data-currency="$" data-deal-id="airedale-A97h9Ug45WeF5xPLdcoJyf-0" data-merchant="Amazon" data-previous-price="109.99" data-price="76.99" data-product-name="Valor Pro"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $33</span><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Valor Pro" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Valor Pro"><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Scuf Valor Pro</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>76.99</span></span><span class="tg-df-card-msrp">$109.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Jess Kinghorn" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/controllers/the-best-wired-pc-controller-has-been-knocked-down-to-usd77-so-long-as-you-dont-mind-it-in-white" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Jess Kinghorn</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 24 days ago</span></div></div></div></div><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Acer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-41" data-merchant="Newegg" data-previous-price="129.99" data-price="79.99" data-product-name="AOpen 24KG1Y X3bip"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50</span><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="AOpen 24KG1Y X3bip" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="AOpen 24KG1Y X3bip"><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Acer AOpen 24KG1Y X3bip</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>79.99</span></span><span class="tg-df-card-msrp">$129.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Newegg</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Asus" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-82" data-merchant="Amazon" data-previous-price="129.99" data-price="79.99" data-product-name="ROG Pelta"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50</span><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="ROG Pelta" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="ROG Pelta"><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Asus ROG Pelta</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>79.99</span></span><span class="tg-df-card-msrp">$129.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="MSI" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-43" data-merchant="Bestbuy" data-previous-price="149.99" data-price="97.49" data-product-name="MAG 244F"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $52.5</span><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="MAG 244F" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="MAG 244F"><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>MSI MAG 244F</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>97.49</span></span><span class="tg-df-card-msrp">$149.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Bestbuy</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="MSI" data-currency="$" data-deal-id="airedale-UBBZiFU9BXsLfvbZ8d4awf-1" data-merchant="Walmart" data-previous-price="149.99" data-price="99" data-product-name="MAG 255XFV"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50.99</span><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="MAG 255XFV" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="MAG 255XFV"><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>MSI MAG 255XFV</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>99</span></span><span class="tg-df-card-msrp">$149.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Walmart</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/amazon-prime-day-gaming-monitor-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-load-more-control" style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1; overflow-anchor: none;"><button type="button" class="tg-df-tag-outline" aria-busy="false" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer;">Load More</button></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Product","name":"G203 | Wired","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":25.99,"url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":2,"item":{"@type":"Product","name":"GHS Eternal | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","brand":{"@type":"Brand","name":"Glorious"},"offers":{"@type":"Offer","priceCurrency":"USD","price":26.31,"url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":3,"item":{"@type":"Product","name":"G305 Lightspeed | Wireless","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":4,"item":{"@type":"Product","name":"G305 Lightspeed","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/dp/B07CMS5Q6P","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":5,"item":{"@type":"Product","name":"Basilisk V3","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":34.98,"url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":6,"item":{"@type":"Product","name":"G502 Hero | Wired","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":37.99,"url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":7,"item":{"@type":"Product","name":"BlackShark V2 X","image":"https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg","description":"The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.79,"url":"https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":8,"item":{"@type":"Product","name":"G432 | 50 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg","description":"Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.99,"url":"https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":9,"item":{"@type":"Product","name":"Kraken V4 X | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg","description":"If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":44.99,"url":"https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":10,"item":{"@type":"Product","name":"Burst II Air | Wireless","image":"https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg","description":"We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99","brand":{"@type":"Brand","name":"Turtle Beach"},"offers":{"@type":"Offer","priceCurrency":"USD","price":54.99,"url":"https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":11,"item":{"@type":"Product","name":"Cloud III | 53 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg","description":"We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99","brand":{"@type":"Brand","name":"HyperX"},"offers":{"@type":"Offer","priceCurrency":"USD","price":57.99,"url":"https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":12,"item":{"@type":"Product","name":"Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)","image":"https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png","description":"These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response","brand":{"@type":"Brand","name":"Nothing"},"offers":{"@type":"Offer","priceCurrency":"USD","price":59,"url":"https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":13,"item":{"@type":"Product","name":"H24V27","image":"https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png","description":"This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code "LDSF246" for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA","brand":{"@type":"Brand","name":"KTC"},"offers":{"@type":"Offer","priceCurrency":"USD","price":62.49,"url":"https://www.newegg.com/p/3D4-007C-00016","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":14,"item":{"@type":"Product","name":"Valor Pro","image":"https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png","description":"This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks","brand":{"@type":"Brand","name":"Scuf"},"offers":{"@type":"Offer","priceCurrency":"USD","price":76.99,"url":"https://www.amazon.com/dp/B0DTB3QCS5","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":15,"item":{"@type":"Product","name":"AOpen 24KG1Y X3bip","image":"https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png","description":"With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"Acer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.newegg.com/p/N82E16824011533","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":16,"item":{"@type":"Product","name":"ROG Pelta","image":"https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg","description":"With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life","brand":{"@type":"Brand","name":"Asus"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":17,"item":{"@type":"Product","name":"MAG 244F","image":"https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png","description":"With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":97.49,"url":"https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":18,"item":{"@type":"Product","name":"MAG 255XFV","image":"https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg","description":"You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":99,"url":"https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174","seller":{"@type":"Organization","name":"Walmart"}}}}]}</script></div></div><div class="tg-df-modal-backdrop "><div class="tg-df-modal"><div class="tg-df-modal-header"><h3 class="tg-df-modal-title">Available Coupons & Deals</h3><button class="tg-df-modal-close"><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 class="tg-df-modal-body"><div class="tg-df-message">No active vouchers found for .</div></div></div></div></div></div>  </div>  <script type="application/json" data-fcaw-config>{"authorBioLength":"short","authorFullBleed":false,"authorHandle":"all-authors","authorName":"All authors","backgroundColor":"transparent","customBio":"","discountAmount":"25","editorMode":false,"editorialMaxAgeMonths":"0","includeBuyingGuideProducts":false,"includeCollections":false,"includeDeals":true,"includeReviewProducts":false,"mobileDropdowns":true,"stickyMobileFilters":false,"offerType":"","preloadReviewInventory":false,"lightweightReviewDelivery":false,"hideHawkPrices":false,"prioritiseCommercialProducts":true,"priceRange":"all","productSelection":"mix","query":"","region":"auto","resultCount":"6","retailer":"","selectedBrands":[],"showAuthorBio":false,"showAuthorCounters":true,"showAuthorIdentity":false,"showAuthorRail":false,"showBrandRail":false,"showCategoryRail":true,"showCollectionsDropdown":false,"showPriceDiscountFilters":true,"showReviewSort":false,"showSocialButtons":false,"showCountdown":false,"showHeaderDetails":true,"showFreeformTagRail":false,"sort":"price_asc","viewMode":"author","website":"pcgamer","widgetSubtitle":"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.","widgetTitle":"Top Deals Handpicked by Our Editors","brands":[],"shortenedHeadlines":{},"compactEmbed":true}</script>  <script type="application/json" data-fcaw-preload>{"authors":[{"bioLong":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","bioShort":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","name":"James","fullName":"James Bentley","handle":"james-bentley","role":"Hardware writer","image":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","brandKey":"pcgamer"},{"bioLong":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","bioShort":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","name":"Dave","fullName":"Dave James","handle":"dave-james","role":"Editor-in-Chief, Hardware","image":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/not_the_gk","label":"X (Twitter)"},{"key":"email","href":"mailto:dave.james@futurenet.com","label":"Email"}]},{"bioLong":"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'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's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","bioShort":"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'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's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","name":"Jacob","fullName":"Jacob Fox","handle":"jacob-fox","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/Ee8ZL5rzgTjTNkBFJ4jBnD.png","brandKey":"pcgamer"},{"bioLong":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","bioShort":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","name":"Andy","fullName":"Andy Edser","handle":"andy-edser","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","brandKey":"pcgamer"},{"bioLong":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","bioShort":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","name":"Jess","fullName":"Jess Kinghorn","handle":"jess-kinghorn","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/KoeniginKatze","label":"X (Twitter)"},{"key":"linkedin","href":"https://www.linkedin.com/in/jess-kinghorn","label":"LinkedIn"}]}],"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"activeDealTag":null,"activeFreeformTag":null,"activeFreeformTags":[],"couponMap":{"Amazon":"has","Bestbuy":"none","Newegg":"none","Walmart":"none"},"totalAuthorCount":5,"totalDealCount":56,"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"reviewInventoryBaked":false,"regionalDealManifests":{"US":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-0","url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":25.99,"rawMsrp":34.99,"price":"25.99","msrp":"34.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $9","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g203-lightsync-wired-optical-gaming-mouse-with-8000-dpi-sensor-white/6409362.p?skuId=6409362\" target=\"_blank\"\u003eBest Buy $39.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-0","url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","title":"GHS Eternal | 40 mm drivers","brand":"Glorious","productName":"GHS Eternal | 40 mm drivers","merchant":"Amazon","rawPrice":26.31,"rawMsrp":59.99,"price":"26.31","msrp":"59.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $33.68","savingType":"amount","isPrime":false,"starRating":null,"description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","text":"\u003cp\u003eWith a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20 hz - 20 kHz | 255 g\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-1","url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite budget wireless mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/product/logitech-g305-lightspeed-wireless-optical-6-programmable-button-gaming-mouse-with-12000-dpi-hero-sensor-wireless-white/J7H7ZY2ZYR\" target=\"_blank\"\u003eBest Buy $49.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-86","url":"https://www.amazon.com/dp/B07CMS5Q6P","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","title":"G305 Lightspeed","brand":"Logitech","productName":"G305 Lightspeed","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","text":"\u003cp\u003eAlready reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-87","url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","title":"Basilisk V3","brand":"Razer","productName":"Basilisk V3","merchant":"Bestbuy","rawPrice":34.98,"rawMsrp":69.99,"price":"34.98","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $35.01","savingType":"amount","isPrime":false,"starRating":null,"description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","text":"\u003cp\u003eThis mouse might be a few years old, but we scored it highly in \u003ca href=\"https://www.pcgamer.com/razer-basilisk-v3-gaming-mouse-review/\" target=\"_blank\"\u003eour review\u003c/a\u003e in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to \u003ca href=\"https://www.pcgamer.com/hardware/im-ashamed-to-say-that-this-razer-mouse-has-made-me-actually-take-a-shine-to-rgb-and-now-you-can-be-persuaded-too-for-almost-50-percent-off/\" target=\"_blank\"\u003etempt even those who usually hate RGB lighting\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-3","url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":37.99,"rawMsrp":69.99,"price":"37.99","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $32","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","text":"\u003cp\u003eThis is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g502-hero-wired-optical-gaming-mouse-with-rgb-lighting-black/6265133.p?skuId=6265133\" target=\"_blank\"\u003eBest Buy $69.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true}],"GB":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-10","url":"https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":19.99,"rawMsrp":30.99,"price":"19.99","msrp":"30.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £11","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-11","url":"https://www.amazon.co.uk/Logitech-Wireless-Lightweight-Programmable-compatible/dp/B07CGPZ3ZQ","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":19.99,"rawMsrp":27.99,"price":"19.99","msrp":"27.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £8","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite wireless budget mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays. Key specs: Wireless | 12,000 DPI | Right-handed","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite wireless budget mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-19","url":"https://www.amazon.co.uk/JBL-Quantum-Gaming-Wired-Over-ear-Black/dp/B083X24CFF/","image":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","title":"Quantum 100 | 40 mm drivers","brand":"JBL","productName":"Quantum 100 | 40 mm drivers","merchant":"Amazon","rawPrice":19.99,"rawMsrp":29.99,"price":"19.99","msrp":"29.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £10","savingType":"amount","isPrime":false,"starRating":null,"description":"JBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired","text":"\u003cp\u003eJBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-12","url":"https://www.amazon.co.uk/Logitech-Programmable-Buttons-Computer-Adjustable/dp/B07GS6ZB7T/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":22.01,"rawMsrp":37.79,"price":"22.01","msrp":"37.79","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £15.78","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness. Key specs: Wired | 25,600 DPI | Right-handed","text":"\u003cp\u003eThis is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-23","url":"https://www.amazon.co.uk/Logitech-LIGHTSPEED-Wireless-Bluetooth-Nintendo/dp/B0FL7NNGRG?th=1","image":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","title":"G321 Lightspeed | 40 mm drivers","brand":"Logitech","productName":"G321 Lightspeed | 40 mm drivers","merchant":"Amazon","rawPrice":32.99,"rawMsrp":59.99,"price":"32.99","msrp":"59.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £27","savingType":"amount","isPrime":false,"starRating":null,"description":"This very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in his review. It won't blow you away with bass or features, but at this price it's still worth considering. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless Price check: Currys £42.99","text":"\u003cp\u003eThis very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in \u003ca href=\"https://www.pcgamer.com/hardware/gaming-headsets/logitech-g321-lightspeed-review/\" target=\"_blank\"\u003ehis review\u003c/a\u003e. It won't blow you away with bass or features, but at this price it's still worth considering.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless \u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g321-lightspeed-wireless-bluetooth-gaming-headset-black-10289632.html\" target=\"_blank\"\u003eCurrys £42.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-20","url":"https://www.amazon.co.uk/Logitech-Microphone-Comfortable-Lightweight-PlayStation/dp/B07W6J6TG5/","image":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","title":"G335 | 40 mm drivers","brand":"Logitech","productName":"G335 | 40 mm drivers","merchant":"Amazon","rawPrice":34.99,"rawMsrp":64.99,"price":"34.99","msrp":"64.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £30","savingType":"amount","isPrime":false,"starRating":null,"description":"This Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired Price check: Currys £34.99","text":"\u003cp\u003eThis Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g335-gaming-headset-black-10227173.html\" target=\"_blank\"\u003eCurrys £34.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true}],"AU":[{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-5","url":"https://www.amazon.com.au/JBL-QuantumSOUND-Signature-Comfortable-Breathable/dp/B0D6NLHV8N","image":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","title":"Quantum 100M2","brand":"JBL","productName":"Quantum 100M2","merchant":"Amazon","rawPrice":29,"rawMsrp":59.95,"price":"29","msrp":"59.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$30.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.","text":"\u003cp\u003eIf you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-1","url":"https://www.amazon.com.au/dp/B0CMCPY4VG","image":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","title":"Nova Lite","brand":"GameSir","productName":"Nova Lite","merchant":"Amazon","rawPrice":32,"rawMsrp":45,"price":"32","msrp":"45","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$13","savingType":"amount","isPrime":false,"starRating":null,"description":"Our favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.","text":"\u003cp\u003eOur favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-15","url":"https://www.amazon.com.au/dp/B07MG5547J","image":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","title":"G502 Hero","brand":"Logitech","productName":"G502 Hero","merchant":"Amazon","rawPrice":55.99,"rawMsrp":149.95,"price":"55.99","msrp":"149.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$93.96","savingType":"amount","isPrime":false,"starRating":null,"description":"Logitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;","text":"\u003cp\u003eLogitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-8","url":"https://www.amazon.com.au/CORSAIR-Membrane-Wired-Gaming-Keyboard/dp/B0CP6BR96G","image":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","title":"K55 Core Membrane","brand":"Corsair","productName":"K55 Core Membrane","merchant":"Amazon","rawPrice":59,"rawMsrp":79.95,"price":"59","msrp":"79.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$20.95","savingType":"amount","isPrime":false,"starRating":null,"description":"This discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.","text":"\u003cp\u003eThis discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-11","url":"https://www.amazon.com.au/dp/B01K48R5V4","image":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","fallbackImage":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","title":"G G213 Prodigy","brand":"Logitech","productName":"G G213 Prodigy","merchant":"Amazon","rawPrice":72,"rawMsrp":129.95,"price":"72","msrp":"129.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$57.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.","text":"\u003cp\u003eIf you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-13","url":"https://www.amazon.com.au/CORSAIR-Sabre-Ultralight-Wireless-Gaming/dp/B0FKJ2J2R8/","image":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","title":"Sabre v2 Pro","brand":"Corsair","productName":"Sabre v2 Pro","merchant":"Amazon","rawPrice":79,"rawMsrp":169,"price":"79","msrp":"169","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$90","savingType":"amount","isPrime":false,"starRating":null,"description":"The Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox loved its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life.","text":"\u003cp\u003eThe Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox \u003ca href=\"https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/\"\u003eloved\u003c/a\u003e its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life. \u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true}]},"regionalDealRailData":{"US":{"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"totalAuthorCount":5,"totalDealCount":56},"GB":{"brands":[{"formatted_value":"Logitech","count":6},{"formatted_value":"Steelseries","count":2},{"formatted_value":"EarFun","count":2},{"formatted_value":"Lexar","count":2},{"formatted_value":"AOC","count":2},{"formatted_value":"MSI","count":2},{"formatted_value":"JBL","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Turtle Beach","count":1}],"freeformTagCounts":{"hardware":17,"mouse":5,"gaming-mouse":5,"prime-day":5,"amazon-prime-day-2026":14,"amazon-prime-day":17,"prime-day-deals":8,"deals":17,"deal":17,"big-deal-days":17,"gaming-headset":9,"amazon-prime":3,"ssd":1,"pc-deals":3,"gaming-monitor":2,"monitors":2,"solid-state-drive":1,"solid-state":1,"hdd":1,"hard-drive":1,"storage":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"}],"tagCounts":{"Gaming Mice":5,"Hardware":17,"Gaming Headsets":9,"Gaming Audio":9,"SSDs":1,"Storage":1,"Gaming Monitors":2},"tags":["Hardware","Gaming Headsets","Gaming Audio","Gaming Mice","Gaming Monitors","SSDs","Storage"],"totalAuthorCount":4,"totalDealCount":17},"AU":{"brands":[{"formatted_value":"Logitech","count":7},{"formatted_value":"Corsair","count":4},{"formatted_value":"JBL","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"GameSir","count":1},{"formatted_value":"8BitDo","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Asus","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"SteelSeries","count":1}],"freeformTagCounts":{"hardware":20,"amazon-prime":20,"pc-deals":20,"deals":20,"prime-day-deals":20},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"}],"tagCounts":{"Hardware":20},"tags":["Hardware"],"totalAuthorCount":1,"totalDealCount":20}}}</script></fc-author-commerce-widget><script>(()=>{var Z1=Object.create;var cg=Object.defineProperty;var W1=Object.getOwnPropertyDescriptor;var I1=Object.getOwnPropertyNames;var J1=Object.getPrototypeOf,$1=Object.prototype.hasOwnProperty;var un=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var eb=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of I1(t))!$1.call(e,l)&&l!==n&&cg(e,l,{get:()=>t[l],enumerable:!(a=W1(t,l))||a.enumerable});return e};var B=(e,t,n)=>(n=e!=null?Z1(J1(e)):{},eb(t||!e||!e.__esModule?cg(n,"default",{value:e,enumerable:!0}):n,e));var Ag=un(z=>{"use strict";var Tc=Symbol.for("react.transitional.element"),tb=Symbol.for("react.portal"),nb=Symbol.for("react.fragment"),ab=Symbol.for("react.strict_mode"),lb=Symbol.for("react.profiler"),ib=Symbol.for("react.consumer"),rb=Symbol.for("react.context"),ob=Symbol.for("react.forward_ref"),ub=Symbol.for("react.suspense"),cb=Symbol.for("react.memo"),mg=Symbol.for("react.lazy"),sb=Symbol.for("react.activity"),sg=Symbol.iterator;function db(e){return e===null||typeof e!="object"?null:(e=sg&&e[sg]||e["@@iterator"],typeof e=="function"?e:null)}var hg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pg=Object.assign,yg={};function ml(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}ml.prototype.isReactComponent={};ml.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ml.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function vg(){}vg.prototype=ml.prototype;function Ec(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}var Dc=Ec.prototype=new vg;Dc.constructor=Ec;pg(Dc,ml.prototype);Dc.isPureReactComponent=!0;var dg=Array.isArray;function Rc(){}var he={H:null,A:null,T:null,S:null},bg=Object.prototype.hasOwnProperty;function xc(e,t,n){var a=n.ref;return{$$typeof:Tc,type:e,key:t,ref:a!==void 0?a:null,props:n}}function fb(e,t){return xc(e.type,t,e.props)}function Mc(e){return typeof e=="object"&&e!==null&&e.$$typeof===Tc}function gb(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var fg=/\/+/g;function Cc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?gb(""+e.key):t.toString(36)}function mb(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Rc,Rc):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function gl(e,t,n,a,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var r=!1;if(e===null)r=!0;else switch(i){case"bigint":case"string":case"number":r=!0;break;case"object":switch(e.$$typeof){case Tc:case tb:r=!0;break;case mg:return r=e._init,gl(r(e._payload),t,n,a,l)}}if(r)return l=l(e),r=a===""?"."+Cc(e,0):a,dg(l)?(n="",r!=null&&(n=r.replace(fg,"$&/")+"/"),gl(l,t,n,"",function(c){return c})):l!=null&&(Mc(l)&&(l=fb(l,n+(l.key==null||e&&e.key===l.key?"":(""+l.key).replace(fg,"$&/")+"/")+r)),t.push(l)),1;r=0;var o=a===""?".":a+":";if(dg(e))for(var u=0;u<e.length;u++)a=e[u],i=o+Cc(a,u),r+=gl(a,t,n,i,l);else if(u=db(e),typeof u=="function")for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,i=o+Cc(a,u++),r+=gl(a,t,n,i,l);else if(i==="object"){if(typeof e.then=="function")return gl(mb(e),t,n,a,l);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return r}function ro(e,t,n){if(e==null)return e;var a=[],l=0;return gl(e,a,"","",function(i){return t.call(n,i,l++)}),a}function hb(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var gg=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},pb={map:ro,forEach:function(e,t,n){ro(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ro(e,function(){t++}),t},toArray:function(e){return ro(e,function(t){return t})||[]},only:function(e){if(!Mc(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};z.Activity=sb;z.Children=pb;z.Component=ml;z.Fragment=nb;z.Profiler=lb;z.PureComponent=Ec;z.StrictMode=ab;z.Suspense=ub;z.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=he;z.__COMPILER_RUNTIME={__proto__:null,c:function(e){return he.H.useMemoCache(e)}};z.cache=function(e){return function(){return e.apply(null,arguments)}};z.cacheSignal=function(){return null};z.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var a=pg({},e.props),l=e.key;if(t!=null)for(i in t.key!==void 0&&(l=""+t.key),t)!bg.call(t,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&t.ref===void 0||(a[i]=t[i]);var i=arguments.length-2;if(i===1)a.children=n;else if(1<i){for(var r=Array(i),o=0;o<i;o++)r[o]=arguments[o+2];a.children=r}return xc(e.type,l,a)};z.createContext=function(e){return e={$$typeof:rb,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:ib,_context:e},e};z.createElement=function(e,t,n){var a,l={},i=null;if(t!=null)for(a in t.key!==void 0&&(i=""+t.key),t)bg.call(t,a)&&a!=="key"&&a!=="__self"&&a!=="__source"&&(l[a]=t[a]);var r=arguments.length-2;if(r===1)l.children=n;else if(1<r){for(var o=Array(r),u=0;u<r;u++)o[u]=arguments[u+2];l.children=o}if(e&&e.defaultProps)for(a in r=e.defaultProps,r)l[a]===void 0&&(l[a]=r[a]);return xc(e,i,l)};z.createRef=function(){return{current:null}};z.forwardRef=function(e){return{$$typeof:ob,render:e}};z.isValidElement=Mc;z.lazy=function(e){return{$$typeof:mg,_payload:{_status:-1,_result:e},_init:hb}};z.memo=function(e,t){return{$$typeof:cb,type:e,compare:t===void 0?null:t}};z.startTransition=function(e){var t=he.T,n={};he.T=n;try{var a=e(),l=he.S;l!==null&&l(n,a),typeof a=="object"&&a!==null&&typeof a.then=="function"&&a.then(Rc,gg)}catch(i){gg(i)}finally{t!==null&&n.types!==null&&(t.types=n.types),he.T=t}};z.unstable_useCacheRefresh=function(){return he.H.useCacheRefresh()};z.use=function(e){return he.H.use(e)};z.useActionState=function(e,t,n){return he.H.useActionState(e,t,n)};z.useCallback=function(e,t){return he.H.useCallback(e,t)};z.useContext=function(e){return he.H.useContext(e)};z.useDebugValue=function(){};z.useDeferredValue=function(e,t){return he.H.useDeferredValue(e,t)};z.useEffect=function(e,t){return he.H.useEffect(e,t)};z.useEffectEvent=function(e){return he.H.useEffectEvent(e)};z.useId=function(){return he.H.useId()};z.useImperativeHandle=function(e,t,n){return he.H.useImperativeHandle(e,t,n)};z.useInsertionEffect=function(e,t){return he.H.useInsertionEffect(e,t)};z.useLayoutEffect=function(e,t){return he.H.useLayoutEffect(e,t)};z.useMemo=function(e,t){return he.H.useMemo(e,t)};z.useOptimistic=function(e,t){return he.H.useOptimistic(e,t)};z.useReducer=function(e,t,n){return he.H.useReducer(e,t,n)};z.useRef=function(e){return he.H.useRef(e)};z.useState=function(e){return he.H.useState(e)};z.useSyncExternalStore=function(e,t,n){return he.H.useSyncExternalStore(e,t,n)};z.useTransition=function(){return he.H.useTransition()};z.version="19.2.8"});var ft=un((zS,wg)=>{"use strict";wg.exports=Ag()});var Bg=un(Se=>{"use strict";function Oc(e,t){var n=e.length;e.push(t);e:for(;0<n;){var a=n-1>>>1,l=e[a];if(0<oo(l,t))e[a]=t,e[n]=l,n=a;else break e}}function cn(e){return e.length===0?null:e[0]}function co(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var a=0,l=e.length,i=l>>>1;a<i;){var r=2*(a+1)-1,o=e[r],u=r+1,c=e[u];if(0>oo(o,n))u<l&&0>oo(c,o)?(e[a]=c,e[u]=n,a=u):(e[a]=o,e[r]=n,a=r);else if(u<l&&0>oo(c,n))e[a]=c,e[u]=n,a=u;else break e}}return t}function oo(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}Se.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Sg=performance,Se.unstable_now=function(){return Sg.now()}):(_c=Date,Cg=_c.now(),Se.unstable_now=function(){return _c.now()-Cg});var Sg,_c,Cg,wn=[],Qn=[],yb=1,Ut=null,et=3,kc=!1,Mi=!1,_i=!1,Lc=!1,Eg=typeof setTimeout=="function"?setTimeout:null,Dg=typeof clearTimeout=="function"?clearTimeout:null,Rg=typeof setImmediate<"u"?setImmediate:null;function uo(e){for(var t=cn(Qn);t!==null;){if(t.callback===null)co(Qn);else if(t.startTime<=e)co(Qn),t.sortIndex=t.expirationTime,Oc(wn,t);else break;t=cn(Qn)}}function Hc(e){if(_i=!1,uo(e),!Mi)if(cn(wn)!==null)Mi=!0,pl||(pl=!0,hl());else{var t=cn(Qn);t!==null&&zc(Hc,t.startTime-e)}}var pl=!1,Bi=-1,xg=5,Mg=-1;function _g(){return Lc?!0:!(Se.unstable_now()-Mg<xg)}function Bc(){if(Lc=!1,pl){var e=Se.unstable_now();Mg=e;var t=!0;try{e:{Mi=!1,_i&&(_i=!1,Dg(Bi),Bi=-1),kc=!0;var n=et;try{t:{for(uo(e),Ut=cn(wn);Ut!==null&&!(Ut.expirationTime>e&&_g());){var a=Ut.callback;if(typeof a=="function"){Ut.callback=null,et=Ut.priorityLevel;var l=a(Ut.expirationTime<=e);if(e=Se.unstable_now(),typeof l=="function"){Ut.callback=l,uo(e),t=!0;break t}Ut===cn(wn)&&co(wn),uo(e)}else co(wn);Ut=cn(wn)}if(Ut!==null)t=!0;else{var i=cn(Qn);i!==null&&zc(Hc,i.startTime-e),t=!1}}break e}finally{Ut=null,et=n,kc=!1}t=void 0}}finally{t?hl():pl=!1}}}var hl;typeof Rg=="function"?hl=function(){Rg(Bc)}:typeof MessageChannel<"u"?(Nc=new MessageChannel,Tg=Nc.port2,Nc.port1.onmessage=Bc,hl=function(){Tg.postMessage(null)}):hl=function(){Eg(Bc,0)};var Nc,Tg;function zc(e,t){Bi=Eg(function(){e(Se.unstable_now())},t)}Se.unstable_IdlePriority=5;Se.unstable_ImmediatePriority=1;Se.unstable_LowPriority=4;Se.unstable_NormalPriority=3;Se.unstable_Profiling=null;Se.unstable_UserBlockingPriority=2;Se.unstable_cancelCallback=function(e){e.callback=null};Se.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):xg=0<e?Math.floor(1e3/e):5};Se.unstable_getCurrentPriorityLevel=function(){return et};Se.unstable_next=function(e){switch(et){case 1:case 2:case 3:var t=3;break;default:t=et}var n=et;et=t;try{return e()}finally{et=n}};Se.unstable_requestPaint=function(){Lc=!0};Se.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=et;et=e;try{return t()}finally{et=n}};Se.unstable_scheduleCallback=function(e,t,n){var a=Se.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?a+n:a):n=a,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return l=n+l,e={id:yb++,callback:t,priorityLevel:e,startTime:n,expirationTime:l,sortIndex:-1},n>a?(e.sortIndex=n,Oc(Qn,e),cn(wn)===null&&e===cn(Qn)&&(_i?(Dg(Bi),Bi=-1):_i=!0,zc(Hc,n-a))):(e.sortIndex=l,Oc(wn,e),Mi||kc||(Mi=!0,pl||(pl=!0,hl()))),e};Se.unstable_shouldYield=_g;Se.unstable_wrapCallback=function(e){var t=et;return function(){var n=et;et=t;try{return e.apply(this,arguments)}finally{et=n}}}});var Og=un((GS,Ng)=>{"use strict";Ng.exports=Bg()});var Lg=un(ot=>{"use strict";var vb=ft();function kg(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Kn(){}var rt={d:{f:Kn,r:function(){throw Error(kg(522))},D:Kn,C:Kn,L:Kn,m:Kn,X:Kn,S:Kn,M:Kn},p:0,findDOMNode:null},bb=Symbol.for("react.portal");function Ab(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:bb,key:a==null?null:""+a,children:e,containerInfo:t,implementation:n}}var Ni=vb.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function so(e,t){if(e==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}ot.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=rt;ot.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(kg(299));return Ab(e,t,null,n)};ot.flushSync=function(e){var t=Ni.T,n=rt.p;try{if(Ni.T=null,rt.p=2,e)return e()}finally{Ni.T=t,rt.p=n,rt.d.f()}};ot.preconnect=function(e,t){typeof e=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,rt.d.C(e,t))};ot.prefetchDNS=function(e){typeof e=="string"&&rt.d.D(e)};ot.preinit=function(e,t){if(typeof e=="string"&&t&&typeof t.as=="string"){var n=t.as,a=so(n,t.crossOrigin),l=typeof t.integrity=="string"?t.integrity:void 0,i=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;n==="style"?rt.d.S(e,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:a,integrity:l,fetchPriority:i}):n==="script"&&rt.d.X(e,{crossOrigin:a,integrity:l,fetchPriority:i,nonce:typeof t.nonce=="string"?t.nonce:void 0})}};ot.preinitModule=function(e,t){if(typeof e=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var n=so(t.as,t.crossOrigin);rt.d.M(e,{crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&rt.d.M(e)};ot.preload=function(e,t){if(typeof e=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var n=t.as,a=so(n,t.crossOrigin);rt.d.L(e,n,{crossOrigin:a,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}};ot.preloadModule=function(e,t){if(typeof e=="string")if(t){var n=so(t.as,t.crossOrigin);rt.d.m(e,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else rt.d.m(e)};ot.requestFormReset=function(e){rt.d.r(e)};ot.unstable_batchedUpdates=function(e,t){return e(t)};ot.useFormState=function(e,t,n){return Ni.H.useFormState(e,t,n)};ot.useFormStatus=function(){return Ni.H.useHostTransitionStatus()};ot.version="19.2.8"});var Ug=un((qS,zg)=>{"use strict";function Hg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Hg)}catch(e){console.error(e)}}Hg(),zg.exports=Lg()});var Wy=un(Hu=>{"use strict";var Ge=Og(),sh=ft(),wb=Ug();function S(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function dh(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function vr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function fh(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function gh(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Gg(e){if(vr(e)!==e)throw Error(S(188))}function Sb(e){var t=e.alternate;if(!t){if(t=vr(e),t===null)throw Error(S(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return Gg(l),e;if(i===a)return Gg(l),t;i=i.sibling}throw Error(S(188))}if(n.return!==a.return)n=l,a=i;else{for(var r=!1,o=l.child;o;){if(o===n){r=!0,n=l,a=i;break}if(o===a){r=!0,a=l,n=i;break}o=o.sibling}if(!r){for(o=i.child;o;){if(o===n){r=!0,n=i,a=l;break}if(o===a){r=!0,a=i,n=l;break}o=o.sibling}if(!r)throw Error(S(189))}}if(n.alternate!==a)throw Error(S(190))}if(n.tag!==3)throw Error(S(188));return n.stateNode.current===n?e:t}function mh(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=mh(e),t!==null)return t;e=e.sibling}return null}var ve=Object.assign,Cb=Symbol.for("react.element"),fo=Symbol.for("react.transitional.element"),Pi=Symbol.for("react.portal"),Sl=Symbol.for("react.fragment"),hh=Symbol.for("react.strict_mode"),ys=Symbol.for("react.profiler"),ph=Symbol.for("react.consumer"),Mn=Symbol.for("react.context"),fd=Symbol.for("react.forward_ref"),vs=Symbol.for("react.suspense"),bs=Symbol.for("react.suspense_list"),gd=Symbol.for("react.memo"),Zn=Symbol.for("react.lazy");Symbol.for("react.scope");var As=Symbol.for("react.activity");Symbol.for("react.legacy_hidden");Symbol.for("react.tracing_marker");var Rb=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var Pg=Symbol.iterator;function Oi(e){return e===null||typeof e!="object"?null:(e=Pg&&e[Pg]||e["@@iterator"],typeof e=="function"?e:null)}var Tb=Symbol.for("react.client.reference");function ws(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Tb?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Sl:return"Fragment";case ys:return"Profiler";case hh:return"StrictMode";case vs:return"Suspense";case bs:return"SuspenseList";case As:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case Pi:return"Portal";case Mn:return e.displayName||"Context";case ph:return(e._context.displayName||"Context")+".Consumer";case fd:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case gd:return t=e.displayName||null,t!==null?t:ws(e.type)||"Memo";case Zn:t=e._payload,e=e._init;try{return ws(e(t))}catch{}}return null}var qi=Array.isArray,L=sh.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=wb.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,za={pending:!1,data:null,method:null,action:null},Ss=[],Cl=-1;function mn(e){return{current:e}}function Fe(e){0>Cl||(e.current=Ss[Cl],Ss[Cl]=null,Cl--)}function ge(e,t){Cl++,Ss[Cl]=e.current,e.current=t}var gn=mn(null),lr=mn(null),ra=mn(null),Vo=mn(null);function Xo(e,t){switch(ge(ra,t),ge(lr,e),ge(gn,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Qm(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Qm(t),e=Hy(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Fe(gn),ge(gn,e)}function ql(){Fe(gn),Fe(lr),Fe(ra)}function Cs(e){e.memoizedState!==null&&ge(Vo,e);var t=gn.current,n=Hy(t,e.type);t!==n&&(ge(lr,e),ge(gn,n))}function Qo(e){lr.current===e&&(Fe(gn),Fe(lr)),Vo.current===e&&(Fe(Vo),hr._currentValue=za)}var Uc,qg;function Oa(e){if(Uc===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Uc=t&&t[1]||"",qg=-1<n.stack.indexOf(`    at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return``+Uc+e+qg}var Gc=!1;function Pc(e,t){if(!e||Gc)return"";Gc=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var f=function(){throw Error()};if(Object.defineProperty(f.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(f,[])}catch(m){var d=m}Reflect.construct(e,[],f)}else{try{f.call()}catch(m){d=m}e.call(f.prototype)}}else{try{throw Error()}catch(m){d=m}(f=e())&&typeof f.catch=="function"&&f.catch(function(){})}}catch(m){if(m&&d&&typeof m.stack=="string")return[m.stack,d.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var i=a.DetermineComponentFrameRoot(),r=i[0],o=i[1];if(r&&o){var u=r.split(``),c=o.split(``);for(l=a=0;a<u.length&&!u[a].includes("DetermineComponentFrameRoot");)a++;for(;l<c.length&&!c[l].includes("DetermineComponentFrameRoot");)l++;if(a===u.length||l===c.length)for(a=u.length-1,l=c.length-1;1<=a&&0<=l&&u[a]!==c[l];)l--;for(;1<=a&&0<=l;a--,l--)if(u[a]!==c[l]){if(a!==1||l!==1)do if(a--,l--,0>l||u[a]!==c[l]){var s=``+u[a].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}while(1<=a&&0<=l);break}}}finally{Gc=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Oa(n):""}function Eb(e,t){switch(e.tag){case 26:case 27:case 5:return Oa(e.type);case 16:return Oa("Lazy");case 13:return e.child!==t&&t!==null?Oa("Suspense Fallback"):Oa("Suspense");case 19:return Oa("SuspenseList");case 0:case 15:return Pc(e.type,!1);case 11:return Pc(e.type.render,!1);case 1:return Pc(e.type,!0);case 31:return Oa("Activity");default:return""}}function Fg(e){try{var t="",n=null;do t+=Eb(e,n),n=e,e=e.return;while(e);return t}catch(a){return`Error generating stack: `+a.message+``+a.stack}}var Rs=Object.prototype.hasOwnProperty,md=Ge.unstable_scheduleCallback,qc=Ge.unstable_cancelCallback,Db=Ge.unstable_shouldYield,xb=Ge.unstable_requestPaint,Dt=Ge.unstable_now,Mb=Ge.unstable_getCurrentPriorityLevel,yh=Ge.unstable_ImmediatePriority,vh=Ge.unstable_UserBlockingPriority,Ko=Ge.unstable_NormalPriority,_b=Ge.unstable_LowPriority,bh=Ge.unstable_IdlePriority,Bb=Ge.log,Nb=Ge.unstable_setDisableYieldValue,br=null,xt=null;function ta(e){if(typeof Bb=="function"&&Nb(e),xt&&typeof xt.setStrictMode=="function")try{xt.setStrictMode(br,e)}catch{}}var Mt=Math.clz32?Math.clz32:Lb,Ob=Math.log,kb=Math.LN2;function Lb(e){return e>>>=0,e===0?32:31-(Ob(e)/kb|0)|0}var go=256,mo=262144,ho=4194304;function ka(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Au(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,i=e.suspendedLanes,r=e.pingedLanes;e=e.warmLanes;var o=a&134217727;return o!==0?(a=o&~i,a!==0?l=ka(a):(r&=o,r!==0?l=ka(r):n||(n=o&~e,n!==0&&(l=ka(n))))):(o=a&~i,o!==0?l=ka(o):r!==0?l=ka(r):n||(n=a&~e,n!==0&&(l=ka(n)))),l===0?0:t!==0&&t!==l&&(t&i)===0&&(i=l&-l,n=t&-t,i>=n||i===32&&(n&4194048)!==0)?t:l}function Ar(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Hb(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ah(){var e=ho;return ho<<=1,(ho&62914560)===0&&(ho=4194304),e}function Fc(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function wr(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function zb(e,t,n,a,l,i){var r=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,u=e.expirationTimes,c=e.hiddenUpdates;for(n=r&~n;0<n;){var s=31-Mt(n),f=1<<s;o[s]=0,u[s]=-1;var d=c[s];if(d!==null)for(c[s]=null,s=0;s<d.length;s++){var m=d[s];m!==null&&(m.lane&=-536870913)}n&=~f}a!==0&&wh(e,a,0),i!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=i&~(r&~t))}function wh(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-Mt(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function Sh(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-Mt(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function Ch(e,t){var n=t&-t;return n=(n&42)!==0?1:hd(n),(n&(e.suspendedLanes|t))!==0?0:n}function hd(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function pd(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Rh(){var e=$.p;return e!==0?e:(e=window.event,e===void 0?32:Qy(e.type))}function jg(e,t){var n=$.p;try{return $.p=e,t()}finally{$.p=n}}var ba=Math.random().toString(36).slice(2),Ve="__reactFiber$"+ba,vt="__reactProps$"+ba,Jl="__reactContainer$"+ba,Ts="__reactEvents$"+ba,Ub="__reactListeners$"+ba,Gb="__reactHandles$"+ba,Yg="__reactResources$"+ba,Sr="__reactMarker$"+ba;function yd(e){delete e[Ve],delete e[vt],delete e[Ts],delete e[Ub],delete e[Gb]}function Rl(e){var t=e[Ve];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jl]||n[Ve]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Jm(e);e!==null;){if(n=e[Ve])return n;e=Jm(e)}return t}e=n,n=e.parentNode}return null}function $l(e){if(e=e[Ve]||e[Jl]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Fi(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(S(33))}function kl(e){var t=e[Yg];return t||(t=e[Yg]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function qe(e){e[Sr]=!0}var Th=new Set,Eh={};function Qa(e,t){Fl(e,t),Fl(e+"Capture",t)}function Fl(e,t){for(Eh[e]=t,e=0;e<t.length;e++)Th.add(t[e])}var Pb=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Vg={},Xg={};function qb(e){return Rs.call(Xg,e)?!0:Rs.call(Vg,e)?!1:Pb.test(e)?Xg[e]=!0:(Vg[e]=!0,!1)}function _o(e,t,n){if(qb(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function po(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function Sn(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function Pt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Dh(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Fb(e,t,n){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var l=a.get,i=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(r){n=""+r,i.call(this,r)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(r){n=""+r},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Es(e){if(!e._valueTracker){var t=Dh(e)?"checked":"value";e._valueTracker=Fb(e,t,""+e[t])}}function xh(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Dh(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function Zo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var jb=/[\n"\\]/g;function jt(e){return e.replace(jb,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ds(e,t,n,a,l,i,r,o){e.name="",r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"?e.type=r:e.removeAttribute("type"),t!=null?r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Pt(t)):e.value!==""+Pt(t)&&(e.value=""+Pt(t)):r!=="submit"&&r!=="reset"||e.removeAttribute("value"),t!=null?xs(e,r,Pt(t)):n!=null?xs(e,r,Pt(n)):a!=null&&e.removeAttribute("value"),l==null&&i!=null&&(e.defaultChecked=!!i),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.name=""+Pt(o):e.removeAttribute("name")}function Mh(e,t,n,a,l,i,r,o){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||n!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){Es(e);return}n=n!=null?""+Pt(n):"",t=t!=null?""+Pt(t):n,o||t===e.value||(e.value=t),e.defaultValue=t}a=a??l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=o?e.checked:!!a,e.defaultChecked=!!a,r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(e.name=r),Es(e)}function xs(e,t,n){t==="number"&&Zo(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Ll(e,t,n,a){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&a&&(e[n].defaultSelected=!0)}else{for(n=""+Pt(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,a&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function _h(e,t,n){if(t!=null&&(t=""+Pt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+Pt(n):""}function Bh(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(S(92));if(qi(a)){if(1<a.length)throw Error(S(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=Pt(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Es(e)}function jl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Yb=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Qg(e,t,n){var a=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,n):typeof n!="number"||n===0||Yb.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Nh(e,t,n){if(t!=null&&typeof t!="object")throw Error(S(62));if(e=e.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var l in t)a=t[l],t.hasOwnProperty(l)&&n[l]!==a&&Qg(e,l,a)}else for(var i in t)t.hasOwnProperty(i)&&Qg(e,i,t[i])}function vd(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Vb=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Xb=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Bo(e){return Xb.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function _n(){}var Ms=null;function bd(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tl=null,Hl=null;function Kg(e){var t=$l(e);if(t&&(e=t.stateNode)){var n=e[vt]||null;e:switch(e=t.stateNode,t.type){case"input":if(Ds(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+jt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[vt]||null;if(!l)throw Error(S(90));Ds(a,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(t=0;t<n.length;t++)a=n[t],a.form===e.form&&xh(a)}break e;case"textarea":_h(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Ll(e,!!n.multiple,t,!1)}}}var jc=!1;function Oh(e,t,n){if(jc)return e(t,n);jc=!0;try{var a=e(t);return a}finally{if(jc=!1,(Tl!==null||Hl!==null)&&(Nu(),Tl&&(t=Tl,e=Hl,Hl=Tl=null,Kg(t),e)))for(t=0;t<e.length;t++)Kg(e[t])}}function ir(e,t){var n=e.stateNode;if(n===null)return null;var a=n[vt]||null;if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(S(231,t,typeof n));return n}var Ln=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_s=!1;if(Ln)try{yl={},Object.defineProperty(yl,"passive",{get:function(){_s=!0}}),window.addEventListener("test",yl,yl),window.removeEventListener("test",yl,yl)}catch{_s=!1}var yl,na=null,Ad=null,No=null;function kh(){if(No)return No;var e,t=Ad,n=t.length,a,l="value"in na?na.value:na.textContent,i=l.length;for(e=0;e<n&&t[e]===l[e];e++);var r=n-e;for(a=1;a<=r&&t[n-a]===l[i-a];a++);return No=l.slice(e,1<a?1-a:void 0)}function Oo(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function yo(){return!0}function Zg(){return!1}function bt(e){function t(n,a,l,i,r){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=i,this.target=r,this.currentTarget=null;for(var o in e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?yo:Zg,this.isPropagationStopped=Zg,this}return ve(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=yo)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=yo)},persist:function(){},isPersistent:yo}),t}var Ka={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},wu=bt(Ka),Cr=ve({},Ka,{view:0,detail:0}),Qb=bt(Cr),Yc,Vc,ki,Su=ve({},Cr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:wd,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ki&&(ki&&e.type==="mousemove"?(Yc=e.screenX-ki.screenX,Vc=e.screenY-ki.screenY):Vc=Yc=0,ki=e),Yc)},movementY:function(e){return"movementY"in e?e.movementY:Vc}}),Wg=bt(Su),Kb=ve({},Su,{dataTransfer:0}),Zb=bt(Kb),Wb=ve({},Cr,{relatedTarget:0}),Xc=bt(Wb),Ib=ve({},Ka,{animationName:0,elapsedTime:0,pseudoElement:0}),Jb=bt(Ib),$b=ve({},Ka,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),eA=bt($b),tA=ve({},Ka,{data:0}),Ig=bt(tA),nA={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},aA={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},lA={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function iA(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=lA[e])?!!t[e]:!1}function wd(){return iA}var rA=ve({},Cr,{key:function(e){if(e.key){var t=nA[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Oo(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?aA[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:wd,charCode:function(e){return e.type==="keypress"?Oo(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Oo(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),oA=bt(rA),uA=ve({},Su,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Jg=bt(uA),cA=ve({},Cr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:wd}),sA=bt(cA),dA=ve({},Ka,{propertyName:0,elapsedTime:0,pseudoElement:0}),fA=bt(dA),gA=ve({},Su,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),mA=bt(gA),hA=ve({},Ka,{newState:0,oldState:0}),pA=bt(hA),yA=[9,13,27,32],Sd=Ln&&"CompositionEvent"in window,Vi=null;Ln&&"documentMode"in document&&(Vi=document.documentMode);var vA=Ln&&"TextEvent"in window&&!Vi,Lh=Ln&&(!Sd||Vi&&8<Vi&&11>=Vi),$g=" ",em=!1;function Hh(e,t){switch(e){case"keyup":return yA.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var El=!1;function bA(e,t){switch(e){case"compositionend":return zh(t);case"keypress":return t.which!==32?null:(em=!0,$g);case"textInput":return e=t.data,e===$g&&em?null:e;default:return null}}function AA(e,t){if(El)return e==="compositionend"||!Sd&&Hh(e,t)?(e=kh(),No=Ad=na=null,El=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Lh&&t.locale!=="ko"?null:t.data;default:return null}}var wA={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function tm(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!wA[e.type]:t==="textarea"}function Uh(e,t,n,a){Tl?Hl?Hl.push(a):Hl=[a]:Tl=a,t=gu(t,"onChange"),0<t.length&&(n=new wu("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Xi=null,rr=null;function SA(e){Oy(e,0)}function Cu(e){var t=Fi(e);if(xh(t))return e}function nm(e,t){if(e==="change")return t}var Gh=!1;Ln&&(Ln?(bo="oninput"in document,bo||(Qc=document.createElement("div"),Qc.setAttribute("oninput","return;"),bo=typeof Qc.oninput=="function"),vo=bo):vo=!1,Gh=vo&&(!document.documentMode||9<document.documentMode));var vo,bo,Qc;function am(){Xi&&(Xi.detachEvent("onpropertychange",Ph),rr=Xi=null)}function Ph(e){if(e.propertyName==="value"&&Cu(rr)){var t=[];Uh(t,rr,e,bd(e)),Oh(SA,t)}}function CA(e,t,n){e==="focusin"?(am(),Xi=t,rr=n,Xi.attachEvent("onpropertychange",Ph)):e==="focusout"&&am()}function RA(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Cu(rr)}function TA(e,t){if(e==="click")return Cu(t)}function EA(e,t){if(e==="input"||e==="change")return Cu(t)}function DA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Bt=typeof Object.is=="function"?Object.is:DA;function or(e,t){if(Bt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var l=n[a];if(!Rs.call(t,l)||!Bt(e[l],t[l]))return!1}return!0}function lm(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function im(e,t){var n=lm(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=lm(n)}}function qh(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?qh(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fh(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Zo(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Zo(e.document)}return t}function Cd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var xA=Ln&&"documentMode"in document&&11>=document.documentMode,Dl=null,Bs=null,Qi=null,Ns=!1;function rm(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ns||Dl==null||Dl!==Zo(a)||(a=Dl,"selectionStart"in a&&Cd(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qi&&or(Qi,a)||(Qi=a,a=gu(Bs,"onSelect"),0<a.length&&(t=new wu("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Dl)))}function Na(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xl={animationend:Na("Animation","AnimationEnd"),animationiteration:Na("Animation","AnimationIteration"),animationstart:Na("Animation","AnimationStart"),transitionrun:Na("Transition","TransitionRun"),transitionstart:Na("Transition","TransitionStart"),transitioncancel:Na("Transition","TransitionCancel"),transitionend:Na("Transition","TransitionEnd")},Kc={},jh={};Ln&&(jh=document.createElement("div").style,"AnimationEvent"in window||(delete xl.animationend.animation,delete xl.animationiteration.animation,delete xl.animationstart.animation),"TransitionEvent"in window||delete xl.transitionend.transition);function Za(e){if(Kc[e])return Kc[e];if(!xl[e])return e;var t=xl[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in jh)return Kc[e]=t[n];return e}var Yh=Za("animationend"),Vh=Za("animationiteration"),Xh=Za("animationstart"),MA=Za("transitionrun"),_A=Za("transitionstart"),BA=Za("transitioncancel"),Qh=Za("transitionend"),Kh=new Map,Os="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Os.push("scrollEnd");function tn(e,t){Kh.set(e,t),Qa(t,[e])}var Wo=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Gt=[],Ml=0,Rd=0;function Ru(){for(var e=Ml,t=Rd=Ml=0;t<e;){var n=Gt[t];Gt[t++]=null;var a=Gt[t];Gt[t++]=null;var l=Gt[t];Gt[t++]=null;var i=Gt[t];if(Gt[t++]=null,a!==null&&l!==null){var r=a.pending;r===null?l.next=l:(l.next=r.next,r.next=l),a.pending=l}i!==0&&Zh(n,l,i)}}function Tu(e,t,n,a){Gt[Ml++]=e,Gt[Ml++]=t,Gt[Ml++]=n,Gt[Ml++]=a,Rd|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function Td(e,t,n,a){return Tu(e,t,n,a),Io(e)}function Wa(e,t){return Tu(e,null,null,t),Io(e)}function Zh(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,i=e.return;i!==null;)i.childLanes|=n,a=i.alternate,a!==null&&(a.childLanes|=n),i.tag===22&&(e=i.stateNode,e===null||e._visibility&1||(l=!0)),e=i,i=i.return;return e.tag===3?(i=e.stateNode,l&&t!==null&&(l=31-Mt(n),e=i.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),i):null}function Io(e){if(50<nr)throw nr=0,ed=null,Error(S(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var _l={};function NA(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Tt(e,t,n,a){return new NA(e,t,n,a)}function Ed(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nn(e,t){var n=e.alternate;return n===null?(n=Tt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Wh(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ko(e,t,n,a,l,i){var r=0;if(a=e,typeof e=="function")Ed(e)&&(r=1);else if(typeof e=="string")r=Lw(e,n,gn.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case As:return e=Tt(31,n,t,l),e.elementType=As,e.lanes=i,e;case Sl:return Ua(n.children,l,i,t);case hh:r=8,l|=24;break;case ys:return e=Tt(12,n,t,l|2),e.elementType=ys,e.lanes=i,e;case vs:return e=Tt(13,n,t,l),e.elementType=vs,e.lanes=i,e;case bs:return e=Tt(19,n,t,l),e.elementType=bs,e.lanes=i,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Mn:r=10;break e;case ph:r=9;break e;case fd:r=11;break e;case gd:r=14;break e;case Zn:r=16,a=null;break e}r=29,n=Error(S(130,e===null?"null":typeof e,"")),a=null}return t=Tt(r,n,t,l),t.elementType=e,t.type=a,t.lanes=i,t}function Ua(e,t,n,a){return e=Tt(7,e,a,t),e.lanes=n,e}function Zc(e,t,n){return e=Tt(6,e,null,t),e.lanes=n,e}function Ih(e){var t=Tt(18,null,null,0);return t.stateNode=e,t}function Wc(e,t,n){return t=Tt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var om=new WeakMap;function Yt(e,t){if(typeof e=="object"&&e!==null){var n=om.get(e);return n!==void 0?n:(t={value:e,source:t,stack:Fg(t)},om.set(e,t),t)}return{value:e,source:t,stack:Fg(t)}}var Bl=[],Nl=0,Jo=null,ur=0,qt=[],Ft=0,ha=null,sn=1,dn="";function Dn(e,t){Bl[Nl++]=ur,Bl[Nl++]=Jo,Jo=e,ur=t}function Jh(e,t,n){qt[Ft++]=sn,qt[Ft++]=dn,qt[Ft++]=ha,ha=e;var a=sn;e=dn;var l=32-Mt(a)-1;a&=~(1<<l),n+=1;var i=32-Mt(t)+l;if(30<i){var r=l-l%5;i=(a&(1<<r)-1).toString(32),a>>=r,l-=r,sn=1<<32-Mt(t)+l|n<<l|a,dn=i+e}else sn=1<<i|n<<l|a,dn=e}function Dd(e){e.return!==null&&(Dn(e,1),Jh(e,1,0))}function xd(e){for(;e===Jo;)Jo=Bl[--Nl],Bl[Nl]=null,ur=Bl[--Nl],Bl[Nl]=null;for(;e===ha;)ha=qt[--Ft],qt[Ft]=null,dn=qt[--Ft],qt[Ft]=null,sn=qt[--Ft],qt[Ft]=null}function $h(e,t){qt[Ft++]=sn,qt[Ft++]=dn,qt[Ft++]=ha,sn=t.id,dn=t.overflow,ha=e}var Xe=null,ye=null,V=!1,oa=null,Vt=!1,ks=Error(S(519));function pa(e){var t=Error(S(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw cr(Yt(t,e)),ks}function um(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[Ve]=e,t[vt]=a,n){case"dialog":q("cancel",t),q("close",t);break;case"iframe":case"object":case"embed":q("load",t);break;case"video":case"audio":for(n=0;n<gr.length;n++)q(gr[n],t);break;case"source":q("error",t);break;case"img":case"image":case"link":q("error",t),q("load",t);break;case"details":q("toggle",t);break;case"input":q("invalid",t),Mh(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":q("invalid",t);break;case"textarea":q("invalid",t),Bh(t,a.value,a.defaultValue,a.children)}n=a.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||a.suppressHydrationWarning===!0||Ly(t.textContent,n)?(a.popover!=null&&(q("beforetoggle",t),q("toggle",t)),a.onScroll!=null&&q("scroll",t),a.onScrollEnd!=null&&q("scrollend",t),a.onClick!=null&&(t.onclick=_n),t=!0):t=!1,t||pa(e,!0)}function cm(e){for(Xe=e.return;Xe;)switch(Xe.tag){case 5:case 31:case 13:Vt=!1;return;case 27:case 3:Vt=!0;return;default:Xe=Xe.return}}function vl(e){if(e!==Xe)return!1;if(!V)return cm(e),V=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||id(e.type,e.memoizedProps)),n=!n),n&&ye&&pa(e),cm(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(317));ye=Im(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(317));ye=Im(e)}else t===27?(t=ye,Aa(e.type)?(e=cd,cd=null,ye=e):ye=t):ye=Xe?Qt(e.stateNode.nextSibling):null;return!0}function Fa(){ye=Xe=null,V=!1}function Ic(){var e=oa;return e!==null&&(pt===null?pt=e:pt.push.apply(pt,e),oa=null),e}function cr(e){oa===null?oa=[e]:oa.push(e)}var Ls=mn(null),Ia=null,Bn=null;function In(e,t,n){ge(Ls,t._currentValue),t._currentValue=n}function On(e){e._currentValue=Ls.current,Fe(Ls)}function Hs(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function zs(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var i=l.dependencies;if(i!==null){var r=l.child;i=i.firstContext;e:for(;i!==null;){var o=i;i=l;for(var u=0;u<t.length;u++)if(o.context===t[u]){i.lanes|=n,o=i.alternate,o!==null&&(o.lanes|=n),Hs(i.return,n,e),a||(r=null);break e}i=o.next}}else if(l.tag===18){if(r=l.return,r===null)throw Error(S(341));r.lanes|=n,i=r.alternate,i!==null&&(i.lanes|=n),Hs(r,n,e),r=null}else r=l.child;if(r!==null)r.return=l;else for(r=l;r!==null;){if(r===e){r=null;break}if(l=r.sibling,l!==null){l.return=r.return,r=l;break}r=r.return}l=r}}function ei(e,t,n,a){e=null;for(var l=t,i=!1;l!==null;){if(!i){if((l.flags&524288)!==0)i=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var r=l.alternate;if(r===null)throw Error(S(387));if(r=r.memoizedProps,r!==null){var o=l.type;Bt(l.pendingProps.value,r.value)||(e!==null?e.push(o):e=[o])}}else if(l===Vo.current){if(r=l.alternate,r===null)throw Error(S(387));r.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(hr):e=[hr])}l=l.return}e!==null&&zs(t,e,n,a),t.flags|=262144}function $o(e){for(e=e.firstContext;e!==null;){if(!Bt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ja(e){Ia=e,Bn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Qe(e){return ep(Ia,e)}function Ao(e,t){return Ia===null&&ja(e),ep(e,t)}function ep(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Bn===null){if(e===null)throw Error(S(308));Bn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Bn=Bn.next=t;return n}var OA=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},kA=Ge.unstable_scheduleCallback,LA=Ge.unstable_NormalPriority,ke={$$typeof:Mn,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Md(){return{controller:new OA,data:new Map,refCount:0}}function Rr(e){e.refCount--,e.refCount===0&&kA(LA,function(){e.controller.abort()})}var Ki=null,Us=0,Yl=0,zl=null;function HA(e,t){if(Ki===null){var n=Ki=[];Us=0,Yl=ef(),zl={status:"pending",value:void 0,then:function(a){n.push(a)}}}return Us++,t.then(sm,sm),t}function sm(){if(--Us===0&&Ki!==null){zl!==null&&(zl.status="fulfilled");var e=Ki;Ki=null,Yl=0,zl=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function zA(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(a.status="rejected",a.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),a}var dm=L.S;L.S=function(e,t){my=Dt(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&HA(e,t),dm!==null&&dm(e,t)};var Ga=mn(null);function _d(){var e=Ga.current;return e!==null?e:ue.pooledCache}function Lo(e,t){t===null?ge(Ga,Ga.current):ge(Ga,t.pool)}function tp(){var e=_d();return e===null?null:{parent:ke._currentValue,pool:e}}var ti=Error(S(460)),Bd=Error(S(474)),Eu=Error(S(542)),eu={then:function(){}};function fm(e){return e=e.status,e==="fulfilled"||e==="rejected"}function np(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(_n,_n),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mm(e),e;default:if(typeof t.status=="string")t.then(_n,_n);else{if(e=ue,e!==null&&100<e.shellSuspendCounter)throw Error(S(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=a}},function(a){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mm(e),e}throw Pa=t,ti}}function La(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Pa=n,ti):n}}var Pa=null;function gm(){if(Pa===null)throw Error(S(459));var e=Pa;return Pa=null,e}function mm(e){if(e===ti||e===Eu)throw Error(S(483))}var Ul=null,sr=0;function wo(e){var t=sr;return sr+=1,Ul===null&&(Ul=[]),np(Ul,e,t)}function Li(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function So(e,t){throw t.$$typeof===Cb?Error(S(525)):(e=Object.prototype.toString.call(t),Error(S(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function ap(e){function t(h,g){if(e){var p=h.deletions;p===null?(h.deletions=[g],h.flags|=16):p.push(g)}}function n(h,g){if(!e)return null;for(;g!==null;)t(h,g),g=g.sibling;return null}function a(h){for(var g=new Map;h!==null;)h.key!==null?g.set(h.key,h):g.set(h.index,h),h=h.sibling;return g}function l(h,g){return h=Nn(h,g),h.index=0,h.sibling=null,h}function i(h,g,p){return h.index=p,e?(p=h.alternate,p!==null?(p=p.index,p<g?(h.flags|=67108866,g):p):(h.flags|=67108866,g)):(h.flags|=1048576,g)}function r(h){return e&&h.alternate===null&&(h.flags|=67108866),h}function o(h,g,p,y){return g===null||g.tag!==6?(g=Zc(p,h.mode,y),g.return=h,g):(g=l(g,p),g.return=h,g)}function u(h,g,p,y){var C=p.type;return C===Sl?s(h,g,p.props.children,y,p.key):g!==null&&(g.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zn&&La(C)===g.type)?(g=l(g,p.props),Li(g,p),g.return=h,g):(g=ko(p.type,p.key,p.props,null,h.mode,y),Li(g,p),g.return=h,g)}function c(h,g,p,y){return g===null||g.tag!==4||g.stateNode.containerInfo!==p.containerInfo||g.stateNode.implementation!==p.implementation?(g=Wc(p,h.mode,y),g.return=h,g):(g=l(g,p.children||[]),g.return=h,g)}function s(h,g,p,y,C){return g===null||g.tag!==7?(g=Ua(p,h.mode,y,C),g.return=h,g):(g=l(g,p),g.return=h,g)}function f(h,g,p){if(typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint")return g=Zc(""+g,h.mode,p),g.return=h,g;if(typeof g=="object"&&g!==null){switch(g.$$typeof){case fo:return p=ko(g.type,g.key,g.props,null,h.mode,p),Li(p,g),p.return=h,p;case Pi:return g=Wc(g,h.mode,p),g.return=h,g;case Zn:return g=La(g),f(h,g,p)}if(qi(g)||Oi(g))return g=Ua(g,h.mode,p,null),g.return=h,g;if(typeof g.then=="function")return f(h,wo(g),p);if(g.$$typeof===Mn)return f(h,Ao(h,g),p);So(h,g)}return null}function d(h,g,p,y){var C=g!==null?g.key:null;if(typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint")return C!==null?null:o(h,g,""+p,y);if(typeof p=="object"&&p!==null){switch(p.$$typeof){case fo:return p.key===C?u(h,g,p,y):null;case Pi:return p.key===C?c(h,g,p,y):null;case Zn:return p=La(p),d(h,g,p,y)}if(qi(p)||Oi(p))return C!==null?null:s(h,g,p,y,null);if(typeof p.then=="function")return d(h,g,wo(p),y);if(p.$$typeof===Mn)return d(h,g,Ao(h,p),y);So(h,p)}return null}function m(h,g,p,y,C){if(typeof y=="string"&&y!==""||typeof y=="number"||typeof y=="bigint")return h=h.get(p)||null,o(g,h,""+y,C);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case fo:return h=h.get(y.key===null?p:y.key)||null,u(g,h,y,C);case Pi:return h=h.get(y.key===null?p:y.key)||null,c(g,h,y,C);case Zn:return y=La(y),m(h,g,p,y,C)}if(qi(y)||Oi(y))return h=h.get(p)||null,s(g,h,y,C,null);if(typeof y.then=="function")return m(h,g,p,wo(y),C);if(y.$$typeof===Mn)return m(h,g,p,Ao(g,y),C);So(g,y)}return null}function v(h,g,p,y){for(var C=null,R=null,T=g,M=g=0,w=null;T!==null&&M<p.length;M++){T.index>M?(w=T,T=null):w=T.sibling;var D=d(h,T,p[M],y);if(D===null){T===null&&(T=w);break}e&&T&&D.alternate===null&&t(h,T),g=i(D,g,M),R===null?C=D:R.sibling=D,R=D,T=w}if(M===p.length)return n(h,T),V&&Dn(h,M),C;if(T===null){for(;M<p.length;M++)T=f(h,p[M],y),T!==null&&(g=i(T,g,M),R===null?C=T:R.sibling=T,R=T);return V&&Dn(h,M),C}for(T=a(T);M<p.length;M++)w=m(T,h,M,p[M],y),w!==null&&(e&&w.alternate!==null&&T.delete(w.key===null?M:w.key),g=i(w,g,M),R===null?C=w:R.sibling=w,R=w);return e&&T.forEach(function(k){return t(h,k)}),V&&Dn(h,M),C}function A(h,g,p,y){if(p==null)throw Error(S(151));for(var C=null,R=null,T=g,M=g=0,w=null,D=p.next();T!==null&&!D.done;M++,D=p.next()){T.index>M?(w=T,T=null):w=T.sibling;var k=d(h,T,D.value,y);if(k===null){T===null&&(T=w);break}e&&T&&k.alternate===null&&t(h,T),g=i(k,g,M),R===null?C=k:R.sibling=k,R=k,T=w}if(D.done)return n(h,T),V&&Dn(h,M),C;if(T===null){for(;!D.done;M++,D=p.next())D=f(h,D.value,y),D!==null&&(g=i(D,g,M),R===null?C=D:R.sibling=D,R=D);return V&&Dn(h,M),C}for(T=a(T);!D.done;M++,D=p.next())D=m(T,h,M,D.value,y),D!==null&&(e&&D.alternate!==null&&T.delete(D.key===null?M:D.key),g=i(D,g,M),R===null?C=D:R.sibling=D,R=D);return e&&T.forEach(function(se){return t(h,se)}),V&&Dn(h,M),C}function b(h,g,p,y){if(typeof p=="object"&&p!==null&&p.type===Sl&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case fo:e:{for(var C=p.key;g!==null;){if(g.key===C){if(C=p.type,C===Sl){if(g.tag===7){n(h,g.sibling),y=l(g,p.props.children),y.return=h,h=y;break e}}else if(g.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zn&&La(C)===g.type){n(h,g.sibling),y=l(g,p.props),Li(y,p),y.return=h,h=y;break e}n(h,g);break}else t(h,g);g=g.sibling}p.type===Sl?(y=Ua(p.props.children,h.mode,y,p.key),y.return=h,h=y):(y=ko(p.type,p.key,p.props,null,h.mode,y),Li(y,p),y.return=h,h=y)}return r(h);case Pi:e:{for(C=p.key;g!==null;){if(g.key===C)if(g.tag===4&&g.stateNode.containerInfo===p.containerInfo&&g.stateNode.implementation===p.implementation){n(h,g.sibling),y=l(g,p.children||[]),y.return=h,h=y;break e}else{n(h,g);break}else t(h,g);g=g.sibling}y=Wc(p,h.mode,y),y.return=h,h=y}return r(h);case Zn:return p=La(p),b(h,g,p,y)}if(qi(p))return v(h,g,p,y);if(Oi(p)){if(C=Oi(p),typeof C!="function")throw Error(S(150));return p=C.call(p),A(h,g,p,y)}if(typeof p.then=="function")return b(h,g,wo(p),y);if(p.$$typeof===Mn)return b(h,g,Ao(h,p),y);So(h,p)}return typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint"?(p=""+p,g!==null&&g.tag===6?(n(h,g.sibling),y=l(g,p),y.return=h,h=y):(n(h,g),y=Zc(p,h.mode,y),y.return=h,h=y),r(h)):n(h,g)}return function(h,g,p,y){try{sr=0;var C=b(h,g,p,y);return Ul=null,C}catch(T){if(T===ti||T===Eu)throw T;var R=Tt(29,T,null,h.mode);return R.lanes=y,R.return=h,R}finally{}}}var Ya=ap(!0),lp=ap(!1),Wn=!1;function Nd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Gs(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ua(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ca(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(J&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=Io(e),Zh(e,null,n),t}return Tu(e,a,t,n),Io(e)}function Zi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Sh(e,n)}}function Jc(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var r={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};i===null?l=i=r:i=i.next=r,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ps=!1;function Wi(){if(Ps){var e=zl;if(e!==null)throw e}}function Ii(e,t,n,a){Ps=!1;var l=e.updateQueue;Wn=!1;var i=l.firstBaseUpdate,r=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var u=o,c=u.next;u.next=null,r===null?i=c:r.next=c,r=u;var s=e.alternate;s!==null&&(s=s.updateQueue,o=s.lastBaseUpdate,o!==r&&(o===null?s.firstBaseUpdate=c:o.next=c,s.lastBaseUpdate=u))}if(i!==null){var f=l.baseState;r=0,s=c=u=null,o=i;do{var d=o.lane&-536870913,m=d!==o.lane;if(m?(Y&d)===d:(a&d)===d){d!==0&&d===Yl&&(Ps=!0),s!==null&&(s=s.next={lane:0,tag:o.tag,payload:o.payload,callback:null,next:null});e:{var v=e,A=o;d=t;var b=n;switch(A.tag){case 1:if(v=A.payload,typeof v=="function"){f=v.call(b,f,d);break e}f=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=A.payload,d=typeof v=="function"?v.call(b,f,d):v,d==null)break e;f=ve({},f,d);break e;case 2:Wn=!0}}d=o.callback,d!==null&&(e.flags|=64,m&&(e.flags|=8192),m=l.callbacks,m===null?l.callbacks=[d]:m.push(d))}else m={lane:d,tag:o.tag,payload:o.payload,callback:o.callback,next:null},s===null?(c=s=m,u=f):s=s.next=m,r|=d;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;m=o,o=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);s===null&&(u=f),l.baseState=u,l.firstBaseUpdate=c,l.lastBaseUpdate=s,i===null&&(l.shared.lanes=0),va|=r,e.lanes=r,e.memoizedState=f}}function ip(e,t){if(typeof e!="function")throw Error(S(191,e));e.call(t)}function rp(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)ip(n[e],t)}var Vl=mn(null),tu=mn(0);function hm(e,t){e=Gn,ge(tu,e),ge(Vl,t),Gn=e|t.baseLanes}function qs(){ge(tu,Gn),ge(Vl,Vl.current)}function Od(){Gn=tu.current,Fe(Vl),Fe(tu)}var Nt=mn(null),Xt=null;function Jn(e){var t=e.alternate;ge(xe,xe.current&1),ge(Nt,e),Xt===null&&(t===null||Vl.current!==null||t.memoizedState!==null)&&(Xt=e)}function Fs(e){ge(xe,xe.current),ge(Nt,e),Xt===null&&(Xt=e)}function op(e){e.tag===22?(ge(xe,xe.current),ge(Nt,e),Xt===null&&(Xt=e)):$n(e)}function $n(){ge(xe,xe.current),ge(Nt,Nt.current)}function Rt(e){Fe(Nt),Xt===e&&(Xt=null),Fe(xe)}var xe=mn(0);function nu(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||od(n)||ud(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Hn=0,G=null,re=null,Ne=null,au=!1,Gl=!1,Va=!1,lu=0,dr=0,Pl=null,UA=0;function Re(){throw Error(S(321))}function kd(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Bt(e[n],t[n]))return!1;return!0}function Ld(e,t,n,a,l,i){return Hn=i,G=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,L.H=e===null||e.memoizedState===null?Up:Xd,Va=!1,i=n(a,l),Va=!1,Gl&&(i=cp(t,n,a,l)),up(e),i}function up(e){L.H=fr;var t=re!==null&&re.next!==null;if(Hn=0,Ne=re=G=null,au=!1,dr=0,Pl=null,t)throw Error(S(300));e===null||Le||(e=e.dependencies,e!==null&&$o(e)&&(Le=!0))}function cp(e,t,n,a){G=e;var l=0;do{if(Gl&&(Pl=null),dr=0,Gl=!1,25<=l)throw Error(S(301));if(l+=1,Ne=re=null,e.updateQueue!=null){var i=e.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,i.memoCache!=null&&(i.memoCache.index=0)}L.H=Gp,i=t(n,a)}while(Gl);return i}function GA(){var e=L.H,t=e.useState()[0];return t=typeof t.then=="function"?Tr(t):t,e=e.useState()[0],(re!==null?re.memoizedState:null)!==e&&(G.flags|=1024),t}function Hd(){var e=lu!==0;return lu=0,e}function zd(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Ud(e){if(au){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}au=!1}Hn=0,Ne=re=G=null,Gl=!1,dr=lu=0,Pl=null}function ut(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ne===null?G.memoizedState=Ne=e:Ne=Ne.next=e,Ne}function Me(){if(re===null){var e=G.alternate;e=e!==null?e.memoizedState:null}else e=re.next;var t=Ne===null?G.memoizedState:Ne.next;if(t!==null)Ne=t,re=e;else{if(e===null)throw G.alternate===null?Error(S(467)):Error(S(310));re=e,e={memoizedState:re.memoizedState,baseState:re.baseState,baseQueue:re.baseQueue,queue:re.queue,next:null},Ne===null?G.memoizedState=Ne=e:Ne=Ne.next=e}return Ne}function Du(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Tr(e){var t=dr;return dr+=1,Pl===null&&(Pl=[]),e=np(Pl,e,t),t=G,(Ne===null?t.memoizedState:Ne.next)===null&&(t=t.alternate,L.H=t===null||t.memoizedState===null?Up:Xd),e}function xu(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Tr(e);if(e.$$typeof===Mn)return Qe(e)}throw Error(S(438,String(e)))}function Gd(e){var t=null,n=G.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=G.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=Du(),G.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),a=0;a<e;a++)n[a]=Rb;return t.index++,n}function zn(e,t){return typeof t=="function"?t(e):t}function Ho(e){var t=Me();return Pd(t,re,e)}function Pd(e,t,n){var a=e.queue;if(a===null)throw Error(S(311));a.lastRenderedReducer=n;var l=e.baseQueue,i=a.pending;if(i!==null){if(l!==null){var r=l.next;l.next=i.next,i.next=r}t.baseQueue=l=i,a.pending=null}if(i=e.baseState,l===null)e.memoizedState=i;else{t=l.next;var o=r=null,u=null,c=t,s=!1;do{var f=c.lane&-536870913;if(f!==c.lane?(Y&f)===f:(Hn&f)===f){var d=c.revertLane;if(d===0)u!==null&&(u=u.next={lane:0,revertLane:0,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),f===Yl&&(s=!0);else if((Hn&d)===d){c=c.next,d===Yl&&(s=!0);continue}else f={lane:0,revertLane:c.revertLane,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},u===null?(o=u=f,r=i):u=u.next=f,G.lanes|=d,va|=d;f=c.action,Va&&n(i,f),i=c.hasEagerState?c.eagerState:n(i,f)}else d={lane:f,revertLane:c.revertLane,gesture:c.gesture,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},u===null?(o=u=d,r=i):u=u.next=d,G.lanes|=f,va|=f;c=c.next}while(c!==null&&c!==t);if(u===null?r=i:u.next=o,!Bt(i,e.memoizedState)&&(Le=!0,s&&(n=zl,n!==null)))throw n;e.memoizedState=i,e.baseState=r,e.baseQueue=u,a.lastRenderedState=i}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function $c(e){var t=Me(),n=t.queue;if(n===null)throw Error(S(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var r=l=l.next;do i=e(i,r.action),r=r.next;while(r!==l);Bt(i,t.memoizedState)||(Le=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,a]}function sp(e,t,n){var a=G,l=Me(),i=V;if(i){if(n===void 0)throw Error(S(407));n=n()}else n=t();var r=!Bt((re||l).memoizedState,n);if(r&&(l.memoizedState=n,Le=!0),l=l.queue,qd(gp.bind(null,a,l,e),[e]),l.getSnapshot!==t||r||Ne!==null&&Ne.memoizedState.tag&1){if(a.flags|=2048,Xl(9,{destroy:void 0},fp.bind(null,a,l,n,t),null),ue===null)throw Error(S(349));i||(Hn&127)!==0||dp(a,t,n)}return n}function dp(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=G.updateQueue,t===null?(t=Du(),G.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function fp(e,t,n,a){t.value=n,t.getSnapshot=a,mp(t)&&hp(e)}function gp(e,t,n){return n(function(){mp(t)&&hp(e)})}function mp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Bt(e,n)}catch{return!0}}function hp(e){var t=Wa(e,2);t!==null&&yt(t,e,2)}function js(e){var t=ut();if(typeof e=="function"){var n=e;if(e=n(),Va){ta(!0);try{n()}finally{ta(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:e},t}function pp(e,t,n,a){return e.baseState=n,Pd(e,re,typeof a=="function"?a:zn)}function PA(e,t,n,a,l){if(_u(e))throw Error(S(485));if(e=t.action,e!==null){var i={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(r){i.listeners.push(r)}};L.T!==null?n(!0):i.isTransition=!1,a(i),n=t.pending,n===null?(i.next=t.pending=i,yp(t,i)):(i.next=n.next,t.pending=n.next=i)}}function yp(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var i=L.T,r={};L.T=r;try{var o=n(l,a),u=L.S;u!==null&&u(r,o),pm(e,t,o)}catch(c){Ys(e,t,c)}finally{i!==null&&r.types!==null&&(i.types=r.types),L.T=i}}else try{i=n(l,a),pm(e,t,i)}catch(c){Ys(e,t,c)}}function pm(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){ym(e,t,a)},function(a){return Ys(e,t,a)}):ym(e,t,n)}function ym(e,t,n){t.status="fulfilled",t.value=n,vp(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,yp(e,n)))}function Ys(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,vp(t),t=t.next;while(t!==a)}e.action=null}function vp(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function bp(e,t){return t}function vm(e,t){if(V){var n=ue.formState;if(n!==null){e:{var a=G;if(V){if(ye){t:{for(var l=ye,i=Vt;l.nodeType!==8;){if(!i){l=null;break t}if(l=Qt(l.nextSibling),l===null){l=null;break t}}i=l.data,l=i==="F!"||i==="F"?l:null}if(l){ye=Qt(l.nextSibling),a=l.data==="F!";break e}}pa(a)}a=!1}a&&(t=n[0])}}return n=ut(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:bp,lastRenderedState:t},n.queue=a,n=Lp.bind(null,G,a),a.dispatch=n,a=js(!1),i=Vd.bind(null,G,!1,a.queue),a=ut(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=PA.bind(null,G,l,i,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function bm(e){var t=Me();return Ap(t,re,e)}function Ap(e,t,n){if(t=Pd(e,t,bp)[0],e=Ho(zn)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Tr(t)}catch(r){throw r===ti?Eu:r}else a=t;t=Me();var l=t.queue,i=l.dispatch;return n!==t.memoizedState&&(G.flags|=2048,Xl(9,{destroy:void 0},qA.bind(null,l,n),null)),[a,i,e]}function qA(e,t){e.action=t}function Am(e){var t=Me(),n=re;if(n!==null)return Ap(t,n,e);Me(),t=t.memoizedState,n=Me();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Xl(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=G.updateQueue,t===null&&(t=Du(),G.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function wp(){return Me().memoizedState}function zo(e,t,n,a){var l=ut();G.flags|=e,l.memoizedState=Xl(1|t,{destroy:void 0},n,a===void 0?null:a)}function Mu(e,t,n,a){var l=Me();a=a===void 0?null:a;var i=l.memoizedState.inst;re!==null&&a!==null&&kd(a,re.memoizedState.deps)?l.memoizedState=Xl(t,i,n,a):(G.flags|=e,l.memoizedState=Xl(1|t,i,n,a))}function wm(e,t){zo(8390656,8,e,t)}function qd(e,t){Mu(2048,8,e,t)}function FA(e){G.flags|=4;var t=G.updateQueue;if(t===null)t=Du(),G.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Sp(e){var t=Me().memoizedState;return FA({ref:t,nextImpl:e}),function(){if((J&2)!==0)throw Error(S(440));return t.impl.apply(void 0,arguments)}}function Cp(e,t){return Mu(4,2,e,t)}function Rp(e,t){return Mu(4,4,e,t)}function Tp(e,t){if(typeof t=="function"){e=e();var n=t(e);return function(){typeof n=="function"?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Ep(e,t,n){n=n!=null?n.concat([e]):null,Mu(4,4,Tp.bind(null,t,e),n)}function Fd(){}function Dp(e,t){var n=Me();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&kd(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function xp(e,t){var n=Me();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&kd(t,a[1]))return a[0];if(a=e(),Va){ta(!0);try{e()}finally{ta(!1)}}return n.memoizedState=[a,t],a}function jd(e,t,n){return n===void 0||(Hn&1073741824)!==0&&(Y&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=py(),G.lanes|=e,va|=e,n)}function Mp(e,t,n,a){return Bt(n,t)?n:Vl.current!==null?(e=jd(e,n,a),Bt(e,t)||(Le=!0),e):(Hn&42)===0||(Hn&1073741824)!==0&&(Y&261930)===0?(Le=!0,e.memoizedState=n):(e=py(),G.lanes|=e,va|=e,t)}function _p(e,t,n,a,l){var i=$.p;$.p=i!==0&&8>i?i:8;var r=L.T,o={};L.T=o,Vd(e,!1,t,n);try{var u=l(),c=L.S;if(c!==null&&c(o,u),u!==null&&typeof u=="object"&&typeof u.then=="function"){var s=zA(u,a);Ji(e,t,s,_t(e))}else Ji(e,t,a,_t(e))}catch(f){Ji(e,t,{then:function(){},status:"rejected",reason:f},_t())}finally{$.p=i,r!==null&&o.types!==null&&(r.types=o.types),L.T=r}}function jA(){}function Vs(e,t,n,a){if(e.tag!==5)throw Error(S(476));var l=Bp(e).queue;_p(e,l,t,za,n===null?jA:function(){return Np(e),n(a)})}function Bp(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:za,baseState:za,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:za},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Np(e){var t=Bp(e);t.next===null&&(t=e.alternate.memoizedState),Ji(e,t.next.queue,{},_t())}function Yd(){return Qe(hr)}function Op(){return Me().memoizedState}function kp(){return Me().memoizedState}function YA(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=_t();e=ua(n);var a=ca(t,e,n);a!==null&&(yt(a,t,n),Zi(a,t,n)),t={cache:Md()},e.payload=t;return}t=t.return}}function VA(e,t,n){var a=_t();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},_u(e)?Hp(t,n):(n=Td(e,t,n,a),n!==null&&(yt(n,e,a),zp(n,t,a)))}function Lp(e,t,n){var a=_t();Ji(e,t,n,a)}function Ji(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(_u(e))Hp(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var r=t.lastRenderedState,o=i(r,n);if(l.hasEagerState=!0,l.eagerState=o,Bt(o,r))return Tu(e,t,l,0),ue===null&&Ru(),!1}catch{}finally{}if(n=Td(e,t,l,a),n!==null)return yt(n,e,a),zp(n,t,a),!0}return!1}function Vd(e,t,n,a){if(a={lane:2,revertLane:ef(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},_u(e)){if(t)throw Error(S(479))}else t=Td(e,n,a,2),t!==null&&yt(t,e,2)}function _u(e){var t=e.alternate;return e===G||t!==null&&t===G}function Hp(e,t){Gl=au=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function zp(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Sh(e,n)}}var fr={readContext:Qe,use:xu,useCallback:Re,useContext:Re,useEffect:Re,useImperativeHandle:Re,useLayoutEffect:Re,useInsertionEffect:Re,useMemo:Re,useReducer:Re,useRef:Re,useState:Re,useDebugValue:Re,useDeferredValue:Re,useTransition:Re,useSyncExternalStore:Re,useId:Re,useHostTransitionStatus:Re,useFormState:Re,useActionState:Re,useOptimistic:Re,useMemoCache:Re,useCacheRefresh:Re};fr.useEffectEvent=Re;var Up={readContext:Qe,use:xu,useCallback:function(e,t){return ut().memoizedState=[e,t===void 0?null:t],e},useContext:Qe,useEffect:wm,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,zo(4194308,4,Tp.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zo(4194308,4,e,t)},useInsertionEffect:function(e,t){zo(4,2,e,t)},useMemo:function(e,t){var n=ut();t=t===void 0?null:t;var a=e();if(Va){ta(!0);try{e()}finally{ta(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=ut();if(n!==void 0){var l=n(t);if(Va){ta(!0);try{n(t)}finally{ta(!1)}}}else l=t;return a.memoizedState=a.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},a.queue=e,e=e.dispatch=VA.bind(null,G,e),[a.memoizedState,e]},useRef:function(e){var t=ut();return e={current:e},t.memoizedState=e},useState:function(e){e=js(e);var t=e.queue,n=Lp.bind(null,G,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Fd,useDeferredValue:function(e,t){var n=ut();return jd(n,e,t)},useTransition:function(){var e=js(!1);return e=_p.bind(null,G,e.queue,!0,!1),ut().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=G,l=ut();if(V){if(n===void 0)throw Error(S(407));n=n()}else{if(n=t(),ue===null)throw Error(S(349));(Y&127)!==0||dp(a,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,wm(gp.bind(null,a,i,e),[e]),a.flags|=2048,Xl(9,{destroy:void 0},fp.bind(null,a,i,n,t),null),n},useId:function(){var e=ut(),t=ue.identifierPrefix;if(V){var n=dn,a=sn;n=(a&~(1<<32-Mt(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=lu++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=UA++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Yd,useFormState:vm,useActionState:vm,useOptimistic:function(e){var t=ut();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Vd.bind(null,G,!0,n),n.dispatch=t,[e,t]},useMemoCache:Gd,useCacheRefresh:function(){return ut().memoizedState=YA.bind(null,G)},useEffectEvent:function(e){var t=ut(),n={impl:e};return t.memoizedState=n,function(){if((J&2)!==0)throw Error(S(440));return n.impl.apply(void 0,arguments)}}},Xd={readContext:Qe,use:xu,useCallback:Dp,useContext:Qe,useEffect:qd,useImperativeHandle:Ep,useInsertionEffect:Cp,useLayoutEffect:Rp,useMemo:xp,useReducer:Ho,useRef:wp,useState:function(){return Ho(zn)},useDebugValue:Fd,useDeferredValue:function(e,t){var n=Me();return Mp(n,re.memoizedState,e,t)},useTransition:function(){var e=Ho(zn)[0],t=Me().memoizedState;return[typeof e=="boolean"?e:Tr(e),t]},useSyncExternalStore:sp,useId:Op,useHostTransitionStatus:Yd,useFormState:bm,useActionState:bm,useOptimistic:function(e,t){var n=Me();return pp(n,re,e,t)},useMemoCache:Gd,useCacheRefresh:kp};Xd.useEffectEvent=Sp;var Gp={readContext:Qe,use:xu,useCallback:Dp,useContext:Qe,useEffect:qd,useImperativeHandle:Ep,useInsertionEffect:Cp,useLayoutEffect:Rp,useMemo:xp,useReducer:$c,useRef:wp,useState:function(){return $c(zn)},useDebugValue:Fd,useDeferredValue:function(e,t){var n=Me();return re===null?jd(n,e,t):Mp(n,re.memoizedState,e,t)},useTransition:function(){var e=$c(zn)[0],t=Me().memoizedState;return[typeof e=="boolean"?e:Tr(e),t]},useSyncExternalStore:sp,useId:Op,useHostTransitionStatus:Yd,useFormState:Am,useActionState:Am,useOptimistic:function(e,t){var n=Me();return re!==null?pp(n,re,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Gd,useCacheRefresh:kp};Gp.useEffectEvent=Sp;function es(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:ve({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Xs={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=_t(),l=ua(a);l.payload=t,n!=null&&(l.callback=n),t=ca(e,l,a),t!==null&&(yt(t,e,a),Zi(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=_t(),l=ua(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=ca(e,l,a),t!==null&&(yt(t,e,a),Zi(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=_t(),a=ua(n);a.tag=2,t!=null&&(a.callback=t),t=ca(e,a,n),t!==null&&(yt(t,e,n),Zi(t,e,n))}};function Sm(e,t,n,a,l,i,r){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,i,r):t.prototype&&t.prototype.isPureReactComponent?!or(n,a)||!or(l,i):!0}function Cm(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&Xs.enqueueReplaceState(t,t.state,null)}function Xa(e,t){var n=t;if("ref"in t){n={};for(var a in t)a!=="ref"&&(n[a]=t[a])}if(e=e.defaultProps){n===t&&(n=ve({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function Pp(e){Wo(e)}function qp(e){console.error(e)}function Fp(e){Wo(e)}function iu(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Rm(e,t,n){try{var a=e.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(l){setTimeout(function(){throw l})}}function Qs(e,t,n){return n=ua(n),n.tag=3,n.payload={element:null},n.callback=function(){iu(e,t)},n}function jp(e){return e=ua(e),e.tag=3,e}function Yp(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var i=a.value;e.payload=function(){return l(i)},e.callback=function(){Rm(t,n,a)}}var r=n.stateNode;r!==null&&typeof r.componentDidCatch=="function"&&(e.callback=function(){Rm(t,n,a),typeof l!="function"&&(sa===null?sa=new Set([this]):sa.add(this));var o=a.stack;this.componentDidCatch(a.value,{componentStack:o!==null?o:""})})}function XA(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&ei(t,n,l,!0),n=Nt.current,n!==null){switch(n.tag){case 31:case 13:return Xt===null?su():n.alternate===null&&Te===0&&(Te=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===eu?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),ds(e,a,l)),!1;case 22:return n.flags|=65536,a===eu?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([a]):n.add(a)),ds(e,a,l)),!1}throw Error(S(435,n.tag))}return ds(e,a,l),su(),!1}if(V)return t=Nt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==ks&&(e=Error(S(422),{cause:a}),cr(Yt(e,n)))):(a!==ks&&(t=Error(S(423),{cause:a}),cr(Yt(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=Yt(a,n),l=Qs(e.stateNode,a,l),Jc(e,l),Te!==4&&(Te=2)),!1;var i=Error(S(520),{cause:a});if(i=Yt(i,n),tr===null?tr=[i]:tr.push(i),Te!==4&&(Te=2),t===null)return!0;a=Yt(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Qs(n.stateNode,a,e),Jc(n,e),!1;case 1:if(t=n.type,i=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(sa===null||!sa.has(i))))return n.flags|=65536,l&=-l,n.lanes|=l,l=jp(l),Yp(l,e,n,a),Jc(n,l),!1}n=n.return}while(n!==null);return!1}var Qd=Error(S(461)),Le=!1;function Ye(e,t,n,a){t.child=e===null?lp(t,null,n,a):Ya(t,e.child,n,a)}function Tm(e,t,n,a,l){n=n.render;var i=t.ref;if("ref"in a){var r={};for(var o in a)o!=="ref"&&(r[o]=a[o])}else r=a;return ja(t),a=Ld(e,t,n,r,i,l),o=Hd(),e!==null&&!Le?(zd(e,t,l),Un(e,t,l)):(V&&o&&Dd(t),t.flags|=1,Ye(e,t,a,l),t.child)}function Em(e,t,n,a,l){if(e===null){var i=n.type;return typeof i=="function"&&!Ed(i)&&i.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=i,Vp(e,t,i,a,l)):(e=ko(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!Kd(e,l)){var r=i.memoizedProps;if(n=n.compare,n=n!==null?n:or,n(r,a)&&e.ref===t.ref)return Un(e,t,l)}return t.flags|=1,e=Nn(i,a),e.ref=t.ref,e.return=t,t.child=e}function Vp(e,t,n,a,l){if(e!==null){var i=e.memoizedProps;if(or(i,a)&&e.ref===t.ref)if(Le=!1,t.pendingProps=a=i,Kd(e,l))(e.flags&131072)!==0&&(Le=!0);else return t.lanes=e.lanes,Un(e,t,l)}return Ks(e,t,n,a,l)}function Xp(e,t,n,a){var l=a.children,i=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(i=i!==null?i.baseLanes|n:n,e!==null){for(a=t.child=e.child,l=0;a!==null;)l=l|a.lanes|a.childLanes,a=a.sibling;a=l&~i}else a=0,t.child=null;return Dm(e,t,i,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Lo(t,i!==null?i.cachePool:null),i!==null?hm(t,i):qs(),op(t);else return a=t.lanes=536870912,Dm(e,t,i!==null?i.baseLanes|n:n,n,a)}else i!==null?(Lo(t,i.cachePool),hm(t,i),$n(t),t.memoizedState=null):(e!==null&&Lo(t,null),qs(),$n(t));return Ye(e,t,l,n),t.child}function ji(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Dm(e,t,n,a,l){var i=_d();return i=i===null?null:{parent:ke._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},e!==null&&Lo(t,null),qs(),op(t),e!==null&&ei(e,t,a,!0),t.childLanes=l,null}function Uo(e,t){return t=ru({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function xm(e,t,n){return Ya(t,e.child,null,n),e=Uo(t,t.pendingProps),e.flags|=2,Rt(t),t.memoizedState=null,e}function QA(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(V){if(a.mode==="hidden")return e=Uo(t,a),t.lanes=536870912,ji(null,e);if(Fs(t),(e=ye)?(e=Uy(e,Vt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ha!==null?{id:sn,overflow:dn}:null,retryLane:536870912,hydrationErrors:null},n=Ih(e),n.return=t,t.child=n,Xe=t,ye=null)):e=null,e===null)throw pa(t);return t.lanes=536870912,null}return Uo(t,a)}var i=e.memoizedState;if(i!==null){var r=i.dehydrated;if(Fs(t),l)if(t.flags&256)t.flags&=-257,t=xm(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(S(558));else if(Le||ei(e,t,n,!1),l=(n&e.childLanes)!==0,Le||l){if(a=ue,a!==null&&(r=Ch(a,n),r!==0&&r!==i.retryLane))throw i.retryLane=r,Wa(e,r),yt(a,e,r),Qd;su(),t=xm(e,t,n)}else e=i.treeContext,ye=Qt(r.nextSibling),Xe=t,V=!0,oa=null,Vt=!1,e!==null&&$h(t,e),t=Uo(t,a),t.flags|=4096;return t}return e=Nn(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Go(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(S(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Ks(e,t,n,a,l){return ja(t),n=Ld(e,t,n,a,void 0,l),a=Hd(),e!==null&&!Le?(zd(e,t,l),Un(e,t,l)):(V&&a&&Dd(t),t.flags|=1,Ye(e,t,n,l),t.child)}function Mm(e,t,n,a,l,i){return ja(t),t.updateQueue=null,n=cp(t,a,n,l),up(e),a=Hd(),e!==null&&!Le?(zd(e,t,i),Un(e,t,i)):(V&&a&&Dd(t),t.flags|=1,Ye(e,t,n,i),t.child)}function _m(e,t,n,a,l){if(ja(t),t.stateNode===null){var i=_l,r=n.contextType;typeof r=="object"&&r!==null&&(i=Qe(r)),i=new n(a,i),t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=Xs,t.stateNode=i,i._reactInternals=t,i=t.stateNode,i.props=a,i.state=t.memoizedState,i.refs={},Nd(t),r=n.contextType,i.context=typeof r=="object"&&r!==null?Qe(r):_l,i.state=t.memoizedState,r=n.getDerivedStateFromProps,typeof r=="function"&&(es(t,n,r,a),i.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(r=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),r!==i.state&&Xs.enqueueReplaceState(i,i.state,null),Ii(t,a,i,l),Wi(),i.state=t.memoizedState),typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){i=t.stateNode;var o=t.memoizedProps,u=Xa(n,o);i.props=u;var c=i.context,s=n.contextType;r=_l,typeof s=="object"&&s!==null&&(r=Qe(s));var f=n.getDerivedStateFromProps;s=typeof f=="function"||typeof i.getSnapshotBeforeUpdate=="function",o=t.pendingProps!==o,s||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(o||c!==r)&&Cm(t,i,a,r),Wn=!1;var d=t.memoizedState;i.state=d,Ii(t,a,i,l),Wi(),c=t.memoizedState,o||d!==c||Wn?(typeof f=="function"&&(es(t,n,f,a),c=t.memoizedState),(u=Wn||Sm(t,n,u,a,d,c,r))?(s||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=c),i.props=a,i.state=c,i.context=r,a=u):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,Gs(e,t),r=t.memoizedProps,s=Xa(n,r),i.props=s,f=t.pendingProps,d=i.context,c=n.contextType,u=_l,typeof c=="object"&&c!==null&&(u=Qe(c)),o=n.getDerivedStateFromProps,(c=typeof o=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(r!==f||d!==u)&&Cm(t,i,a,u),Wn=!1,d=t.memoizedState,i.state=d,Ii(t,a,i,l),Wi();var m=t.memoizedState;r!==f||d!==m||Wn||e!==null&&e.dependencies!==null&&$o(e.dependencies)?(typeof o=="function"&&(es(t,n,o,a),m=t.memoizedState),(s=Wn||Sm(t,n,s,a,d,m,u)||e!==null&&e.dependencies!==null&&$o(e.dependencies))?(c||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,m,u),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,m,u)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=m),i.props=a,i.state=m,i.context=u,a=s):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),a=!1)}return i=a,Go(e,t),a=(t.flags&128)!==0,i||a?(i=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:i.render(),t.flags|=1,e!==null&&a?(t.child=Ya(t,e.child,null,l),t.child=Ya(t,null,n,l)):Ye(e,t,n,l),t.memoizedState=i.state,e=t.child):e=Un(e,t,l),e}function Bm(e,t,n,a){return Fa(),t.flags|=256,Ye(e,t,n,a),t.child}var ts={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ns(e){return{baseLanes:e,cachePool:tp()}}function as(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=Et),e}function Qp(e,t,n){var a=t.pendingProps,l=!1,i=(t.flags&128)!==0,r;if((r=i)||(r=e!==null&&e.memoizedState===null?!1:(xe.current&2)!==0),r&&(l=!0,t.flags&=-129),r=(t.flags&32)!==0,t.flags&=-33,e===null){if(V){if(l?Jn(t):$n(t),(e=ye)?(e=Uy(e,Vt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ha!==null?{id:sn,overflow:dn}:null,retryLane:536870912,hydrationErrors:null},n=Ih(e),n.return=t,t.child=n,Xe=t,ye=null)):e=null,e===null)throw pa(t);return ud(e)?t.lanes=32:t.lanes=536870912,null}var o=a.children;return a=a.fallback,l?($n(t),l=t.mode,o=ru({mode:"hidden",children:o},l),a=Ua(a,l,n,null),o.return=t,a.return=t,o.sibling=a,t.child=o,a=t.child,a.memoizedState=ns(n),a.childLanes=as(e,r,n),t.memoizedState=ts,ji(null,a)):(Jn(t),Zs(t,o))}var u=e.memoizedState;if(u!==null&&(o=u.dehydrated,o!==null)){if(i)t.flags&256?(Jn(t),t.flags&=-257,t=ls(e,t,n)):t.memoizedState!==null?($n(t),t.child=e.child,t.flags|=128,t=null):($n(t),o=a.fallback,l=t.mode,a=ru({mode:"visible",children:a.children},l),o=Ua(o,l,n,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,Ya(t,e.child,null,n),a=t.child,a.memoizedState=ns(n),a.childLanes=as(e,r,n),t.memoizedState=ts,t=ji(null,a));else if(Jn(t),ud(o)){if(r=o.nextSibling&&o.nextSibling.dataset,r)var c=r.dgst;r=c,a=Error(S(419)),a.stack="",a.digest=r,cr({value:a,source:null,stack:null}),t=ls(e,t,n)}else if(Le||ei(e,t,n,!1),r=(n&e.childLanes)!==0,Le||r){if(r=ue,r!==null&&(a=Ch(r,n),a!==0&&a!==u.retryLane))throw u.retryLane=a,Wa(e,a),yt(r,e,a),Qd;od(o)||su(),t=ls(e,t,n)}else od(o)?(t.flags|=192,t.child=e.child,t=null):(e=u.treeContext,ye=Qt(o.nextSibling),Xe=t,V=!0,oa=null,Vt=!1,e!==null&&$h(t,e),t=Zs(t,a.children),t.flags|=4096);return t}return l?($n(t),o=a.fallback,l=t.mode,u=e.child,c=u.sibling,a=Nn(u,{mode:"hidden",children:a.children}),a.subtreeFlags=u.subtreeFlags&65011712,c!==null?o=Nn(c,o):(o=Ua(o,l,n,null),o.flags|=2),o.return=t,a.return=t,a.sibling=o,t.child=a,ji(null,a),a=t.child,o=e.child.memoizedState,o===null?o=ns(n):(l=o.cachePool,l!==null?(u=ke._currentValue,l=l.parent!==u?{parent:u,pool:u}:l):l=tp(),o={baseLanes:o.baseLanes|n,cachePool:l}),a.memoizedState=o,a.childLanes=as(e,r,n),t.memoizedState=ts,ji(e.child,a)):(Jn(t),n=e.child,e=n.sibling,n=Nn(n,{mode:"visible",children:a.children}),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function Zs(e,t){return t=ru({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function ru(e,t){return e=Tt(22,e,null,t),e.lanes=0,e}function ls(e,t,n){return Ya(t,e.child,null,n),e=Zs(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Nm(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Hs(e.return,t,n)}function is(e,t,n,a,l,i){var r=e.memoizedState;r===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:i}:(r.isBackwards=t,r.rendering=null,r.renderingStartTime=0,r.last=a,r.tail=n,r.tailMode=l,r.treeForkCount=i)}function Kp(e,t,n){var a=t.pendingProps,l=a.revealOrder,i=a.tail;a=a.children;var r=xe.current,o=(r&2)!==0;if(o?(r=r&1|2,t.flags|=128):r&=1,ge(xe,r),Ye(e,t,a,n),a=V?ur:0,!o&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Nm(e,n,t);else if(e.tag===19)Nm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&nu(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),is(t,!1,l,n,i,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&nu(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}is(t,!0,n,null,i,a);break;case"together":is(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function Un(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),va|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(ei(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(S(153));if(t.child!==null){for(e=t.child,n=Nn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Nn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Kd(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&$o(e)))}function KA(e,t,n){switch(t.tag){case 3:Xo(t,t.stateNode.containerInfo),In(t,ke,e.memoizedState.cache),Fa();break;case 27:case 5:Cs(t);break;case 4:Xo(t,t.stateNode.containerInfo);break;case 10:In(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Fs(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(Jn(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Qp(e,t,n):(Jn(t),e=Un(e,t,n),e!==null?e.sibling:null);Jn(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(ei(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return Kp(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),ge(xe,xe.current),a)break;return null;case 22:return t.lanes=0,Xp(e,t,n,t.pendingProps);case 24:In(t,ke,e.memoizedState.cache)}return Un(e,t,n)}function Zp(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Le=!0;else{if(!Kd(e,n)&&(t.flags&128)===0)return Le=!1,KA(e,t,n);Le=(e.flags&131072)!==0}else Le=!1,V&&(t.flags&1048576)!==0&&Jh(t,ur,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=La(t.elementType),t.type=e,typeof e=="function")Ed(e)?(a=Xa(e,a),t.tag=1,t=_m(null,t,e,a,n)):(t.tag=0,t=Ks(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===fd){t.tag=11,t=Tm(null,t,e,a,n);break e}else if(l===gd){t.tag=14,t=Em(null,t,e,a,n);break e}}throw t=ws(e)||e,Error(S(306,t,""))}}return t;case 0:return Ks(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=Xa(a,t.pendingProps),_m(e,t,a,l,n);case 3:e:{if(Xo(t,t.stateNode.containerInfo),e===null)throw Error(S(387));a=t.pendingProps;var i=t.memoizedState;l=i.element,Gs(e,t),Ii(t,a,null,n);var r=t.memoizedState;if(a=r.cache,In(t,ke,a),a!==i.cache&&zs(t,[ke],n,!0),Wi(),a=r.element,i.isDehydrated)if(i={element:a,isDehydrated:!1,cache:r.cache},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){t=Bm(e,t,a,n);break e}else if(a!==l){l=Yt(Error(S(424)),t),cr(l),t=Bm(e,t,a,n);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(ye=Qt(e.firstChild),Xe=t,V=!0,oa=null,Vt=!0,n=lp(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Fa(),a===l){t=Un(e,t,n);break e}Ye(e,t,a,n)}t=t.child}return t;case 26:return Go(e,t),e===null?(n=eh(t.type,null,t.pendingProps,null))?t.memoizedState=n:V||(n=t.type,e=t.pendingProps,a=mu(ra.current).createElement(n),a[Ve]=t,a[vt]=e,Ke(a,n,e),qe(a),t.stateNode=a):t.memoizedState=eh(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Cs(t),e===null&&V&&(a=t.stateNode=Gy(t.type,t.pendingProps,ra.current),Xe=t,Vt=!0,l=ye,Aa(t.type)?(cd=l,ye=Qt(a.firstChild)):ye=l),Ye(e,t,t.pendingProps.children,n),Go(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&V&&((l=a=ye)&&(a=Sw(a,t.type,t.pendingProps,Vt),a!==null?(t.stateNode=a,Xe=t,ye=Qt(a.firstChild),Vt=!1,l=!0):l=!1),l||pa(t)),Cs(t),l=t.type,i=t.pendingProps,r=e!==null?e.memoizedProps:null,a=i.children,id(l,i)?a=null:r!==null&&id(l,r)&&(t.flags|=32),t.memoizedState!==null&&(l=Ld(e,t,GA,null,null,n),hr._currentValue=l),Go(e,t),Ye(e,t,a,n),t.child;case 6:return e===null&&V&&((e=n=ye)&&(n=Cw(n,t.pendingProps,Vt),n!==null?(t.stateNode=n,Xe=t,ye=null,e=!0):e=!1),e||pa(t)),null;case 13:return Qp(e,t,n);case 4:return Xo(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=Ya(t,null,a,n):Ye(e,t,a,n),t.child;case 11:return Tm(e,t,t.type,t.pendingProps,n);case 7:return Ye(e,t,t.pendingProps,n),t.child;case 8:return Ye(e,t,t.pendingProps.children,n),t.child;case 12:return Ye(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,In(t,t.type,a.value),Ye(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,ja(t),l=Qe(l),a=a(l),t.flags|=1,Ye(e,t,a,n),t.child;case 14:return Em(e,t,t.type,t.pendingProps,n);case 15:return Vp(e,t,t.type,t.pendingProps,n);case 19:return Kp(e,t,n);case 31:return QA(e,t,n);case 22:return Xp(e,t,n,t.pendingProps);case 24:return ja(t),a=Qe(ke),e===null?(l=_d(),l===null&&(l=ue,i=Md(),l.pooledCache=i,i.refCount++,i!==null&&(l.pooledCacheLanes|=n),l=i),t.memoizedState={parent:a,cache:l},Nd(t),In(t,ke,l)):((e.lanes&n)!==0&&(Gs(e,t),Ii(t,null,null,n),Wi()),l=e.memoizedState,i=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),In(t,ke,a)):(a=i.cache,In(t,ke,a),a!==l.cache&&zs(t,[ke],n,!0))),Ye(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(S(156,t.tag))}function Cn(e){e.flags|=4}function rs(e,t,n,a,l){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(l&335544128)===l)if(e.stateNode.complete)e.flags|=8192;else if(by())e.flags|=8192;else throw Pa=eu,Bd}else e.flags&=-16777217}function Om(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Fy(t))if(by())e.flags|=8192;else throw Pa=eu,Bd}function Co(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Ah():536870912,e.lanes|=t,Ql|=t)}function Hi(e,t){if(!V)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function pe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags&65011712,a|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags,a|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function ZA(e,t,n){var a=t.pendingProps;switch(xd(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return pe(t),null;case 1:return pe(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),On(ke),ql(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(vl(t)?Cn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Ic())),pe(t),null;case 26:var l=t.type,i=t.memoizedState;return e===null?(Cn(t),i!==null?(pe(t),Om(t,i)):(pe(t),rs(t,l,null,a,n))):i?i!==e.memoizedState?(Cn(t),pe(t),Om(t,i)):(pe(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&Cn(t),pe(t),rs(t,l,e,a,n)),null;case 27:if(Qo(t),n=ra.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return pe(t),null}e=gn.current,vl(t)?um(t,e):(e=Gy(l,a,n),t.stateNode=e,Cn(t))}return pe(t),null;case 5:if(Qo(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return pe(t),null}if(i=gn.current,vl(t))um(t,i);else{var r=mu(ra.current);switch(i){case 1:i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":i=r.createElement("div"),i.innerHTML="<script><\/scr"+"ipt>",i=i.removeChild(i.firstChild);break;case"select":i=typeof a.is=="string"?r.createElement("select",{is:a.is}):r.createElement("select"),a.multiple?i.multiple=!0:a.size&&(i.size=a.size);break;default:i=typeof a.is=="string"?r.createElement(l,{is:a.is}):r.createElement(l)}}i[Ve]=t,i[vt]=a;e:for(r=t.child;r!==null;){if(r.tag===5||r.tag===6)i.appendChild(r.stateNode);else if(r.tag!==4&&r.tag!==27&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break e;for(;r.sibling===null;){if(r.return===null||r.return===t)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}t.stateNode=i;e:switch(Ke(i,l,a),l){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&Cn(t)}}return pe(t),rs(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(S(166));if(e=ra.current,vl(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=Xe,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[Ve]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Ly(e.nodeValue,n)),e||pa(t,!0)}else e=mu(e).createTextNode(a),e[Ve]=t,t.stateNode=e}return pe(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=vl(t),n!==null){if(e===null){if(!a)throw Error(S(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(557));e[Ve]=t}else Fa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;pe(t),e=!1}else n=Ic(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Rt(t),t):(Rt(t),null);if((t.flags&128)!==0)throw Error(S(558))}return pe(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=vl(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(S(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(S(317));l[Ve]=t}else Fa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;pe(t),l=!1}else l=Ic(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(Rt(t),t):(Rt(t),null)}return Rt(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),i=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(i=a.memoizedState.cachePool.pool),i!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Co(t,t.updateQueue),pe(t),null);case 4:return ql(),e===null&&tf(t.stateNode.containerInfo),pe(t),null;case 10:return On(t.type),pe(t),null;case 19:if(Fe(xe),a=t.memoizedState,a===null)return pe(t),null;if(l=(t.flags&128)!==0,i=a.rendering,i===null)if(l)Hi(a,!1);else{if(Te!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=nu(e),i!==null){for(t.flags|=128,Hi(a,!1),e=i.updateQueue,t.updateQueue=e,Co(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Wh(n,e),n=n.sibling;return ge(xe,xe.current&1|2),V&&Dn(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&Dt()>uu&&(t.flags|=128,l=!0,Hi(a,!1),t.lanes=4194304)}else{if(!l)if(e=nu(i),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,Co(t,e),Hi(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!V)return pe(t),null}else 2*Dt()-a.renderingStartTime>uu&&n!==536870912&&(t.flags|=128,l=!0,Hi(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(e=a.last,e!==null?e.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=Dt(),e.sibling=null,n=xe.current,ge(xe,l?n&1|2:n&1),V&&Dn(t,a.treeForkCount),e):(pe(t),null);case 22:case 23:return Rt(t),Od(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&(pe(t),t.subtreeFlags&6&&(t.flags|=8192)):pe(t),n=t.updateQueue,n!==null&&Co(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&Fe(Ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),On(ke),pe(t),null;case 25:return null;case 30:return null}throw Error(S(156,t.tag))}function WA(e,t){switch(xd(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return On(ke),ql(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Qo(t),null;case 31:if(t.memoizedState!==null){if(Rt(t),t.alternate===null)throw Error(S(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Rt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(S(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Fe(xe),null;case 4:return ql(),null;case 10:return On(t.type),null;case 22:case 23:return Rt(t),Od(),e!==null&&Fe(Ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return On(ke),null;case 25:return null;default:return null}}function Wp(e,t){switch(xd(t),t.tag){case 3:On(ke),ql();break;case 26:case 27:case 5:Qo(t);break;case 4:ql();break;case 31:t.memoizedState!==null&&Rt(t);break;case 13:Rt(t);break;case 19:Fe(xe);break;case 10:On(t.type);break;case 22:case 23:Rt(t),Od(),e!==null&&Fe(Ga);break;case 24:On(ke)}}function Er(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var l=a.next;n=l;do{if((n.tag&e)===e){a=void 0;var i=n.create,r=n.inst;a=i(),r.destroy=a}n=n.next}while(n!==l)}}catch(o){le(t,t.return,o)}}function ya(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){var r=a.inst,o=r.destroy;if(o!==void 0){r.destroy=void 0,l=t;var u=n,c=o;try{c()}catch(s){le(l,u,s)}}}a=a.next}while(a!==i)}}catch(s){le(t,t.return,s)}}function Ip(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{rp(t,n)}catch(a){le(e,e.return,a)}}}function Jp(e,t,n){n.props=Xa(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){le(e,t,a)}}function $i(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof n=="function"?e.refCleanup=n(a):n.current=a}}catch(l){le(e,t,l)}}function fn(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){le(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(l){le(e,t,l)}else n.current=null}function $p(e){var t=e.type,n=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break e;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(l){le(e,e.return,l)}}function os(e,t,n){try{var a=e.stateNode;pw(a,e.type,n,t),a[vt]=t}catch(l){le(e,e.return,l)}}function ey(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Aa(e.type)||e.tag===4}function us(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ey(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Aa(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ws(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=_n));else if(a!==4&&(a===27&&Aa(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Ws(e,t,n),e=e.sibling;e!==null;)Ws(e,t,n),e=e.sibling}function ou(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&Aa(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(ou(e,t,n),e=e.sibling;e!==null;)ou(e,t,n),e=e.sibling}function ty(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);Ke(t,a,n),t[Ve]=e,t[vt]=n}catch(i){le(e,e.return,i)}}var xn=!1,Oe=!1,cs=!1,km=typeof WeakSet=="function"?WeakSet:Set,Pe=null;function IA(e,t){if(e=e.containerInfo,ad=vu,e=Fh(e),Cd(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var l=a.anchorOffset,i=a.focusNode;a=a.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var r=0,o=-1,u=-1,c=0,s=0,f=e,d=null;t:for(;;){for(var m;f!==n||l!==0&&f.nodeType!==3||(o=r+l),f!==i||a!==0&&f.nodeType!==3||(u=r+a),f.nodeType===3&&(r+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===e)break t;if(d===n&&++c===l&&(o=r),d===i&&++s===a&&(u=r),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}n=o===-1||u===-1?null:{start:o,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ld={focusedElem:e,selectionRange:n},vu=!1,Pe=t;Pe!==null;)if(t=Pe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Pe=e;else for(;Pe!==null;){switch(t=Pe,i=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&i!==null){e=void 0,n=t,l=i.memoizedProps,i=i.memoizedState,a=n.stateNode;try{var v=Xa(n.type,l);e=a.getSnapshotBeforeUpdate(v,i),a.__reactInternalSnapshotBeforeUpdate=e}catch(A){le(n,n.return,A)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)rd(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":rd(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(S(163))}if(e=t.sibling,e!==null){e.return=t.return,Pe=e;break}Pe=t.return}}function ny(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:Tn(e,n),a&4&&Er(5,n);break;case 1:if(Tn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(r){le(n,n.return,r)}else{var l=Xa(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(r){le(n,n.return,r)}}a&64&&Ip(n),a&512&&$i(n,n.return);break;case 3:if(Tn(e,n),a&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{rp(e,t)}catch(r){le(n,n.return,r)}}break;case 27:t===null&&a&4&&ty(n);case 26:case 5:Tn(e,n),t===null&&a&4&&$p(n),a&512&&$i(n,n.return);break;case 12:Tn(e,n);break;case 31:Tn(e,n),a&4&&iy(e,n);break;case 13:Tn(e,n),a&4&&ry(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=rw.bind(null,n),Rw(e,n))));break;case 22:if(a=n.memoizedState!==null||xn,!a){t=t!==null&&t.memoizedState!==null||Oe,l=xn;var i=Oe;xn=a,(Oe=t)&&!i?En(e,n,(n.subtreeFlags&8772)!==0):Tn(e,n),xn=l,Oe=i}break;case 30:break;default:Tn(e,n)}}function ay(e){var t=e.alternate;t!==null&&(e.alternate=null,ay(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&yd(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Ce=null,ht=!1;function Rn(e,t,n){for(n=n.child;n!==null;)ly(e,t,n),n=n.sibling}function ly(e,t,n){if(xt&&typeof xt.onCommitFiberUnmount=="function")try{xt.onCommitFiberUnmount(br,n)}catch{}switch(n.tag){case 26:Oe||fn(n,t),Rn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Oe||fn(n,t);var a=Ce,l=ht;Aa(n.type)&&(Ce=n.stateNode,ht=!1),Rn(e,t,n),ar(n.stateNode),Ce=a,ht=l;break;case 5:Oe||fn(n,t);case 6:if(a=Ce,l=ht,Ce=null,Rn(e,t,n),Ce=a,ht=l,Ce!==null)if(ht)try{(Ce.nodeType===9?Ce.body:Ce.nodeName==="HTML"?Ce.ownerDocument.body:Ce).removeChild(n.stateNode)}catch(i){le(n,t,i)}else try{Ce.removeChild(n.stateNode)}catch(i){le(n,t,i)}break;case 18:Ce!==null&&(ht?(e=Ce,Zm(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),Il(e)):Zm(Ce,n.stateNode));break;case 4:a=Ce,l=ht,Ce=n.stateNode.containerInfo,ht=!0,Rn(e,t,n),Ce=a,ht=l;break;case 0:case 11:case 14:case 15:ya(2,n,t),Oe||ya(4,n,t),Rn(e,t,n);break;case 1:Oe||(fn(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Jp(n,t,a)),Rn(e,t,n);break;case 21:Rn(e,t,n);break;case 22:Oe=(a=Oe)||n.memoizedState!==null,Rn(e,t,n),Oe=a;break;default:Rn(e,t,n)}}function iy(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Il(e)}catch(n){le(t,t.return,n)}}}function ry(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Il(e)}catch(n){le(t,t.return,n)}}function JA(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new km),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new km),t;default:throw Error(S(435,e.tag))}}function Ro(e,t){var n=JA(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=ow.bind(null,e,a);a.then(l,l)}})}function gt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],i=e,r=t,o=r;e:for(;o!==null;){switch(o.tag){case 27:if(Aa(o.type)){Ce=o.stateNode,ht=!1;break e}break;case 5:Ce=o.stateNode,ht=!1;break e;case 3:case 4:Ce=o.stateNode.containerInfo,ht=!0;break e}o=o.return}if(Ce===null)throw Error(S(160));ly(i,r,l),Ce=null,ht=!1,i=l.alternate,i!==null&&(i.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)oy(t,e),t=t.sibling}var en=null;function oy(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:gt(t,e),mt(e),a&4&&(ya(3,e,e.return),Er(3,e),ya(5,e,e.return));break;case 1:gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),a&64&&xn&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var l=en;if(gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),a&4){var i=n!==null?n.memoizedState:null;if(a=e.memoizedState,n===null)if(a===null)if(e.stateNode===null){e:{a=e.type,n=e.memoizedProps,l=l.ownerDocument||l;t:switch(a){case"title":i=l.getElementsByTagName("title")[0],(!i||i[Sr]||i[Ve]||i.namespaceURI==="http://www.w3.org/2000/svg"||i.hasAttribute("itemprop"))&&(i=l.createElement(a),l.head.insertBefore(i,l.querySelector("head > title"))),Ke(i,a,n),i[Ve]=e,qe(i),a=i;break e;case"link":var r=nh("link","href",l).get(a+(n.href||""));if(r){for(var o=0;o<r.length;o++)if(i=r[o],i.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&i.getAttribute("rel")===(n.rel==null?null:n.rel)&&i.getAttribute("title")===(n.title==null?null:n.title)&&i.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){r.splice(o,1);break t}}i=l.createElement(a),Ke(i,a,n),l.head.appendChild(i);break;case"meta":if(r=nh("meta","content",l).get(a+(n.content||""))){for(o=0;o<r.length;o++)if(i=r[o],i.getAttribute("content")===(n.content==null?null:""+n.content)&&i.getAttribute("name")===(n.name==null?null:n.name)&&i.getAttribute("property")===(n.property==null?null:n.property)&&i.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&i.getAttribute("charset")===(n.charSet==null?null:n.charSet)){r.splice(o,1);break t}}i=l.createElement(a),Ke(i,a,n),l.head.appendChild(i);break;default:throw Error(S(468,a))}i[Ve]=e,qe(i),a=i}e.stateNode=a}else ah(l,e.type,e.stateNode);else e.stateNode=th(l,a,e.memoizedProps);else i!==a?(i===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):i.count--,a===null?ah(l,e.type,e.stateNode):th(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&os(e,e.memoizedProps,n.memoizedProps)}break;case 27:gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),n!==null&&a&4&&os(e,e.memoizedProps,n.memoizedProps);break;case 5:if(gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),e.flags&32){l=e.stateNode;try{jl(l,"")}catch(v){le(e,e.return,v)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,os(e,l,n!==null?n.memoizedProps:l)),a&1024&&(cs=!0);break;case 6:if(gt(t,e),mt(e),a&4){if(e.stateNode===null)throw Error(S(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(v){le(e,e.return,v)}}break;case 3:if(Fo=null,l=en,en=hu(t.containerInfo),gt(t,e),en=l,mt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{Il(t.containerInfo)}catch(v){le(e,e.return,v)}cs&&(cs=!1,uy(e));break;case 4:a=en,en=hu(e.stateNode.containerInfo),gt(t,e),mt(e),en=a;break;case 12:gt(t,e),mt(e);break;case 31:gt(t,e),mt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 13:gt(t,e),mt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Bu=Dt()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 22:l=e.memoizedState!==null;var u=n!==null&&n.memoizedState!==null,c=xn,s=Oe;if(xn=c||l,Oe=s||u,gt(t,e),Oe=s,xn=c,mt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||u||xn||Oe||Ha(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){u=n=t;try{if(i=u.stateNode,l)r=i.style,typeof r.setProperty=="function"?r.setProperty("display","none","important"):r.display="none";else{o=u.stateNode;var f=u.memoizedProps.style,d=f!=null&&f.hasOwnProperty("display")?f.display:null;o.style.display=d==null||typeof d=="boolean"?"":(""+d).trim()}}catch(v){le(u,u.return,v)}}}else if(t.tag===6){if(n===null){u=t;try{u.stateNode.nodeValue=l?"":u.memoizedProps}catch(v){le(u,u.return,v)}}}else if(t.tag===18){if(n===null){u=t;try{var m=u.stateNode;l?Wm(m,!0):Wm(u.stateNode,!1)}catch(v){le(u,u.return,v)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,Ro(e,n))));break;case 19:gt(t,e),mt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 30:break;case 21:break;default:gt(t,e),mt(e)}}function mt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(ey(a)){n=a;break}a=a.return}if(n==null)throw Error(S(160));switch(n.tag){case 27:var l=n.stateNode,i=us(e);ou(e,i,l);break;case 5:var r=n.stateNode;n.flags&32&&(jl(r,""),n.flags&=-33);var o=us(e);ou(e,o,r);break;case 3:case 4:var u=n.stateNode.containerInfo,c=us(e);Ws(e,c,u);break;default:throw Error(S(161))}}catch(s){le(e,e.return,s)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function uy(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;uy(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Tn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)ny(e,t.alternate,t),t=t.sibling}function Ha(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:ya(4,t,t.return),Ha(t);break;case 1:fn(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Jp(t,t.return,n),Ha(t);break;case 27:ar(t.stateNode);case 26:case 5:fn(t,t.return),Ha(t);break;case 22:t.memoizedState===null&&Ha(t);break;case 30:Ha(t);break;default:Ha(t)}e=e.sibling}}function En(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,i=t,r=i.flags;switch(i.tag){case 0:case 11:case 15:En(l,i,n),Er(4,i);break;case 1:if(En(l,i,n),a=i,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(c){le(a,a.return,c)}if(a=i,l=a.updateQueue,l!==null){var o=a.stateNode;try{var u=l.shared.hiddenCallbacks;if(u!==null)for(l.shared.hiddenCallbacks=null,l=0;l<u.length;l++)ip(u[l],o)}catch(c){le(a,a.return,c)}}n&&r&64&&Ip(i),$i(i,i.return);break;case 27:ty(i);case 26:case 5:En(l,i,n),n&&a===null&&r&4&&$p(i),$i(i,i.return);break;case 12:En(l,i,n);break;case 31:En(l,i,n),n&&r&4&&iy(l,i);break;case 13:En(l,i,n),n&&r&4&&ry(l,i);break;case 22:i.memoizedState===null&&En(l,i,n),$i(i,i.return);break;case 30:break;default:En(l,i,n)}t=t.sibling}}function Zd(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Rr(n))}function Wd(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rr(e))}function $t(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)cy(e,t,n,a),t=t.sibling}function cy(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:$t(e,t,n,a),l&2048&&Er(9,t);break;case 1:$t(e,t,n,a);break;case 3:$t(e,t,n,a),l&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rr(e)));break;case 12:if(l&2048){$t(e,t,n,a),e=t.stateNode;try{var i=t.memoizedProps,r=i.id,o=i.onPostCommit;typeof o=="function"&&o(r,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(u){le(t,t.return,u)}}else $t(e,t,n,a);break;case 31:$t(e,t,n,a);break;case 13:$t(e,t,n,a);break;case 23:break;case 22:i=t.stateNode,r=t.alternate,t.memoizedState!==null?i._visibility&2?$t(e,t,n,a):er(e,t):i._visibility&2?$t(e,t,n,a):(i._visibility|=2,Al(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&Zd(r,t);break;case 24:$t(e,t,n,a),l&2048&&Wd(t.alternate,t);break;default:$t(e,t,n,a)}}function Al(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var i=e,r=t,o=n,u=a,c=r.flags;switch(r.tag){case 0:case 11:case 15:Al(i,r,o,u,l),Er(8,r);break;case 23:break;case 22:var s=r.stateNode;r.memoizedState!==null?s._visibility&2?Al(i,r,o,u,l):er(i,r):(s._visibility|=2,Al(i,r,o,u,l)),l&&c&2048&&Zd(r.alternate,r);break;case 24:Al(i,r,o,u,l),l&&c&2048&&Wd(r.alternate,r);break;default:Al(i,r,o,u,l)}t=t.sibling}}function er(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,a=t,l=a.flags;switch(a.tag){case 22:er(n,a),l&2048&&Zd(a.alternate,a);break;case 24:er(n,a),l&2048&&Wd(a.alternate,a);break;default:er(n,a)}t=t.sibling}}var Yi=8192;function bl(e,t,n){if(e.subtreeFlags&Yi)for(e=e.child;e!==null;)sy(e,t,n),e=e.sibling}function sy(e,t,n){switch(e.tag){case 26:bl(e,t,n),e.flags&Yi&&e.memoizedState!==null&&Hw(n,en,e.memoizedState,e.memoizedProps);break;case 5:bl(e,t,n);break;case 3:case 4:var a=en;en=hu(e.stateNode.containerInfo),bl(e,t,n),en=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=Yi,Yi=16777216,bl(e,t,n),Yi=a):bl(e,t,n));break;default:bl(e,t,n)}}function dy(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function zi(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];Pe=a,gy(a,e)}dy(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)fy(e),e=e.sibling}function fy(e){switch(e.tag){case 0:case 11:case 15:zi(e),e.flags&2048&&ya(9,e,e.return);break;case 3:zi(e);break;case 12:zi(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Po(e)):zi(e);break;default:zi(e)}}function Po(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];Pe=a,gy(a,e)}dy(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:ya(8,t,t.return),Po(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Po(t));break;default:Po(t)}e=e.sibling}}function gy(e,t){for(;Pe!==null;){var n=Pe;switch(n.tag){case 0:case 11:case 15:ya(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var a=n.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Rr(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,Pe=a;else e:for(n=e;Pe!==null;){a=Pe;var l=a.sibling,i=a.return;if(ay(a),a===n){Pe=null;break e}if(l!==null){l.return=i,Pe=l;break e}Pe=i}}}var $A={getCacheForType:function(e){var t=Qe(ke),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Qe(ke).controller.signal}},ew=typeof WeakMap=="function"?WeakMap:Map,J=0,ue=null,F=null,Y=0,ae=0,Ct=null,aa=!1,ni=!1,Id=!1,Gn=0,Te=0,va=0,qa=0,Jd=0,Et=0,Ql=0,tr=null,pt=null,Is=!1,Bu=0,my=0,uu=1/0,cu=null,sa=null,Ue=0,da=null,Kl=null,kn=0,Js=0,$s=null,hy=null,nr=0,ed=null;function _t(){return(J&2)!==0&&Y!==0?Y&-Y:L.T!==null?ef():Rh()}function py(){if(Et===0)if((Y&536870912)===0||V){var e=mo;mo<<=1,(mo&3932160)===0&&(mo=262144),Et=e}else Et=536870912;return e=Nt.current,e!==null&&(e.flags|=32),Et}function yt(e,t,n){(e===ue&&(ae===2||ae===9)||e.cancelPendingCommit!==null)&&(Zl(e,0),la(e,Y,Et,!1)),wr(e,n),((J&2)===0||e!==ue)&&(e===ue&&((J&2)===0&&(qa|=n),Te===4&&la(e,Y,Et,!1)),hn(e))}function yy(e,t,n){if((J&6)!==0)throw Error(S(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||Ar(e,t),l=a?aw(e,t):ss(e,t,!0),i=a;do{if(l===0){ni&&!a&&la(e,t,0,!1);break}else{if(n=e.current.alternate,i&&!tw(n)){l=ss(e,t,!1),i=!1;continue}if(l===2){if(i=t,e.errorRecoveryDisabledLanes&i)var r=0;else r=e.pendingLanes&-536870913,r=r!==0?r:r&536870912?536870912:0;if(r!==0){t=r;e:{var o=e;l=tr;var u=o.current.memoizedState.isDehydrated;if(u&&(Zl(o,r).flags|=256),r=ss(o,r,!1),r!==2){if(Id&&!u){o.errorRecoveryDisabledLanes|=i,qa|=i,l=4;break e}i=pt,pt=l,i!==null&&(pt===null?pt=i:pt.push.apply(pt,i))}l=r}if(i=!1,l!==2)continue}}if(l===1){Zl(e,0),la(e,t,0,!0);break}e:{switch(a=e,i=l,i){case 0:case 1:throw Error(S(345));case 4:if((t&4194048)!==t)break;case 6:la(a,t,Et,!aa);break e;case 2:pt=null;break;case 3:case 5:break;default:throw Error(S(329))}if((t&62914560)===t&&(l=Bu+300-Dt(),10<l)){if(la(a,t,Et,!aa),Au(a,0,!0)!==0)break e;kn=t,a.timeoutHandle=zy(Lm.bind(null,a,n,pt,cu,Is,t,Et,qa,Ql,aa,i,"Throttled",-0,0),l);break e}Lm(a,n,pt,cu,Is,t,Et,qa,Ql,aa,i,null,-0,0)}}break}while(!0);hn(e)}function Lm(e,t,n,a,l,i,r,o,u,c,s,f,d,m){if(e.timeoutHandle=-1,f=t.subtreeFlags,f&8192||(f&16785408)===16785408){f={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:_n},sy(t,i,f);var v=(i&62914560)===i?Bu-Dt():(i&4194048)===i?my-Dt():0;if(v=zw(f,v),v!==null){kn=i,e.cancelPendingCommit=v(zm.bind(null,e,t,i,n,a,l,r,o,u,s,f,null,d,m)),la(e,i,r,!c);return}}zm(e,t,i,n,a,l,r,o,u)}function tw(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var l=n[a],i=l.getSnapshot;l=l.value;try{if(!Bt(i(),l))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function la(e,t,n,a){t&=~Jd,t&=~qa,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var i=31-Mt(l),r=1<<i;a[i]=-1,l&=~r}n!==0&&wh(e,n,t)}function Nu(){return(J&6)===0?(Dr(0,!1),!1):!0}function $d(){if(F!==null){if(ae===0)var e=F.return;else e=F,Bn=Ia=null,Ud(e),Ul=null,sr=0,e=F;for(;e!==null;)Wp(e.alternate,e),e=e.return;F=null}}function Zl(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,bw(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),kn=0,$d(),ue=e,F=n=Nn(e.current,null),Y=t,ae=0,Ct=null,aa=!1,ni=Ar(e,t),Id=!1,Ql=Et=Jd=qa=va=Te=0,pt=tr=null,Is=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var l=31-Mt(a),i=1<<l;t|=e[l],a&=~i}return Gn=t,Ru(),n}function vy(e,t){G=null,L.H=fr,t===ti||t===Eu?(t=gm(),ae=3):t===Bd?(t=gm(),ae=4):ae=t===Qd?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Ct=t,F===null&&(Te=1,iu(e,Yt(t,e.current)))}function by(){var e=Nt.current;return e===null?!0:(Y&4194048)===Y?Xt===null:(Y&62914560)===Y||(Y&536870912)!==0?e===Xt:!1}function Ay(){var e=L.H;return L.H=fr,e===null?fr:e}function wy(){var e=L.A;return L.A=$A,e}function su(){Te=4,aa||(Y&4194048)!==Y&&Nt.current!==null||(ni=!0),(va&134217727)===0&&(qa&134217727)===0||ue===null||la(ue,Y,Et,!1)}function ss(e,t,n){var a=J;J|=2;var l=Ay(),i=wy();(ue!==e||Y!==t)&&(cu=null,Zl(e,t)),t=!1;var r=Te;e:do try{if(ae!==0&&F!==null){var o=F,u=Ct;switch(ae){case 8:$d(),r=6;break e;case 3:case 2:case 9:case 6:Nt.current===null&&(t=!0);var c=ae;if(ae=0,Ct=null,Ol(e,o,u,c),n&&ni){r=0;break e}break;default:c=ae,ae=0,Ct=null,Ol(e,o,u,c)}}nw(),r=Te;break}catch(s){vy(e,s)}while(!0);return t&&e.shellSuspendCounter++,Bn=Ia=null,J=a,L.H=l,L.A=i,F===null&&(ue=null,Y=0,Ru()),r}function nw(){for(;F!==null;)Sy(F)}function aw(e,t){var n=J;J|=2;var a=Ay(),l=wy();ue!==e||Y!==t?(cu=null,uu=Dt()+500,Zl(e,t)):ni=Ar(e,t);e:do try{if(ae!==0&&F!==null){t=F;var i=Ct;t:switch(ae){case 1:ae=0,Ct=null,Ol(e,t,i,1);break;case 2:case 9:if(fm(i)){ae=0,Ct=null,Hm(t);break}t=function(){ae!==2&&ae!==9||ue!==e||(ae=7),hn(e)},i.then(t,t);break e;case 3:ae=7;break e;case 4:ae=5;break e;case 7:fm(i)?(ae=0,Ct=null,Hm(t)):(ae=0,Ct=null,Ol(e,t,i,7));break;case 5:var r=null;switch(F.tag){case 26:r=F.memoizedState;case 5:case 27:var o=F;if(r?Fy(r):o.stateNode.complete){ae=0,Ct=null;var u=o.sibling;if(u!==null)F=u;else{var c=o.return;c!==null?(F=c,Ou(c)):F=null}break t}}ae=0,Ct=null,Ol(e,t,i,5);break;case 6:ae=0,Ct=null,Ol(e,t,i,6);break;case 8:$d(),Te=6;break e;default:throw Error(S(462))}}lw();break}catch(s){vy(e,s)}while(!0);return Bn=Ia=null,L.H=a,L.A=l,J=n,F!==null?0:(ue=null,Y=0,Ru(),Te)}function lw(){for(;F!==null&&!Db();)Sy(F)}function Sy(e){var t=Zp(e.alternate,e,Gn);e.memoizedProps=e.pendingProps,t===null?Ou(e):F=t}function Hm(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Mm(n,t,t.pendingProps,t.type,void 0,Y);break;case 11:t=Mm(n,t,t.pendingProps,t.type.render,t.ref,Y);break;case 5:Ud(t);default:Wp(n,t),t=F=Wh(t,Gn),t=Zp(n,t,Gn)}e.memoizedProps=e.pendingProps,t===null?Ou(e):F=t}function Ol(e,t,n,a){Bn=Ia=null,Ud(t),Ul=null,sr=0;var l=t.return;try{if(XA(e,l,t,n,Y)){Te=1,iu(e,Yt(n,e.current)),F=null;return}}catch(i){if(l!==null)throw F=l,i;Te=1,iu(e,Yt(n,e.current)),F=null;return}t.flags&32768?(V||a===1?e=!0:ni||(Y&536870912)!==0?e=!1:(aa=e=!0,(a===2||a===9||a===3||a===6)&&(a=Nt.current,a!==null&&a.tag===13&&(a.flags|=16384))),Cy(t,e)):Ou(t)}function Ou(e){var t=e;do{if((t.flags&32768)!==0){Cy(t,aa);return}e=t.return;var n=ZA(t.alternate,t,Gn);if(n!==null){F=n;return}if(t=t.sibling,t!==null){F=t;return}F=t=e}while(t!==null);Te===0&&(Te=5)}function Cy(e,t){do{var n=WA(e.alternate,e);if(n!==null){n.flags&=32767,F=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){F=e;return}F=e=n}while(e!==null);Te=6,F=null}function zm(e,t,n,a,l,i,r,o,u){e.cancelPendingCommit=null;do ku();while(Ue!==0);if((J&6)!==0)throw Error(S(327));if(t!==null){if(t===e.current)throw Error(S(177));if(i=t.lanes|t.childLanes,i|=Rd,zb(e,n,i,r,o,u),e===ue&&(F=ue=null,Y=0),Kl=t,da=e,kn=n,Js=i,$s=l,hy=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,uw(Ko,function(){return xy(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=L.T,L.T=null,l=$.p,$.p=2,r=J,J|=4;try{IA(e,t,n)}finally{J=r,$.p=l,L.T=a}}Ue=1,Ry(),Ty(),Ey()}}function Ry(){if(Ue===1){Ue=0;var e=da,t=Kl,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=L.T,L.T=null;var a=$.p;$.p=2;var l=J;J|=4;try{oy(t,e);var i=ld,r=Fh(e.containerInfo),o=i.focusedElem,u=i.selectionRange;if(r!==o&&o&&o.ownerDocument&&qh(o.ownerDocument.documentElement,o)){if(u!==null&&Cd(o)){var c=u.start,s=u.end;if(s===void 0&&(s=c),"selectionStart"in o)o.selectionStart=c,o.selectionEnd=Math.min(s,o.value.length);else{var f=o.ownerDocument||document,d=f&&f.defaultView||window;if(d.getSelection){var m=d.getSelection(),v=o.textContent.length,A=Math.min(u.start,v),b=u.end===void 0?A:Math.min(u.end,v);!m.extend&&A>b&&(r=b,b=A,A=r);var h=im(o,A),g=im(o,b);if(h&&g&&(m.rangeCount!==1||m.anchorNode!==h.node||m.anchorOffset!==h.offset||m.focusNode!==g.node||m.focusOffset!==g.offset)){var p=f.createRange();p.setStart(h.node,h.offset),m.removeAllRanges(),A>b?(m.addRange(p),m.extend(g.node,g.offset)):(p.setEnd(g.node,g.offset),m.addRange(p))}}}}for(f=[],m=o;m=m.parentNode;)m.nodeType===1&&f.push({element:m,left:m.scrollLeft,top:m.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<f.length;o++){var y=f[o];y.element.scrollLeft=y.left,y.element.scrollTop=y.top}}vu=!!ad,ld=ad=null}finally{J=l,$.p=a,L.T=n}}e.current=t,Ue=2}}function Ty(){if(Ue===2){Ue=0;var e=da,t=Kl,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=L.T,L.T=null;var a=$.p;$.p=2;var l=J;J|=4;try{ny(e,t.alternate,t)}finally{J=l,$.p=a,L.T=n}}Ue=3}}function Ey(){if(Ue===4||Ue===3){Ue=0,xb();var e=da,t=Kl,n=kn,a=hy;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?Ue=5:(Ue=0,Kl=da=null,Dy(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(sa=null),pd(n),t=t.stateNode,xt&&typeof xt.onCommitFiberRoot=="function")try{xt.onCommitFiberRoot(br,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=L.T,l=$.p,$.p=2,L.T=null;try{for(var i=e.onRecoverableError,r=0;r<a.length;r++){var o=a[r];i(o.value,{componentStack:o.stack})}}finally{L.T=t,$.p=l}}(kn&3)!==0&&ku(),hn(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===ed?nr++:(nr=0,ed=e):nr=0,Dr(0,!1)}}function Dy(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Rr(t)))}function ku(){return Ry(),Ty(),Ey(),xy()}function xy(){if(Ue!==5)return!1;var e=da,t=Js;Js=0;var n=pd(kn),a=L.T,l=$.p;try{$.p=32>n?32:n,L.T=null,n=$s,$s=null;var i=da,r=kn;if(Ue=0,Kl=da=null,kn=0,(J&6)!==0)throw Error(S(331));var o=J;if(J|=4,fy(i.current),cy(i,i.current,r,n),J=o,Dr(0,!1),xt&&typeof xt.onPostCommitFiberRoot=="function")try{xt.onPostCommitFiberRoot(br,i)}catch{}return!0}finally{$.p=l,L.T=a,Dy(e,t)}}function Um(e,t,n){t=Yt(n,t),t=Qs(e.stateNode,t,2),e=ca(e,t,2),e!==null&&(wr(e,2),hn(e))}function le(e,t,n){if(e.tag===3)Um(e,e,n);else for(;t!==null;){if(t.tag===3){Um(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(sa===null||!sa.has(a))){e=Yt(n,e),n=jp(2),a=ca(t,n,2),a!==null&&(Yp(n,a,t,e),wr(a,2),hn(a));break}}t=t.return}}function ds(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new ew;var l=new Set;a.set(t,l)}else l=a.get(t),l===void 0&&(l=new Set,a.set(t,l));l.has(n)||(Id=!0,l.add(n),e=iw.bind(null,e,t,n),t.then(e,e))}function iw(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ue===e&&(Y&n)===n&&(Te===4||Te===3&&(Y&62914560)===Y&&300>Dt()-Bu?(J&2)===0&&Zl(e,0):Jd|=n,Ql===Y&&(Ql=0)),hn(e)}function My(e,t){t===0&&(t=Ah()),e=Wa(e,t),e!==null&&(wr(e,t),hn(e))}function rw(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),My(e,n)}function ow(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(S(314))}a!==null&&a.delete(t),My(e,n)}function uw(e,t){return md(e,t)}var du=null,wl=null,td=!1,fu=!1,fs=!1,ia=0;function hn(e){e!==wl&&e.next===null&&(wl===null?du=wl=e:wl=wl.next=e),fu=!0,td||(td=!0,sw())}function Dr(e,t){if(!fs&&fu){fs=!0;do for(var n=!1,a=du;a!==null;){if(!t)if(e!==0){var l=a.pendingLanes;if(l===0)var i=0;else{var r=a.suspendedLanes,o=a.pingedLanes;i=(1<<31-Mt(42|e)+1)-1,i&=l&~(r&~o),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(n=!0,Gm(a,i))}else i=Y,i=Au(a,a===ue?i:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(i&3)===0||Ar(a,i)||(n=!0,Gm(a,i));a=a.next}while(n);fs=!1}}function cw(){_y()}function _y(){fu=td=!1;var e=0;ia!==0&&vw()&&(e=ia);for(var t=Dt(),n=null,a=du;a!==null;){var l=a.next,i=By(a,t);i===0?(a.next=null,n===null?du=l:n.next=l,l===null&&(wl=n)):(n=a,(e!==0||(i&3)!==0)&&(fu=!0)),a=l}Ue!==0&&Ue!==5||Dr(e,!1),ia!==0&&(ia=0)}function By(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes&-62914561;0<i;){var r=31-Mt(i),o=1<<r,u=l[r];u===-1?((o&n)===0||(o&a)!==0)&&(l[r]=Hb(o,t)):u<=t&&(e.expiredLanes|=o),i&=~o}if(t=ue,n=Y,n=Au(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(ae===2||ae===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&qc(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||Ar(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&qc(a),pd(n)){case 2:case 8:n=vh;break;case 32:n=Ko;break;case 268435456:n=bh;break;default:n=Ko}return a=Ny.bind(null,e),n=md(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&qc(a),e.callbackPriority=2,e.callbackNode=null,2}function Ny(e,t){if(Ue!==0&&Ue!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(ku()&&e.callbackNode!==n)return null;var a=Y;return a=Au(e,e===ue?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(yy(e,a,t),By(e,Dt()),e.callbackNode!=null&&e.callbackNode===n?Ny.bind(null,e):null)}function Gm(e,t){if(ku())return null;yy(e,t,!0)}function sw(){Aw(function(){(J&6)!==0?md(yh,cw):_y()})}function ef(){if(ia===0){var e=Yl;e===0&&(e=go,go<<=1,(go&261888)===0&&(go=256)),ia=e}return ia}function Pm(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:Bo(""+e)}function qm(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function dw(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var i=Pm((l[vt]||null).action),r=a.submitter;r&&(t=(t=r[vt]||null)?Pm(t.formAction):r.getAttribute("formAction"),t!==null&&(i=t,r=null));var o=new wu("action","action",null,a,l);e.push({event:o,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(ia!==0){var u=r?qm(l,r):new FormData(l);Vs(n,{pending:!0,data:u,method:l.method,action:i},null,u)}}else typeof i=="function"&&(o.preventDefault(),u=r?qm(l,r):new FormData(l),Vs(n,{pending:!0,data:u,method:l.method,action:i},i,u))},currentTarget:l}]})}}for(To=0;To<Os.length;To++)Eo=Os[To],Fm=Eo.toLowerCase(),jm=Eo[0].toUpperCase()+Eo.slice(1),tn(Fm,"on"+jm);var Eo,Fm,jm,To;tn(Yh,"onAnimationEnd");tn(Vh,"onAnimationIteration");tn(Xh,"onAnimationStart");tn("dblclick","onDoubleClick");tn("focusin","onFocus");tn("focusout","onBlur");tn(MA,"onTransitionRun");tn(_A,"onTransitionStart");tn(BA,"onTransitionCancel");tn(Qh,"onTransitionEnd");Fl("onMouseEnter",["mouseout","mouseover"]);Fl("onMouseLeave",["mouseout","mouseover"]);Fl("onPointerEnter",["pointerout","pointerover"]);Fl("onPointerLeave",["pointerout","pointerover"]);Qa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Qa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Qa("onBeforeInput",["compositionend","keypress","textInput","paste"]);Qa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Qa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Qa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var gr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),fw=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(gr));function Oy(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],l=a.event;a=a.listeners;e:{var i=void 0;if(t)for(var r=a.length-1;0<=r;r--){var o=a[r],u=o.instance,c=o.currentTarget;if(o=o.listener,u!==i&&l.isPropagationStopped())break e;i=o,l.currentTarget=c;try{i(l)}catch(s){Wo(s)}l.currentTarget=null,i=u}else for(r=0;r<a.length;r++){if(o=a[r],u=o.instance,c=o.currentTarget,o=o.listener,u!==i&&l.isPropagationStopped())break e;i=o,l.currentTarget=c;try{i(l)}catch(s){Wo(s)}l.currentTarget=null,i=u}}}}function q(e,t){var n=t[Ts];n===void 0&&(n=t[Ts]=new Set);var a=e+"__bubble";n.has(a)||(ky(t,e,2,!1),n.add(a))}function gs(e,t,n){var a=0;t&&(a|=4),ky(n,e,a,t)}var Do="_reactListening"+Math.random().toString(36).slice(2);function tf(e){if(!e[Do]){e[Do]=!0,Th.forEach(function(n){n!=="selectionchange"&&(fw.has(n)||gs(n,!1,e),gs(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Do]||(t[Do]=!0,gs("selectionchange",!1,t))}}function ky(e,t,n,a){switch(Qy(t)){case 2:var l=Pw;break;case 8:l=qw;break;default:l=rf}n=l.bind(null,t,n,e),l=void 0,!_s||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),a?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function ms(e,t,n,a,l){var i=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var r=a.tag;if(r===3||r===4){var o=a.stateNode.containerInfo;if(o===l)break;if(r===4)for(r=a.return;r!==null;){var u=r.tag;if((u===3||u===4)&&r.stateNode.containerInfo===l)return;r=r.return}for(;o!==null;){if(r=Rl(o),r===null)return;if(u=r.tag,u===5||u===6||u===26||u===27){a=i=r;continue e}o=o.parentNode}}a=a.return}Oh(function(){var c=i,s=bd(n),f=[];e:{var d=Kh.get(e);if(d!==void 0){var m=wu,v=e;switch(e){case"keypress":if(Oo(n)===0)break e;case"keydown":case"keyup":m=oA;break;case"focusin":v="focus",m=Xc;break;case"focusout":v="blur",m=Xc;break;case"beforeblur":case"afterblur":m=Xc;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":m=Wg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":m=Zb;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":m=sA;break;case Yh:case Vh:case Xh:m=Jb;break;case Qh:m=fA;break;case"scroll":case"scrollend":m=Qb;break;case"wheel":m=mA;break;case"copy":case"cut":case"paste":m=eA;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":m=Jg;break;case"toggle":case"beforetoggle":m=pA}var A=(t&4)!==0,b=!A&&(e==="scroll"||e==="scrollend"),h=A?d!==null?d+"Capture":null:d;A=[];for(var g=c,p;g!==null;){var y=g;if(p=y.stateNode,y=y.tag,y!==5&&y!==26&&y!==27||p===null||h===null||(y=ir(g,h),y!=null&&A.push(mr(g,y,p))),b)break;g=g.return}0<A.length&&(d=new m(d,v,null,n,s),f.push({event:d,listeners:A}))}}if((t&7)===0){e:{if(d=e==="mouseover"||e==="pointerover",m=e==="mouseout"||e==="pointerout",d&&n!==Ms&&(v=n.relatedTarget||n.fromElement)&&(Rl(v)||v[Jl]))break e;if((m||d)&&(d=s.window===s?s:(d=s.ownerDocument)?d.defaultView||d.parentWindow:window,m?(v=n.relatedTarget||n.toElement,m=c,v=v?Rl(v):null,v!==null&&(b=vr(v),A=v.tag,v!==b||A!==5&&A!==27&&A!==6)&&(v=null)):(m=null,v=c),m!==v)){if(A=Wg,y="onMouseLeave",h="onMouseEnter",g="mouse",(e==="pointerout"||e==="pointerover")&&(A=Jg,y="onPointerLeave",h="onPointerEnter",g="pointer"),b=m==null?d:Fi(m),p=v==null?d:Fi(v),d=new A(y,g+"leave",m,n,s),d.target=b,d.relatedTarget=p,y=null,Rl(s)===c&&(A=new A(h,g+"enter",v,n,s),A.target=p,A.relatedTarget=b,y=A),b=y,m&&v)t:{for(A=gw,h=m,g=v,p=0,y=h;y;y=A(y))p++;y=0;for(var C=g;C;C=A(C))y++;for(;0<p-y;)h=A(h),p--;for(;0<y-p;)g=A(g),y--;for(;p--;){if(h===g||g!==null&&h===g.alternate){A=h;break t}h=A(h),g=A(g)}A=null}else A=null;m!==null&&Ym(f,d,m,A,!1),v!==null&&b!==null&&Ym(f,b,v,A,!0)}}e:{if(d=c?Fi(c):window,m=d.nodeName&&d.nodeName.toLowerCase(),m==="select"||m==="input"&&d.type==="file")var R=nm;else if(tm(d))if(Gh)R=EA;else{R=RA;var T=CA}else m=d.nodeName,!m||m.toLowerCase()!=="input"||d.type!=="checkbox"&&d.type!=="radio"?c&&vd(c.elementType)&&(R=nm):R=TA;if(R&&(R=R(e,c))){Uh(f,R,n,s);break e}T&&T(e,d,c),e==="focusout"&&c&&d.type==="number"&&c.memoizedProps.value!=null&&xs(d,"number",d.value)}switch(T=c?Fi(c):window,e){case"focusin":(tm(T)||T.contentEditable==="true")&&(Dl=T,Bs=c,Qi=null);break;case"focusout":Qi=Bs=Dl=null;break;case"mousedown":Ns=!0;break;case"contextmenu":case"mouseup":case"dragend":Ns=!1,rm(f,n,s);break;case"selectionchange":if(xA)break;case"keydown":case"keyup":rm(f,n,s)}var M;if(Sd)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else El?Hh(e,n)&&(w="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(w="onCompositionStart");w&&(Lh&&n.locale!=="ko"&&(El||w!=="onCompositionStart"?w==="onCompositionEnd"&&El&&(M=kh()):(na=s,Ad="value"in na?na.value:na.textContent,El=!0)),T=gu(c,w),0<T.length&&(w=new Ig(w,e,null,n,s),f.push({event:w,listeners:T}),M?w.data=M:(M=zh(n),M!==null&&(w.data=M)))),(M=vA?bA(e,n):AA(e,n))&&(w=gu(c,"onBeforeInput"),0<w.length&&(T=new Ig("onBeforeInput","beforeinput",null,n,s),f.push({event:T,listeners:w}),T.data=M)),dw(f,e,c,n,s)}Oy(f,t)})}function mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function gu(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,i=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||i===null||(l=ir(e,n),l!=null&&a.unshift(mr(e,l,i)),l=ir(e,t),l!=null&&a.push(mr(e,l,i))),e.tag===3)return a;e=e.return}return[]}function gw(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Ym(e,t,n,a,l){for(var i=t._reactName,r=[];n!==null&&n!==a;){var o=n,u=o.alternate,c=o.stateNode;if(o=o.tag,u!==null&&u===a)break;o!==5&&o!==26&&o!==27||c===null||(u=c,l?(c=ir(n,i),c!=null&&r.unshift(mr(n,c,u))):l||(c=ir(n,i),c!=null&&r.push(mr(n,c,u)))),n=n.return}r.length!==0&&e.push({event:t,listeners:r})}var mw=/\r\n?/g,hw=/\u0000|\uFFFD/g;function Vm(e){return(typeof e=="string"?e:""+e).replace(mw,``).replace(hw,"")}function Ly(e,t){return t=Vm(t),Vm(e)===t}function ie(e,t,n,a,l,i){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||jl(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&jl(e,""+a);break;case"className":po(e,"class",a);break;case"tabIndex":po(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":po(e,n,a);break;case"style":Nh(e,a,i);break;case"data":if(t!=="object"){po(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=Bo(""+a),e.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof i=="function"&&(n==="formAction"?(t!=="input"&&ie(e,t,"name",l.name,l,null),ie(e,t,"formEncType",l.formEncType,l,null),ie(e,t,"formMethod",l.formMethod,l,null),ie(e,t,"formTarget",l.formTarget,l,null)):(ie(e,t,"encType",l.encType,l,null),ie(e,t,"method",l.method,l,null),ie(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=Bo(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=_n);break;case"onScroll":a!=null&&q("scroll",e);break;case"onScrollEnd":a!=null&&q("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(S(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(S(60));e.innerHTML=n}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}n=Bo(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""+a):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":a===!0?e.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,a):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(n,a):e.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(n):e.setAttribute(n,a);break;case"popover":q("beforetoggle",e),q("toggle",e),_o(e,"popover",a);break;case"xlinkActuate":Sn(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":Sn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":Sn(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":Sn(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":Sn(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":Sn(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":_o(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=Vb.get(n)||n,_o(e,n,a))}}function nd(e,t,n,a,l,i){switch(n){case"style":Nh(e,a,i);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(S(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(S(60));e.innerHTML=n}}break;case"children":typeof a=="string"?jl(e,a):(typeof a=="number"||typeof a=="bigint")&&jl(e,""+a);break;case"onScroll":a!=null&&q("scroll",e);break;case"onScrollEnd":a!=null&&q("scrollend",e);break;case"onClick":a!=null&&(e.onclick=_n);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Eh.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),i=e[vt]||null,i=i!=null?i[n]:null,typeof i=="function"&&e.removeEventListener(t,i,l),typeof a=="function")){typeof i!="function"&&i!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,l);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):_o(e,n,a)}}}function Ke(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":q("error",e),q("load",e);var a=!1,l=!1,i;for(i in n)if(n.hasOwnProperty(i)){var r=n[i];if(r!=null)switch(i){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(S(137,t));default:ie(e,t,i,r,n,null)}}l&&ie(e,t,"srcSet",n.srcSet,n,null),a&&ie(e,t,"src",n.src,n,null);return;case"input":q("invalid",e);var o=i=r=l=null,u=null,c=null;for(a in n)if(n.hasOwnProperty(a)){var s=n[a];if(s!=null)switch(a){case"name":l=s;break;case"type":r=s;break;case"checked":u=s;break;case"defaultChecked":c=s;break;case"value":i=s;break;case"defaultValue":o=s;break;case"children":case"dangerouslySetInnerHTML":if(s!=null)throw Error(S(137,t));break;default:ie(e,t,a,s,n,null)}}Mh(e,i,o,u,c,r,l,!1);return;case"select":q("invalid",e),a=r=i=null;for(l in n)if(n.hasOwnProperty(l)&&(o=n[l],o!=null))switch(l){case"value":i=o;break;case"defaultValue":r=o;break;case"multiple":a=o;default:ie(e,t,l,o,n,null)}t=i,n=r,e.multiple=!!a,t!=null?Ll(e,!!a,t,!1):n!=null&&Ll(e,!!a,n,!0);return;case"textarea":q("invalid",e),i=l=a=null;for(r in n)if(n.hasOwnProperty(r)&&(o=n[r],o!=null))switch(r){case"value":a=o;break;case"defaultValue":l=o;break;case"children":i=o;break;case"dangerouslySetInnerHTML":if(o!=null)throw Error(S(91));break;default:ie(e,t,r,o,n,null)}Bh(e,a,l,i);return;case"option":for(u in n)if(n.hasOwnProperty(u)&&(a=n[u],a!=null))switch(u){case"selected":e.selected=a&&typeof a!="function"&&typeof a!="symbol";break;default:ie(e,t,u,a,n,null)}return;case"dialog":q("beforetoggle",e),q("toggle",e),q("cancel",e),q("close",e);break;case"iframe":case"object":q("load",e);break;case"video":case"audio":for(a=0;a<gr.length;a++)q(gr[a],e);break;case"image":q("error",e),q("load",e);break;case"details":q("toggle",e);break;case"embed":case"source":case"link":q("error",e),q("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in n)if(n.hasOwnProperty(c)&&(a=n[c],a!=null))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(S(137,t));default:ie(e,t,c,a,n,null)}return;default:if(vd(t)){for(s in n)n.hasOwnProperty(s)&&(a=n[s],a!==void 0&&nd(e,t,s,a,n,void 0));return}}for(o in n)n.hasOwnProperty(o)&&(a=n[o],a!=null&&ie(e,t,o,a,n,null))}function pw(e,t,n,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,i=null,r=null,o=null,u=null,c=null,s=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case"checked":break;case"value":break;case"defaultValue":u=f;default:a.hasOwnProperty(m)||ie(e,t,m,null,a,f)}}for(var d in a){var m=a[d];if(f=n[d],a.hasOwnProperty(d)&&(m!=null||f!=null))switch(d){case"type":i=m;break;case"name":l=m;break;case"checked":c=m;break;case"defaultChecked":s=m;break;case"value":r=m;break;case"defaultValue":o=m;break;case"children":case"dangerouslySetInnerHTML":if(m!=null)throw Error(S(137,t));break;default:m!==f&&ie(e,t,d,m,a,f)}}Ds(e,r,o,u,c,s,i,l);return;case"select":m=r=o=d=null;for(i in n)if(u=n[i],n.hasOwnProperty(i)&&u!=null)switch(i){case"value":break;case"multiple":m=u;default:a.hasOwnProperty(i)||ie(e,t,i,null,a,u)}for(l in a)if(i=a[l],u=n[l],a.hasOwnProperty(l)&&(i!=null||u!=null))switch(l){case"value":d=i;break;case"defaultValue":o=i;break;case"multiple":r=i;default:i!==u&&ie(e,t,l,i,a,u)}t=o,n=r,a=m,d!=null?Ll(e,!!n,d,!1):!!a!=!!n&&(t!=null?Ll(e,!!n,t,!0):Ll(e,!!n,n?[]:"",!1));return;case"textarea":m=d=null;for(o in n)if(l=n[o],n.hasOwnProperty(o)&&l!=null&&!a.hasOwnProperty(o))switch(o){case"value":break;case"children":break;default:ie(e,t,o,null,a,l)}for(r in a)if(l=a[r],i=n[r],a.hasOwnProperty(r)&&(l!=null||i!=null))switch(r){case"value":d=l;break;case"defaultValue":m=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(S(91));break;default:l!==i&&ie(e,t,r,l,a,i)}_h(e,d,m);return;case"option":for(var v in n)if(d=n[v],n.hasOwnProperty(v)&&d!=null&&!a.hasOwnProperty(v))switch(v){case"selected":e.selected=!1;break;default:ie(e,t,v,null,a,d)}for(u in a)if(d=a[u],m=n[u],a.hasOwnProperty(u)&&d!==m&&(d!=null||m!=null))switch(u){case"selected":e.selected=d&&typeof d!="function"&&typeof d!="symbol";break;default:ie(e,t,u,d,a,m)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var A in n)d=n[A],n.hasOwnProperty(A)&&d!=null&&!a.hasOwnProperty(A)&&ie(e,t,A,null,a,d);for(c in a)if(d=a[c],m=n[c],a.hasOwnProperty(c)&&d!==m&&(d!=null||m!=null))switch(c){case"children":case"dangerouslySetInnerHTML":if(d!=null)throw Error(S(137,t));break;default:ie(e,t,c,d,a,m)}return;default:if(vd(t)){for(var b in n)d=n[b],n.hasOwnProperty(b)&&d!==void 0&&!a.hasOwnProperty(b)&&nd(e,t,b,void 0,a,d);for(s in a)d=a[s],m=n[s],!a.hasOwnProperty(s)||d===m||d===void 0&&m===void 0||nd(e,t,s,d,a,m);return}}for(var h in n)d=n[h],n.hasOwnProperty(h)&&d!=null&&!a.hasOwnProperty(h)&&ie(e,t,h,null,a,d);for(f in a)d=a[f],m=n[f],!a.hasOwnProperty(f)||d===m||d==null&&m==null||ie(e,t,f,d,a,m)}function Xm(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function yw(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var l=n[a],i=l.transferSize,r=l.initiatorType,o=l.duration;if(i&&o&&Xm(r)){for(r=0,o=l.responseEnd,a+=1;a<n.length;a++){var u=n[a],c=u.startTime;if(c>o)break;var s=u.transferSize,f=u.initiatorType;s&&Xm(f)&&(u=u.responseEnd,r+=s*(u<o?1:(o-c)/(u-c)))}if(--a,t+=8*(i+r)/(l.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var ad=null,ld=null;function mu(e){return e.nodeType===9?e:e.ownerDocument}function Qm(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Hy(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function id(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var hs=null;function vw(){var e=window.event;return e&&e.type==="popstate"?e===hs?!1:(hs=e,!0):(hs=null,!1)}var zy=typeof setTimeout=="function"?setTimeout:void 0,bw=typeof clearTimeout=="function"?clearTimeout:void 0,Km=typeof Promise=="function"?Promise:void 0,Aw=typeof queueMicrotask=="function"?queueMicrotask:typeof Km<"u"?function(e){return Km.resolve(null).then(e).catch(ww)}:zy;function ww(e){setTimeout(function(){throw e})}function Aa(e){return e==="head"}function Zm(e,t){var n=t,a=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"||n==="/&"){if(a===0){e.removeChild(l),Il(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")ar(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,ar(n);for(var i=n.firstChild;i;){var r=i.nextSibling,o=i.nodeName;i[Sr]||o==="SCRIPT"||o==="STYLE"||o==="LINK"&&i.rel.toLowerCase()==="stylesheet"||n.removeChild(i),i=r}}else n==="body"&&ar(e.ownerDocument.body);n=l}while(n);Il(t)}function Wm(e,t){var n=e;e=0;do{var a=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=a}while(n)}function rd(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":rd(n),yd(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Sw(e,t,n,a){for(;e.nodeType===1;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[Sr])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(i=e.getAttribute("rel"),i==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(i!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(i=e.getAttribute("src"),(i!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&i&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var i=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===i)return e}else return e;if(e=Qt(e.nextSibling),e===null)break}return null}function Cw(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Qt(e.nextSibling),e===null))return null;return e}function Uy(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Qt(e.nextSibling),e===null))return null;return e}function od(e){return e.data==="$?"||e.data==="$~"}function ud(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function Rw(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function Qt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var cd=null;function Im(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Qt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function Jm(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(t===0)return e;t--}else n!=="/$"&&n!=="/&"||t++}e=e.previousSibling}return null}function Gy(e,t,n){switch(t=mu(n),e){case"html":if(e=t.documentElement,!e)throw Error(S(452));return e;case"head":if(e=t.head,!e)throw Error(S(453));return e;case"body":if(e=t.body,!e)throw Error(S(454));return e;default:throw Error(S(451))}}function ar(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);yd(e)}var Kt=new Map,$m=new Set;function hu(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Pn=$.d;$.d={f:Tw,r:Ew,D:Dw,C:xw,L:Mw,m:_w,X:Nw,S:Bw,M:Ow};function Tw(){var e=Pn.f(),t=Nu();return e||t}function Ew(e){var t=$l(e);t!==null&&t.tag===5&&t.type==="form"?Np(t):Pn.r(e)}var ai=typeof document>"u"?null:document;function Py(e,t,n){var a=ai;if(a&&typeof t=="string"&&t){var l=jt(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),$m.has(l)||($m.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),Ke(t,"link",e),qe(t),a.head.appendChild(t)))}}function Dw(e){Pn.D(e),Py("dns-prefetch",e,null)}function xw(e,t){Pn.C(e,t),Py("preconnect",e,t)}function Mw(e,t,n){Pn.L(e,t,n);var a=ai;if(a&&e&&t){var l='link[rel="preload"][as="'+jt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+jt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+jt(n.imageSizes)+'"]')):l+='[href="'+jt(e)+'"]';var i=l;switch(t){case"style":i=Wl(e);break;case"script":i=li(e)}Kt.has(i)||(e=ve({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Kt.set(i,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(xr(i))||t==="script"&&a.querySelector(Mr(i))||(t=a.createElement("link"),Ke(t,"link",e),qe(t),a.head.appendChild(t)))}}function _w(e,t){Pn.m(e,t);var n=ai;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+jt(a)+'"][href="'+jt(e)+'"]',i=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=li(e)}if(!Kt.has(i)&&(e=ve({rel:"modulepreload",href:e},t),Kt.set(i,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Mr(i)))return}a=n.createElement("link"),Ke(a,"link",e),qe(a),n.head.appendChild(a)}}}function Bw(e,t,n){Pn.S(e,t,n);var a=ai;if(a&&e){var l=kl(a).hoistableStyles,i=Wl(e);t=t||"default";var r=l.get(i);if(!r){var o={loading:0,preload:null};if(r=a.querySelector(xr(i)))o.loading=5;else{e=ve({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Kt.get(i))&&nf(e,n);var u=r=a.createElement("link");qe(u),Ke(u,"link",e),u._p=new Promise(function(c,s){u.onload=c,u.onerror=s}),u.addEventListener("load",function(){o.loading|=1}),u.addEventListener("error",function(){o.loading|=2}),o.loading|=4,qo(r,t,a)}r={type:"stylesheet",instance:r,count:1,state:o},l.set(i,r)}}}function Nw(e,t){Pn.X(e,t);var n=ai;if(n&&e){var a=kl(n).hoistableScripts,l=li(e),i=a.get(l);i||(i=n.querySelector(Mr(l)),i||(e=ve({src:e,async:!0},t),(t=Kt.get(l))&&af(e,t),i=n.createElement("script"),qe(i),Ke(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function Ow(e,t){Pn.M(e,t);var n=ai;if(n&&e){var a=kl(n).hoistableScripts,l=li(e),i=a.get(l);i||(i=n.querySelector(Mr(l)),i||(e=ve({src:e,async:!0,type:"module"},t),(t=Kt.get(l))&&af(e,t),i=n.createElement("script"),qe(i),Ke(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function eh(e,t,n,a){var l=(l=ra.current)?hu(l):null;if(!l)throw Error(S(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Wl(n.href),n=kl(l).hoistableStyles,a=n.get(t),a||(a={type:"style",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=Wl(n.href);var i=kl(l).hoistableStyles,r=i.get(e);if(r||(l=l.ownerDocument||l,r={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,r),(i=l.querySelector(xr(e)))&&!i._p&&(r.instance=i,r.state.loading=5),Kt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Kt.set(e,n),i||kw(l,e,n,r.state))),t&&a===null)throw Error(S(528,""));return r}if(t&&a!==null)throw Error(S(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=li(n),n=kl(l).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(S(444,e))}}function Wl(e){return'href="'+jt(e)+'"'}function xr(e){return'link[rel="stylesheet"]['+e+"]"}function qy(e){return ve({},e,{"data-precedence":e.precedence,precedence:null})}function kw(e,t,n,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ke(t,"link",n),qe(t),e.head.appendChild(t))}function li(e){return'[src="'+jt(e)+'"]'}function Mr(e){return"script[async]"+e}function th(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+jt(n.href)+'"]');if(a)return t.instance=a,qe(a),a;var l=ve({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),qe(a),Ke(a,"style",l),qo(a,n.precedence,e),t.instance=a;case"stylesheet":l=Wl(n.href);var i=e.querySelector(xr(l));if(i)return t.state.loading|=4,t.instance=i,qe(i),i;a=qy(n),(l=Kt.get(l))&&nf(a,l),i=(e.ownerDocument||e).createElement("link"),qe(i);var r=i;return r._p=new Promise(function(o,u){r.onload=o,r.onerror=u}),Ke(i,"link",a),t.state.loading|=4,qo(i,n.precedence,e),t.instance=i;case"script":return i=li(n.src),(l=e.querySelector(Mr(i)))?(t.instance=l,qe(l),l):(a=n,(l=Kt.get(i))&&(a=ve({},n),af(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),qe(l),Ke(l,"link",a),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(S(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,qo(a,n.precedence,e));return t.instance}function qo(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,i=l,r=0;r<a.length;r++){var o=a[r];if(o.dataset.precedence===t)i=o;else if(i!==l)break}i?i.parentNode.insertBefore(e,i.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function nf(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function af(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var Fo=null;function nh(e,t,n){if(Fo===null){var a=new Map,l=Fo=new Map;l.set(n,a)}else l=Fo,a=l.get(n),a||(a=new Map,l.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var i=n[l];if(!(i[Sr]||i[Ve]||e==="link"&&i.getAttribute("rel")==="stylesheet")&&i.namespaceURI!=="http://www.w3.org/2000/svg"){var r=i.getAttribute(t)||"";r=e+r;var o=a.get(r);o?o.push(i):a.set(r,[i])}}return a}function ah(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Lw(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Fy(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Hw(e,t,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var l=Wl(a.href),i=t.querySelector(xr(l));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=pu.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=i,qe(i);return}i=t.ownerDocument||t,a=qy(a),(l=Kt.get(l))&&nf(a,l),i=i.createElement("link"),qe(i);var r=i;r._p=new Promise(function(o,u){r.onload=o,r.onerror=u}),Ke(i,"link",a),n.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=pu.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var ps=0;function zw(e,t){return e.stylesheets&&e.count===0&&jo(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&jo(e,e.stylesheets),e.unsuspend){var i=e.unsuspend;e.unsuspend=null,i()}},6e4+t);0<e.imgBytes&&ps===0&&(ps=62500*yw());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&jo(e,e.stylesheets),e.unsuspend)){var i=e.unsuspend;e.unsuspend=null,i()}},(e.imgBytes>ps?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function pu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)jo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var yu=null;function jo(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,yu=new Map,t.forEach(Uw,e),yu=null,pu.call(e))}function Uw(e,t){if(!(t.state.loading&4)){var n=yu.get(e);if(n)var a=n.get(null);else{n=new Map,yu.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i<l.length;i++){var r=l[i];(r.nodeName==="LINK"||r.getAttribute("media")!=="not all")&&(n.set(r.dataset.precedence,r),a=r)}a&&n.set(null,a)}l=t.instance,r=l.getAttribute("data-precedence"),i=n.get(r)||a,i===a&&n.set(null,l),n.set(r,l),this.count++,a=pu.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),i?i.parentNode.insertBefore(l,i.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var hr={$$typeof:Mn,Provider:null,Consumer:null,_currentValue:za,_currentValue2:za,_threadCount:0};function Gw(e,t,n,a,l,i,r,o,u){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Fc(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Fc(0),this.hiddenUpdates=Fc(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=i,this.onRecoverableError=r,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=u,this.incompleteTransitions=new Map}function jy(e,t,n,a,l,i,r,o,u,c,s,f){return e=new Gw(e,t,n,r,u,c,s,f,o),t=1,i===!0&&(t|=24),i=Tt(3,null,null,t),e.current=i,i.stateNode=e,t=Md(),t.refCount++,e.pooledCache=t,t.refCount++,i.memoizedState={element:a,isDehydrated:n,cache:t},Nd(i),e}function Yy(e){return e?(e=_l,e):_l}function Vy(e,t,n,a,l,i){l=Yy(l),a.context===null?a.context=l:a.pendingContext=l,a=ua(t),a.payload={element:n},i=i===void 0?null:i,i!==null&&(a.callback=i),n=ca(e,a,t),n!==null&&(yt(n,e,t),Zi(n,e,t))}function lh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function lf(e,t){lh(e,t),(e=e.alternate)&&lh(e,t)}function Xy(e){if(e.tag===13||e.tag===31){var t=Wa(e,67108864);t!==null&&yt(t,e,67108864),lf(e,67108864)}}function ih(e){if(e.tag===13||e.tag===31){var t=_t();t=hd(t);var n=Wa(e,t);n!==null&&yt(n,e,t),lf(e,t)}}var vu=!0;function Pw(e,t,n,a){var l=L.T;L.T=null;var i=$.p;try{$.p=2,rf(e,t,n,a)}finally{$.p=i,L.T=l}}function qw(e,t,n,a){var l=L.T;L.T=null;var i=$.p;try{$.p=8,rf(e,t,n,a)}finally{$.p=i,L.T=l}}function rf(e,t,n,a){if(vu){var l=sd(a);if(l===null)ms(e,t,a,bu,n),rh(e,a);else if(jw(l,e,t,n,a))a.stopPropagation();else if(rh(e,a),t&4&&-1<Fw.indexOf(e)){for(;l!==null;){var i=$l(l);if(i!==null)switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var r=ka(i.pendingLanes);if(r!==0){var o=i;for(o.pendingLanes|=2,o.entangledLanes|=2;r;){var u=1<<31-Mt(r);o.entanglements[1]|=u,r&=~u}hn(i),(J&6)===0&&(uu=Dt()+500,Dr(0,!1))}}break;case 31:case 13:o=Wa(i,2),o!==null&&yt(o,i,2),Nu(),lf(i,2)}if(i=sd(a),i===null&&ms(e,t,a,bu,n),i===l)break;l=i}l!==null&&a.stopPropagation()}else ms(e,t,a,null,n)}}function sd(e){return e=bd(e),of(e)}var bu=null;function of(e){if(bu=null,e=Rl(e),e!==null){var t=vr(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=fh(t),e!==null)return e;e=null}else if(n===31){if(e=gh(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return bu=e,null}function Qy(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Mb()){case yh:return 2;case vh:return 8;case Ko:case _b:return 32;case bh:return 268435456;default:return 32}default:return 32}}var dd=!1,fa=null,ga=null,ma=null,pr=new Map,yr=new Map,ea=[],Fw="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function rh(e,t){switch(e){case"focusin":case"focusout":fa=null;break;case"dragenter":case"dragleave":ga=null;break;case"mouseover":case"mouseout":ma=null;break;case"pointerover":case"pointerout":pr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":yr.delete(t.pointerId)}}function Ui(e,t,n,a,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:i,targetContainers:[l]},t!==null&&(t=$l(t),t!==null&&Xy(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function jw(e,t,n,a,l){switch(t){case"focusin":return fa=Ui(fa,e,t,n,a,l),!0;case"dragenter":return ga=Ui(ga,e,t,n,a,l),!0;case"mouseover":return ma=Ui(ma,e,t,n,a,l),!0;case"pointerover":var i=l.pointerId;return pr.set(i,Ui(pr.get(i)||null,e,t,n,a,l)),!0;case"gotpointercapture":return i=l.pointerId,yr.set(i,Ui(yr.get(i)||null,e,t,n,a,l)),!0}return!1}function Ky(e){var t=Rl(e.target);if(t!==null){var n=vr(t);if(n!==null){if(t=n.tag,t===13){if(t=fh(n),t!==null){e.blockedOn=t,jg(e.priority,function(){ih(n)});return}}else if(t===31){if(t=gh(n),t!==null){e.blockedOn=t,jg(e.priority,function(){ih(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Yo(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=sd(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Ms=a,n.target.dispatchEvent(a),Ms=null}else return t=$l(n),t!==null&&Xy(t),e.blockedOn=n,!1;t.shift()}return!0}function oh(e,t,n){Yo(e)&&n.delete(t)}function Yw(){dd=!1,fa!==null&&Yo(fa)&&(fa=null),ga!==null&&Yo(ga)&&(ga=null),ma!==null&&Yo(ma)&&(ma=null),pr.forEach(oh),yr.forEach(oh)}function xo(e,t){e.blockedOn===t&&(e.blockedOn=null,dd||(dd=!0,Ge.unstable_scheduleCallback(Ge.unstable_NormalPriority,Yw)))}var Mo=null;function uh(e){Mo!==e&&(Mo=e,Ge.unstable_scheduleCallback(Ge.unstable_NormalPriority,function(){Mo===e&&(Mo=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],l=e[t+2];if(typeof a!="function"){if(of(a||n)===null)continue;break}var i=$l(n);i!==null&&(e.splice(t,3),t-=3,Vs(i,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function Il(e){function t(u){return xo(u,e)}fa!==null&&xo(fa,e),ga!==null&&xo(ga,e),ma!==null&&xo(ma,e),pr.forEach(t),yr.forEach(t);for(var n=0;n<ea.length;n++){var a=ea[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<ea.length&&(n=ea[0],n.blockedOn===null);)Ky(n),n.blockedOn===null&&ea.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],i=n[a+1],r=l[vt]||null;if(typeof i=="function")r||uh(n);else if(r){var o=null;if(i&&i.hasAttribute("formAction")){if(l=i,r=i[vt]||null)o=r.formAction;else if(of(l)!==null)continue}else o=r.action;typeof o=="function"?n[a+1]=o:(n.splice(a,3),a-=3),uh(n)}}}function Zy(){function e(i){i.canIntercept&&i.info==="react-transition"&&i.intercept({handler:function(){return new Promise(function(r){return l=r})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var i=navigation.currentEntry;i&&i.url!=null&&navigation.navigate(i.url,{state:i.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),l!==null&&(l(),l=null)}}}function uf(e){this._internalRoot=e}Lu.prototype.render=uf.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(S(409));var n=t.current,a=_t();Vy(n,a,e,t,null,null)};Lu.prototype.unmount=uf.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Vy(e.current,2,null,e,null,null),Nu(),t[Jl]=null}};function Lu(e){this._internalRoot=e}Lu.prototype.unstable_scheduleHydration=function(e){if(e){var t=Rh();e={blockedOn:null,target:e,priority:t};for(var n=0;n<ea.length&&t!==0&&t<ea[n].priority;n++);ea.splice(n,0,e),n===0&&Ky(e)}};var ch=sh.version;if(ch!=="19.2.8")throw Error(S(527,ch,"19.2.8"));$.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(S(188)):(e=Object.keys(e).join(","),Error(S(268,e)));return e=Sb(t),e=e!==null?mh(e):null,e=e===null?null:e.stateNode,e};var Vw={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:L,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(Gi=__REACT_DEVTOOLS_GLOBAL_HOOK__,!Gi.isDisabled&&Gi.supportsFiber))try{br=Gi.inject(Vw),xt=Gi}catch{}var Gi;Hu.createRoot=function(e,t){if(!dh(e))throw Error(S(299));var n=!1,a="",l=Pp,i=qp,r=Fp;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(r=t.onRecoverableError)),t=jy(e,1,!1,null,null,n,a,null,l,i,r,Zy),e[Jl]=t.current,tf(e),new uf(t)};Hu.hydrateRoot=function(e,t,n){if(!dh(e))throw Error(S(299));var a=!1,l="",i=Pp,r=qp,o=Fp,u=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(i=n.onUncaughtError),n.onCaughtError!==void 0&&(r=n.onCaughtError),n.onRecoverableError!==void 0&&(o=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=jy(e,1,!0,t,n??null,a,l,u,i,r,o,Zy),t.context=Yy(null),n=t.current,a=_t(),a=hd(a),l=ua(a),l.callback=null,ca(n,l,a),n=a,t.current.lanes=n,wr(t,n),hn(t),e[Jl]=t.current,tf(e),new Lu(t)};Hu.version="19.2.8"});var $y=un((jS,Jy)=>{"use strict";function Iy(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Iy)}catch(e){console.error(e)}}Iy(),Jy.exports=Wy()});var t0=un(zu=>{"use strict";var Xw=Symbol.for("react.transitional.element"),Qw=Symbol.for("react.fragment");function e0(e,t,n){var a=null;if(n!==void 0&&(a=""+n),t.key!==void 0&&(a=""+t.key),"key"in t){n={};for(var l in t)l!=="key"&&(n[l]=t[l])}else n=t;return t=n.ref,{$$typeof:Xw,type:e,key:a,ref:t!==void 0?t:null,props:n}}zu.Fragment=Qw;zu.jsx=e0;zu.jsxs=e0});var O=un((VS,n0)=>{"use strict";n0.exports=t0()});var Lt=B(ft(),1),s1=B($y(),1);var Wv=B(ft(),1);var qn=B(O(),1);function Kw(e){return{under50:"Under $50",over50:"Over $50",over30:"Over $30",over500:"Over $500","50_100":"$50 - $100","100_200":"$100 - $200","200_500":"$200 - $500"}[e]||e}function a0({activeDealTag:e,activeFreeformTags:t,airedaleTags:n,freeformTags:a,discountAmount:l,onBrandSelect:i,onBrandToggle:r,onDiscountAmountChange:o,onPriceRangeChange:u,onTagClear:c,onFreeformTagClear:s,onFreeformTagToggle:f,priceRange:d,selectedBrands:m}){let v=m.map(b=>({type:"brand",value:b,label:b}));if(e){let b=n.find(h=>h.startsWith(e+":::")||h===e);v.push({type:"category",value:e,label:b?b.split(":::")[1]||b.split(":::")[0]:e})}if(t.forEach(b=>{let h=a.find(g=>g.handle===b);v.push({type:"freeform-tag",value:b,label:h?.label||b})}),d&&d!=="all"&&v.push({type:"price",value:d,label:Kw(d)}),l&&l!=="0"&&l!=="all"&&v.push({type:"discount",value:l,label:`Min ${l}% off`}),v.length===0)return null;let A=b=>{b.type==="brand"&&r?.(b.value),b.type==="category"&&c(),b.type==="freeform-tag"&&f(b.value),b.type==="discount"&&o?.("0"),b.type==="price"&&u?.("all")};return(0,qn.jsxs)("div",{className:"tg-df-active-badges-row",style:{display:"flex",flexWrap:"wrap",gap:"4px",alignItems:"center",marginTop:"10px",marginBottom:"16px"},children:[v.map(b=>(0,qn.jsxs)("span",{className:"tg-df-active-badge",children:[b.label,(0,qn.jsx)("button",{type:"button",className:"tg-df-badge-remove","aria-label":`Remove ${b.label}`,onClick:()=>A(b),children:(0,qn.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,qn.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,qn.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},b.type+"-"+b.value)),v.length>1&&(0,qn.jsx)("button",{type:"button",className:"tg-df-badge-clear-all",onClick:()=>{i?.([]),c(),s(),o?.("0"),u?.("all")},children:"Clear all"})]})}function l0(e){if(!e)return null;let t=e.documentname||e.title||"";!t&&e.documentnametext&&(t=Array.isArray(e.documentnametext)?e.documentnametext[0]:e.documentnametext),!t&&e.articlename&&(t=Array.isArray(e.articlename)?e.articlename[0]:e.articlename),!t&&e.articlesocialtitle&&Array.isArray(e.articlesocialtitle)&&(t=e.articlesocialtitle[0]);let n=e.strapline||e.articlestrapline||e.subtitle||e.dek||"";!n&&e.image_thumbnail&&e.image_thumbnail.dek&&(n=e.image_thumbnail.dek),Array.isArray(n)&&(n=n[0]||"");let a="";if(e.articlepage)try{let l=e.articlepage;if(typeof l=="string")try{l=JSON.parse(l)}catch{}if(Array.isArray(l)&&l.length>0){let i=l[0];if(typeof i=="string")try{i=JSON.parse(i)}catch{}if(Array.isArray(i)){let r=[];for(let o of i){if(o.type==="featured-product")break;if(o.type==="text"&&o.data)Array.isArray(o.data.paragraphs)?o.data.paragraphs.forEach(u=>{u&&r.push(u.startsWith("<")?u:`<p>${u}<\/p>`)}):typeof o.data.text=="string"&&o.data.text&&r.push(o.data.text.startsWith("<")?o.data.text:`<p>${o.data.text}<\/p>`);else if(o.type==="section"&&o.data){let u=o.data.text||o.data.heading||o.data.title||"";u&&r.push(`<div class="tg-df-article-section-banner"><span>${u}<\/span><\/div>`)}}r.length>0&&(a=r.join(""))}}}catch(l){console.error("Error parsing articlepage",l)}return!a&&e.content?a=typeof e.content=="string"?e.content:"":!a&&e.intro?a=typeof e.intro=="string"?e.intro:"":!a&&e.paragraphs&&(a=(Array.isArray(e.paragraphs)?e.paragraphs:[e.paragraphs]).map(i=>`<p>${i}<\/p>`).join("")),{headline:t,strapline:n,contentHtml:a}}var ii=B(O(),1);function i0({articles:e,selectedArticleId:t}){if(!t)return null;let n=e.find(l=>l.id===t);if(!n)return null;let a=l0(n);return!a||!a.headline&&!a.strapline&&!a.contentHtml?null:(0,ii.jsxs)("div",{className:"tg-df-article-intro-container",id:"tg-df-article-intro",style:{margin:"0 auto 32px",width:"100%",maxWidth:"800px",textAlign:"left",padding:"0 16px"},children:[a.headline&&(0,ii.jsx)("h2",{className:"tg-df-article-headline",id:"tg-df-article-headline",style:{fontSize:"1.75rem",fontWeight:800,color:"#0f172a",marginBottom:"1rem",lineHeight:1.25},children:a.headline}),a.strapline&&(0,ii.jsx)("p",{className:"tg-df-article-strapline",id:"tg-df-article-strapline",style:{fontSize:"1.125rem",fontWeight:600,color:"#334155",marginBottom:"1.25rem",lineHeight:1.4},children:a.strapline}),a.contentHtml&&(0,ii.jsx)("div",{className:"tg-df-article-content",id:"tg-df-article-content",dangerouslySetInnerHTML:{__html:a.contentHtml}})]})}var Fn=B(O(),1);function Zw({articles:e,authorHandle:t,authorName:n}){let a=n||e.length>0&&(e[0].articleauthortext?.[0]||e[0].articleauthor?.[0])||"Author";(t==="all-authors"||n==="all-authors"||n==="All authors")&&(a="All authors");let l=a.trim().split(" ")[0]||"Author";return a==="All authors"&&(l="All authors"),`Shop all ${l==="All authors"?"authors'":l.endsWith("'s")||l.endsWith("\u2019s")?l:`${l}'s`} collections`}function Ww(e){let t=[];return e.documentnametext&&t.push(e.documentnametext),e.documentname&&t.push(e.documentname),e.articlename&&t.push(Array.isArray(e.articlename)?e.articlename[0]:e.articlename),e.articlesocialtitle&&Array.isArray(e.articlesocialtitle)&&t.push(...e.articlesocialtitle),t.length>0?t.reduce((n,a)=>a&&a.length<n.length?a:n,t[0]):"Article"}function r0({articles:e,authorHandle:t,authorName:n,onChange:a,selectedArticleId:l,shortenedHeadlines:i}){return(0,Fn.jsx)("div",{className:"tg-df-top-bar",id:"tg-df-top-bar",style:{position:"relative",zIndex:100,margin:"0 auto 20px",width:"100%",display:"flex",justifyContent:"center"},children:(0,Fn.jsxs)("div",{className:"tg-df-sort-wrapper",style:{width:"auto",maxWidth:"320px",display:"inline-flex",position:"relative"},children:[(0,Fn.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",style:{position:"absolute",left:"14px",top:"50%",transform:"translateY(-50%)",width:"14px",height:"14px",color:"var(--tg-df-text-muted)",pointerEvents:"none",zIndex:2},children:(0,Fn.jsx)("path",{d:"M12 2l-10 4.5 10 4.5 10-4.5-10-4.5zm0 6.5l-8-3.6 8-3.6 8 3.6-8 3.6zm-10 6l10 4.5 10-4.5v-2.5l-10 4.5-10-4.5v2.5zm0 5l10 4.5 10-4.5v-2.5l-10 4.5-10-4.5v2.5z"})}),(0,Fn.jsxs)("select",{className:"tg-df-filter-select tg-df-article-select",style:{width:"100%",maxWidth:"320px",padding:"10px 36px 10px 38px",fontSize:"14px",fontWeight:500,borderRadius:"100px",border:"1px solid var(--tg-df-border)",color:"var(--tg-df-text)",backgroundColor:"var(--tg-df-bg-secondary)",appearance:"none",backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 14px center",textAlign:"left",textAlignLast:"left",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",cursor:"pointer"},value:l||"",onChange:r=>a(r.target.value),children:[(0,Fn.jsx)("option",{value:"",style:{textAlign:"left"},children:Zw({articles:e,authorHandle:t,authorName:n})}),e.map(r=>{let o=i?.[r.id]||Ww(r);return o&&o.length>38&&(o=o.substring(0,36)+"\u2026"),(0,Fn.jsx)("option",{value:r.id,style:{textAlign:"left"},children:o},r.id)})]})]})})}var A0=B(ft(),1);function o0(e,t=new Date){if(!e)return"";let n=new Date(e),a=Math.floor((t.getTime()-n.getTime())/1e3);if(a<60)return"Just now";let l=Math.floor(a/60);if(l<60)return`${l} min${l>1?"s":""} ago`;let i=Math.floor(l/60);if(i<24)return`${i} hr${i>1?"s":""} ago`;let r=Math.floor(i/24);if(r<30)return`${r} day${r>1?"s":""} ago`;let o=Math.floor(r/30);if(o<12)return`${o} mo${o>1?"s":""} ago`;let u=Math.floor(r/365);return`${u} yr${u>1?"s":""} ago`}function Iw(e){return e.replace(/<\/p\s*>/gi," ").replace(/<p[^>]*>/gi," ").replace(/<br\s*\/?>/gi," ").replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function _r(e,t,n){let a="";return n==="short"?a=e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"":a=e.articleauthorlongbio&&e.articleauthorlongbio[t]&&e.articleauthorlongbio[t]!=="null"?e.articleauthorlongbio[t]:e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"",a?Iw(a):""}function u0(e,t){return e.articleauthorrole&&e.articleauthorrole[t]&&e.articleauthorrole[t]!=="null"?e.articleauthorrole[t]:""}function c0(e,t){return e.articleauthormedia&&e.articleauthormedia[t]?e.articleauthormedia[t]:""}function ri(e){if(typeof e!="string"||!e.trim())return"";try{let t=new URL(e);if(t.hostname.toLowerCase()!=="cdn.mos.cms.futurecdn.net")return e;let n=/\.(?:jpe?g|png|webp)$/i;return!n.test(t.pathname)||/-\d+-\d+\.(?:jpe?g|png|webp)$/i.test(t.pathname)?e:(t.pathname=t.pathname.replace(n,"-480-80$&"),t.toString())}catch{return e}}function Uu(e,t=0){if(!e||!e.articleauthorsocialnetworks)return[];let n=e.articleauthorsocialnetworks[t];if(n||(n=e.articleauthorsocialnetworks[0]),!n)return[];let a=null;if(typeof n=="string")try{a=JSON.parse(n)}catch{try{a=JSON.parse(n.replace(/\\"/g,'"'))}catch{}}else typeof n=="object"&&n!==null&&(a=n);if(!a||typeof a!="object")return[];let l=[];for(let[i,r]of Object.entries(a)){if(!r)continue;let o="",u="";if(typeof r=="string"?o=r:typeof r=="object"&&r!==null&&(o=r.url||r.address||r.link||"",u=r.address||""),!o&&!u)continue;let c=i.toLowerCase().trim(),s=o||u;c==="email"?s.startsWith("mailto:")||(s=s.includes("@")?`mailto:${s}`:`mailto:${s}`):!s.startsWith("http://")&&!s.startsWith("https://")&&!s.startsWith("//")&&(s=`https://${s}`);let f=c.charAt(0).toUpperCase()+c.slice(1);c==="linkedin"?f="LinkedIn":c==="youtube"?f="YouTube":c==="tiktok"?f="TikTok":c==="twitch"?f="Twitch":c==="steam"?f="Steam":c==="github"?f="GitHub":c==="rss"?f="RSS":(c==="x"||c==="twitter")&&(f="X (Twitter)"),l.push({key:c,href:s,label:f})}return l}function ee(e){if(!e)return"";let t=String(e);for(let n=0;n<3;n+=1){let a=t.replace(/&/gi,"&").replace(/£/g,"\xA3").replace(/£/gi,"\xA3").replace(/$/g,"$").replace(/&dollar;/gi,"$").replace(/€/g,"\u20AC").replace(/€/gi,"\u20AC").replace(/&#(\d+);/g,(l,i)=>String.fromCharCode(Number(i))).replace(/&#x([0-9a-f]+);/gi,(l,i)=>String.fromCharCode(parseInt(i,16)));if(a===t)break;t=a}return t}var Ee=B(O(),1);function cf({authorUrl:e,deal:t}){if(!t.authorName)return null;let n=ee(String(t.authorName)),a=t.authorRole&&!["null","nul","undefined"].includes(String(t.authorRole).toLowerCase())?` \u2022 ${ee(String(t.authorRole))}`:"";return(0,Ee.jsx)("div",{className:"tg-df-author-line-desktop",style:{padding:"0 0 12px 0"},children:(0,Ee.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[t.authorImage&&(0,Ee.jsx)("img",{src:ri(t.authorImage),alt:n,className:"tg-df-author-img",width:"36",height:"36",style:{borderRadius:"50%",objectFit:"cover",flexShrink:0,aspectRatio:"1 / 1",minWidth:"36px",minHeight:"36px"}}),(0,Ee.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,Ee.jsx)("div",{style:{fontSize:"10px",color:"var(--tg-df-text-muted)",textTransform:"uppercase",letterSpacing:"0.5px",marginBottom:"2px",fontWeight:600},children:t.isReviewProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Product tested by:"}):t.isBuyingGuideProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Expert review by:"}):t.isFeatured?(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:"Top product"})," ","recommended by:"]}):(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:t.merchant})," ","deal recommended by:"]})}),(0,Ee.jsxs)("div",{style:{fontSize:"11px",color:"var(--tg-df-text)",lineHeight:1.2},children:[(0,Ee.jsx)("strong",{children:(0,Ee.jsx)("a",{href:e,target:"_blank",rel:"noopener",style:{textDecoration:"none",color:"inherit",borderBottom:"1px dotted var(--tg-df-text-muted)"},children:n})}),a,t.modifiedDate?(0,Ee.jsxs)("span",{style:{color:"var(--tg-df-text-muted)"},children:[" ","\u2022 ",o0(t.modifiedDate)]}):""]})]})]})})}var K=B(O(),1);function s0({authorUrl:e,deal:t,hideHawkPrices:n,msrpFormatted:a,sourceArticleUrl:l}){let i=ee(String(t.merchant||"")),r=ee(String(t.currency||""));if(t.isBuyingGuideProduct||t.isReviewProduct){let o=!!t.hasCommerceOffer,u=o&&!t.isCheckPrice,c=!!t.hawkPricePending,s=!!t.isReviewProduct&&!c&&!o,f=n&&o&&Array.isArray(t.hawkListings)?t.hawkListings.filter(m=>m?.merchant&&m?.url).slice(0,4):[],d=f.length>0;return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[c?(0,K.jsx)("div",{className:"tg-df-card-price-group","aria-live":"polite",children:(0,K.jsx)("span",{className:"tg-df-card-price",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"Checking live price\u2026"})}):d?(0,K.jsxs)("div",{className:"tg-df-card-listings",children:[(0,K.jsx)("span",{className:"tg-df-card-listings-title",children:"Today's cheapest prices:"}),(0,K.jsx)("div",{className:"tg-df-card-listings-links",children:f.map((m,v)=>{let A=ee(String(m.merchant));return(0,K.jsx)("a",{"aria-label":`View product at ${A}`,className:"tg-df-card-listing-link hawk-affiliate-link-container","data-fcaw-affiliate-link":"","data-merchant":A,"data-merchant-id":m.merchantId||void 0,"data-model-id":m.modelId||void 0,"data-product-key":m.productKey||void 0,href:m.url,rel:"sponsored nofollow noopener",target:"_blank",children:A},`${m.merchant}-${m.url}-${v}`)})})]}):u?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsxs)("div",{className:"tg-df-card-price-group",children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})]}):s?(0,K.jsx)("div",{className:"tg-df-card-price-group",children:(0,K.jsx)("span",{className:"tg-df-card-price tg-df-card-price--unavailable",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"No retail listing found"})}):null,(0,K.jsx)(cf,{authorUrl:e,deal:t}),!d&&(0,K.jsx)("a",{href:o?t.url:l,"data-fcaw-affiliate-link":o?"":void 0,target:"_blank",rel:o?"sponsored nofollow noopener":"noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},children:o?u?"VIEW DEAL":"CHECK PRICE":"READ REVIEW"})]})}return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[!(t.authorName&&!t.isFeatured)&&(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsx)("div",{className:"tg-df-card-price-group",children:t.isCheckPrice?(0,K.jsx)("span",{className:"tg-df-card-price",style:{fontSize:"15px",fontWeight:500,fontStyle:"italic"},children:"See price at retailer"}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})}),(0,K.jsx)(cf,{authorUrl:e,deal:t}),(0,K.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":"",target:"_blank",rel:"sponsored nofollow noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},"data-model-id":t.modelId||void 0,"data-product-key":t.productKey||void 0,"data-merchant-id":t.merchantId||void 0,children:t.isCheckPrice?"CHECK PRICE":t.isFeatured?"SHOP NOW":"VIEW DEAL"})]})}var Ze=B(O(),1);function d0({couponStatus:e,deal:t,onOpenVouchers:n}){let a=!!t.hasCommerceOffer;return(0,Ze.jsxs)("div",{className:"tg-df-card-image-box",children:[t.buyingGuideBadge?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge tg-df-buying-guide-badge",children:t.buyingGuideBadge}):t.savingLabel&&!t.isCheckPrice?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge",children:ee(t.savingLabel)}):null,(0,Ze.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":a?"":void 0,className:a?"hawk-affiliate-link-deal-widget":void 0,target:"_blank",rel:a?"sponsored nofollow noopener":"noopener",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:(0,Ze.jsx)("img",{src:t.image||void 0,alt:ee(String(t.title||"")),className:"tg-df-card-image",loading:"lazy",onError:l=>{t.fallbackImage&&!l.currentTarget.dataset.fb?(l.currentTarget.dataset.fb="1",l.currentTarget.src=t.fallbackImage):l.currentTarget.style.opacity="0"}})}),(0,Ze.jsxs)("div",{className:"tg-df-card-badges",children:[t.isPrime&&(0,Ze.jsxs)("span",{className:"tg-df-tag tg-df-tag-prime",children:[(0,Ze.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,Ze.jsx)("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})})," ","Prime"]}),!t.merchant?.toLowerCase().includes("amazon")&&(e==="loading"||e==="has")&&(0,Ze.jsx)("div",{className:"tg-df-coupon-wrapper",style:{display:"inline-flex",alignItems:"center"},children:e==="loading"?(0,Ze.jsx)("div",{className:"tg-df-coupon-spinner"}):(0,Ze.jsxs)("button",{type:"button",className:"tg-df-tag tg-df-tag-coupons",onClick:l=>{l.preventDefault(),n(t.merchant)},children:[(0,Ze.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Ze.jsx)("path",{d:"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"}),(0,Ze.jsx)("line",{x1:"7",y1:"7",x2:"7.01",y2:"7"})]})," ","Coupons"]})})]})]})}var ct=B(O(),1);function f0({label:e="Tom's Guide:",starRating:t,color:n="#1f69ff"}){if(!t||t<=0)return null;let a=Math.floor(t),l=t-a>=.5?1:0,i=Math.max(0,5-a-l),r=[];for(let o=0;o<a;o++)r.push((0,ct.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:n,stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})},`f${o}`));l&&r.push((0,ct.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"url(#halfGrad)",stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ct.jsx)("defs",{children:(0,ct.jsxs)("linearGradient",{id:"halfGrad",x1:"0",x2:"1",y1:"0",y2:"0",children:[(0,ct.jsx)("stop",{offset:"50%",stopColor:n}),(0,ct.jsx)("stop",{offset:"50%",stopColor:"transparent"})]})}),(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})]},"h"));for(let o=0;o<i;o++)r.push((0,ct.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:n,opacity:"0.35",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})},`e${o}`));return(0,ct.jsxs)("div",{className:"tg-df-card-stars",style:{display:"flex",alignItems:"center",marginBottom:"8px",fontSize:"13px",fontWeight:600,color:"var(--tg-df-text-muted)"},children:[e&&(0,ct.jsx)("span",{style:{marginRight:"6px"},children:e}),(0,ct.jsx)("div",{style:{display:"flex",gap:"2px"},children:r})]})}var At=B(O(),1);function g0({heading:e,items:t}){return t.length===0?null:(0,At.jsxs)("div",{style:{marginBottom:"10px"},children:[(0,At.jsx)("strong",{style:{display:"block",fontSize:"12px",marginBottom:"3px"},children:e}),(0,At.jsx)("ul",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:0,paddingLeft:"18px"},children:t.map(n=>{let a=ee(String(n));return(0,At.jsx)("li",{children:a},n)})})]})}function m0({cons:e=[],expanded:t,fullReviewUrl:n,onToggle:a,pros:l=[],subtitle:i="",truncateSubtitle:r=!1}){let o=l.length>0||e.length>0,u=ee(i);return!u&&!o?null:(0,At.jsxs)("div",{style:{marginBottom:"12px"},children:[u&&(0,At.jsx)("p",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:"0 0 8px",display:!t&&r?"-webkit-box":"block",WebkitLineClamp:!t&&r?3:void 0,WebkitBoxOrient:!t&&r?"vertical":void 0,overflow:!t&&r?"hidden":void 0},children:u}),t&&o&&(0,At.jsxs)("div",{children:[(0,At.jsx)(g0,{heading:"Pros",items:l}),(0,At.jsx)(g0,{heading:"Cons",items:e})]}),(o||r)&&(0,At.jsxs)("div",{className:"tg-df-review-summary-actions",style:{alignItems:"flex-start",display:"flex",flexDirection:"column",gap:t&&n?"4px":0},children:[t&&n&&(0,At.jsx)("a",{href:n,target:"_blank",rel:"noopener",className:"tg-df-review-full-link",style:{alignItems:"center",color:"var(--tg-df-blue)",display:"flex",fontSize:"12px",fontWeight:700,minHeight:"40px",paddingRight:"12px",textDecoration:"underline"},children:"Read our full review"}),(0,At.jsx)("button",{type:"button",onClick:c=>{c.preventDefault(),c.stopPropagation(),a()},className:"tg-df-review-summary-toggle",style:{appearance:"none",background:"transparent",border:"none",color:"#000000",cursor:"pointer",fontFamily:"inherit",fontSize:"11px",fontWeight:700,minHeight:"40px",padding:"0 12px 0 0",textTransform:"uppercase"},children:t?"LESS":"READ MORE"})]})]})}var oi=B(ft(),1);var Br=B(O(),1);function h0({text:e,expanded:t,onToggle:n}){let[a,l]=(0,oi.useState)(!1),i=(0,oi.useRef)(null),r=ee(e);return(0,oi.useEffect)(()=>{i.current&&l(i.current.scrollHeight>i.current.clientHeight||i.current.scrollHeight>60)},[r]),r?(0,Br.jsxs)("div",{style:{marginBottom:"12px",position:"relative"},children:[(0,Br.jsx)("p",{ref:i,style:{fontSize:"13px",color:"var(--tg-df-text-muted)",marginBottom:"0",lineHeight:"1.4",display:t?"inline":"-webkit-box",WebkitLineClamp:t?"unset":3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:r}),a&&(0,Br.jsx)("button",{type:"button",onClick:o=>{o.preventDefault(),o.stopPropagation(),n()},style:{display:"block",appearance:"none",border:"none",color:"#000000",fontSize:"11px",fontWeight:700,textTransform:"uppercase",cursor:"pointer",fontFamily:"inherit",position:t?"static":"absolute",bottom:"2px",right:0,background:t?"transparent":"linear-gradient(to right, transparent, #fff 20%, #fff)",padding:t?"0":"0 0 0 16px"},children:t?"LESS":"READ MORE"})]}):null}var p0={pcgamer:"#DC191B",space:"#2E4A7F",tomsguide:"#1F69FF",techradar:"#E40784",golfmonthly:"#FFFFFF",androidcentral:"#1CCC3E",cinemablend:"#FFC033",creativebloq:"#DC361A",cyclingnews:"#371B51",cyclingweekly:"#AE1305",decanter:"#1B1B1B",digitalcameraworld:"#CAEBF2",fitandwell:"#BED100",fourfourtwo:"#AE1006",gamesradar:"#DC361A",guitarplayer:"#FFFFFF",guitarworld:"#DC1F26",homesandgardens:"#185A7D",idealhome:"#CAEBF2",imore:"#FFD600",livescience:"#023953",livingetc:"#FFFFFF",loudersound:"#DC0F17",marieclaireus:"#FFFFFF",marieclaireuk:"#FFFFFF",musicradar:"#006EA9",shortlist:"#2853E0",t3:"#DF0A14",theweek:"#DF0A14",theweekjuniorus:"#10A0B0",tomshardware:"#D8373B",wallpaper:"#FFFFFF",whathifi:"#E02928",whowhatwear:"#FFFFFF",windowscentral:"#CE0E5F",womanandhome:"#2F746E"},Nr={tomsguide:"https://proof.vanilla.tools/media/images/brandLogos/tomsguide.png",techradar:"https://proof.vanilla.tools/media/images/brandLogos/techradar.png",tomshardware:"https://proof.vanilla.tools/media/images/brandLogos/tomshardware.png",pcgamer:"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png",gamesradar:"https://proof.vanilla.tools/media/images/brandLogos/gamesradar.png",creativebloq:"https://proof.vanilla.tools/media/images/brandLogos/creativebloq.png",space:"https://proof.vanilla.tools/media/images/brandLogos/space.png",livescience:"https://proof.vanilla.tools/media/images/brandLogos/livescience.png",cinemablend:"https://proof.vanilla.tools/media/images/brandLogos/cinemablend.png",marieclaireus:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireus.png",marieclaireuk:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireuk.png",homesandgardens:"https://proof.vanilla.tools/media/images/brandLogos/homesandgardens.png",whowhatwear:"https://proof.vanilla.tools/media/images/brandLogos/whowhatwear.png",idealhome:"https://proof.vanilla.tools/media/images/brandLogos/idealhome.png",womanandhome:"https://proof.vanilla.tools/media/images/brandLogos/womanandhome.png",livingetc:"https://proof.vanilla.tools/media/images/brandLogos/livingetc.png",t3:"https://proof.vanilla.tools/media/images/brandLogos/t3.png",whathifi:"https://proof.vanilla.tools/media/images/brandLogos/whathifi.png",digitalcameraworld:"https://proof.vanilla.tools/media/images/brandLogos/digitalcameraworld.png",fitandwell:"https://proof.vanilla.tools/media/images/brandLogos/fitandwell.png",golfmonthly:"https://proof.vanilla.tools/media/images/brandLogos/golfmonthly.png",musicradar:"https://proof.vanilla.tools/media/images/brandLogos/musicradar.png",windowscentral:"https://proof.vanilla.tools/media/images/brandLogos/windowscentral.png",cyclingnews:"https://proof.vanilla.tools/media/images/brandLogos/cyclingnews.png",cyclingweekly:"https://proof.vanilla.tools/media/images/brandLogos/cyclingweekly.png",loudersound:"https://proof.vanilla.tools/media/images/brandLogos/loudersound.png",guitarworld:"https://proof.vanilla.tools/media/images/brandLogos/guitarworld.png",guitarplayer:"https://proof.vanilla.tools/media/images/brandLogos/guitarplayer.png",wallpaper:"https://proof.vanilla.tools/media/images/brandLogos/wallpaper.png",fourfourtwo:"https://proof.vanilla.tools/media/images/brandLogos/fourfourtwo.png",shortlist:"https://proof.vanilla.tools/media/images/brandLogos/shortlist.png",advnture:"https://proof.vanilla.tools/media/images/brandLogos/advnture.png",countrylife:"https://proof.vanilla.tools/media/images/brandLogos/countrylife.png",gardeningknowhow:"https://proof.vanilla.tools/media/images/brandLogos/gardeningknowhow.png",gnomesingardens:"https://proof.vanilla.tools/media/images/brandLogos/gnomesingardens.png",kiplinger:"https://proof.vanilla.tools/media/images/brandLogos/kiplinger.png",moneyweek:"https://proof.vanilla.tools/media/images/brandLogos/moneyweek.png",toptenreviews:"https://proof.vanilla.tools/media/images/brandLogos/toptenreviews.png"},Gu={tomsguide:"Tom's Guide",techradar:"TechRadar",tomshardware:"Tom's Hardware",pcgamer:"PC Gamer",gamesradar:"GamesRadar+",creativebloq:"Creative Bloq",space:"Space",livescience:"Live Science",cinemablend:"CinemaBlend",marieclaireus:"Marie Claire US",marieclaireuk:"Marie Claire UK",homesandgardens:"Homes & Gardens",whowhatwear:"Who What Wear",idealhome:"Ideal Home",womanandhome:"Woman & Home",livingetc:"Living Etc",t3:"T3",whathifi:"What Hi-Fi?",digitalcameraworld:"Digital Camera World",fitandwell:"Fit & Well",golfmonthly:"Golf Monthly",musicradar:"MusicRadar",androidcentral:"Android Central",imore:"iMore",windowscentral:"Windows Central",cyclingnews:"Cycling News",cyclingweekly:"Cycling Weekly",loudersound:"Louder Sound",guitarworld:"Guitar World",guitarplayer:"Guitar Player",theweek:"The Week",theweekjuniorus:"The Week Junior US",wallpaper:"Wallpaper",decanter:"Decanter",fourfourtwo:"FourFourTwo",shortlist:"ShortList",advnture:"Advnture",countrylife:"Country Life",gardeningknowhow:"Gardening Know How",gnomesingardens:"Gnomes in Gardens",kiplinger:"Kiplinger",moneyweek:"Money Week",toptenreviews:"Top 10 Reviews"},y0={pcgamer:[{key:"steam",href:"https://steamcommunity.com/groups/pcgamer",label:"PC Gamer on Steam"},{key:"x",href:"https://twitter.com/pcgamer",label:"PC Gamer on X"},{key:"facebook",href:"https://www.facebook.com/pcgamermagazine",label:"PC Gamer on Facebook"},{key:"instagram",href:"https://www.instagram.com/pcgamer_mag/?hl=en",label:"PC Gamer on Instagram"},{key:"youtube",href:"https://www.youtube.com/user/pcgamer",label:"PC Gamer on YouTube"},{key:"twitch",href:"https://www.twitch.tv/pcgamer",label:"PC Gamer on Twitch"},{key:"tiktok",href:"https://www.tiktok.com/@pcgamer_mag?lang=en",label:"PC Gamer on TikTok"}],homesandgardens:[{key:"instagram",href:"https://www.instagram.com/homesandgardensofficial",label:"Homes & Gardens on Instagram"},{key:"facebook",href:"https://www.facebook.com/homesandgardens/",label:"Homes & Gardens on Facebook"},{key:"x",href:"https://x.com/homesandgardens",label:"Homes & Gardens on X"},{key:"tiktok",href:"https://www.tiktok.com/@homesandgardensofficial",label:"Homes & Gardens on TikTok"},{key:"pinterest",href:"https://pinterest.com/homesgardensofficial/",label:"Homes & Gardens on Pinterest"}],whowhatwear:[{key:"x",href:"https://twitter.com/WhoWhatWear",label:"Who What Wear on X"},{key:"instagram",href:"https://www.instagram.com/whowhatwear/",label:"Who What Wear on Instagram"},{key:"facebook",href:"https://www.facebook.com/WhoWhatWear/",label:"Who What Wear on Facebook"},{key:"pinterest",href:"https://www.pinterest.co.uk/whowhatwearuk/",label:"Who What Wear on Pinterest"},{key:"tiktok",href:"https://www.tiktok.com/@whowhatwear.uk",label:"Who What Wear on TikTok"}]};var Ot=B(O(),1);function v0(e){return String(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ").trim().toLowerCase()}function Jw(e){let t=ee(String(e.brand||"")).trim(),n=ee(String(e.productName||e.title||"")).trim(),a=v0(t),l=v0(n);return a.length>0&&l.startsWith(a)&&!/^[a-z0-9]/.test(l.slice(a.length))||!t?n:`${t} ${n}`.trim()}function b0({couponStatus:e,deal:t,editorMode:n,hideHawkPrices:a,isDescriptionExpanded:l,isSelected:i,onDescriptionToggle:r,onOpenVouchers:o,onSelectionChange:u,website:c}){let s=ee(String(t.currency||"")),f=t.rawMsrp?s+t.rawMsrp:null,d=Jw(t),m=ee(String(t.title||"")),v=Gu[c||"tomsguide"]||c||"Tom's Guide",A=(c||"tomsguide").includes(".")?(c||"").startsWith("http")?c:`https://${c}`:`https://www.${c||"tomsguide"}.com`,b=(t.documentUrl||"").replace(/^\/+/,""),h=b.startsWith("http://")||b.startsWith("https://")?b:`${A}/${b}`,g=String(t.sourceArticleUrl||t.documentUrl||t.url||"").replace(/^\/+/,""),p=g.startsWith("http://")||g.startsWith("https://")?g:`${A}/${g}`,y=!!t.hasCommerceOffer;return(0,Ot.jsxs)("div",{className:"tg-df-card","data-brand":t.modelBrand||t.brand||void 0,"data-currency":t.isoCurrencyCode||s||void 0,"data-deal-id":t.externalProductId||t.id||void 0,"data-merchant":t.merchant||void 0,"data-merchant-id":t.merchantId||void 0,"data-model-id":t.modelId||void 0,"data-previous-price":t.rawMsrp||void 0,"data-price":t.rawPrice||void 0,"data-product-key":t.productKey||void 0,"data-product-name":t.productName||t.title||void 0,"data-review-product":t.isReviewProduct?"true":void 0,"data-source-article-url":t.isReviewProduct?p:void 0,children:[n&&(0,Ot.jsx)("input",{type:"checkbox",className:"tg-df-deal-checkbox",checked:i,onChange:C=>u(C.target.checked)}),(0,Ot.jsx)(d0,{couponStatus:e,deal:t,onOpenVouchers:o}),(0,Ot.jsxs)("div",{className:"tg-df-card-body",children:[(0,Ot.jsx)("h3",{className:"tg-df-card-title",title:m,children:(0,Ot.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":y?"":void 0,className:y?"hawk-affiliate-link-container":void 0,target:"_blank",rel:y?"sponsored nofollow noopener":"noopener",style:{textDecoration:"none",color:"inherit"},children:(0,Ot.jsx)("strong",{children:d})})}),(0,Ot.jsx)(f0,{label:t.isBuyingGuideProduct?"":`${v} rating:`,starRating:t.starRating,color:t.isReviewProduct?"var(--tg-df-blue)":void 0}),t.isBuyingGuideProduct||t.isReviewProduct?(0,Ot.jsx)(m0,{cons:t.cons,expanded:l,fullReviewUrl:t.isReviewProduct&&g?p:void 0,onToggle:r,pros:t.pros,subtitle:t.isReviewProduct?t.description:t.subtitle,truncateSubtitle:t.isReviewProduct}):t.description?(0,Ot.jsx)(h0,{text:t.description,expanded:l,onToggle:r}):null,(0,Ot.jsx)(s0,{authorUrl:h,deal:t,hideHawkPrices:a,msrpFormatted:f,sourceArticleUrl:p})]})]})}var ce=B(O(),1);function $w({activeDealTag:e,activeFreeformTags:t=[],query:n,selectedBrands:a=[]}){let l=o=>{let u=String(o||"").trim();return u&&u.toLowerCase()!=="everything"?u:""},r=(t.length>0?t:e?[e]:a.length>0?a:[n]).map(l).filter(Boolean).map(o=>o.replace(/\s+deals?$/i,"").trim()).filter((o,u,c)=>c.findIndex(s=>s.toLowerCase()===o.toLowerCase())===u);return r.length<=1?r[0]||"":`${r.slice(0,-1).join(", ")} or ${r.at(-1)}`}function e2(){return(0,ce.jsx)(ce.Fragment,{children:Array.from({length:6}).map((e,t)=>(0,ce.jsxs)("div",{className:"tg-df-card",children:[(0,ce.jsx)("div",{className:"tg-df-card-image-box tg-df-skeleton"}),(0,ce.jsxs)("div",{className:"tg-df-card-body",children:[(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short",style:{marginBottom:"24px"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title",style:{width:"80%"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short"}),(0,ce.jsx)("div",{className:"tg-df-card-cta tg-df-skeleton",style:{width:"100%",height:"40px",marginTop:"auto",border:"none"}})]})]},t))})}function t2(e,t){return{"@context":"https://schema.org","@type":"ItemList",itemListElement:e.slice(0,t).map((n,a)=>{let l="USD";return n.currency==="\xA3"?l="GBP":n.currency==="\u20AC"?l="EUR":n.currency==="A$"?l="AUD":n.currency==="CA$"&&(l="CAD"),{"@type":"ListItem",position:a+1,item:{"@type":"Product",name:n.title,image:n.image||"",description:n.description||"",brand:{"@type":"Brand",name:n.brand||""},offers:{"@type":"Offer",priceCurrency:l,price:n.rawPrice||0,url:n.url||"",seller:{"@type":"Organization",name:n.merchant||""}}}}}).filter(n=>n.item.name)}}function w0({activeDealTag:e,activeFreeformTags:t,couponMap:n,deals:a,displayCount:l,editorMode:i,error:r,expandedDealIds:o,hasMore:u,hideHawkPrices:c,loading:s,loadingMore:f,loadMoreStartCount:d,onDescriptionToggle:m,onLoadMore:v,onOpenVouchers:A,query:b,recentDealsOnly:h,selectedBrands:g,selectedDeals:p,setSelectedDeals:y,website:C}){let R=$w({activeDealTag:e,activeFreeformTags:t,query:b,selectedBrands:g}),T=f&&d!=null?d:l,M=!f&&d!=null&&d<T?d:null,w=D=>D.map(k=>(0,ce.jsx)(A0.default.Fragment,{children:(0,ce.jsx)(b0,{couponStatus:n[k.merchant],deal:k,editorMode:i,hideHawkPrices:c,isDescriptionExpanded:o.has(k.id),isSelected:p.has(k.id),onDescriptionToggle:()=>m(k.id),onOpenVouchers:A,onSelectionChange:se=>{let I=new Map(p);se?I.set(k.id,k):I.delete(k.id),y(I)},website:C})},k.id));return(0,ce.jsx)("div",{className:"tg-df-grid-wrapper",children:(0,ce.jsx)("div",{className:"tg-df-grid article-body tg-df-grid-auto",id:"tg-df-grid",children:s?(0,ce.jsx)(e2,{}):r?(0,ce.jsx)("div",{className:"tg-df-message",children:"Failed to load deals. Please try again."}):a.length===0?(0,ce.jsx)("div",{className:"tg-df-message",children:h?`No ${R?`${R} `:""}deals found from the last 30 days.`:!b||b.length<=2||b.toLowerCase()==="everything"?"No deals found for this author.":`No savings squad match your search for "${b}".`}):(0,ce.jsxs)(ce.Fragment,{children:[w(a.slice(0,M??T)),M!=null&&(0,ce.jsx)("div",{"aria-live":"polite",className:"tg-df-load-more-boundary",style:{alignItems:"center",color:"var(--tg-df-text-muted)",display:"flex",fontSize:"13px",fontWeight:600,gridColumn:"1 / -1",justifyContent:"center",marginTop:"16px",minHeight:"40px",overflowAnchor:"none"},children:"More products"}),M!=null&&w(a.slice(M,T)),u&&(0,ce.jsx)("div",{className:"tg-df-load-more-control",style:{width:"100%",display:"flex",justifyContent:"center",marginTop:"16px",gridColumn:"1 / -1",overflowAnchor:"none"},children:(0,ce.jsx)("button",{type:"button",className:"tg-df-tag-outline",style:{padding:"8px 24px",borderRadius:"100px",fontWeight:600,fontSize:"14px",cursor:"pointer"},"aria-busy":f,disabled:f,onClick:D=>{D.preventDefault(),D.stopPropagation(),v()},children:f?"Loading more products\u2026":"Load More"})}),a.length>0&&(0,ce.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(t2(a,T))}})]})})})}var S0=B(O(),1);var pn=B(ft(),1),nn=B(O(),1);function Pu({onScrollLeft:e,onScrollRight:t,showLeft:n,showRight:a}){return(0,nn.jsxs)(nn.Fragment,{children:[(0,nn.jsx)("button",{"aria-label":"Scroll left",className:"tg-df-scroll-btn left tg-df-desktop-only",onClick:e,style:{display:n?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,nn.jsx)("button",{"aria-label":"Scroll right",className:"tg-df-scroll-btn right tg-df-desktop-only",onClick:t,style:{display:a?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})}function qu(e){let t=(0,pn.useRef)(null),[n,a]=(0,pn.useState)(!1),[l,i]=(0,pn.useState)(!1),r=(0,pn.useCallback)(()=>{let u=t.current;u&&(a(u.scrollLeft>1),i(Math.ceil(u.scrollLeft+u.clientWidth)<u.scrollWidth-1))},[]);(0,pn.useLayoutEffect)(()=>{let u=t.current;if(!u)return;r();let c=requestAnimationFrame(r),s=typeof ResizeObserver>"u"?null:new ResizeObserver(r);return s?.observe(u),()=>{cancelAnimationFrame(c),s?.disconnect()}},[e,r]);let o=(0,pn.useCallback)(u=>{t.current?.scrollBy({left:u,behavior:"smooth"})},[]);return{onScroll:r,railRef:t,scrollLeft:()=>o(-240),scrollRight:()=>o(240),showLeft:n,showRight:l}}var jn=B(O(),1);function ui({containerClassName:e,itemClassName:t,items:n,loading:a,loadingKey:l,onItemClick:i,rowClassName:r,showCounters:o}){let u=qu(n.length);return n.length===0&&!a?null:(0,jn.jsxs)("div",{className:e,style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[n.length>0&&(0,jn.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,jn.jsx)("div",{className:r,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none"},onScroll:u.onScroll,children:n.length>0?n.map(c=>(0,jn.jsxs)("button",{className:t,onClick:()=>i(c.key),style:{border:"none",borderRight:"1px solid var(--tg-df-border)",padding:"12px 20px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"1px",cursor:"pointer",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:"6px",...t==="tg-df-brand-row-item"?{transition:"all 0.2s ease"}:{},background:c.selected?"var(--tg-df-bg-secondary)":"var(--tg-df-bg)",color:c.selected?"var(--tg-df-text-primary)":"var(--tg-df-text-muted)",fontWeight:c.selected?600:500},children:[c.label," ",l===c.key&&(0,jn.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading",style:{borderWidth:"2px",height:"12px",width:"12px"}}),o!==!1&&(0,jn.jsx)("span",{style:{color:"var(--tg-df-blue)",fontSize:"10px",...t==="tg-df-brand-row-item"?{fontWeight:400}:{}},children:c.count})]},c.key)):[1,2,3,4,5].map(c=>(0,jn.jsx)("div",{className:"tg-df-skeleton",style:{height:"36px",width:"80px",borderRadius:"18px",flexShrink:0,margin:"8px 12px"}},`${r}-skeleton-${c}`))})]})}var R0=B(O(),1);function C0({airedaleBrands:e,brands:t,loading:n,refreshing:a,onBrandToggle:l,selectedBrands:i,showAuthorCounters:r}){let o=e.length>0?e:t||[],u=o.slice(0,15).map(c=>({count:c.count||0,key:c.formatted_value,label:c.formatted_value,selected:i?.includes(c.formatted_value)||!1}));return(0,R0.jsx)(ui,{containerClassName:"tg-df-brands-row-container",itemClassName:"tg-df-brand-row-item",items:u,loading:n&&o.length===0,loadingKey:a?i?.[0]:null,onItemClick:c=>l?.(c),rowClassName:"tg-df-brands-row",showCounters:r})}var E0=B(O(),1);function T0({activeDealTag:e,airedaleTagCounts:t,airedaleTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>{let c=u.split(":::"),s=c[0];return{count:t[u]||0,key:s,label:c[1]||u,selected:e===s}});return(0,E0.jsx)(ui,{containerClassName:"tg-df-categories-row-container",itemClassName:"tg-df-category-row-item",items:o,loading:a&&n.length===0,loadingKey:l?e:null,onItemClick:i,rowClassName:"tg-df-categories-row",showCounters:r})}var x0=B(O(),1);function D0({activeFreeformTags:e,freeformTagCounts:t,freeformTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>({count:t[u.handle]||0,key:u.handle,label:u.label,selected:e.includes(u.handle)}));return(0,x0.jsx)(ui,{containerClassName:"tg-df-freeform-tags-row-container",itemClassName:"tg-df-freeform-tag-row-item",items:o,loading:a&&n.length===0,loadingKey:l&&e.at(-1)||null,onItemClick:i,rowClassName:"tg-df-freeform-tags-row",showCounters:r})}var _e=B(O(),1),n2=4;function M0({authors:e,clickedAuthorOverride:t,loading:n,refreshing:a,onAuthorClick:l,overriddenAuthorHandle:i,overriddenAuthorName:r,website:o}){let u=qu(e.length);return e.length===0&&!n?null:(0,_e.jsxs)("div",{className:"tg-df-authors-row-container",style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[e.length>0&&(0,_e.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,_e.jsx)("div",{className:"tg-df-authors-row tg-df-mobile-authors",onScroll:u.onScroll,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none",gap:"24px",padding:"4px 16px 2px 16px",alignItems:"flex-start"},children:e.length>0?e.map((c,s)=>{let f=Nr[c.brandKey]||Nr[o||"tomsguide"],d=t&&(i===c.handle||r===c.fullName);return(0,_e.jsxs)("div",{className:"tg-df-author-row-item",onClick:()=>l(c),style:{cursor:"pointer",display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px",opacity:t?d?1:.4:1},children:[(0,_e.jsxs)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px",borderRadius:"50%",boxShadow:d?"0 0 0 3px var(--tg-df-blue, #1F69FF)":"none"},children:[(0,_e.jsx)("img",{src:ri(c.image),alt:c.fullName,decoding:"async",loading:s<n2?"eager":"lazy",style:{width:"100%",height:"100%",borderRadius:"50%",objectFit:"cover",filter:t&&!d?"grayscale(100%)":"none"}}),d&&(0,_e.jsx)("span",{"aria-label":`Clear ${c.fullName} selection`,className:"tg-df-author-clear-badge",title:"Click again to clear selection",style:{alignItems:"center",backgroundColor:"#dc2626",border:"2px solid var(--tg-df-bg, #fff)",borderRadius:"50%",boxShadow:"0 1px 3px rgb(0 0 0 / 25%)",color:"#fff",display:"flex",fontSize:"15px",fontWeight:700,height:"20px",justifyContent:"center",lineHeight:1,position:"absolute",right:"-5px",top:"-5px",width:"20px",zIndex:1},children:(0,_e.jsx)("span",{"aria-hidden":"true",style:{display:"block",transform:"translateY(-1px)"},children:"\xD7"})}),f&&(0,_e.jsx)("img",{src:f,alt:"",className:"tg-df-author-brand-logo",decoding:"async",loading:"lazy",style:{position:"absolute",bottom:"-4px",right:"-4px",width:"24px",height:"24px",borderRadius:"50%",border:"2px solid var(--tg-df-bg, #fff)",backgroundColor:"#000",objectFit:"contain",filter:t&&!d?"grayscale(100%)":"none"}})]}),(0,_e.jsxs)("div",{style:{textAlign:"center"},children:[(0,_e.jsxs)("div",{className:"tg-df-author-row-name",style:{fontSize:"13px",fontWeight:700,color:"var(--tg-df-text)",lineHeight:"1.2"},children:[c.name,a&&d&&(0,_e.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading author products",style:{borderWidth:"2px",display:"inline-block",height:"11px",marginLeft:"4px",width:"11px"}})]}),c.role&&(0,_e.jsx)("div",{className:"tg-df-author-row-role",style:{fontSize:"11px",color:"var(--tg-df-text-muted)",lineHeight:"1.2",marginTop:"2px",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",wordBreak:"break-word"},children:c.role})]})]},c.handle)}):[1,2,3,4].map(c=>(0,_e.jsxs)("div",{className:"tg-df-author-row-item",style:{display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px"},children:[(0,_e.jsx)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px"},children:(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{width:"100%",height:"100%",borderRadius:"50%"}})}),(0,_e.jsxs)("div",{style:{textAlign:"center",width:"100%"},children:[(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"12px",width:"80%",margin:"0 auto 4px auto",borderRadius:"2px"}}),(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"10px",width:"60%",margin:"0 auto",borderRadius:"2px"}})]})]},`author-skeleton-${c}`))})]})}var Ja=B(O(),1);function _0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,freeformTagCounts:i,freeformTags:r,allAuthorsList:o,brands:u,clickedAuthorOverride:c,loading:s,refreshing:f,onAuthorClick:d,onBrandToggle:m,onTagClick:v,onFreeformTagClick:A,overriddenAuthorHandle:b,overriddenAuthorName:h,selectedBrands:g,showAuthorRail:p,showAuthorCounters:y,showBrandRail:C,showCategoryRail:R,showFreeformTagRail:T,website:M}){let w=R!==!1&&l.length>0||T!==!1&&r.length>0||C!==!1&&(n.length>0||!!u?.length)||p&&o.length>0;return!(p||R!==!1||T!==!1||C!==!1)||!w&&!s?null:(0,Ja.jsxs)("div",{id:"tg-df-spreadsheet-filters",style:{display:"block",marginBottom:"16px"},children:[p&&(0,Ja.jsx)(M0,{authors:o,clickedAuthorOverride:c,loading:s&&o.length===0,refreshing:f,onAuthorClick:d,overriddenAuthorHandle:b,overriddenAuthorName:h,website:M}),R!==!1&&(0,Ja.jsx)(T0,{activeDealTag:e,airedaleTagCounts:a,airedaleTags:l,loading:s,refreshing:f,onTagClick:v,showAuthorCounters:y}),T!==!1&&(0,Ja.jsx)(D0,{activeFreeformTags:t,freeformTagCounts:i,freeformTags:r,loading:s,refreshing:f,onTagClick:A,showAuthorCounters:y}),C!==!1&&(0,Ja.jsx)(C0,{airedaleBrands:n,brands:u,loading:s,refreshing:f,onBrandToggle:m,selectedBrands:g,showAuthorCounters:y})]})}var O0=B(ft(),1);var B0=[{value:"date_desc",label:"Most recent"},{value:"rating_desc",label:"Highest rating"},{value:"scored_first",label:"Scored products first"}];function Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}){return!!(a&&e!==!0&&t===!1&&n===!1)}function Fu({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a,lightweightReviewDelivery:l,showPriceDiscountFilters:i,showReviewSort:r}){return!!(l&&i===!1&&r===!1&&Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}))}function ju(e=!0){return e?B0:B0.filter(t=>t.value!=="scored_first")}function wa(e,t=!0){return!t&&e==="scored_first"?"date_desc":e||"date_desc"}var H=B(O(),1),N0=[{value:"all",label:"All Prices",shortLabel:""},{value:"under50",label:"Under $50",shortLabel:"< $50"},{value:"50_100",label:"$50 - $100",shortLabel:"$50-$100"},{value:"100_200",label:"$100 - $200",shortLabel:"$100-$200"},{value:"200_500",label:"$200 - $500",shortLabel:"$200-$500"},{value:"over500",label:"Over $500",shortLabel:"> $500"}],a2=[{value:"0",label:"Any discount"},...[5,10,15,20,25,30,40,50,60,70].map(e=>({value:String(e),label:`Min ${e}% off`}))];function l2({open:e}){return(0,H.jsx)("svg",{"aria-hidden":"true",className:e?"is-open":void 0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("path",{d:"m6 9 6 6 6-6"})})}function Yn(){return(0,H.jsx)("svg",{"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("polyline",{points:"20 6 9 17 4 12"})})}function k0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,brands:i,discountAmount:r,enabled:o,freeformTagCounts:u,freeformTags:c,includeScoredFirst:s,onBrandSelect:f,onBrandToggle:d,onDiscountAmountChange:m,onFreeformTagClear:v,onFreeformTagToggle:A,onPriceRangeChange:b,onReviewSortChange:h,onTagClear:g,onTagClick:p,priceRange:y,reviewSort:C,selectedBrands:R,showCounters:T,showBrandRail:M,showCategoryRail:w,showFreeformTagRail:D,showPriceDiscountFilters:k,showReviewSort:se}){let[I,j]=(0,O0.useState)(null);if(!o)return null;let He=l.map(x=>{let P=x.split(":::");return{count:a[x]||0,handle:P[0],label:P[1]||x}}),ze=n.length>0?n:i||[],St=He.find(x=>x.handle===e),Ie=y||"all",rn=!r||r==="all"?"0":r,Be=N0.find(x=>x.value===Ie),Je=k!==!1,nt=wa(C,s),X=ju(s),de=nt==="rating_desc"?"Highest rating":nt==="scored_first"?"Scored first":"Most recent",$e=x=>{j(P=>P===x?null:x)},Z=[];return w!==!1&&Z.push({active:!!e,label:`CATEGORIES${St?` (${St.label})`:""}`,menu:"categories"}),D!==!1&&Z.push({active:t.length>0,label:`KEYWORDS${t.length>0?` (${t.length})`:""}`,menu:"keywords"}),M!==!1&&Z.push({active:R.length>0,label:`BRANDS${R.length>0?` (${R.length})`:""}`,menu:"brands"}),Je&&Z.push({active:Ie!=="all",label:`PRICES${Be?.shortLabel?` (${Be.shortLabel})`:""}`,menu:"prices"}),(Je||se)&&Z.push({active:se?nt!=="date_desc":rn!=="0",label:se?`SORT REVIEWS (${de})`:`DISCOUNTS${rn!=="0"?` (${rn}%+)`:""}`,menu:se?"review-sort":"discounts"}),(0,H.jsxs)("div",{className:"tg-df-mobile-2x2-container",children:[(0,H.jsx)("div",{className:`tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--${Z.length%2===0?"even":"odd"}`,children:Z.map(x=>(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-grid-cell${x.active?" has-active-filter":""}${I===x.menu?" active":""}`,"aria-expanded":I===x.menu,onClick:()=>$e(x.menu),children:[(0,H.jsx)("span",{children:x.label}),(0,H.jsx)(l2,{open:I===x.menu})]},x.menu))}),w!==!1&&I==="categories"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${e?"":" selected"}`,onClick:()=>{g(),j(null)},children:[(0,H.jsx)("span",{children:"All Categories"}),!e&&(0,H.jsx)(Yn,{})]}),He.map(x=>{let P=e===x.handle;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{p(x.handle),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},x.handle)})]}),M!==!1&&I==="brands"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${R.length===0?" selected":""}`,onClick:()=>f?.([]),children:[(0,H.jsx)("span",{children:"All Brands"}),R.length===0&&(0,H.jsx)(Yn,{})]}),ze.map(x=>{let P=x.formatted_value,Q=R.includes(P);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${Q?" selected":""}`,onClick:()=>d?.(P),children:[(0,H.jsx)("span",{children:P}),Q?(0,H.jsx)(Yn,{}):T!==!1&&x.count?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},P)})]}),D!==!1&&I==="keywords"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${t.length===0?" selected":""}`,onClick:()=>{v(),j(null)},children:[(0,H.jsx)("span",{children:"All Keywords"}),t.length===0&&(0,H.jsx)(Yn,{})]}),c.map(x=>{let P=t.includes(x.handle);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>A(x.handle),children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1&&u[x.handle]?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:u[x.handle]}):null]},x.handle)})]}),I==="prices"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:N0.map(x=>{let P=Ie===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{b?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="discounts"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:a2.map(x=>{let P=rn===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{m?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="review-sort"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:X.map(x=>{let P=nt===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{h?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})})]})}var $a=B(ft(),1);var W=B(O(),1);function L0({airedaleBrands:e,airedaleTags:t,discountAmount:n,hidden:a,includeScoredFirst:l,onDiscountAmountChange:i,onPriceRangeChange:r,onReviewSortChange:o,priceRange:u,reviewSort:c,showReviewSort:s,showPriceDiscountFilters:f}){let d=(0,$a.useRef)(null),[m,v]=(0,$a.useState)(!1),[A,b]=(0,$a.useState)(!1),h=ju(l),g=wa(c,l),p=()=>{if(!d.current)return;let{scrollLeft:y,scrollWidth:C,clientWidth:R}=d.current;v(y>0),b(Math.ceil(y+R)<C-5)};return(0,$a.useEffect)(()=>(p(),window.addEventListener("resize",p),setTimeout(p,100),setTimeout(()=>{document.querySelector(".tg-df-categories-row")?.dispatchEvent(new Event("scroll")),document.querySelector(".tg-df-brands-row")?.dispatchEvent(new Event("scroll"))},150),()=>window.removeEventListener("resize",p)),[t,e]),(0,W.jsx)("div",{className:"tg-df-controls",id:"tg-df-controls",style:{display:a?"none":"flex",marginTop:"12px",marginBottom:"16px",justifyContent:"center"},children:(0,W.jsxs)("div",{className:"tg-df-filters-container",style:{position:"relative",width:"100%",maxWidth:"800px",margin:"0 auto"},children:[(0,W.jsx)("button",{className:"tg-df-scroll-btn left",style:{display:m?"flex":"none"},onClick:()=>d.current?.scrollBy({left:-200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,W.jsx)("button",{className:"tg-df-scroll-btn right",style:{display:A?"flex":"none"},onClick:()=>d.current?.scrollBy({left:200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M9 18l6-6-6-6"})})}),(0,W.jsxs)("div",{className:"tg-df-filters",ref:d,onScroll:p,children:[(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-legacy-price-wrapper",style:{display:f!==!1?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-price-filter","aria-label":"Filter Prices",value:u||"all",onChange:y=>r?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"All Prices"}),(0,W.jsx)("option",{value:"under50",children:"Under $50"}),(0,W.jsx)("option",{value:"50_100",children:"$50 - $100"}),(0,W.jsx)("option",{value:"100_200",children:"$100 - $200"}),(0,W.jsx)("option",{value:"200_500",children:"$200 - $500"}),(0,W.jsx)("option",{value:"over500",children:"Over $500"})]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-discount-filter-wrapper",style:{display:f!==!1&&!s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-discount-filter","aria-label":"Discount Amount",value:n||"all",onChange:y=>i?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"Any discount"}),[5,10,15,20,25,30,40,50,60,70].map(y=>(0,W.jsxs)("option",{value:y,children:["Min ",y,"%"]},y))]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-review-sort-wrapper",style:{display:s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M4 7h16M7 12h10m-7 5h4"})}),(0,W.jsx)("select",{className:"tg-df-filter-select",id:"tg-df-review-sort","aria-label":"Sort Reviews",value:g,onChange:y=>o?.(y.target.value),children:h.map(y=>(0,W.jsx)("option",{value:y.value,children:y.label},y.value))})]})]})]})})}var be=B(ft(),1);function kr(e,t){return e.filter(n=>{let a=n.handle.toLowerCase(),l=n.fullName.toLowerCase(),i=n.name.toLowerCase();return t.some(r=>{let o=r.articleauthorhandle||[],u=r.articleauthor||[],c=r.articleauthortext||[];return[...o,...u,...c].some(s=>{let f=String(s||"").toLowerCase();return f===a||f===l||f===i})})})}function Yu(e,t){return e.map((n,a)=>({index:a,profile:n,productCount:t[n.handle]||0})).sort((n,a)=>a.productCount-n.productCount||n.index-a.index).map(({profile:n})=>n)}function Vu(e,t){return e==="all-authors"||t==="all-authors"||t==="All authors"||!e&&!t}function Xu(e,t,n){let a=e;if((t||n)&&t!=="all-authors"&&n!=="all-authors"&&n!=="All authors"){if(t){let l=t.toLowerCase(),i=e.filter(r=>r.articleauthorhandle&&r.articleauthorhandle.some(o=>o.toLowerCase()===l));if(i.length>0)a=i;else if(n){let r=n.toLowerCase(),o=e.filter(u=>u.articleauthor&&u.articleauthor.some(c=>c.toLowerCase()===r));o.length>0&&(a=o)}}else if(n){let l=n.toLowerCase();a=e.filter(i=>i.articleauthor&&i.articleauthor.some(r=>r.toLowerCase()===l))}}return a}function sf(e,t,n){let a=0;if(t&&e.articleauthorhandle){let l=e.articleauthorhandle.findIndex(i=>i.toLowerCase()===t.toLowerCase());l>=0&&(a=l)}else if(n&&e.articleauthor){let l=e.articleauthor.findIndex(i=>i.toLowerCase()===n.toLowerCase());l>=0&&(a=l)}return a}function Qu(e,t,n){let a=sf(e,t,n),l=i=>typeof i=="string"?ee(i):i||"";return{authorName:e.articleauthortext?l(e.articleauthortext[a]):e.articleauthor?l(e.articleauthor[a]):"",authorRole:e.articleauthorrole?l(e.articleauthorrole[a]):"",authorImage:e.articleauthormedia?e.articleauthormedia[a]:""}}function Lr(e,t){let n=new Map;return e.forEach(a=>{if(!a.articleauthor)return;let l=t;if(a.documenturl)try{let f=new URL(a.documenturl).hostname.replace("www.","").split(".");f.length>0&&(l=f[0].toLowerCase())}catch{}let i=a.articleauthorhandle||[],r=a.articleauthor||[],o=a.articleauthortext||[],u=a.articleauthorrole||[],c=a.articleauthormedia||[];r.forEach((s,f)=>{if(!s||s==="null"||s.toLowerCase()==="all authors")return;let d=i[f]&&i[f]!=="null"?i[f]:s.toLowerCase().replace(/\s+/g,"-");if(!d||d==="null")return;let m=o[f]&&o[f]!=="null"?o[f]:s,v=u[f]&&u[f]!=="null"?u[f]:"",A=ee(String(m)),b=ee(String(v)),h=c[f]&&c[f]!=="null"?c[f]:"",g=A.split(" ")[0],p=_r(a,f,"short"),y=_r(a,f,"long"),C=Uu(a,f),R=n.get(d);!R&&A&&h?n.set(d,{...y?{bioLong:y}:{},...p?{bioShort:p}:{},name:g,fullName:A,handle:d,role:b,image:h,brandKey:l,...C.length>0?{socialNetworks:C}:{}}):R&&(!R.bioShort&&p&&(R.bioShort=p),!R.bioLong&&y&&(R.bioLong=y),!R.socialNetworks?.length&&C.length>0&&(R.socialNetworks=C))})}),Array.from(n.values())}var E=B(O(),1);function z0(e){let t=(0,be.useRef)(""),n=(0,be.useRef)(null),a=(0,be.useCallback)(()=>{n.current!==null&&(window.clearTimeout(n.current),n.current=null)},[]),l=(0,be.useCallback)(r=>{a(),t.current=r},[a]),i=(0,be.useCallback)((r,o,u=!1)=>{if(!e)return;if(r===t.current){a();return}let c=()=>{n.current=null,t.current=r,e(o)};a(),u?c():n.current=window.setTimeout(c,350)},[a,e]);return(0,be.useEffect)(()=>a,[a]),{save:i,synchronise:l}}function H0({contentKey:e,defaultText:t,kind:n,onChange:a,value:l}){let i=(0,be.useRef)(null),r=(0,be.useRef)(e),[o,u]=(0,be.useState)(!1),c=l??t,s=!!a,{save:f,synchronise:d}=z0(a);(0,be.useLayoutEffect)(()=>{let g=r.current!==e;i.current&&(g||document.activeElement!==i.current)&&(i.current.innerHTML!==c&&(i.current.innerHTML=c),d(c)),r.current=e},[e,d,c]);let m=(g=!1)=>{if(!i.current)return;let p=i.current.innerHTML;f(p,p===t?void 0:p,g)},v=(g,p)=>{document.execCommand(g,!1,p),m(!0)},A=n==="kicker"?{fontSize:"0.875rem",color:"#6B7280",fontStyle:"normal",margin:"0 0 0.25rem 0"}:{fontSize:"2.25rem",fontWeight:300,color:"#111827",margin:"0 0 0.25rem 0",lineHeight:1.1,letterSpacing:"-0.02em"},b=n==="kicker"?"tg-df-author-curated-by tg-df-author-kicker":"tg-df-author-name",h=()=>n==="kicker"?(0,E.jsx)("p",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}}):(0,E.jsx)("h2",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}});return s?(0,E.jsxs)("div",{className:"tg-df-author-header-text-shell",style:{position:"relative"},children:[o&&(0,E.jsxs)("div",{className:"tg-df-author-header-text-toolbar",role:"toolbar","aria-label":`${n==="kicker"?"Shop by text":"Site or author name"} formatting`,style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"0.25rem",margin:"0 auto 0.375rem",width:"fit-content",padding:"0.25rem 0.5rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",fontSize:"11px",zIndex:10},children:[(0,E.jsx)("span",{style:{color:"#64748b",padding:"2px 2px 2px 0"},children:"Editing"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("bold"),title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("italic"),title:"Italic",children:(0,E.jsx)("em",{children:"I"})}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{let g=prompt("Enter URL:");g&&v("createLink",g)},title:"Add link",children:"\u{1F517}"}),l!==void 0&&(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{i.current&&(i.current.innerHTML=t),d(t),a?.(void 0)},title:"Restore default",children:"Reset"})]}),h()]}):h()}function i2({contentKey:e,initialBio:t,defaultPlaceholder:n,onBioChange:a,stabilizeHeight:l=!1}){let r=(0,be.useRef)(null),o=(0,be.useRef)(e),u=(0,be.useRef)(n),c=(0,be.useRef)(!1),[s,f]=(0,be.useState)(!1),[d,m]=(0,be.useState)(!1),[v,A]=(0,be.useState)(!1),b=t||n,h=l&&b.replace(/<[^>]*>/g,"").trim().length>240,g=!!a,{save:p,synchronise:y}=z0(a);(0,be.useLayoutEffect)(()=>{let w=o.current!==e,D=u.current!==n;w&&(c.current=!1);let k=!t&&D&&!c.current;r.current&&(w||document.activeElement!==r.current||k)&&(r.current.innerHTML!==b&&(r.current.innerHTML=b),y(b)),o.current=e,u.current=n},[b,e,n,t,y]),(0,be.useLayoutEffect)(()=>{m(!1)},[e]),(0,be.useLayoutEffect)(()=>{if(!h||!r.current){A(!1);return}let w=r.current,D=()=>{A(w.scrollHeight>w.clientHeight+1)};if(D(),typeof ResizeObserver>"u")return;let k=new ResizeObserver(D);return k.observe(w),()=>k.disconnect()},[b,e,d,h]);let C=(w,D=null)=>{if(c.current=!0,document.execCommand(w,!1,D||void 0),r.current){let k=r.current.innerHTML;p(k,k===n?"":k,!0)}},R=(w=!1)=>{if(!r.current)return;let D=r.current.innerHTML;p(D,D===n?"":D,w)};return(0,E.jsxs)("div",{style:{position:"relative",maxWidth:"42rem",margin:"0 auto 0.5rem auto",padding:"0.25rem 0.5rem"},className:`tg-df-author-bio-shell${l?" tg-df-author-bio-shell--stable":""}`,children:[g&&s&&(0,E.jsxs)("div",{role:"toolbar","aria-label":"Introduction text formatting",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.375rem",marginBottom:"0.5rem",padding:"0.25rem 0.625rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",width:"fit-content",margin:"0 auto 0.5rem auto",fontSize:"12px",userSelect:"none",zIndex:10},children:[(0,E.jsx)("span",{style:{fontSize:"11px",color:"#64748b",fontWeight:500,marginRight:"2px"},children:"Editing \u2014 saves when you click away"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("bold"),style:{fontWeight:"bold",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("italic"),style:{fontStyle:"italic",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Italic",children:"I"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{let w=prompt("Enter URL:");w&&C("createLink",w)},style:{padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Add Link",children:"\u{1F517}"}),t&&(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:w=>{w.preventDefault(),w.stopPropagation(),r.current&&(r.current.innerHTML=n),c.current=!1,y(n),a&&a("")},style:{fontSize:"10px",padding:"2px 8px",borderRadius:"4px",background:"#fee2e2",color:"#991b1b",cursor:"pointer",border:"1px solid #fca5a5"},title:"Reset Bio",children:"Reset"})]}),(0,E.jsx)("div",{ref:r,contentEditable:g?!0:void 0,suppressContentEditableWarning:g,onFocus:g?()=>{f(!0)}:void 0,onBlur:g?()=>{f(!1),R(!0),c.current=!1}:void 0,onInput:g?()=>{c.current=!0}:void 0,className:`tg-df-author-bio ${g?"wysiwyg-bio-editable":"tg-df-author-bio--static"}${h?d?" tg-df-author-bio--expanded":" tg-df-author-bio--clamped":""}`,style:{color:"#4b5563",lineHeight:1.6,fontWeight:300,fontSize:"0.9375rem",textAlign:"center",outline:g&&s?"2px solid #3b82f6":"none",borderRadius:"6px",padding:"0.375rem 0.5rem",cursor:g?"text":"default",transition:"all 0.15s ease-in-out"}}),h?(0,E.jsx)("div",{className:"tg-df-author-bio-toggle-slot",children:(0,E.jsx)("button",{type:"button",className:"tg-df-author-bio-toggle","aria-expanded":d,onClick:()=>m(w=>!w),style:{visibility:v||d?"visible":"hidden"},children:d?"Show less":"Read more"})}):null]})}function r2(e){let t=(e||"").toLowerCase();return t==="linkedin"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.28 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.75M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z"})}):t==="twitter"||t==="x"?(0,E.jsx)("svg",{className:"icon-svg",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,E.jsx)("path",{fill:"currentColor",d:"M18 2h4l-8 9 9 11h-7l-5-7-6 7H2l7-9L1 2h7l5 6zm-1 18h2L7 4H5z"})}):t==="email"||t==="mail"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("rect",{width:"20",height:"16",x:"2",y:"4",rx:"2"}),(0,E.jsx)("path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"})]}):t==="instagram"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"12",cy:"12",r:"4.25",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"17.4",cy:"6.7",r:"1.25",fill:"currentColor"})]}):t==="steam"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("circle",{fill:"#0f1618",cx:"12",cy:"12",r:"12"}),(0,E.jsx)("path",{d:"m18.22 8.9a2.269 2.269 0 1 1 -2.27-2.265 2.267 2.267 0 0 1 2.27 2.265zm2.258.005a4.534 4.534 0 0 1 -4.533 4.526h-.1l-4.087 2.911v.161a3.4 3.4 0 0 1 -6.74.669l-4.549-1.879c-.032-.109-.057-.219-.085-.329a11.973 11.973 0 0 1 -.384-2.964c0-.214.02-.423.032-.635 0-.1.008-.206.016-.308l6.394 2.643a3.385 3.385 0 0 1 1.915-.591c.065 0 .127 0 .191.005l2.865-4.145v-.062a4.533 4.533 0 0 1 9.066 0zm-9.763 6.618a2.55 2.55 0 0 0 -3.262-1.411l1.525.63a1.877 1.877 0 1 1 -1.446 3.464l-1.475-.606a2.529 2.529 0 0 0 1.315 1.25 2.559 2.559 0 0 0 3.339-1.374 2.526 2.526 0 0 0 .004-1.951zm8.251-6.618a3.021 3.021 0 1 0 -3.021 3.015 3.022 3.022 0 0 0 3.021-3.013z",fill:"#fff"})]}):t==="youtube"?(0,E.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"})}):t==="twitch"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("path",{d:"m24 12a12 12 0 1 1 -12-12 12 12 0 0 1 12 12z",fill:"#111"}),(0,E.jsx)("path",{d:"m12.308 17.167-1.833 1.833h-1.818v-1.833h-3.357v-9.733l.925-2.434h12.475v8.517l-3.648 3.65zm5.175-10.95h-10.043v8.824h2.743v1.833l1.817-1.833h3.342l2.14-2.126zm-5.483 6.083v-3.65h-1.218v3.65zm3.342 0v-3.65h-1.216v3.65z",fill:"#fff"})]}):t==="facebook"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m13.079 19h-2.9v-7h-1.441v-2.408h1.442v-1.456c0-1.96.813-3.136 3.136-3.136h1.933v2.408h-1.2c-.91 0-.965.35-.965.966v1.218h2.183l-.257 2.408h-1.931z",fill:"currentColor"})}):t==="pinterest"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.336 5c-3.822 0-5.754 2.744-5.754 5.025a3.065 3.065 0 0 0 1.652 3.066.279.279 0 0 0 .407-.2l.154-.644a.373.373 0 0 0-.113-.448 2.341 2.341 0 0 1-.532-1.582 3.812 3.812 0 0 1 3.961-3.849 3.009 3.009 0 0 1 3.346 3.08c0 2.323-1.022 4.283-2.547 4.283a1.253 1.253 0 0 1-1.273-1.554 17.616 17.616 0 0 0 .713-2.856 1.081 1.081 0 0 0-1.092-1.2c-.854 0-1.553.881-1.553 2.071a2.954 2.954 0 0 0 .266 1.274l-1.038 4.383a9.389 9.389 0 0 0-.027 3.065.109.109 0 0 0 .2.042 8.737 8.737 0 0 0 1.457-2.631l.561-2.212a2.3 2.3 0 0 0 1.959 1.008c2.59 0 4.34-2.366 4.34-5.516a4.8 4.8 0 0 0-5.087-4.605z",fill:"currentColor"})}):t==="substack"?(0,E.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M22.539 8.242H1.46V5.406h21.08v2.836zM1.46 10.812V24L12 18.11 22.54 24V10.812H1.46zM22.54 0H1.46v2.836h21.08V0z"})}):t==="threads"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12.186 24h-.007c-3.582-.024-6.332-1.22-8.173-3.555C2.26 18.212 1.5 15.228 1.5 11.83 1.5 8.16 2.673 5.097 4.902 2.935 7.026.877 10.02 0 13.565 0c3.784 0 6.81 1.028 8.995 3.056 2.008 1.862 3.013 4.417 2.91 7.391-.122 3.518-1.57 6.136-4.304 7.781-1.892 1.138-4.103 1.62-6.57 1.433-.122.392-.266.769-.434 1.127-.514 1.096-1.18 1.96-1.982 2.569-.884.67-1.933 1.01-3.118 1.01-1.34 0-2.42-.42-3.21-1.248-.78-.82-1.17-1.89-1.17-3.18 0-1.512.52-2.73 1.545-3.62 1.018-.883 2.45-1.33 4.258-1.33.56 0 1.11.04 1.63.12-.04-.53-.13-1.02-.27-1.46-.26-.81-.71-1.45-1.34-1.92-.62-.47-1.42-.71-2.38-.71-1.09 0-2.02.29-2.77.87-.29.22-.68.17-.9-.12l-.76-1.03c-.22-.3-.16-.71.13-.93C7.43 5.37 8.95 4.9 10.8 4.9c1.64 0 2.99.41 4.02 1.22 1.04.81 1.73 1.93 2.06 3.33.15.65.25 1.42.3 2.31 1.68-.31 3.05-1.05 4.08-2.2 1.01-1.13 1.52-2.58 1.52-4.31 0-2.43-.84-4.32-2.5-5.62C18.63 1.32 16.32.5 13.56.5c-3.03 0-5.54.73-7.27 2.21C4.48 4.27 3.5 6.78 3.5 10c0 3.1.66 5.62 1.96 7.49 1.34 1.93 3.38 2.92 6.07 2.95 1.76.02 3.32-.34 4.64-1.07.28-.15.63-.05.78.22l.55.98c.15.28.05.63-.22.78-1.63.9-3.55 1.35-5.7 1.35z"})}):t==="tiktok"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.308 5.012c.763-.012 1.522 0 2.281-.012a3.636 3.636 0 0 0 1.02 2.434 4.12 4.12 0 0 0 2.473 1.043v2.349a6.177 6.177 0 0 1-2.449-.564 7.207 7.207 0 0 1-.947-.543c0 1.705.008 3.406-.01 5.105a4.442 4.442 0 0 1-.789 2.3 4.343 4.343 0 0 1-3.448 1.872 4.254 4.254 0 0 1-2.379-.6 4.393 4.393 0 0 1-2.127-3.331c-.014-.292-.019-.584-.007-.868a4.395 4.395 0 0 1 5.091-3.9c.013.864-.021 1.727-.021 2.591a2.007 2.007 0 0 0-2.558 1.237 2.316 2.316 0 0 0-.079.939 1.992 1.992 0 0 0 3.658.736 1.39 1.39 0 0 0 .239-.62c.057-1.043.034-2.082.041-3.126.006-2.351-.007-4.7.011-7.041z",fill:"currentColor"})}):t==="bluesky"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.879.139 2.588-.02 3.868.002 5.03c.08 4.201 1.84 10.024 3.931 12.397 2.091 2.373 4.545 1.573 5.467.927.817-.573 1.564-1.611 2.6-2.92 1.036 1.309 1.783 2.347 2.6 2.92.922.646 3.376 1.446 5.467-.927 2.091-2.373 3.851-8.196 3.931-12.397.022-1.162-.137-2.442-.9-3.151-.659-.613-1.664-.935-4.3-1.074C16.046 4.747 13.087 8.686 12 10.8z"})}):t==="github"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"})}):t==="rss"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("path",{d:"M4 11a9 9 0 0 1 9 9"}),(0,E.jsx)("path",{d:"M4 4a16 16 0 0 1 16 16"}),(0,E.jsx)("circle",{cx:"5",cy:"19",r:"1"})]}):(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,E.jsx)("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),(0,E.jsx)("path",{d:"M2 12h20"})]})}function U0({authorCount:e=0,authorArticlesList:t,authorBioLength:n,customBio:a,customHeaderKicker:l,customHeaderTitle:i,effectiveAuthorHandle:r,effectiveAuthorName:o,isReviewWidget:u=!1,onBioChange:c,onHeaderKickerChange:s,onHeaderTitleChange:f,selectedProfile:d,showAuthorBio:m=!0,showAuthorIdentity:v=!0,showSocialButtons:A=!0,stabilizeBio:b=!1,totalDealCount:h=0,website:g}){let p=Vu(r,o),y=g||"tomsguide",C=Gu[y]||y,R=Nr[y],T=r?.toLowerCase(),M=o?.toLowerCase(),w=t.find(Be=>T&&Be.articleauthorhandle?.some(Je=>Je?.toLowerCase()===T)||M&&Be.articleauthor?.some(Je=>Je?.toLowerCase()===M))||null,D=w?sf(w,r,o):0,k=d?.image||(w?c0(w,D):""),se=d?n==="short"?d.bioShort||"":d.bioLong||d.bioShort||"":w?_r(w,D,n):"",I=p?`Our team is dedicated to researching, reviewing and recommending the latest and best products in all the categories that matter to you. Below you can shop the latest ${h} ${u?"review ":""}recommendations from ${e} ${C} ${u?"editor tests":"editors"}.`:se||`Handpicked deals and recommendations curated by ${o||"our expert editorial team"}.`,j=d?.role||"",He=p?y0[y]||[]:d?.socialNetworks||[];!p&&w&&(j||(j=u0(w,D)),He.length===0&&(He=Uu(w,D)));let ze=d?.fullName||o||"Author Name",St=p?`site:${y}`:`author:${d?.handle||r||ze}`,Ie=A&&He.length>0,rn=!p&&!!j||Ie;return(0,E.jsxs)("div",{className:"tg-df-author-card",style:{textAlign:"center",padding:"1.75rem 1rem 0.25rem 1rem",margin:"0 auto",maxWidth:"48rem"},children:[v&&(p?(0,E.jsx)("div",{className:"tg-df-author-media-slot tg-df-author-image-container",style:{margin:"0 auto 0.75rem auto",textAlign:"center",minHeight:"180px",display:"flex",alignItems:"center",justifyContent:"center"},children:R?(0,E.jsx)("img",{src:R,alt:C,className:"tg-df-site-logo",style:{maxHeight:"150px",maxWidth:"520px",objectFit:"contain",margin:"0 auto",display:"block"}}):(0,E.jsx)("div",{style:{fontSize:"1.75rem",fontWeight:700,color:"#111827"},children:C})}):(0,E.jsx)("div",{className:"tg-df-author-media-slot",children:(0,E.jsxs)("div",{className:"tg-df-author-profile-image-wrapper",children:[k?(0,E.jsx)("img",{src:ri(k),alt:ze,className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",objectFit:"cover",display:"block"}}):(0,E.jsx)("div",{className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",background:"#e2e8f0",display:"block"}}),R?(0,E.jsx)("img",{src:R,alt:"",className:"tg-df-author-profile-brand-logo"}):null]})})),v&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(H0,{contentKey:`${St}:kicker`,defaultText:u?"Reviews shop by":"Shop by",kind:"kicker",onChange:s,value:l}),(0,E.jsx)(H0,{contentKey:`${St}:title`,defaultText:p?C:ze,kind:"title",onChange:f,value:i}),rn&&(0,E.jsxs)("div",{className:`tg-df-author-meta-slot${p?" tg-df-author-meta-slot--site":""}${Ie?"":" tg-df-author-meta-slot--no-social"}`,children:[!p&&j?(0,E.jsx)("div",{className:"tg-df-author-role",id:"tg-df-author-role-display",style:{fontSize:"0.9375rem",fontWeight:500,color:"var(--tg-df-blue, #1F69FF)",margin:"0 0 0.5rem 0",lineHeight:1.3},children:j}):null,Ie?(0,E.jsx)("div",{className:"tg-df-author-social-links",children:He.map(Be=>(0,E.jsx)("a",{href:Be.href,target:"_blank",rel:"noopener noreferrer",title:Be.label,"aria-label":Be.label,className:"tg-df-author-social-btn","data-social-key":Be.key.toLowerCase(),children:r2(Be.key)},Be.key))}):null]})]}),m&&(0,E.jsx)(i2,{contentKey:St,initialBio:a,defaultPlaceholder:I,onBioChange:c,stabilizeHeight:b})]})}var te=B(O(),1);function df(e){if(!e||typeof e!="object")return"";if(e.type==="voucher_code"&&e.display_value)return e.display_value;let t=Array.isArray(e)?e:Object.keys(e).filter(n=>Object.prototype.hasOwnProperty.call(e,n)).map(n=>e[n]);for(let n of t){let a=df(n);if(a)return a}return""}function o2({endTime:e}){if(!e)return null;let t=e;!isNaN(Number(t))&&String(t).length===10&&(t=Number(t)*1e3);let n=new Date(t),a=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"});return(0,te.jsxs)("span",{className:"tg-df-voucher-expiry",children:[(0,te.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginRight:"4px"},children:[(0,te.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,te.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),"Expires ",a.format(n)]})}function G0({error:e,loading:t,merchant:n,onClose:a,vouchers:l}){return(0,te.jsx)("div",{className:`tg-df-modal-backdrop ${n?"active":""}`,onClick:i=>{i.target===i.currentTarget&&a()},children:(0,te.jsxs)("div",{className:"tg-df-modal",children:[(0,te.jsxs)("div",{className:"tg-df-modal-header",children:[(0,te.jsx)("h3",{className:"tg-df-modal-title",children:n?`${n} Coupons & Deals`:"Available Coupons & Deals"}),(0,te.jsx)("button",{className:"tg-df-modal-close",onClick:a,children:(0,te.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,te.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,te.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),(0,te.jsx)("div",{className:"tg-df-modal-body",children:t?(0,te.jsx)("div",{className:"tg-df-message",children:(0,te.jsx)("div",{className:"tg-df-coupon-spinner",style:{width:"24px",height:"24px",borderColor:"#ccc",borderTopColor:"#3b82f6"}})}):e?(0,te.jsx)("div",{className:"tg-df-message",children:"Failed to load vouchers."}):l.length===0?(0,te.jsxs)("div",{className:"tg-df-message",children:["No active vouchers found for ",n,"."]}):l.map((i,r)=>{let o=i.offer?.name||i.offer?.title||i.name||i.title||i.model_name||"Voucher",u=i.offer?.link||i.offer?.url||i.link||i.url||"#",c=i.merchant,s=Array.isArray(c)?c[0]?.logo_url||"":c?.logo_url||"",f=df(i.offer)||df(i)||i.offer?.voucher_code||i.voucher_code||"",d=i.offer?.end_time||i.end_time||"";return(0,te.jsxs)("a",{href:u,target:"_blank",rel:"noopener nofollow",className:"tg-df-voucher-item",children:[s?(0,te.jsx)("img",{src:s,alt:"Logo",className:"tg-df-voucher-logo"}):(0,te.jsx)("div",{className:"tg-df-voucher-logo",style:{background:"#e2e8f0"}}),(0,te.jsxs)("div",{className:"tg-df-voucher-content",children:[(0,te.jsx)("h4",{className:"tg-df-voucher-title",children:o}),(0,te.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:"8px"},children:[f&&(0,te.jsxs)("span",{className:"tg-df-voucher-code",title:"Copy to clipboard",onClick:m=>{m.preventDefault(),m.stopPropagation();let v=m.currentTarget;navigator.clipboard.writeText(f).then(()=>{v.classList.add("copied");let A=v.querySelector(".tg-df-voucher-code-text"),b=v.querySelector(".tg-df-voucher-copy-icon"),h=A.innerText,g=b.innerHTML;A.innerText="Copied!",b.innerHTML='<polyline points="20 6 9 17 4 12"><\/polyline>',setTimeout(()=>{v.classList.remove("copied"),A&&(A.innerText=h),b&&(b.innerHTML=g)},2e3)})},children:[(0,te.jsx)("span",{className:"tg-df-voucher-code-text",children:f}),(0,te.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:"6px",flexShrink:0},className:"tg-df-voucher-copy-icon",children:[(0,te.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,te.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})]}),d&&(0,te.jsx)(o2,{endTime:d})]})]})]},r)})})]})})}var N=B(ft(),1);function ci(e){if(!e||!e.articlepage)return[];try{let t=e.articlepage;if(!Array.isArray(t))return typeof t=="string"?JSON.parse(t):t;if(t.length===0)return[];let n=t[0];return typeof n=="string"?JSON.parse(n):Array.isArray(n)?n:n&&typeof n=="object"&&"type"in n?t:n}catch{return[]}}function si(e,t=!1,{includeCollections:n=!0,includeDeals:a=!0}={}){let l=t?e.filter(r=>r.type==="buying-guide"):[];if(l.length>0)return l;let i=e.filter(r=>r.type==="deal"||r.type==="featured-product");return a&&!n&&!t?i.filter(r=>r.type==="deal"):i}function di(e,t){if(!t||t.length===0)return!0;let n=e&&(e.brand||e.retailer)||"";if(!n)return!1;let a=n.replace(/^\d+\.\s*/,"").trim().toLowerCase();return t.some(l=>{let i=l.trim().toLowerCase();return a===i||a.startsWith(`${i} `)||a.includes(i)||i.includes(a)})}function wt(e){return!e||e==="auto"?"US":e}function an(e){return e==="GB"||e==="UK"?"GBP":e==="AU"?"AUD":e==="CA"?"CAD":["DE","FR","IT","ES","NL"].includes(e)?"EUR":"USD"}function P0(e,t){if(e.isBuyingGuideProduct||e.isReviewProduct)return!0;if(t==="unavailable")return!1;let n=String(e.isoCurrency||e.currency||"").trim().toUpperCase();return({$:"USD",A$:"AUD",CA$:"CAD","\xA3":"GBP","\u20AC":"EUR"}[n]||n)===an(t)}function fi(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=a?n.currency||(n.price&&typeof n.price=="object"?n.price.currency:""):l.currency||(typeof l=="string"?l:"")||n.currency||"";!i&&n.variants&&n.variants.length>0&&(i=n.variants[0].currency||"");let r="$",o="USD",u=(i||"").toString().toUpperCase().trim();return u==="GBP"||u==="\xA3"||u.includes("POUND")||u.includes("163")?(r="\xA3",o="GBP"):u==="EUR"||u==="\u20AC"||u.includes("EURO")||u.includes("8364")?(r="\u20AC",o="EUR"):u==="AUD"||u==="A$"?(r="A$",o="AUD"):u==="CAD"||u==="CA$"?(r="CA$",o="CAD"):u==="USD"||u==="$"||u.includes("DOLLAR")||u.includes("36")?(r="$",o="USD"):(o=an(t),o==="GBP"?r="\xA3":o==="AUD"?r="A$":o==="CAD"?r="CA$":o==="EUR"&&(r="\u20AC")),{isoCurr:o,currencyStr:r}}function Ku(e){let t=e.data||{},n=e.type==="featured-product",a=t.price||{},l=0,i=0;return n?(l=typeof a=="number"?a:a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):t.msrp?parseFloat(t.msrp):0):(l=a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):0),{rawPrice:l,rawMsrp:i}}function Sa(e,t){if(!t||t==="all"||e<=0)return!0;if(t==="under50"&&e>=50||t==="over50"&&e<=50||t==="over30"&&e<=30||t==="over500"&&e<=500)return!1;if(t.includes("_")){let[n,a]=t.split("_").map(Number);if(n&&e<n||a&&e>a)return!1}return!0}function Ca(e,t,n){if(!n||n==="0"||n==="all")return!0;let a=parseInt(n);return!(!isNaN(a)&&a>0&&(!t||t<=e||Math.round((1-e/t)*100)<a))}var Zu=[0,50,100,150,200,250,300,350,400,450],ff={parameter:"articleControlTag",value:"type_buying_guide"},u2={includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"deals"},{parameter:"articleControlTag",value:"sig-product-collection"}]},c2={pcgamer:{includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"deals"},{parameter:"articleControlTag",value:"sig-product-collection"},{parameter:"articleControlTag",value:"type_deal",requiredArticleType:"news",requiredControlTags:["deals","type_deal","channel_gaming_hardware"]}],buyingGuideScopes:[ff]},homesandgardens:{includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"collection",inventoryKind:"collections"},{parameter:"articleControlTag",value:"sig-product-collection",inventoryKind:"collections"},{parameter:"articleControlTag",value:"van-hawk-collection-widget",inventoryKind:"collections"},{parameter:"articleControlTag",value:"shopping",requiredArticleType:"news",inventoryKind:"collections"},{parameter:"articleType",value:"deals",inventoryKind:"deals"},{parameter:"articleControlTag",value:"type_deal",requiredArticleType:"news",requiredControlTags:["shopping","type_deal"],inventoryKind:"deals"}],buyingGuideScopes:[{parameter:"articleType",value:"buying guide"},ff]},whowhatwear:{includeAllContent:!0,pageStarts:Zu,scopes:[{}]}};function Wu(e,{includeBuyingGuideProducts:t=!1,includeCollections:n=!0,includeDeals:a=!0}={}){let l=c2[e]||u2;if(l.includeAllContent)return l;let i=l.scopes.filter(r=>r.inventoryKind==="collections"?n:r.inventoryKind==="deals"?a:r.value==="sig-product-collection"?n:a);return t?{...l,scopes:[...i,...l.buyingGuideScopes||[ff]]}:{...l,scopes:i}}function gf(e){if(Array.isArray(e))return e;let t=e.data;return t&&Array.isArray(t)?t:[]}function q0(e){let t=new Set;return e.filter(n=>{let a=n.id||n.articleid||n.url;return!a||t.has(a)?!1:(t.add(a),!0)})}function Zt(e){return typeof e.articletype=="string"?e.articletype.toLowerCase():Array.isArray(e.articletype)&&e.articletype.length>0?e.articletype[0].toLowerCase():""}function Hr(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]/g,"")}function mf(e){return[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]].map(Hr)}function s2(e){return Zt(e)==="review"&&mf(e).some(t=>t.includes("channelgaminghardware"))}function F0(e,t,n){let a=Zt(e),l=mf(e),i=c=>l.some(s=>s.includes(c)),r=a==="news"&&i("shopping")&&i("deal")&&i("typedeal"),o=a==="deals"||r,u=a==="collection"||i("sigproductcollection")||i("vanhawkcollectionwidget")||a==="news"&&i("shopping")&&!r||a==="idea"&&i("shopping")&&(i("sigproductcollection")||i("vanhawkcollectionwidget"));return t&&o||n&&u}function el(e,t=!0,n=!0,a){if(a==="homesandgardens")return F0(e,t,n);let l=Zt(e),i=mf(e),r=l==="deals"||i.some(u=>u.includes("typedeal")),o=i.some(u=>u.includes("sigproductcollection"));return t&&r||n&&o}function j0(e,t,n=!1,a=!1,l=!0,i=!0){if(a&&Zt(e)==="review")return t!=="pcgamer"||s2(e);if(t==="homesandgardens")return Zt(e)==="buying guide"?n:F0(e,i,l);let r=Wu(t,{includeBuyingGuideProducts:n,includeCollections:l,includeDeals:i});if(r.includeAllContent)return i&&l?!0:n||el(e,i,l);let o=Zt(e),u=[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]],c=f=>!f.requiredArticleType||o===f.requiredArticleType.toLowerCase(),s=f=>!f.requiredControlTags||f.requiredControlTags.every(d=>u.some(m=>typeof m=="string"&&Hr(m).includes(Hr(d))));return r.scopes.some(f=>!c(f)||!s(f)?!1:f.parameter==="articleType"?o===f.value.toLowerCase():f.parameter==="articleControlTag"?u.some(d=>typeof d=="string"&&Hr(d).includes(Hr(f.value))):!1)}function hf(e,t){let n=e.map(a=>({...a}));return t.filter(a=>(a.isBuyingGuideProduct||a.isReviewProduct)&&a.brand).forEach(a=>{let l=String(a.brand).trim();if(!l)return;let i=n.find(r=>r.formatted_value.toLowerCase()===l.toLowerCase());i?i.count++:n.push({formatted_value:l,count:1})}),n.sort((a,l)=>l.count-a.count)}function Iu(e,t){let n={};return e.forEach(a=>{if(!a.articlepage)return;let l=ci(a),i=si(l,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});(t.includeDeals===!1||t.includeCollections===!1)&&!i.some(r=>r.type==="buying-guide")&&!el(a,t.includeDeals,t.includeCollections,t.website)||i.forEach(r=>{if(fi(r,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:o,rawMsrp:u}=Ku(r);if(!Sa(o,t.priceRange)||!Ca(o,u,t.discountAmount))return;let c=r.data||{},s=c.brand||c.retailer;if(!s)return;let f=s.replace(/^\d+\.\s*/,"").trim(),d=f.toLowerCase(),m=Object.keys(n).find(v=>v.toLowerCase()===d);m?n[m]++:(f===f.toLowerCase()&&(f=f.replace(/\b\w/g,v=>v.toUpperCase())),n[f]=1)})}),Object.keys(n).map(a=>({formatted_value:a,count:n[a]})).sort((a,l)=>l.count-a.count)}function d2(e){return String(e||"").trim().toLowerCase()}function Ju(e){return(Array.isArray(e)?e:[e]).map(d2).filter(Boolean)}function pf(e){let t=Ju(e.articletype),n=[...Ju(e.articlecontroltag),...Ju(e.articletagtypetaghandle)];return t.includes("deals")||n.some(a=>a.replace(/[\s-]+/g,"_")==="type_deal")}function V0(e){let t=Array.isArray(e)?e[0]:e,n=new Date(String(t||"")).getTime();return Number.isFinite(n)?n:null}function f2(e){for(let t of[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]){let n=V0(t);if(n!==null)return n}return null}function g2(e){for(let t of[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]){let n=V0(t);if(n!==null)return n}return null}function Y0(e){return Ju(e.articletype).includes("review")}function yf(e,t=new Date,n=0){let a=pf(e)?1:Y0(e)?36:n;if(a<=0)return!0;let l=Y0(e)?g2(e):f2(e);if(l===null)return!0;let i=new Date(t);return i.setMonth(i.getMonth()-a),l>=i.getTime()}function tl(e,t,n=0){return e.filter(a=>yf(a,t,n))}var m2=15;function Q0(e){return Array.isArray(e.articlemedia)?e.articlemedia[0]:""}function zr(e){return Array.isArray(e.documenturl)?e.documenturl[0]:e.documenturl||""}function h2(e){return kt(String(e||"").replace(/^\d+\.\s*/,"").trim())}function tt(e){return Array.isArray(e)?e.map(tt).find(Boolean)||"":typeof e=="string"||typeof e=="number"?String(e).trim():""}function vf(e,t=!1){return(t?[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]:[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]).map(tt).find(Boolean)||""}function p2(e,t,n){let a=tt(e).match(/^\s*(\d+)\s*[.)]\s*/)?.[1];return a||[t.rank,t.position,t.number,t.productNumber,t.product_number].map(tt).map(i=>i.match(/^\s*(\d+)\s*$/)?.[1]||"").find(Boolean)||String(n+1)}function y2(e){let t=tt(e);try{t=new URL(t).pathname}catch{}return t=t.split(/[?#]/)[0].split("/").filter(Boolean).at(-1)||"",t.split(/[-_]+/).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function v2(e){return tt(e.documenthandle)||tt(e.document_handle)||zr(e)||tt(e.documentname)||tt(e.documentnametext)}function b2(e,t){if(!t)return"";let n=t.length>m2?"Ranked":t;return`#${e} ${n}`}function A2(e){if(typeof e=="object"&&e)return String(e["data-model-name"]||"");try{return String(JSON.parse(String(e||""))["data-model-name"]||"")}catch{return""}}function w2(e){let t=e.brand||e.productBrand||e.manufacturer||e.maker||"";return typeof t=="string"?kt(t.replace(/^\d+\.\s*/,"").trim()):""}function S2(e){let t=e.price&&typeof e.price=="object"?e.price:{},n=Number(t.salePrice||t.price||e.salePrice||e.current_price||(typeof e.price=="number"?e.price:0)),a=Number(t.wasPrice||t.msrp||e.was_price||e.msrp||0),l=e.url||e.link?.url||e.link?.href||"";return{currency:t.currency||e.currency||"",rawMsrp:Number.isFinite(a)?a:0,rawPrice:Number.isFinite(n)?n:0,url:l}}function bf(e){let t=e?.review||{},n=t.rating??t.starRating??t.score??e?.rating??e?.starRating??e?.score,a=Number(n);if(!Number.isFinite(a)||a<=0)return null;let l=a>5?a/20:a;return Math.min(l,5)}function K0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,imageUrl:i}){let r=t.data||{},o=r.review||{},u=h2(r.title),c=p2(r.title,r,a),s=y2(v2(e)),f=zr(e),d=S2(r),m=!!d.url,v=m?d.url:o.url||f,A=i||Q0(e);return{id:`airedale-buying-guide-${n}-${a}`,url:v,image:A,fallbackImage:A,title:u,brand:w2(r),productName:u,merchant:"",rawPrice:d.rawPrice,rawMsrp:d.rawMsrp,price:d.rawPrice>0?String(d.rawPrice):"",msrp:d.rawMsrp>0?String(d.rawMsrp):"",currency:d.currency,isoCurrency:"",isCheckPrice:d.rawPrice<=0,savingLabel:"",savingType:"none",isPrime:!1,starRating:bf(r),description:"",text:"",subtitle:kt(r.subtitle||""),pros:Array.isArray(r.pros)?r.pros:[],cons:Array.isArray(r.cons)?r.cons:[],...l,documentUrl:zr(e),modifiedDate:vf(e),isFeatured:!1,isBuyingGuideProduct:!0,buyingGuideBadge:b2(c,s),hawkModelName:A2(r.hawk),hasCommerceOffer:m,sourceArticleUrl:f}}function C2(e){return gi(e)||tt(e.documentnametext)||tt(e.documentname)}function $u(e){if(Array.isArray(e))return e.map($u).find(Boolean)||"";if(e&&typeof e=="object"){let n=e,a=tt(n["data-widget-type"]||n.dataWidgetType||n.widgetType).toLowerCase(),l=tt(n["data-model-name"]||n.dataModelName||n.modelName);return a==="review"&&l?l:Object.values(n).map($u).find(Boolean)||""}if(typeof e!="string")return"";let t=[e,e.replace(/\\"/g,'"').replace(/\\u0022/gi,'"')];for(let n of t){try{let l=$u(JSON.parse(n));if(l)return l}catch{}let a=n.match(/["']data-widget-type["']\s*:\s*["']review["'][\s\S]{0,1500}?["']data-model-name["']\s*:\s*["']([^"']+)["']/i);if(a?.[1])return a[1].trim()}return""}function gi(e){let t=tt(e.articlehawkmodels);if(t)return t;for(let n of[e.articlepage,e.articlebodypageblock,e.articlepageblock,e.fepjson,e.articlebodyclean]){let a=$u(n);if(a)return a}return""}function X0(e){return(Array.isArray(e)?e:[e]).map(t=>kt(tt(t))).filter(Boolean)}function Z0({article:e,articleIdentity:t,authorProfile:n}){let a=kt(gi(e)),l=kt(C2(e)),i=zr(e),r=Q0(e),o=kt(tt(e.productverdict));return{id:`airedale-review-${t}`,url:i,image:r,fallbackImage:r,title:l,brand:"",productName:l,merchant:"",rawPrice:0,rawMsrp:0,price:"",msrp:"",currency:"",isoCurrency:"",isCheckPrice:!0,savingLabel:"",savingType:"none",isPrime:!1,starRating:bf({rating:e.productrating}),description:o,text:o,...n,documentUrl:i,modifiedDate:vf(e,!0),isFeatured:!1,isReviewProduct:!0,hawkModelName:a||l,hasCommerceOffer:!1,sourceArticleUrl:i,pros:X0(e.productpros),cons:X0(e.productcons)}}function kt(e){return typeof e=="string"?ee(e):e}function W0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,currencyString:i,isoCurrency:r,presentation:o,pricing:u}){let c=t.data||{},{isFeatured:s,externalUrl:f,summaryTitle:d,description:m,imageUrl:v,merchantName:A}=o,{rawPrice:b,rawMsrp:h,savingLabel:g}=u;return{id:`airedale-${n}-${a}`,url:f,image:v,fallbackImage:v,title:kt(d),brand:kt(c.brand||""),productName:kt(c.productName||""),merchant:kt(A),rawPrice:b,rawMsrp:h,price:b>0?b.toString():"",msrp:h>0?h.toString():"",currency:i,isoCurrency:r,isCheckPrice:!b,savingLabel:g,savingType:h>b?"amount":"none",isPrime:!1,starRating:bf(c),description:kt(m),text:kt(c.text||""),...l,documentUrl:zr(e),modifiedDate:vf(e),isFeatured:s,hasCommerceOffer:!!f}}function I0(e,t){let n=t.data||{},a=t.type==="featured-product",l=n.link||{},i=n.image||{};n.brand&&(n.brand=n.brand.replace(/^\d+\.\s*/,"").trim());let r=a?n.url:l.href||null,o=a?n.name||n.brand:n.productName||l.label||(Array.isArray(e.articlename)?e.articlename[0]:e.articlename),u=a?n.strapline||"":n.text||"";if(!a&&!n.productName&&n.text){let f=n.text.split(/<br\s*\/?>/i);if(f.length>1)o=f[0].replace(/<[^>]+>/g,"").trim(),u=f.slice(1).join(" ").replace(/<br\s*\/?>/gi," ").replace(/<\/?(p|div)[^>]*>/gi," ").replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();else{let d=n.text.match(/<strong>(.*?)<\/strong>/);d&&(o=d[1].replace(/<[^>]+>/g,"").trim(),o.endsWith(":")&&(o=o.slice(0,-1)))}}let c=a?i.mos:i.src||null;c?.startsWith("//")&&(c=`https:${c}`),u=u.replace(/<br\s*\/?>/gi," ").replace(/<\/?(p|div)[^>]*>/gi," ").replace(/<[^>]+>/g,"").replace(/\s+/g," ").replace(/View Deal$/i,"").trim();let s=n.retailer||"";if(!s&&r)try{s=new URL(r).hostname.replace("www.","").split(".")[0],s=s.charAt(0).toUpperCase()+s.slice(1)}catch{}return s||(s="Retailer"),{isFeatured:a,externalUrl:r,summaryTitle:o,description:u,imageUrl:c,merchantName:s}}function J0(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=0,r=0;a?(i=typeof n.salePrice=="number"&&n.salePrice>0?n.salePrice:typeof n.price=="number"?n.price:0,r=typeof n.salePrice=="number"&&typeof n.price=="number"&&n.price>n.salePrice?n.price:0):(i=l.amount?parseFloat(l.amount):0,r=l.amountWas?parseFloat(l.amountWas):0);let o=0,u="";return i>0&&r>i&&(o=parseFloat((r-i).toFixed(2)),u=`Save ${t}${o}`),{rawPrice:i,rawMsrp:r,savingLabel:u}}function R2(e,t){let n=e.indexOf(t);if(n<1)return"";let a=e[n-1]?.data||{},i=a.slides?.[0]?.image||a.image||a;return i?.src||i?.mos||""}function Ur(e,{activeRegionCode:t,targetIso:n,selectedBrands:a,priceRange:l,discountAmount:i,authorHandle:r,authorName:o,createFallbackIdentity:u=Math.random,includeBuyingGuideProducts:c=!1,includeCollections:s=!0,includeDeals:f=!0,includeReviewProducts:d=!1,website:m}){let v=[],A=new Set;return e.forEach(b=>{if(d&&Zt(b)==="review"){v.push(Z0({article:b,articleIdentity:b.id||u(),authorProfile:Qu(b,r,o)}));return}if(!b.articlepage)return;let h=ci(b),g=si(h,c,{includeCollections:s,includeDeals:f});(f===!1||s===!1)&&!g.some(p=>p.type==="buying-guide")&&!el(b,f,s,m)||g.forEach((p,y)=>{if(p.type==="buying-guide"){v.push(K0({article:b,block:p,articleIdentity:b.id||u(),blockIndex:y,authorProfile:Qu(b,r,o),imageUrl:R2(h,p)}));return}let{isoCurr:C,currencyStr:R}=fi(p,t);if(C!==n)return;let T=p.data||{},M=I0(b,p),{externalUrl:w}=M,D=J0(p,R),{rawPrice:k,rawMsrp:se}=D;if(!(a&&a.length>0&&!di(T,a))&&Sa(k,l)&&Ca(k,se,i)){if(w){if(A.has(w))return;A.add(w)}v.push(W0({article:b,block:p,articleIdentity:b.id||u(),blockIndex:y,authorProfile:Qu(b,r,o),currencyString:R,isoCurrency:C,presentation:M,pricing:D}))}})}),v}function mi(e,t){return Ur(e,{...t,selectedBrands:[],priceRange:"all",discountAmount:"0"})}function $0(e,t){return Ur(e,t)}function Gr(e){return(Array.isArray(e)?e:[e]).filter(n=>typeof n=="string").map(n=>n.trim())}function ec(e){return e?.trim().toLowerCase()==="freeform"}function Af(e){return!!e&&!/[^\p{L}\p{N}\s]/u.test(e)}function wf(e){let t=Gr(e.articletag),n=Gr(e.articletaghandle),a=Gr(e.articletagtype),l=new Map;t.forEach((o,u)=>{let c=n[u];!ec(a[u])||!c||!Af(o)||l.set(c.toLowerCase(),{handle:c,label:o,requestValue:o})});let i=Gr(e.articletagtypetag),r=Gr(e.articletagtypetaghandle);return i.forEach((o,u)=>{let[c,...s]=o.split("|"),[f,...d]=(r[u]||"").split("|"),m=s.join("|").trim(),v=d.join("|").trim();!ec(c)||!ec(f)||!v||!Af(m)||l.has(v.toLowerCase())||l.set(v.toLowerCase(),{handle:v,label:m,requestValue:m})}),r.forEach(o=>{let[u,...c]=o.split("|"),s=c.join("|").trim();!ec(u)||!s||!Af(s)||l.has(s.toLowerCase())||l.set(s.toLowerCase(),{handle:s,label:s})}),[...l.values()]}function ev(e,t){if(t)return e.find(n=>n.handle.toLowerCase()===t.toLowerCase())?.requestValue}function hi(e,t){let n=(Array.isArray(t)?t:[t]).filter(a=>typeof a=="string").map(a=>a.trim().toLowerCase()).filter(Boolean);return n.length===0?e:e.filter(a=>wf(a).some(l=>n.includes(l.handle.toLowerCase())))}function T2(e){let t=new Map;return Array.isArray(e.articlecategory)?(e.articlecategory.forEach(n=>{if(typeof n!="string")return;let a=n.trim();a===a.toLowerCase()&&(a=a.replace(/\b\w/g,l=>l.toUpperCase())),a&&!t.has(a.toLowerCase())&&t.set(a.toLowerCase(),{handle:a,label:a})}),[...t.values()]):[]}function tv(e,t,n){let a={},l={},i={};e.forEach(u=>{let c=[];if(t.includeReviewProducts&&Zt(u)==="review"&&c.push(u.id||u.documenturl||u.documenthandle||""),u.articlepage)try{let s=ci(u),f=si(s,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});if((t.includeDeals===!1||t.includeCollections===!1)&&!f.some(d=>d.type==="buying-guide")&&!el(u,t.includeDeals,t.includeCollections,t.website))return;f.forEach(d=>{if(d.type==="buying-guide"){c.push(d.id||JSON.stringify(d.data||{}));return}if(fi(d,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:m,rawMsrp:v}=Ku(d);if(!Sa(m,t.priceRange)||!Ca(m,v,t.discountAmount))return;let A=d.data||{};if(t.selectedBrands&&t.selectedBrands.length>0&&!di(A,t.selectedBrands))return;let h=d.type==="featured-product"?A.primaryLink:A.link,g=A.url||A.link&&A.link.url||h&&h.url;c.push(g||JSON.stringify(A))})}catch{}c.length!==0&&n(u).forEach(s=>{let f=s.handle.toLowerCase(),d=Object.keys(a).find(m=>m.toLowerCase()===f);d||(d=s.handle,a[d]=new Set,l[d]=s.label,i[d]=s.requestValue),c.forEach(m=>a[d].add(m))})});let r={};return Object.keys(a).forEach(u=>{r[u]=a[u].size}),{tags:Object.keys(r).map(u=>({handle:u,label:l[u]||u,requestValue:i[u]})).sort((u,c)=>r[c.handle]-r[u.handle]),tagCounts:r}}function tc(e,t){let{tags:n,tagCounts:a}=tv(e,t,T2);return{tags:n.map(l=>l.label),tagCounts:a}}function nc(e,t){let{tags:n,tagCounts:a}=tv(e,t,wf);return{tags:n,tagCounts:a}}function E2(e,t){return e.documentUrl||e.sourceArticleUrl||e.articleId||`deal-${t}`}function yn(e,t,n){if(t!=="mix"||n!=="date_desc")return e;let a=new Map;e.forEach((o,u)=>{let c=E2(o,u),s=a.get(c)||[];s.push(o),a.set(c,s)});let l=[],i=0,r=!0;for(;r;)r=!1,a.forEach(o=>{let u=o[i];u&&(l.push(u),r=!0)}),i+=1;return l}var nv="compact-v1",D2={brand:"",currency:"",hasCommerceOffer:!1,isoCurrency:"",isCheckPrice:!0,isFeatured:!1,isPrime:!1,merchant:"",merchantId:"",msrp:"",price:"",rawMsrp:0,rawPrice:0,savingLabel:"",savingType:"none"},x2={hasCommerceOffer:!0,hawkPricePending:!1,rawMsrp:0,rawPrice:0};function av(e){return e.map(t=>{if(!t.isReviewProduct)return t;let n=String(t.sourceArticleUrl||t.documentUrl||t.url||""),a=t.fallbackImage??t.image??"",l={...D2,...t,fallbackImage:a,image:t.image??a,sourceArticleUrl:n,documentUrl:t.documentUrl??n,url:t.url??n,title:t.title??t.productName??"",text:t.text??t.description??"",hawkPricePending:t.hawkPricePending??!!t.hawkModelName,pros:t.pros??[],cons:t.cons??[]};return t.hawkRegionalCommerce&&(l.hawkRegionalCommerce=Object.fromEntries(Object.entries(t.hawkRegionalCommerce).map(([i,r])=>{let o=r,u=o.productName??l.productName,c=o.rawPrice??0,s=o.rawMsrp??0;return[i,{...x2,...o,fallbackImage:o.fallbackImage??a,image:o.image??a,productName:u,title:o.title??u??l.title,price:o.price??(c?String(c):""),msrp:o.msrp??(s?String(s):"")}]}))),l})}function ac(e,t,n=100){let a=new Set(e.slice(0,t).map((i,r)=>i.id||`visible-${r}`)),l=e.slice(0,t).filter(i=>i.isReviewProduct).length;return e.filter((i,r)=>{let o=i.id||`visible-${r}`;return a.has(o)?!0:i.isReviewProduct?(l+=1,l<=n):!1})}function lv(e,t){let n=new Map(t.map((a,l)=>[a.id||`enriched-${l}`,a]));return e.map((a,l)=>n.get(a.id||`enriched-${l}`)||a)}var M2=new Set(["deal","featured-product","gallery","buying-guide","text","section"]);function lc(e){return!!e&&typeof e=="object"}function iv(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function rv(e){try{let t=iv(e);if(!Array.isArray(t)||!t[0])return;let n=t[0],a=typeof n=="string"?iv(n):Array.isArray(n)?n:lc(n)&&"type"in n?t:n;if(!Array.isArray(a))return;let l=a.filter(i=>lc(i)&&M2.has(i.type)).map(i=>i.type==="text"&&i.data?{type:"text",data:{paragraphs:Array.isArray(i.data.paragraphs)?i.data.paragraphs.slice(0,3):void 0,text:typeof i.data.text=="string"?i.data.text.slice(0,500):void 0}}:i.type==="section"&&i.data?{type:"section",data:{text:i.data.text,heading:i.data.heading,title:i.data.title}}:i);return l.length>0?[JSON.stringify(l)]:void 0}catch{return}}function ov(e){if(!Array.isArray(e))return[];let t=!1;return e.map(n=>{if(!lc(n))return n;let a=n.articlepage?rv(n.articlepage):void 0,l=!!(n.articleauthormedia||n.articleauthorrole),i=!!(!t&&(n.articleauthorbio||n.articleauthorlongbio||n.articleauthorsocialnetworks));return i&&(t=!0),{id:n.id,articlename:n.articlename,documentname:n.documentname,documentnametext:n.documentnametext,documenthandle:n.documenthandle,articlecategory:n.articlecategory,articletag:n.articletag,articletaghandle:n.articletaghandle,articletagtype:n.articletagtype,articletagtypetag:n.articletagtypetag,articletagtypetaghandle:n.articletagtypetaghandle,articlecontroltag:n.articlecontroltag,articletype:n.articletype,articleauthor:n.articleauthor,articleauthorhandle:n.articleauthorhandle,articleauthortext:n.articleauthortext,...l?{articleauthorrole:n.articleauthorrole,articleauthormedia:n.articleauthormedia}:{},articlestrapline:n.articlestrapline,articlesocialtitle:n.articlesocialtitle,documenturl:n.documenturl,articlemedia:n.articlemedia,articlehawkmodels:n.articlehawkmodels,productrating:n.productrating,productpros:n.productpros,productcons:n.productcons,productverdict:n.productverdict,contentmodifieddate:n.contentmodifieddate,modifieddate:n.modifieddate,createddate:n.createddate,datepublished:n.datepublished,publisheddate:n.publisheddate,...i?{articleauthorbio:n.articleauthorbio,articleauthorlongbio:n.articleauthorlongbio,articleauthorsocialnetworks:n.articleauthorsocialnetworks}:{},...a?{articlepage:a}:{}}})}function uv(e){return Array.isArray(e)?e.map(t=>{if(!lc(t))return t;let n=t.articlepage?rv(t.articlepage):void 0;return{id:t.id,articleid:t.articleid,articlename:t.articlename,documentname:t.documentname,documentnametext:t.documentnametext,documenthandle:t.documenthandle,articleauthor:t.articleauthor,articleauthorhandle:t.articleauthorhandle,articleauthortext:t.articleauthortext,articleauthorrole:t.articleauthorrole,articleauthormedia:t.articleauthormedia,articleauthorbio:t.articleauthorbio,articleauthorlongbio:t.articleauthorlongbio,articleauthorsocialnetworks:t.articleauthorsocialnetworks,articlecategory:t.articlecategory,articletag:t.articletag,articletaghandle:t.articletaghandle,articletagtype:t.articletagtype,articletagtypetag:t.articletagtypetag,articletagtypetaghandle:t.articletagtypetaghandle,articletype:t.articletype,articlestrapline:t.articlestrapline,articlesocialtitle:t.articlesocialtitle,documenturl:t.documenturl,articlemedia:t.articlemedia,articlehawkmodels:t.articlehawkmodels,productrating:t.productrating,productpros:t.productpros,productcons:t.productcons,productverdict:t.productverdict,url:t.url,contentmodifieddate:t.contentmodifieddate,modifieddate:t.modifieddate,createddate:t.createddate,datepublished:t.datepublished,publisheddate:t.publisheddate,content:t.content,dek:t.dek,image_thumbnail:t.image_thumbnail,intro:t.intro,paragraphs:t.paragraphs,strapline:t.strapline,subtitle:t.subtitle,title:t.title,...n?{articlepage:n}:{}}}):[]}function pi(e){if(!e?.modifiedDate)return 0;let t=Array.isArray(e.modifiedDate)?e.modifiedDate[0]:e.modifiedDate,n=new Date(t).getTime();return Number.isNaN(n)?0:n}function nl(e){return e?.hasCommerceOffer===!0?!0:e?.hasCommerceOffer===!1?!1:!!(!e?.isBuyingGuideProduct&&!e?.isReviewProduct&&e?.url)}function ln(e,t,n=!0){let a=!0;t==="date_desc"?e.sort((l,i)=>pi(i)-pi(l)):t==="price_asc"?e.sort((l,i)=>l.rawPrice-i.rawPrice):t==="price_desc"?e.sort((l,i)=>i.rawPrice-l.rawPrice):t==="discount_desc"?e.sort((l,i)=>{let r=l.rawMsrp>l.rawPrice?l.rawMsrp-l.rawPrice:0;return(i.rawMsrp>i.rawPrice?i.rawMsrp-i.rawPrice:0)-r}):t==="rating_desc"?e.sort((l,i)=>{let r=Number(l.starRating)||0;return(Number(i.starRating)||0)-r||pi(i)-pi(l)}):t==="scored_first"?e.sort((l,i)=>{let r=Number(l.starRating)>0?1:0;return(Number(i.starRating)>0?1:0)-r||pi(i)-pi(l)}):a=!1,a&&n&&e.sort((l,i)=>Number(nl(i))-Number(nl(l)))}function cv(e,t,n){let a=e;if(!a&&t){let l=n.find(i=>i.toLowerCase()===t?.toLowerCase());l&&(a=l)}return a}function Pr(e,t){if(!t)return e;let n=t.toLowerCase();return e.filter(a=>a.articlecategory&&Array.isArray(a.articlecategory)&&a.articlecategory.some(l=>{if(!l||typeof l!="string")return!1;let i=l.toLowerCase(),r=i.split(":::");return i===n||r[0]===n||i.includes(n)}))}function sv(e){let t=wt(e.region);return{activeRegionCode:t,targetIso:an(t)}}function al(e,t,{discountAmount:n,priceRange:a}={}){let l=!!(a&&a!=="all"),i=!!(n&&n!=="0"&&n!=="all");return!t?.length&&!l&&!i?e:e.filter(r=>!r.isBuyingGuideProduct&&!r.isReviewProduct?!0:t?.length&&!di({brand:r.brand},t)||l&&(!Number(r.rawPrice)||!Sa(Number(r.rawPrice),a))?!1:Ca(Number(r.rawPrice)||0,Number(r.rawMsrp)||0,n))}function _2(e,t){let n=e.articleauthorhandle||[],a=e.articleauthor||[],l=e.articleauthortext||[],i=new Set([t.handle.toLowerCase(),t.fullName.toLowerCase(),t.name.toLowerCase()]);return[...n,...a,...l].some(r=>i.has(String(r||"").toLowerCase()))}function Sf(e,t,n){let a=Object.fromEntries(e.map(l=>[l.handle,0]));return t.forEach(l=>{let i=mi([l],n).length;i!==0&&e.forEach(r=>{_2(l,r)&&(a[r.handle]+=i)})}),a}function Cf(e,t){let n=Xu(e,t.authorHandle,t.authorName),a=t.selectedArticleId?n.filter(A=>A.id===t.selectedArticleId):n,{activeRegionCode:l,targetIso:i}=sv(t),{tags:r,tagCounts:o}=tc(a,{activeRegionCode:l,targetIso:i,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),u=cv(t.activeDealTag,t.query,r),c=Pr(a,u),{tags:s,tagCounts:f}=nc(c,{activeRegionCode:l,targetIso:i,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),d=t.activeFreeformTags?.length?t.activeFreeformTags:t.activeFreeformTag?[t.activeFreeformTag]:[],m=d.flatMap(A=>{let b=s.find(h=>h.handle.toLowerCase()===A.toLowerCase());return b?[b.handle]:[]}),v=t.preserveFreeformTagSelection?d:m;return{activeDealTag:u,activeFreeformTag:v[0]||null,activeFreeformTags:v,activeRegionCode:l,authorArticles:n,freeformTagCounts:f,freeformTags:s,tagCounts:o,tags:r,targetArticles:hi(c,v),targetIso:i}}function ic(e,t,n,a){let l=Iu(e,{activeRegionCode:n,targetIso:a,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,website:t.website}),i=Ur(e,{activeRegionCode:n,targetIso:a,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website});ln(i,t.sort,t.prioritiseCommercialProducts);let r=yn(al(i,t.selectedBrands,{discountAmount:t.discountAmount,priceRange:t.priceRange}),t.productSelection,t.sort).map(o=>(o.isBuyingGuideProduct||o.isReviewProduct)&&o.hawkModelName?{...o,hawkPricePending:!0}:o);return{brands:l,displayedDeals:r,extractedDeals:i}}function dv(e,t){let{activeRegionCode:n,targetIso:a}=sv(t),l=Lr(e,t.website||"tomsguide"),i=e.filter(o=>mi([o],{activeRegionCode:n,targetIso:a,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}).length>0),r=al(Ur(e,{activeRegionCode:n,targetIso:a,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),t.selectedBrands,{discountAmount:t.discountAmount,priceRange:t.priceRange});return{authorCount:kr(l,i).length,deals:r}}function fv({allArticles:e,authorArticles:t,inventoryArticles:n,bakeReviewInventory:a,brands:l,couponMap:i,currentDealTag:r,currentFreeformTags:o,displayedDeals:u,options:c,resultCount:s,tagCounts:f,tags:d,freeformTagCounts:m,freeformTags:v,totalAuthorCount:A,totalDealCount:b}){let h=Lr(e,c.website||"tomsguide"),g=Sf(h,n,{activeRegionCode:wt(c.region),targetIso:an(wt(c.region)),selectedBrands:c.selectedBrands,priceRange:c.priceRange,discountAmount:c.discountAmount,includeBuyingGuideProducts:c.includeBuyingGuideProducts,includeCollections:c.includeCollections,includeDeals:c.includeDeals,includeReviewProducts:c.includeReviewProducts,website:c.website}),p=kr(h,e.filter(C=>mi([C],{activeRegionCode:wt(c.region),targetIso:an(wt(c.region)),includeBuyingGuideProducts:c.includeBuyingGuideProducts,includeCollections:c.includeCollections,includeDeals:c.includeDeals,includeReviewProducts:c.includeReviewProducts,website:c.website}).length>0)),y=Number(s)||12;return{activeDealTag:r,activeFreeformTag:o[0]||null,activeFreeformTags:o,allDeals:a?ac(u,y):u,authorArticles:ov(t),authors:Yu(p,g),brands:l,couponMap:i,deals:u.slice(0,y),reviewInventoryBaked:a,tagCounts:f,tags:d,freeformTagCounts:m,freeformTags:v,totalAuthorCount:A,totalDealCount:b}}function B2(e){return e&&e.widget&&e.widget.data&&Array.isArray(e.widget.data.offers)?e.widget.data.offers:e&&e.data&&Array.isArray(e.data.offers)?e.data.offers:Array.isArray(e)?e:e&&Array.isArray(e.offers)?e.offers:e&&e.offers&&Array.isArray(e.offers.offer)?e.offers.offer:e&&Array.isArray(e.data)?e.data:[]}function gv(e,t,n){let a={...n},l=new Set;return B2(e).forEach(r=>{let o="";r.merchant_name?o=r.merchant_name:r.merchant&&r.merchant[0]&&r.merchant[0].name?o=r.merchant[0].name:r.merchant&&r.merchant.name?o=r.merchant.name:r.retailer&&(o=r.retailer),o&&l.add(o.toLowerCase())}),t.forEach(r=>{a[r]=l.has(r.toLowerCase())?"has":"none"}),a}function mv(e){let t=[];return e?.widget?.data?.offers?t=e.widget.data.offers:e?.data?.offers?t=e.data.offers:Array.isArray(e)?t=e:e?.offers?.offer?t=Array.isArray(e.offers.offer)?e.offers.offer:[e.offers.offer]:e?.offers&&(t=Array.isArray(e.offers)?e.offers:[e.offers]),t}async function hv({couponMap:e,couponUrl:t,fetcher:n=fetch,merchants:a}){if(!t)return e;try{let l=await n(t.toString());return gv(await l.json(),a,e)}catch{let l={...e};return a.forEach(i=>{l[i]="none"}),l}}function pv({enrichingBuyingGuides:e,error:t,loading:n,loadingMore:a,refreshingFeed:l}){return t?"error":a?"loading_more":n?"loading_inventory":l?"refreshing_inventory":e?"enriching_visible_cards":"ready"}function yv(e,t){let n=Xu(tl(e),t.authorHandle,t.authorName),a=wt(t.region),l=an(a),{tags:i,tagCounts:r}=tc(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),o=Iu(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,website:t.website}),{tags:u,tagCounts:c}=nc(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),s=$0(n,{activeRegionCode:a,targetIso:l,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website});ln(s,t.sort,t.prioritiseCommercialProducts);let f=yn(s,t.productSelection,t.sort);return{authorArticles:n,brands:o,deals:f,tagCounts:r,tags:i,freeformTagCounts:c,freeformTags:u}}var N2="fc-author-commerce-widget",vn="airedale-feeds";var rc=null;function vv(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Rf(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function Tf(){return rc||(typeof window>"u"||typeof window.indexedDB>"u"?Promise.resolve(null):(rc=new Promise(e=>{let t=window.indexedDB.open(N2,14);t.onupgradeneeded=()=>{let n=t.result;n.objectStoreNames.contains(vn)||n.createObjectStore(vn,{keyPath:"key"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null)}),rc))}function bv({authorHandle:e,authorName:t,includeBuyingGuideProducts:n,includeCollections:a,includeDeals:l,includeReviewProducts:i,articleCategory:r,articleTag:o,pageStarts:u,reviewPageStarts:c,loadAllReviewPages:s,website:f}){return["v14",f||"tomsguide",e||"",t||"",n?"buying-guides":"",a===!1?"no-collections":"collections",l===!1?"no-deals":"deals",i?"reviews":"",r||"",o||"",u?.join(",")||"",c?.join(",")||"",s===!1?"review-pages-partial":""].map(d=>encodeURIComponent(d)).join("|")}async function O2(e){let t=await Tf();if(!t)return;let n=t.transaction(vn,"readwrite"),a=Rf(n);n.objectStore(vn).delete(e),await a}async function Av(e,t=Date.now()){try{let n=await Tf();if(!n)return null;let a=n.transaction(vn,"readonly"),l=await vv(a.objectStore(vn).get(e));if(!l||l.schemaVersion!==14||!Array.isArray(l.articles)||l.articles.length===0)return null;let i=Math.max(0,t-l.cachedAt);return i>864e5?(O2(e),null):{articles:l.articles,cachedAt:l.cachedAt,isFresh:i<=6e5}}catch{return null}}async function k2(e){let t=e.transaction(vn,"readwrite"),n=Rf(t),a=t.objectStore(vn);(await vv(a.getAll())).sort((i,r)=>r.cachedAt-i.cachedAt).slice(10).forEach(i=>a.delete(i.key)),await n}async function wv(e,t,n=Date.now()){if(t.length!==0)try{let a=await Tf();if(!a)return;let l=a.transaction(vn,"readwrite"),i=Rf(l);l.objectStore(vn).put({articles:t,cachedAt:n,key:e,schemaVersion:14}),await i,await k2(a)}catch{}}var Ef=[];var Mf=[],Df=0;function Sv(){for(;Df<4&&Mf.length>0;){let e=Mf.shift();if(!e)return;Df+=1,e.run().then(e.resolve,e.reject).finally(()=>{Df-=1,Sv()})}}function L2(e){return new Promise((t,n)=>{Mf.push({reject:n,resolve:t,run:e}),Sv()})}function xf(e){Ef.push(e),Ef.length>100&&Ef.shift()}async function oc(e,t,n=4){let a=new Array(e.length),l=0,i=Math.min(Math.max(1,n),e.length);return await Promise.all(Array.from({length:i},async()=>{for(;l<e.length;){let r=l;l+=1,a[r]=await t(e[r],r)}})),a}async function yi(e,t){return L2(async()=>{let n=t.fetcher||fetch,a=Date.now(),l=new AbortController,i=!1,r=()=>l.abort();if(t.signal?.aborted)return xf({durationMs:0,outcome:"aborted",source:t.source,startedAt:a}),{data:null,response:null};t.signal?.addEventListener("abort",r,{once:!0});let o=setTimeout(()=>{i=!0,l.abort()},8e3);try{let u=await n(e,{signal:l.signal}),c=u.ok?await u.json():null;return xf({durationMs:Date.now()-a,outcome:u.ok?"succeeded":"failed",source:t.source,startedAt:a}),{data:c,response:u}}catch{return xf({durationMs:Date.now()-a,outcome:i?"timed_out":t.signal?.aborted?"aborted":"failed",source:t.source,startedAt:a}),{data:null,response:null}}finally{clearTimeout(o),t.signal?.removeEventListener("abort",r)}})}var Bf="https://airedale.futurecdn.net/feeds/feed_1786707986217.json",H2="https://airedale.futurecdn.net/feeds/feed_1786702796175.json",z2="https://airedale.futurecdn.net/feeds/feed_1787582137748.json",U2=2,_f=new Map,Cv=new Map;function Rv(e){let t=new URL(e),n=String(t.searchParams.get("articleType")||"").trim().toLowerCase(),a=String(t.searchParams.get("articleControlTag")||"").replace(/[\s-]+/g,"_").toLowerCase();return n!=="deals"&&a!=="type_deal"?null:(t.searchParams.delete("start"),t.toString())}function G2(e){return!e.response?.ok||e.articles.length<50?!1:!e.articles.some(t=>pf(t)&&!yf(t))}function P2(e){return!e.parameter||!e.value?"":`&${e.parameter}=${encodeURIComponent(e.value)}`}function q2(e,t="",n=!1,a,l,{includeCollections:i=!0,includeDeals:r=!0}={},o){let u=Wu(e,{includeBuyingGuideProducts:n,includeCollections:i,includeDeals:r}),c=a?`&articleCategory=${encodeURIComponent(a)}`:"",s=o?`&articleTag=${encodeURIComponent(o)}`:"";return u.scopes.flatMap(f=>(l||u.pageStarts).map(d=>`${Bf}?site=${e}&limit=${50}&start=${d}${P2(f)}${t}${c}${s}`))}function Tv(e,t="",n,a=0,l){let i=e==="pcgamer"?"&articleControlTag=channel_gaming_hardware":"",r=n?`&articleCategory=${encodeURIComponent(n)}`:"",o=l?`&articleTag=${encodeURIComponent(l)}`:"";return`${H2}?site=${encodeURIComponent(e)}&articleType=review&limit=${50}&start=${a}${i}${t}${r}${o}`}function F2(e,t){return t!=="pcgamer"?e:e.map(n=>{let a=Array.isArray(n.articlecontroltag)?n.articlecontroltag:[];return a.some(l=>String(l).replace(/[^a-z0-9]/gi,"").toLowerCase()==="channelgaminghardware")?n:{...n,articlecontroltag:[...a,"channel_gaming_hardware"]}})}function j2(e,t){return`${z2}?site=${encodeURIComponent(e)}&documentHandle=${encodeURIComponent(t)}&limit=1`}async function Y2(e,t){let n=`${e}|${t}`,a=Cv.get(n);if(a)return a;let l=yi(j2(e,t),{source:"review-model-resolver"}).then(({data:i})=>i?gf(i)[0]:null).then(i=>i?gi(i):"").catch(()=>"");return Cv.set(n,l),l}async function Nf(e,t,n,a="date_desc"){let l=o=>{let u=[o.datepublished,o.publisheddate,o.createddate,o.contentmodifieddate,o.modifieddate].find(s=>s!=null&&String(s).trim()),c=new Date(Array.isArray(u)?u[0]:u).getTime();return Number.isFinite(c)?c:0},i=o=>{let u=Array.isArray(o.productrating)?o.productrating[0]:o.productrating;return Number(u)||0},r=e.filter(o=>Zt(o)==="review"&&!gi(o)&&typeof o.documenthandle=="string"&&o.documenthandle.trim()).sort((o,u)=>{let c=i(o),s=i(u);return a==="rating_desc"?s-c||l(u)-l(o):a==="scored_first"&&+(s>0)-+(c>0)||l(u)-l(o)}).slice(0,n);return await Promise.all(r.map(async o=>{let u=await Y2(t,o.documenthandle);u&&(o.articlehawkmodels=[u])})),e}function xv(e,t){let n=()=>{wv(e,uv(t))};if(typeof window<"u"&&typeof window.requestIdleCallback=="function"){window.requestIdleCallback(n,{timeout:2e3});return}setTimeout(n,0)}function V2(e,t){return e&&e!=="all-authors"?`&articleAuthorHandle=${encodeURIComponent(e)}`:t&&t!=="All authors"&&t!=="all-authors"?`&articleAuthor=${encodeURIComponent(t)}`:""}function X2({articleCategory:e,articleTag:t,authorParameter:n}){return!!(n&&!e&&!t)}async function Mv({authorHandle:e,authorName:t,fallbackAuthorName:n,includeBuyingGuideProducts:a,includeCollections:l,includeDeals:i,includeReviewProducts:r,onProgress:o,articleCategory:u,articleTag:c,pageStarts:s,reviewPageStarts:f,loadAllReviewPages:d,signal:m,throwOnFailure:v,website:A}){let b=A||"tomsguide",h=V2(e,t),g=[],p=!1,y=!0,C=w=>j0(w,b,a,r,l,i),R=()=>q0(g).map(w=>{let D=gi(w);return D&&!String(w.articlehawkmodels||"").trim()?{...w,articlehawkmodels:[D]}:w}).filter(C),T=()=>{let w=R();w.length>0&&o?.(w)};try{let w=q2(b,h,a,u,s,{includeCollections:l,includeDeals:i},c),D=[];r&&(f||[0]).forEach(X=>{let de=Tv(b,h,u,X,c);D.push(de),w.push(de)});let k=async(X,de=D.includes(X)?"review-feed":"author-feed")=>{let $e=await yi(X,{signal:m,source:de});for(let jr=0;jr<U2&&!$e.response?.ok&&!m?.aborted;jr+=1)$e=await yi(X,{signal:m,source:de});let{data:Z,response:x}=$e,P=Z?gf(Z):[],Q=b==="pcgamer"&&de.startsWith("review-feed")?F2(P,b):P,Vn={articles:Q,data:Z,isPcGamerHardwareReviewFeed:b==="pcgamer"&&de.startsWith("review-feed"),response:x,reviewTotalCount:D.includes(X)&&Number(x?.headers.get("x-total-count"))||null};return Q.length>0&&g.push(...Q),Vn},se=w.filter(X=>Number(new URL(X).searchParams.get("start")||0)===0),I=w.filter(X=>!se.includes(X)),j=await oc(se,X=>k(X));T();let He=new Map(se.flatMap((X,de)=>{let $e=Rv(X);return $e?[[$e,j[de]]]:[]})),ze=new Map,St=[];I.forEach(X=>{let de=Rv(X);if(!de){St.push(X);return}ze.set(de,[...ze.get(de)||[],X])});let[Ie,rn]=await Promise.all([oc(St,X=>k(X)),Promise.all([...ze.entries()].map(async([X,de])=>{let $e=[],Z=He.get(X);for(let x of de){if(!Z||!G2(Z))break;let P=await k(x);$e.push(P),Z=P}return $e}))]),Be=[...Ie,...rn.flat()],Je=[...j,...Be];p=Je.length>0&&Je.every(X=>!X.response?.ok);let nt=Je.find(X=>X.reviewTotalCount!==null)?.reviewTotalCount;if(d!==!1&&f&&nt&&nt>f.length*50){let X=new Set(f),de=[];for(let Z=0;Z<nt;Z+=50)X.has(Z)||de.push(Z);let $e=await oc(de,async Z=>await k(Tv(b,h,u,Z,c),"review-feed-page"));Je.push(...$e)}y=Je.every(X=>X.response?.ok)}catch(w){y=!1}if(v&&p)throw new Error("The author feed could not be loaded");let M=R();if(M.length===0&&X2({authorParameter:h,articleCategory:u,articleTag:c}))try{let w=await yi(`${Bf}?site=${b}&limit=150${h}`,{signal:m,source:"author-feed-fallback"});if(!w.response?.ok&&n&&(w=await yi(`${Bf}?site=${b}&limit=150&articleAuthor=${encodeURIComponent(n)}`,{signal:m,source:"author-feed-fallback"})),w.data){let D=w.data,k=Array.isArray(D)?D:D.data||[];k.length>0&&(M=k.slice(0,150))}}catch(w){}return{articles:M.filter(C),complete:!m?.aborted&&y}}function Ev(e,t){let n=_f.get(e);if(n)return n;let a=Mv(t).then(l=>(l.complete&&l.articles.length>0&&xv(e,l.articles),l)).finally(()=>{_f.delete(e)});return _f.set(e,a),a}async function Dv(e,t){let n=await Mv(t);return n.complete&&n.articles.length>0&&xv(e,n.articles),n}async function _v({onBackgroundRefresh:e,onProgress:t,...n}){let a=bv(n),l=await Av(a);return l?(t?.(l.articles),l.isFresh||(n.signal?Dv(a,n):Ev(a,n)).then(({articles:o,complete:u})=>{u&&o.length>0&&e?.(o)}),l.articles):(await(n.signal?Dv(a,{...n,onProgress:t}):Ev(a,{...n,onProgress:t}))).articles}function Of(e,t){let n=e.shipping?.prime===!0,a=e.merchant?.name||e.merchant_name||e.retailer||"Retailer";typeof e.merchant=="string"&&(a=e.merchant);let l=null,i=0,r=String(e.model_id||e.id||"");if(r&&t)if(t[r]&&t[r].score!=null)l=parseFloat(t[r].score);else{let o=Object.values(t).find(u=>String(u.model_id)===r||String(u.id)===r);o&&o.score!=null&&(l=parseFloat(o.score))}return l!=null&&(i=Math.round((l>10?l/20:l/2)*2)/2),{isPrime:n,merchant:a,starRating:i>0?i:null}}function kf(e){let t=String(e.price||e.current_price||"0"),n=String(e.was_price||e.msrp||e.original_price||"0"),a=parseFloat(t.replace(/[^0-9.]/g,""))||0,l=parseFloat(n.replace(/[^0-9.]/g,""))||0,i=a===0||t==="0.00"||t==="0",r=e.currency&&typeof e.currency=="string"?e.currency:e.currency_symbol&&typeof e.currency_symbol=="string"?e.currency_symbol:"$",o=ee(e.percentage_saving_label||"");!o&&l>a&&a>0&&(o=Math.round((l-a)/l*100)+"% OFF");let u=r;return u.includes("&")&&(u.includes("36")?u="$":u.includes("163")||u.includes("pound")?u="\xA3":(u.includes("8364")||u.includes("euro"))&&(u="\u20AC")),{rawPrice:a,rawMsrp:l,currency:u,isCheckPrice:i,savingLabel:o}}function Bv({query:e,region:t,retailer:n,selectedBrands:a,offerType:l,priceRange:i,discountAmount:r,resultCount:o}){let u=new URL("https://search-api.fie.future.net.uk/widget.php");if(u.searchParams.append("model_name",e),t&&t!=="auto"&&u.searchParams.append("area",t),n&&u.searchParams.append("filter_merchant_name",n),a&&a.length>0&&u.searchParams.append("filter_label[text_brand]",a.join(",")),l&&u.searchParams.append("offer",l),i&&i!=="all"){if(i==="under50")u.searchParams.append("filter_max_price","50");else if(i==="over50")u.searchParams.append("filter_min_price","50");else if(i==="over30")u.searchParams.append("filter_min_price","30");else if(i==="over500")u.searchParams.append("filter_min_price","500");else if(i.includes("_")){let[c,s]=i.split("_");c&&u.searchParams.append("filter_min_price",c),s&&u.searchParams.append("filter_max_price",s)}}if(r&&r!=="0"){let c=(100-parseInt(r))/100;u.searchParams.append("min_discount_ratio",c.toString())}return u.searchParams.append("filter_product_types","deals"),u.searchParams.append("rows",String(o||"12")),u}function Nv(e){return e?.widget?.data?.offers?e.widget.data.offers:e?.data?.offers?e.data.offers:Array.isArray(e)?e:e?.offers?.offer?Array.isArray(e.offers.offer)?e.offers.offer:[e.offers.offer]:e?.offers?Array.isArray(e.offers)?e.offers:[e.offers]:[]}function Ov(e){let t=[];return e.forEach(n=>{let a=[];Array.isArray(n.offers)?a=n.offers:Array.isArray(n.offer)?a=n.offer:n.offers&&typeof n.offers=="object"?a=[n.offers]:n.offer&&typeof n.offer=="object"&&(a=[n.offer]),a.length>0?a.forEach(l=>{t.push({...n,...l})}):t.push(n)}),t}function kv(e){return e?.widget?.data?.model_info?e.widget.data.model_info:e?.data?.model_info?e.data.model_info:{}}var Lf=new Map,Q2=3e3,K2=["GB","US"],Lv=6,Z2=["brand","currency","fallbackImage","hasCommerceOffer","hawkPricePending","hawkListings","image","isCheckPrice","merchant","merchantId","modelId","msrp","price","productKey","productName","rawMsrp","rawPrice","savingLabel","title","url"];function Hf(e){return String(e||"").trim().toLowerCase()}function Gv(e){return e==="UK"?"GB":e}function Pv(e,t){let n=String(t||"").trim().toUpperCase(),l={AU:["A$","AUD"],CA:["CA$","CAD"],DE:["\u20AC","EUR"],ES:["\u20AC","EUR"],FR:["\u20AC","EUR"],GB:["\xA3","GBP","GB\xA3"],IT:["\u20AC","EUR"],NL:["\u20AC","EUR"],US:["$","USD","US$"]}[e];return!l||l.includes(n)}function Hv(e,t){return String(e.id||`hawk-deal-${t}`)}function W2(e){return e.map(t=>({...t,hasCommerceOffer:!1,hawkPricePending:!!t.hawkModelName,hawkListings:[],image:t.fallbackImage||t.image||"",isCheckPrice:!0,merchant:"",merchantId:"",msrp:"",price:"",productKey:"",rawMsrp:0,rawPrice:0,savingLabel:"",url:t.sourceArticleUrl||t.documentUrl||t.url}))}function I2(e){return Z2.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{})}function qv(e){return!!((e.isBuyingGuideProduct||e.isReviewProduct)&&e.hawkModelName)}function J2(e){return e.model_image_url||e.model_image||e.product_image||e.image_url||e.image||""}function Fv(e){return e.link||e.url||e.offer_link||""}function $2(e,t){let n=String(t.model_id||t.id||"");return n&&e[n]?e[n]:Object.values(e).find(a=>String(a?.model_id||a?.id||"")===n)||{}}function eS(e,t,n){let a=e.map(i=>{let r=kf(i),o=Of(i,t),u=Fv(i),c=ee(String(o.merchant||"")).trim();return!u||!c||r.rawPrice<=0||!Pv(n,r.currency)?null:{merchant:c,merchantId:typeof i.merchant=="object"?String(i.merchant?.id||""):"",modelId:String(i.model_id||""),offer:i,productKey:String(i.product_key||""),rawPrice:r.rawPrice,url:u}}).filter(i=>i!==null).sort((i,r)=>i.rawPrice-r.rawPrice||i.merchant.localeCompare(r.merchant)),l=new Set;return a.filter(i=>{let r=i.merchant.toLocaleLowerCase();return l.has(r)?!1:(l.add(r),!0)}).slice(0,4)}async function zv(e,t,n){let a=`${t}|${Hf(e)}`;return Lf.has(a)||Lf.set(a,(async()=>{let l;try{let i=new AbortController;l=setTimeout(()=>i.abort(),Q2);let r=await n(Bv({query:e,region:t,resultCount:12}).toString(),{signal:i.signal});if(!r.ok)return null;let o=await r.json(),u=Ov(Nv(o)),c=Hf(e),s=u.filter(A=>Hf(A.model_name||A.model)===c),f=s.length?s:u,d=f[0]||null;if(!d)return null;let m=kv(o),v=$2(m,d);return{brand:String(v?.brand||d.brand||"").trim(),modelInfo:m,offer:d,offers:f}}catch{return null}finally{l&&clearTimeout(l)}})()),Lf.get(a)}function Uv(e,t,n){return e.map(a=>{let l=String(a.hawkModelName);if(!qv(a)||!t.has(l))return a;let i=t.get(l);if(!i)return{...a,hawkPricePending:!1};let{offer:r}=i.lookup,o=kf(r),u=Of(r,i.lookup.modelInfo),c=J2(r),s=Fv(r),f=ee(String(r.model_name||r.model||a.hawkModelName||a.productName||a.title||"").trim()),d=!!(i.region===n&&s&&Pv(n,o.currency)),m=i.region===n?eS(i.lookup.offers,i.lookup.modelInfo,n).map(({offer:v,...A})=>A):[];return d?{...a,brand:i.lookup.brand||r.brand||a.brand,currency:o.currency||a.currency,fallbackImage:c?a.image:a.fallbackImage,hasCommerceOffer:!0,hawkPricePending:!1,hawkListings:m,image:c||a.image,isCheckPrice:o.isCheckPrice,merchant:u.merchant||a.merchant,merchantId:typeof r.merchant=="object"&&r.merchant?.id||"",modelId:r.model_id||"",msrp:o.rawMsrp>0?String(o.rawMsrp):"",price:o.rawPrice>0?String(o.rawPrice):"",productKey:r.product_key||"",productName:f||a.productName,rawMsrp:o.rawMsrp,rawPrice:o.rawPrice,savingLabel:o.savingLabel,title:f||a.title,url:s||a.url}:{...a,brand:i.lookup.brand||a.brand,fallbackImage:c?a.image:a.fallbackImage,hawkPricePending:!1,image:c||a.image,productName:f||a.productName,title:f||a.title}})}async function vi(e,t,n=fetch,a,l=[],i){let r=Gv(t),o=new Map,u=e.filter(qv).map(f=>String(f.hawkModelName)),c=new Set(u),s=Array.from(new Set([...l.filter(f=>c.has(f)),...u])).slice(0,a);for(let f=0;f<s.length;f+=Lv)await Promise.all(s.slice(f,f+Lv).map(async d=>{let m=await zv(d,r,n),v=m||r==="GB"?null:await zv(d,"GB",n);o.set(d,m?{lookup:m,region:r}:v?{lookup:v,region:"GB"}:null),i?.(Uv(e,o,r))}));return Uv(e,o,r)}async function jv(e,t=fetch){let n=W2(e),a=await Promise.all(K2.map(async i=>[i,await vi(n,i,t)])),l=new Map;return a.forEach(([i,r])=>{r.forEach((o,u)=>{if(!o.hasCommerceOffer)return;let c=Hv(o,u),s=l.get(c)||{};s[i]=I2(o),l.set(c,s)})}),e.map((i,r)=>{let o=l.get(Hv(i,r));return o?{...i,hawkRegionalCommerce:o}:i})}function zf(e,t){let n=Gv(t);return e.map(a=>{let l=a.hawkRegionalCommerce?.[n];return l?{...a,...l,hawkPricePending:!1}:a})}function Yv(e,t){let n=Array.from(new Set(e.map(i=>i.merchant).filter(Boolean))),a={};if(n.forEach(i=>{a[i]="loading"}),n.length===0)return{merchants:n,couponMap:a,couponUrl:null};let l=new URL("https://search-api.fie.future.net.uk/widget.php");return l.searchParams.append("model_name","Everything"),l.searchParams.append("filter_merchant_name",n.join(",")),l.searchParams.append("filter_product_types","vouchers,offer_deals,newsletter"),l.searchParams.append("sort","voucher"),l.searchParams.append("rows","120"),l.searchParams.append("origin","widgets-clientside"),l.searchParams.append("combine_product_types","1"),l.searchParams.append("language","en-GB"),l.searchParams.append("all_filters","false"),l.searchParams.append("exclude_unlabelled","false"),l.searchParams.append("include_specs","false"),t&&t!=="auto"&&l.searchParams.append("area",t),{merchants:n,couponMap:a,couponUrl:l}}function Vv(e,t){let n=new URL("https://search-api.fie.future.net.uk/widget.php");return n.searchParams.append("model_name","Everything"),n.searchParams.append("language","en-GB"),t&&t!=="auto"&&n.searchParams.append("area",t),n.searchParams.append("combine_product_types","1"),n.searchParams.append("filter_merchant_name",e),n.searchParams.append("all_filters","false"),n.searchParams.append("exclude_unlabelled","false"),n.searchParams.append("include_specs","false"),n.searchParams.append("sort","voucher"),n.searchParams.append("distinct_merchants","natural"),n.searchParams.append("filter_product_types","vouchers,offer_deals,newsletter"),n.searchParams.append("rows","50"),n.searchParams.append("origin","widgets-clientside"),n}function Uf(e,t,n=!0){if(!e?.length)return e||[];if(t==="date_desc"&&!n)return e;let a=[...e];return ln(a,t,n),a}function uc(e,t,n,a=!0){if(n!=="date_desc"||!e?.length)return t;let l=(c,s)=>String(c.id||s),i=new Map(t.map((c,s)=>[l(c,s),c])),r=new Set,o=e.flatMap((c,s)=>{let f=l(c,s);r.add(f);let d=i.get(f);return d?[d]:[]}),u=t.filter((c,s)=>!r.has(l(c,s)));return a?[...o.filter(nl),...u.filter(nl),...o.filter(c=>!nl(c)),...u.filter(c=>!nl(c))]:[...o,...u]}function Xv({activeDealTag:e,activeFreeformTag:t,clickedAuthorOverride:n,compactEmbed:a,compactInventoryExplored:l,compactLoadRequested:i,initialActiveDealTag:r,initialActiveFreeformTag:o,reviewInventoryBaked:u}){return!!(a&&u&&!n&&!i&&!l&&(!e||e===r)&&(!t||t===o))}var Qv=[0,50,100,150,200,250,300,350,400,450],Gf=4;function Kv(e){return(Array.isArray(e)?e:[e]).reduce((n,a)=>{if(typeof a!="string"||!a.trim())return n;let l=a.trim();return n.some(i=>i.toLowerCase()===l.toLowerCase())?n:[...n,l]},[])}function nS(e,t){return e.length===t.length&&e.every((n,a)=>n===t[a])}function Pf(e){return e.map(t=>t.trim().toLowerCase()).sort().join("|")}function qf(e){let t=e.initialData,n=Fu(e),a=!!(e.preloadReviewInventory&&!n),l=!!(e.preloadReviewInventory&&e.includeReviewProducts&&!e.compactEmbed),i=n?Number(e.resultCount)||12:100,r=n?!1:e.prioritiseCommercialProducts,o=wt(e.region),u=zf(t?.allDeals||t?.deals||[],o).filter(_=>P0(_,o)),c=wa(n?"date_desc":e.sort,!Or(e)),s=!!(e.priceRange&&e.priceRange!=="all")||!!(e.discountAmount&&e.discountAmount!=="0"&&e.discountAmount!=="all"),f=tl(t?.authorArticles||[],void 0,Number(e.editorialMaxAgeMonths)||0),d=tl(t?.authorInteractionArticles||[],void 0,Number(e.editorialMaxAgeMonths)||0),[m,v]=(0,N.useState)(()=>Uf(u,c,r)),[A,b]=(0,N.useState)(t?.totalDealCount??t?.allDeals?.length??t?.deals?.length??0),[h,g]=(0,N.useState)(t?.totalAuthorCount??t?.authors?.length??0),[p,y]=(0,N.useState)(!t),[C,R]=(0,N.useState)(!1),[T,M]=(0,N.useState)(!1),[w,D]=(0,N.useState)(!1),[k,se]=(0,N.useState)(t?.couponMap||{}),[I,j]=(0,N.useState)(f),[He,ze]=(0,N.useState)(f),[St,Ie]=(0,N.useState)(t?.tags||[]),[rn,Be]=(0,N.useState)(t?.tagCounts||{}),[Je,nt]=(0,N.useState)(t?.freeformTags||[]),[X,de]=(0,N.useState)(t?.freeformTagCounts||{}),[$e,Z]=(0,N.useState)(t?.brands||[]),[x,P]=(0,N.useState)(()=>{let _=t?.activeDealTag||e.query;return _&&_.toLowerCase()!=="everything"?_:null}),[Q,Vn]=(0,N.useState)(()=>Kv(t?.activeFreeformTags||t?.activeFreeformTag)),[jr,bi]=(0,N.useState)(f),[sc,ll]=(0,N.useState)(null),[at,Yr]=(0,N.useState)(!1),[il,Vr]=(0,N.useState)(""),[rl,Xr]=(0,N.useState)(""),[f1,g1]=(0,N.useState)(0),[Wt,dc]=(0,N.useState)(e.resultCount?parseInt(e.resultCount):12),[Xf,fc]=(0,N.useState)(!1),[m1,Qr]=(0,N.useState)(null),[gc,h1]=(0,N.useState)(!1),[mc,p1]=(0,N.useState)([0]),Kr=(0,N.useRef)(t?`${e.website||"tomsguide"}|${e.authorHandle||""}|${e.authorName||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}`:""),hc=(0,N.useRef)(t?`${e.website||"tomsguide"}|${e.authorHandle||""}|${e.authorName||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}|age-${e.editorialMaxAgeMonths||"none"}`:""),y1=(0,N.useRef)(e.website||"tomsguide"),pc=(0,N.useRef)(e.website||"tomsguide"),Qf=(0,N.useRef)(u.length>0),Kf=(0,N.useRef)(null),ol=(0,N.useRef)(new Map),v1=(0,N.useRef)({activeDealTag:String(x||"").trim().toLowerCase(),freeformTags:Pf(Kv(t?.activeFreeformTags||t?.activeFreeformTag)),discountAmount:e.discountAmount,priceRange:e.priceRange}),Xn=(0,N.useRef)(!1),De=(0,N.useRef)(!1),Ai=(0,N.useRef)(!1),Zf=(_,oe,ne=at?il:e.authorHandle,we=at?rl:e.authorName)=>[e.website||"tomsguide",ne||"",we||"",wt(e.region),String(_||"").trim().toLowerCase(),Pf(oe),e.priceRange,e.discountAmount,e.includeBuyingGuideProducts?"guides":"",e.includeReviewProducts?"reviews":"",e.includeDeals===!1?"no-deals":"deals",e.includeCollections===!1?"no-collections":"collections"].join("|"),Wf=(_,oe)=>{let ne=v1.current;return!!(e.compactEmbed&&t?.brands?.length&&String(_||"").trim().toLowerCase()===ne.activeDealTag&&Pf(oe)===ne.freeformTags&&e.priceRange===ne.priceRange&&e.discountAmount===ne.discountAmount)},Zr=(_,oe)=>{let ne=ol.current.get(Zf(_,oe));if(ne){Z(ne);return}if(Wf(_,oe)){Z(t?.brands||[]);return}},ul=()=>Xn.current||n?void 0:e.productSelection;(0,N.useEffect)(()=>{ll(null)},[e.authorName,e.authorHandle]),(0,N.useLayoutEffect)(()=>{let _=e.website||"tomsguide";pc.current!==_&&(pc.current=_,v(()=>[]),j(()=>[]),ze(()=>[]),bi(()=>[]),Ie(()=>[]),Be({}),nt(()=>[]),de({}),Z(()=>[]),ol.current.clear(),se({}),Yr(!1),Vr(""),Xr(""),ll(null),P(null),Vn([]),g(0),b(0),M(!1),fc(!1),Qr(null),Ai.current=!1,R(!0),y(!0))},[e.website]),(0,N.useEffect)(()=>{e.compactEmbed||typeof document>"u"||setTimeout(()=>{document.dispatchEvent(new CustomEvent("processArticle"))},100)},[m,Wt,e.query,x,Q]),(0,N.useEffect)(()=>{e.resultCount&&(dc(parseInt(e.resultCount,10)||12),Qr(null))},[e.resultCount]),(0,N.useEffect)(()=>{Qr(null)},[x,Q,e.authorHandle,e.authorName,e.discountAmount,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.priceRange,e.region,e.selectedBrands,e.sort]),(0,N.useEffect)(()=>{if(!t||!e.includeBuyingGuideProducts&&!e.includeReviewProducts||e.compactEmbed&&(De.current||e.refreshDealsOnViewport))return;let _=wt(e.region),oe=zf(t.allDeals||t.deals||[],_);if(_==="unavailable"){let It=oe.map(on=>(on.isBuyingGuideProduct||on.isReviewProduct)&&on.hawkModelName?{...on,hawkPricePending:!1}:on);ln(It,c,r),v(yn(It,ul(),c));return}let ne=al(oe,e.selectedBrands),we=Number(e.resultCount)||12,Ta=typeof navigator>"u"?void 0:navigator.connection,Ea=!Ta?.saveData&&!Ta?.effectiveType?.includes("2g")&&(!e.compactEmbed||!!e.warmInventory),Si=s?ne:t.reviewInventoryBaked?ne.slice(0,Wt+(Ea?we:0)):oe;if(!Si.some(It=>(It.isBuyingGuideProduct||It.isReviewProduct)&&It.hawkModelName))return;let sl=!0;return M(!0),vi(Si,_).then(It=>{if(!sl)return;let on=t.reviewInventoryBaked?lv(oe,It):It,Ir=al(on,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange}).map(lt=>(lt.isBuyingGuideProduct||lt.isReviewProduct)&&lt.hawkModelName?{...lt,hawkPricePending:!1}:lt);ln(Ir,c,r),v(yn(Ir,ul(),c)),Z(lt=>t?.brands?.length?lt:hf(lt,It))}).finally(()=>{sl&&M(!1)}),()=>{sl=!1}},[t,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.region,e.selectedBrands,e.discountAmount,e.priceRange,c,e.productSelection,Wt,e.resultCount,e.compactEmbed,e.warmInventory,e.refreshDealsOnViewport,x,Q]),(0,N.useEffect)(()=>{let _=!0,oe=new AbortController,ne=Ai.current,we=!e.refreshDealsOnViewport&&Xv({activeDealTag:x,activeFreeformTag:Q[0]||null,clickedAuthorOverride:at,compactEmbed:e.compactEmbed,compactInventoryExplored:De.current,compactLoadRequested:gc,initialActiveDealTag:t?.activeDealTag,initialActiveFreeformTag:t?.activeFreeformTag,reviewInventoryBaked:t?.reviewInventoryBaked}),Ta=u.length>0,Ea=!!(n&&e.compactEmbed&&!De.current),Si=!!(Ea&&e.warmInventory&&I.length===0&&m.length>0),sl=!!(we||e.compactEmbed&&Ta&&I.length===0&&!at&&!gc&&!De.current&&!e.refreshDealsOnViewport&&(!n||!e.warmInventory));return!sl&&!ne&&!Si&&(R(!0),e.compactEmbed&&De.current&&v([])),(async()=>{D(!1),M(!1);let on=m.length>0||St.length>0||Je.length>0||$e.length>0,Ir=sl;try{if(!e.authorName&&!e.authorHandle){v([]),j([]),bi([]),Ie([]),nt([]),Z([]),ll(null),P(null),Vn([]),y(!0);return}let lt=at?il:e.authorHandle,Jr=at?rl:e.authorName,$r=`${e.website||"tomsguide"}|${lt||""}|${Jr||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}`,yc=`${$r}|${e.compactEmbed&&x||""}|${e.compactEmbed?Q.join(","):""}|${e.compactEmbed&&De.current?"expanded":e.refreshDealsOnViewport?"viewport-refresh":"initial"}|lightweight-pages-${Ea?mc.join(","):"all"}|age-${e.editorialMaxAgeMonths||"none"}`,Jt=I,$f=St,U1=ev(Je,Q.length===1?Q[0]:null),eg=()=>({activeDealTag:x,activeFreeformTag:Q[0]||null,activeFreeformTags:Q,preserveFreeformTagSelection:!!(e.compactEmbed&&Q.length),authorHandle:lt,authorName:Jr,discountAmount:e.discountAmount,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,priceRange:e.priceRange,prioritiseCommercialProducts:r,productSelection:ul(),query:e.query,region:e.region,selectedArticleId:sc,selectedBrands:e.selectedBrands,sort:c,website:e.website}),tg=hc.current!==yc||Jt.length===0,Da=[],vc=!1,ng=(me,zt=!1)=>{if(!_||zt&&vc)return;let bn=al(me,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange});ln(bn,c,r);let Di=yn(bn,ul(),c);v(uc(Da,Di,c,r))};if(Ir){y(!1),R(!1);return}if(tg){let me=Kr.current.split("|")[0],zt=e.website||"tomsguide",bn=!!(Kr.current&&me!==zt);!ne&&!Si&&R(!!e.compactEmbed||!on),bn&&(Jt=[],$f=[],v(()=>[]),j(()=>[]),ze(()=>[]),bi(()=>[]),Ie(()=>[]),Be({}),nt(()=>[]),de({}),Z(()=>[]),se({}),Yr(!1),Vr(""),Xr(""),y(!0));let Di=Qf.current&&Kr.current===$r&&Jt.length===0&&!De.current;Qf.current=!1,!Di&&!on&&y(!0);let lo=Ba=>{if(!_||Ba.length===0)return;let fe=eg(),it=Cf(Ba,fe),{displayedDeals:io}=ic(it.targetArticles,fe,it.activeRegionCode,it.targetIso);io.length!==0&&(Da=io,v(Da),y(!1),e.includeReviewProducts&&Nf(it.targetArticles,e.website||"tomsguide",Math.min(Wt,Gf),c).then(()=>{if(!_||vc)return;let An=ic(it.targetArticles,fe,it.activeRegionCode,it.targetIso);Da=An.displayedDeals,v(Da);let xi=An.displayedDeals.filter(dt=>dt.isReviewProduct&&dt.hawkModelName).slice(0,Gf).map(dt=>String(dt.hawkModelName));vi(An.extractedDeals,it.activeRegionCode,void 0,Gf,xi,dt=>ng(dt,!0))}))};if(Jt=await _v({authorHandle:lt,authorName:Jr,fallbackAuthorName:e.authorName,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,articleCategory:e.compactEmbed&&x||void 0,articleTag:e.compactEmbed?U1:void 0,pageStarts:e.compactEmbed&&!e.warmInventory&&!De.current?[0]:void 0,reviewPageStarts:e.includeReviewProducts?Ea?mc:!e.compactEmbed||De.current?Qv:void 0:void 0,loadAllReviewPages:!Ea,throwOnFailure:!!(e.compactEmbed&&De.current),onBackgroundRefresh:Ba=>{if(!_||hc.current!==yc)return;let fe=tl(Ba,void 0,Number(e.editorialMaxAgeMonths)||0);j(fe),at||ze(fe),g1(it=>it+1)},onProgress:lo,signal:oe.signal,website:e.website}),!_)return;if(Jt=tl(Jt,void 0,Number(e.editorialMaxAgeMonths)||0),Kr.current=$r,hc.current=yc,Di&&Jt.length===0){y(!1);return}_&&(j(Jt),at||ze(Jt),R(!1))}let eo=eg(),G1=Cf(Jt,eo),{activeDealTag:xa,activeRegionCode:Ci,authorArticles:ag,activeFreeformTags:Ma,freeformTagCounts:lg,freeformTags:to,tagCounts:ig,tags:Ri,targetArticles:_a,targetIso:P1}=G1,Ti=e.compactEmbed&&x&&!xa?x:xa,Ei=e.compactEmbed&&Q.length>0&&Ma.length===0?Q:Ma,q1=Ri.length>0?Ri:Ti?[Ti]:Ri,F1=to.length>0?to:Ei.length>0?t?.freeformTags?.filter(me=>Ei.includes(me.handle))||[]:to,j1={...ig,...Ti&&!xa?{[Ti]:0}:{}},Y1={...lg,...Object.fromEntries(Ma.length===0?Ei.map(me=>[me,0]):[])},no=Zf(xa,Ma,lt,Jr),rg=[$r,Ci,xa||"",Ma.join(","),e.selectedBrands.join(","),e.priceRange,e.discountAmount,e.includeBuyingGuideProducts?"guides":"",e.includeReviewProducts?"reviews":"",e.includeDeals===!1?"no-deals":"deals",e.includeCollections===!1?"no-collections":"collections"].join("|"),dl=null,fl=null;if(!at){let me=Kf.current;if(me?.key===rg&&me.articleCount===_a.length)dl=me.deals.length,fl=me.authorCount;else{let zt=dv(_a,eo);dl=zt.deals.length,fl=zt.authorCount,Kf.current={articleCount:_a.length,authorCount:fl,deals:zt.deals,key:rg}}}$f=Ri;let Ht;_&&(Ie(q1),Be(j1),nt(F1),de(Y1)),e.includeReviewProducts&&await Nf(_a,e.website||"tomsguide",l?Math.min(_a.length,i):Wt,c);let{brands:bc,displayedDeals:Ac,extractedDeals:ao}=ic(_a,eo,Ci,P1),{merchants:V1,couponMap:wc,couponUrl:X1}=Yv(Ac,e.region);_&&se(wc);let Q1=me=>{!_||!Ht||(Ht={...Ht,couponMap:me},window.__AUTHOR_PRELOAD_DATA__=Ht,e.onDataLoaded&&e.onDataLoaded(Ht))};if(hv({couponMap:wc,couponUrl:X1,merchants:V1}).then(me=>{_&&(se(me),Q1(me))}),_){tg&&P(Ti),nS(Q,Ei)||Vn(Ei),bi(ag);let me=uc(Da,Ac,c,r);if(vc=!0,v(me),dl!==null){let zt=t?.totalDealCount||0,bn=Ea&&zt>dl;b(bn?zt:dl),g(bn?Math.max(t?.totalAuthorCount||0,fl||0):fl||0)}!ol.current.has(no)&&Wf(xa,Ma)&&ol.current.set(no,t?.brands||[]),Z(ol.current.get(no)||bc),y(!1),Ht=fv({allArticles:Jt,authorArticles:ag,bakeReviewInventory:a&&!e.compactEmbed,brands:bc,couponMap:wc,currentDealTag:xa,currentFreeformTags:Ma,displayedDeals:me,inventoryArticles:_a,options:eo,resultCount:e.resultCount,tagCounts:ig,tags:Ri,freeformTagCounts:lg,freeformTags:to,totalAuthorCount:fl??h,totalDealCount:dl??A}),window.__AUTHOR_PRELOAD_DATA__=Ht,e.onDataLoaded&&e.onDataLoaded(Ht)}if((e.includeBuyingGuideProducts||e.includeReviewProducts)&&Ci!=="unavailable"){let me=Wt,zt=l?ao.filter(fe=>fe.isReviewProduct&&fe.hawkModelName).slice(0,i).map(fe=>String(fe.hawkModelName)):[],bn=Ac.filter(fe=>(fe.isBuyingGuideProduct||fe.isReviewProduct)&&fe.hawkModelName).map(fe=>String(fe.hawkModelName));ao.some(fe=>(fe.isBuyingGuideProduct||fe.isReviewProduct)&&fe.hawkModelName)&&M(!0);let lo=vi(ao,Ci,void 0,s?void 0:e.includeReviewProducts?l?i:me:void 0,[...zt,...bn],ng).then(async fe=>{if(!_)return;let it=al(fe,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange}).map(dt=>(dt.isBuyingGuideProduct||dt.isReviewProduct)&&dt.hawkModelName?{...dt,hawkPricePending:!1}:dt);ln(it,c,r);let io=yn(it,ul(),c),An=uc(Da,io,c,r),xi=hf(bc,fe);if(ol.current.set(no,xi),v(An),Z(xi),s&&b(it.length),Ht){let dt=a&&!e.compactEmbed,og=l,ug=dt?ac(An,Number(e.resultCount)||12):og?An.slice(0,i):An,K1=og?await jv(ug):ug;if(!_)return;let Sc={...Ht,allDeals:K1,deals:An.slice(0,me),brands:xi,totalDealCount:s?it.length:Ht.totalDealCount};Ht=Sc,window.__AUTHOR_PRELOAD_DATA__=Sc,e.onDataLoaded&&e.onDataLoaded(Sc)}}).finally(()=>{_&&M(!1)}),Ba=ao.slice(me,me+(Number(e.resultCount)||12));e.includeReviewProducts&&e.warmInventory&&!s&&!ne&&Ba.some(fe=>fe.hawkModelName)&&lo.then(()=>{_&&vi(Ba,Ci)}),ne&&await lo}}catch(lt){_&&D(!0)}finally{_&&(y(!1),R(!1),fc(!1),Ai.current=!1)}})(),()=>{_=!1,oe.abort()}},[e.query,e.region,e.selectedBrands,e.website,e.resultCount,Wt,c,e.priceRange,e.discountAmount,x,Q,e.authorName,e.authorHandle,e.website,e.authorBioLength,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,s,a,l,i,r,n,mc,e.productSelection,e.compactEmbed,e.warmInventory,e.refreshDealsOnViewport,e.editorialMaxAgeMonths,sc,at,il,rl,f1,gc]);let Wr=e.website||"tomsguide",st=pc.current!==Wr,Ra=(0,N.useMemo)(()=>st?[]:y1.current===Wr&&t?.authors?t.authors:Lr(He.length>0?He:I,Wr),[I,Wr,He,t?.authors,st]),b1=at?il:e.authorHandle,A1=at?rl:e.authorName,w1=Ra.find(_=>_.handle===b1||_.fullName===A1),cl=He.length>0?He:I,If=(0,N.useMemo)(()=>{if(cl.length===0)return Ra;let _=wt(e.region),oe=an(_),ne=hi(Pr(cl,x),Q),we=Sf(Ra,ne,{activeRegionCode:_,targetIso:oe,selectedBrands:e.selectedBrands,priceRange:e.priceRange,discountAmount:e.discountAmount,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,website:e.website});return Yu(Ra,we)},[x,Q,Ra,cl,e.discountAmount,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.priceRange,e.region,e.selectedBrands]),S1=(0,N.useMemo)(()=>{if(st)return[];if(cl.length===0&&t?.authors?.length||e.compactEmbed&&!x&&Q.length===0&&t?.authors?.length)return Ra;let _=wt(e.region),oe=an(_),ne=hi(Pr(cl,x),Q).filter(we=>mi([we],{activeRegionCode:_,targetIso:oe,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,website:e.website}).length>0);return kr(If,ne)},[x,Q,cl,st,at,t?.authors?.length,e.compactEmbed,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.region,If,e.website]),Jf=(_,oe)=>{let ne=He.length>0?He:I.length>0?I:d;if(ne.length===0)return;let we=yv(ne,{authorHandle:_,authorName:oe,discountAmount:e.discountAmount,priceRange:e.priceRange,region:e.region,selectedBrands:e.selectedBrands,sort:c,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,prioritiseCommercialProducts:r,website:e.website,productSelection:void 0});ll(null),P(null),Vn([]),bi(we.authorArticles),Ie(we.tags),Be(we.tagCounts),nt(we.freeformTags),de(we.freeformTagCounts),Z(we.brands),v(we.deals),y(!1)},C1=()=>{!e.compactEmbed||!t||(v(yn(Uf(t.deals||t.allDeals||[],c,r),ul(),c)),Ie(t.tags||[]),Be(t.tagCounts||{}),nt(t.freeformTags||[]),de(t.freeformTagCounts||{}),Z(t.brands||[]),se(t.couponMap||{}),g(t.totalAuthorCount??t.authors?.length??0),b(t.totalDealCount??t.deals?.length??t.allDeals?.length??0))},R1=_=>{Xn.current=!0,De.current=!0,R(!0),at&&(il===_.handle||rl===_.fullName)?(e.compactEmbed&&t?C1():Jf(e.authorHandle,e.authorName),Yr(!1),Vr(""),Xr("")):(Jf(_.handle,_.fullName),Yr(!0),Vr(_.handle),Xr(_.fullName)),e.onQueryChange?.("")},T1=_=>{Xn.current=!0,De.current=!0,R(!0);let oe=x===_?null:_;Zr(oe,Q),P(oe),e.onQueryChange?.("")},E1=()=>{Xn.current=!0,De.current=!0,R(!0)},D1=()=>{Xn.current=!0,De.current=!0,R(!0),Zr(null,Q),P(null),e.onQueryChange?.("")},x1=_=>{Xn.current=!0,De.current=!0,R(!0);let oe=Q.some(ne=>ne.toLowerCase()===_.toLowerCase())?Q.filter(ne=>ne.toLowerCase()!==_.toLowerCase()):[...Q,_];Zr(x,oe),Vn(oe)},M1=()=>{Xn.current=!0,De.current=!0,R(!0),Zr(x,[]),Vn([])},_1=_=>{Xn.current=!0,De.current=!0,R(!0),ll(_)},B1=()=>{if(Ai.current)return;Ai.current=!0,fc(!0);let _=Wt+(e.resultCount?parseInt(e.resultCount,10):12);!!(n&&e.compactEmbed&&!De.current)&&I.length>0&&m.length<_&&p1(we=>{let Ta=Qv[we.length];return Ta===void 0?we:[...we,Ta]}),dc(we=>(Qr(we),we+(e.resultCount?parseInt(e.resultCount,10):12)));let ne=!!(t?.reviewInventoryBaked&&m.length>Wt);e.compactEmbed&&I.length===0&&!ne&&(R(!0),h1(!0))},wi=e.compactEmbed&&!e.refreshDealsOnViewport,N1=wi&&t?.tags?.length?t.tags:St,O1=wi&&t?.tags?.length?t.tagCounts||{}:rn,k1=wi&&!De.current&&t?.brands?.length?t.brands:$e,L1=wi&&t?.freeformTags?.length&&(!De.current||Q.length===1)?t.freeformTags:Je,H1=wi&&t?.freeformTags?.length&&(!De.current||Q.length===1)?t.freeformTagCounts||{}:X,z1=pv({enrichingBuyingGuides:T,error:w,loading:p,loadingMore:Xf,refreshingFeed:C});return{activeDealTag:x,activeFreeformTags:Q,airedaleBrands:st?[]:k1,airedaleTagCounts:st?{}:O1,airedaleTags:st?[]:N1,airedaleFreeformTagCounts:st?{}:H1,airedaleFreeformTags:st?[]:L1,allAuthorsList:S1,authorArticlesList:st?[]:jr,clickedAuthorOverride:at,couponMap:k,deals:st?[]:m,displayCount:Wt,error:w,enrichingBuyingGuides:T,effectiveAuthorProfile:st?void 0:w1,loading:p,loadingMore:Xf,loadMoreStartCount:m1,markProductSelectionInteracted:E1,hasMore:m.length>Wt||!!e.compactEmbed&&A>m.length,loadMore:B1,refreshingFeed:C,overriddenAuthorHandle:il,overriddenAuthorName:rl,selectedArticleId:sc,setActiveDealTag:P,clearDealTag:D1,clearFreeformTags:M1,selectArticle:_1,setDisplayCount:dc,setSelectedArticleId:ll,status:z1,toggleAuthorOverride:R1,toggleDealTag:T1,toggleFreeformTag:x1,totalAuthorCount:st?0:h,totalDealCount:st?0:A}}var aS=B(ft(),1);var Fr=B(ft(),1);function Zv(e){let[t,n]=(0,Fr.useState)(null),[a,l]=(0,Fr.useState)([]),[i,r]=(0,Fr.useState)(!1),[o,u]=(0,Fr.useState)(!1);return{close:()=>n(null),error:o,loading:i,merchant:t,open:async f=>{n(f),r(!0),u(!1),l([]);try{let d=Vv(f,e),m=await fetch(d.toString());if(!m.ok)throw new Error("API Error");l(mv(await m.json()))}catch(d){u(!0)}finally{r(!1)}},vouchers:a}}var je=B(O(),1);function lS(e){return new Set(e.map(t=>Array.isArray(t.authorName)?t.authorName[0]:t.authorName).map(t=>String(t||"").trim().toLowerCase()).filter(Boolean)).size}var iS=new Map,rS=()=>{};function Iv({data:e,editorBar:t,editorMode:n=!1,props:a,selectedDeals:l=iS,setSelectedDeals:i=rS}){let r=Zv(a.region),[o,u]=(0,Wv.useState)(new Set),c=p0[a.website||""]||"#1F69FF",s=a.backgroundColor?a.backgroundColor==="white"?"#ffffff":a.backgroundColor==="transparent"?"transparent":a.backgroundColor==="light_blue"?"#E7F0FF":void 0:void 0,f=Vu(a.authorHandle,a.authorName),d=Or(a),m=Fu(a),v=wa(m?"date_desc":a.sort,!d),A=!!(a.showReviewSort&&a.includeReviewProducts),b=a.showPriceDiscountFilters!==!1||A,h=!a.authorFullBleed,g=!e.clickedAuthorOverride,p=e.totalDealCount||e.deals.length,y=e.totalAuthorCount||lS(e.deals),C=e.status==="loading_inventory"||e.status==="refreshing_inventory"||e.status==="enriching_visible_cards",R=e.status==="loading_inventory"||(e.status==="refreshing_inventory"||e.status==="enriching_visible_cards")&&e.deals.length===0,M=!!(a.showReviewSort&&a.includeReviewProducts&&(e.status==="refreshing_inventory"||e.status==="enriching_visible_cards"))?"Loading and sorting available review products":e.status==="enriching_visible_cards"?"Adding live product images and prices":e.status==="refreshing_inventory"?"Updating products":`Loading ${a.website||"site"} authors and products`,w=j=>{e.markProductSelectionInteracted(),a.onBrandToggle?.(j)},D=j=>{e.markProductSelectionInteracted(),a.onBrandSelect?.(j)},k=j=>{e.markProductSelectionInteracted(),a.onPriceRangeChange?.(j)},se=j=>{e.markProductSelectionInteracted(),a.onDiscountAmountChange?.(j)},I=j=>{e.markProductSelectionInteracted(),a.onSortChange?.(j)};return(0,je.jsx)("div",{className:"tg-df-widget-host",style:{"--tg-df-blue":c.toUpperCase()==="#FFFFFF"?"#000000":c},"data-vizualizer-embed":"true","data-tg-df-full-bleed":a.authorFullBleed?"true":"false","data-tg-df-mobile-dropdowns":a.mobileDropdowns?"true":"false","data-tg-df-sticky-mobile-filters":a.stickyMobileFilters===!1?"false":"true",children:(0,je.jsxs)("div",{className:"tg-df-container article-body",style:a.backgroundColor?{backgroundColor:s}:void 0,children:[(a.showAuthorIdentity!==!1||a.showAuthorBio!==!1)&&(0,je.jsx)("div",{className:"tg-df-author-embed",style:{width:"100%",fontFamily:"inherit"},children:(0,je.jsx)("div",{className:"tg-df-author-section",style:{display:"block",opacity:1,overflow:"visible",background:"transparent",border:"none"},children:(0,je.jsx)(U0,{authorArticlesList:e.authorArticlesList,authorBioLength:a.authorBioLength,customBio:g?a.customBio:void 0,customHeaderKicker:a.customHeaderKicker,customHeaderTitle:a.customHeaderTitle,effectiveAuthorHandle:e.clickedAuthorOverride?e.overriddenAuthorHandle:a.authorHandle,effectiveAuthorName:e.clickedAuthorOverride?e.overriddenAuthorName:a.authorName,isReviewWidget:d,onBioChange:g?a.onBioChange:void 0,onHeaderKickerChange:a.onHeaderKickerChange,onHeaderTitleChange:a.onHeaderTitleChange,selectedProfile:e.effectiveAuthorProfile,showAuthorBio:a.showAuthorBio,showAuthorIdentity:a.showAuthorIdentity,showSocialButtons:a.showSocialButtons,stabilizeBio:f,authorCount:y,totalDealCount:p,website:a.website})})}),t,a.showCollectionsDropdown&&(0,je.jsx)(r0,{articles:e.authorArticlesList,authorHandle:a.authorHandle,authorName:a.authorName||a.author,onChange:e.selectArticle,selectedArticleId:e.selectedArticleId,shortenedHeadlines:a.shortenedHeadlines}),C&&(0,je.jsxs)("div",{role:"status","aria-live":"polite","aria-label":M,style:{alignItems:"center",display:"flex",justifyContent:"center",marginBottom:"16px",minHeight:"72px"},children:[(0,je.jsx)("span",{className:"tg-df-coupon-spinner","aria-hidden":"true",style:{borderWidth:"3px",height:"24px",width:"24px"}}),(0,je.jsxs)("span",{style:{color:"#4B5563",fontSize:"14px",marginLeft:"10px"},children:[M,"\u2026"]})]}),(0,je.jsx)(_0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleBrands:e.airedaleBrands,airedaleTagCounts:e.airedaleTagCounts,airedaleTags:e.airedaleTags,freeformTagCounts:e.airedaleFreeformTagCounts,freeformTags:e.airedaleFreeformTags,allAuthorsList:e.allAuthorsList,brands:a.brands,clickedAuthorOverride:e.clickedAuthorOverride,loading:e.loading,refreshing:e.refreshingFeed,onAuthorClick:e.toggleAuthorOverride,onBrandToggle:w,onFreeformTagClick:e.toggleFreeformTag,onTagClick:e.toggleDealTag,overriddenAuthorHandle:e.overriddenAuthorHandle,overriddenAuthorName:e.overriddenAuthorName,selectedBrands:a.selectedBrands,showAuthorRail:f&&a.showAuthorRail!==!1,showAuthorCounters:a.showAuthorCounters,showBrandRail:a.showBrandRail,showCategoryRail:a.showCategoryRail,showFreeformTagRail:a.showFreeformTagRail,website:a.website}),(0,je.jsx)(k0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleBrands:e.airedaleBrands,airedaleTagCounts:e.airedaleTagCounts,airedaleTags:e.airedaleTags,brands:a.brands,discountAmount:a.discountAmount,enabled:a.mobileDropdowns||h,freeformTagCounts:e.airedaleFreeformTagCounts,freeformTags:e.airedaleFreeformTags,onBrandSelect:D,onBrandToggle:w,onDiscountAmountChange:se,onFreeformTagClear:e.clearFreeformTags,onFreeformTagToggle:e.toggleFreeformTag,onPriceRangeChange:k,onReviewSortChange:I,onTagClear:e.clearDealTag,onTagClick:e.toggleDealTag,priceRange:a.priceRange,reviewSort:v,selectedBrands:a.selectedBrands||[],showCounters:a.showAuthorCounters,showBrandRail:a.showBrandRail,showCategoryRail:a.showCategoryRail,showFreeformTagRail:a.showFreeformTagRail,showPriceDiscountFilters:a.showPriceDiscountFilters,showReviewSort:A,includeScoredFirst:!d}),b&&(0,je.jsx)(L0,{airedaleBrands:e.airedaleBrands,airedaleTags:e.airedaleTags,discountAmount:a.discountAmount,hidden:!!e.selectedArticleId,onDiscountAmountChange:se,onPriceRangeChange:k,onReviewSortChange:I,priceRange:a.priceRange,reviewSort:v,showPriceDiscountFilters:a.showPriceDiscountFilters,showReviewSort:A,includeScoredFirst:!d}),(0,je.jsx)(i0,{articles:e.authorArticlesList,selectedArticleId:e.selectedArticleId}),(a.showCategoryRail!==!1||a.showFreeformTagRail!==!1||a.showBrandRail!==!1)&&(0,je.jsx)(a0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleTags:e.airedaleTags,freeformTags:e.airedaleFreeformTags,discountAmount:a.discountAmount,onBrandSelect:D,onBrandToggle:w,onDiscountAmountChange:se,onPriceRangeChange:k,onTagClear:e.clearDealTag,onFreeformTagClear:e.clearFreeformTags,onFreeformTagToggle:e.toggleFreeformTag,priceRange:a.priceRange,selectedBrands:a.selectedBrands||[]}),(0,je.jsx)(w0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,couponMap:e.couponMap,deals:e.deals,displayCount:e.displayCount,editorMode:n,error:e.error,expandedDealIds:o,hasMore:e.hasMore,hideHawkPrices:a.hideHawkPrices,loading:R,loadingMore:e.loadingMore,loadMoreStartCount:e.loadMoreStartCount,onDescriptionToggle:j=>u(He=>{let ze=new Set(He);return ze.has(j)?ze.delete(j):ze.add(j),ze}),onLoadMore:e.loadMore,onOpenVouchers:r.open,query:a.query,recentDealsOnly:!!(a.includeDeals&&!a.includeCollections&&!a.includeBuyingGuideProducts&&!a.includeReviewProducts),selectedBrands:a.selectedBrands,selectedDeals:l,setSelectedDeals:i,website:a.website}),(0,je.jsx)(G0,{error:r.error,loading:r.loading,merchant:r.merchant,onClose:r.close,vouchers:r.vouchers})]})})}var $v=B(O(),1),Jv=e=>{let t={...e,editorMode:!1},n=qf(t);return(0,$v.jsx)(Iv,{data:n,props:t})};var U={authorBioLength:"short",authorFullBleed:!0,authorHandle:"all-authors",authorName:"All authors",backgroundColor:"transparent",customBio:"",customHeaderKicker:void 0,customHeaderTitle:void 0,discountAmount:"0",editorMode:!1,editorialMaxAgeMonths:"12",includeBuyingGuideProducts:!0,includeCollections:!0,includeDeals:!0,includeReviewProducts:!1,mobileDropdowns:!0,stickyMobileFilters:!0,offerType:"",preloadReviewInventory:!1,lightweightReviewDelivery:!1,hideHawkPrices:!1,prioritiseCommercialProducts:!0,priceRange:"all",productSelection:"latest",query:"Everything",region:"auto",resultCount:"12",retailer:"",selectedBrands:[],showAuthorBio:!0,showAuthorCounters:!0,showAuthorIdentity:!0,showAuthorRail:!0,showBrandRail:!0,showCategoryRail:!0,showCollectionsDropdown:!1,showPriceDiscountFilters:!0,showReviewSort:!1,showSocialButtons:!0,showCountdown:!1,showHeaderDetails:!0,showFreeformTagRail:!0,sort:"date_desc",viewMode:"author",website:"whowhatwear",widgetSubtitle:"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.",widgetTitle:"Top Deals Handpicked by Our Editors"};function We(e,t){return typeof e=="string"?e:t}function Ae(e,t){return typeof e=="boolean"?e:t}function e1(e){let t=e||{},n=t.authorBioLength==="long"?"long":"short",a=t.productSelection==="mix"?"mix":"latest";return{...U,...t,authorBioLength:n,authorFullBleed:Ae(t.authorFullBleed,U.authorFullBleed),authorHandle:We(t.authorHandle,U.authorHandle),authorName:We(t.authorName,U.authorName),backgroundColor:We(t.backgroundColor,U.backgroundColor),customBio:We(t.customBio,U.customBio),customHeaderKicker:typeof t.customHeaderKicker=="string"?t.customHeaderKicker:void 0,customHeaderTitle:typeof t.customHeaderTitle=="string"?t.customHeaderTitle:void 0,discountAmount:We(t.discountAmount,U.discountAmount),editorMode:Ae(t.editorMode,U.editorMode),editorialMaxAgeMonths:We(t.editorialMaxAgeMonths,U.editorialMaxAgeMonths),includeBuyingGuideProducts:Ae(t.includeBuyingGuideProducts,U.includeBuyingGuideProducts),includeCollections:Ae(t.includeCollections,U.includeCollections),includeDeals:Ae(t.includeDeals,U.includeDeals),includeReviewProducts:Ae(t.includeReviewProducts,U.includeReviewProducts),mobileDropdowns:Ae(t.mobileDropdowns,U.mobileDropdowns),stickyMobileFilters:Ae(t.stickyMobileFilters,U.stickyMobileFilters),offerType:We(t.offerType,U.offerType),preloadReviewInventory:Ae(t.preloadReviewInventory,U.preloadReviewInventory),lightweightReviewDelivery:Ae(t.lightweightReviewDelivery,U.lightweightReviewDelivery),hideHawkPrices:Ae(t.hideHawkPrices,U.hideHawkPrices),prioritiseCommercialProducts:Ae(t.prioritiseCommercialProducts,U.prioritiseCommercialProducts),priceRange:We(t.priceRange,U.priceRange),productSelection:a,query:We(t.query,U.query),region:We(t.region,U.region),resultCount:We(t.resultCount,U.resultCount),retailer:We(t.retailer,U.retailer),selectedBrands:Array.isArray(t.selectedBrands)?t.selectedBrands.filter(l=>typeof l=="string"):[],showAuthorBio:Ae(t.showAuthorBio,U.showAuthorBio),showAuthorCounters:Ae(t.showAuthorCounters,U.showAuthorCounters),showAuthorIdentity:Ae(t.showAuthorIdentity,U.showAuthorIdentity),showAuthorRail:Ae(t.showAuthorRail,U.showAuthorRail),showBrandRail:Ae(t.showBrandRail,U.showBrandRail),showCategoryRail:Ae(t.showCategoryRail,U.showCategoryRail),showCollectionsDropdown:Ae(t.showCollectionsDropdown,U.showCollectionsDropdown),showPriceDiscountFilters:Ae(t.showPriceDiscountFilters,U.showPriceDiscountFilters),showReviewSort:Ae(t.showReviewSort,U.showReviewSort),showSocialButtons:Ae(t.showSocialButtons,U.showSocialButtons),showCountdown:Ae(t.showCountdown,U.showCountdown),showHeaderDetails:Ae(t.showHeaderDetails,U.showHeaderDetails),showFreeformTagRail:Ae(t.showFreeformTagRail,U.showFreeformTagRail),sort:We(t.sort,U.sort),viewMode:We(t.viewMode,U.viewMode),website:We(t.website,U.website),widgetSubtitle:We(t.widgetSubtitle,U.widgetSubtitle),widgetTitle:We(t.widgetTitle,U.widgetTitle)}}function t1(e,t={}){return{...e,brands:t.brands,shortenedHeadlines:t.shortenedHeadlines}}function n1(e,t){try{window.hawk?.analytics?.freyr?.push({name:e,data:t}),window.dispatchEvent(new CustomEvent("hawk-analytics-update")),window.freyr?.cmd.push(()=>{window.freyr?.pushAndUpdate?.(e,t)})}catch{}}function a1(){window.dataLayer=window.dataLayer||[],window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.hawk=window.hawk||{},window.hawk.analytics=window.hawk.analytics||{},window.hawk.analytics.freyr=window.hawk.analytics.freyr||[],window.freyr=window.freyr||{cmd:[]},window.freyr.cmd=window.freyr.cmd||[];let e="https://freyr.futurecdn.net/freyr.js",t=window.location.hostname;if(!(window.navigator.webdriver||window.navigator.userAgent.includes("Headless"))&&!!t&&t!=="localhost"&&t!=="127.0.0.1"&&!t.includes("run.app")&&!document.querySelector(`script[src="${e}"]`)){let l=document.createElement("script");l.src=e,l.async=!0,document.head.appendChild(l)}}function oS(e){let t=Number.parseFloat(e.rawPrice||e.price)||null,n=Number.parseFloat(e.rawMsrp||e.msrp)||null;return{product:{primary:{id:e.externalProductId||e.id||e.matchId||null,name:e.productName||e.title||"",type:"deal",price:t,previousPrice:n,currency:e.isoCurrencyCode||e.currency||"USD",preorder:!1,labels:e.modelBrand||e.brand?[{type:"brand",value:e.modelBrand||e.brand}]:[],link:e.url||null,originalLink:e.originalLink||e.url||null,revenueId:e.revenueId||null,startTime:null,endTime:null,voucherCode:null,voucherAudience:null,voucherPercentageSaving:n&&t&&n>t?Math.round((1-t/n)*100):null,voucherMoneySaving:null,voucherType:null,offerExclusive:!1,offerScope:null,globalId:e.productKey||null,inStock:e.inStock!==!1,contractProvider:null,contractMinutes:null,contractTexts:null,contractData:null,contractLength:null,contractMonthlyPrice:null,contractCurrency:e.isoCurrencyCode||e.currency||"USD"}},merchant:{id:e.merchantId||null,name:e.merchant||"Retailer",url:e.merchantUrl||null,network:e.merchantNetwork||null},model:{id:e.modelId||null,brand:e.modelBrand||e.brand||null,name:e.productName||e.title||"",parent:e.modelParent||null}}}var uS=new Set(["subid1","ascsubtag","clickref","u1"]);function cS(e){return e.match(/(?:^|[-_])(\d{10,})(?=$|[-_])/)?.[1]||null}function sS(e){let t=new Set,n=a=>{if(!a||t.has(a))return null;t.add(a);let l;try{l=new URL(a)}catch{return null}for(let[i,r]of l.searchParams)if(uS.has(i.toLowerCase())){let o=cS(r);if(o)return o}for(let i of l.searchParams.values())if(/^https?:\/\//i.test(i)){let r=n(i);if(r)return r}return null};return n(e)}function l1({areaClicked:e,clickType:t,deals:n,index:a,queryName:l}){let i={event:"hawkEvent",category:"Affiliates",affiliate:{action:{type:t,id:"author-widget",event:t==="appeared"?"viewed":"Click from",timestamp:Date.now()},component:{flag:"Editor",product:"deals",category:"Signal Deal Finder Author widget",type:t==="appeared"?"review":"signal product",label:l||n[0]?.productName||n[0]?.title||"",index:a??-1,linkCount:n.length,blockLayout:"",areaClicked:e}},products:n.slice(0,20).map(oS),reviews:[],_clear:!0,"gtm.uniqueEventId":Date.now()%1e4};n1("hawkEvent",i)}function i1(e,t){e.length&&l1({areaClicked:"",clickType:"appeared",deals:e,index:null,queryName:t})}function r1(e,t){if(e?.deals?.length)return e.deals;let n=Number(t)||12;return e?.allDeals?.slice(0,n)||[]}function o1(e){e.addEventListener("click",t=>{let n=t.target;if(!(n instanceof Element))return;let a=n.closest("a[data-fcaw-affiliate-link][href], a.hawk-affiliate-link-deal-widget[href], a.hawk-affiliate-link-container[href], a.hawk-affiliate-link-deal-button[href]"),l=n.closest(".tg-df-card"),i=!!(!a?.dataset.fcawRevenueId&&(a?.hasAttribute("data-hl-processed")||a?.hasAttribute("data-fcaw-hawklinks-requested")));a&&l&&!i&&l1({areaClicked:"Signal Product Card",clickType:"retailer",deals:[{brand:l.dataset.brand,currency:l.dataset.currency,id:l.dataset.dealId,merchant:a.dataset.merchant||l.dataset.merchant,merchantId:a.dataset.merchantId||l.dataset.merchantId,modelId:a.dataset.modelId||l.dataset.modelId,productKey:a.dataset.productKey||l.dataset.productKey,rawMsrp:l.dataset.previousPrice,rawPrice:l.dataset.price,originalLink:a.dataset.fcawOriginalLink||a.href,revenueId:a.dataset.fcawRevenueId||sS(a.href),title:l.dataset.productName,url:a.href}],index:Array.from(e.querySelectorAll(".tg-df-card")).indexOf(l)});let r=n.closest('button, select, [role="button"]');r&&n1("elementInteraction",{element:{action:"click",id:r.id||void 0,class:r.className||void 0,name:r.getAttribute("name")||r.getAttribute("aria-label")||void 0,text:r.textContent?.trim()||void 0,label:r.getAttribute("aria-label")||void 0}})})}var Vf=B(O(),1),dS='fc-author-commerce-widget[data-fcaw-version="1"]',fS="(max-width: 599px)",gS=600,mS='[class*="membership-expandable-banner"]',hS=/^jump\s+to\b/i,jf="data-fcaw-jump-navigation-suppressed",pS=50,yS=1e4,vS=["[data-sticky-header]","[data-header-sticky]",'[role="banner"]',".navigation__container",".site-header",".main-header",".header__container",'[class*="membership-expandable-banner"] [class*="skinny-banner"]','[class*="membership-expandable-banner"] [id="skinnyBanner"]',"nav","header"].join(","),bS=`  :host {    display: block !important;    width: 100% !important;    min-width: 0 !important;    max-width: none !important;    isolation: isolate !important;    contain: style !important;  }  :host([data-fcaw-full-bleed="true"]) {    width: min(      1200px,      var(--fcaw-viewport-width, 100vw)    ) !important;    max-width: 1200px !important;    margin-left: var(      --fcaw-full-bleed-offset,      calc(50% - min(600px, 50vw))    ) !important;    margin-right: 0 !important;    position: relative !important;  }  :host([data-fcaw-full-bleed="true"]) #tg-df-spreadsheet-filters {    width: min(      1500px,      var(--fcaw-viewport-width, 100vw)    ) !important;    max-width: 1500px !important;    margin-left: calc(      (        100% -        min(1500px, var(--fcaw-viewport-width, 100vw))      ) / 2    ) !important;    margin-right: 0 !important;  }  :host, :host *, :host *::before, :host *::after {    box-sizing: border-box;  }`,Ff=new WeakMap;function AS(){if(document.querySelector("style[data-fcaw-jump-navigation-protection]"))return;let e=document.createElement("style");e.setAttribute("data-fcaw-jump-navigation-protection",""),e.textContent=`    [${jf}="true"] {      opacity: 0 !important;      pointer-events: none !important;      visibility: hidden !important;    }  `,document.head.appendChild(e)}function wS(){let e=Array.from(document.querySelectorAll("span, p, div, strong, b")).filter(n=>n.childElementCount===0&&hS.test(n.textContent?.trim()||"")),t=new Set;for(let n of e)for(let a=n.parentElement;a&&a!==document.body;a=a.parentElement)if(getComputedStyle(a).position==="sticky"){t.add(a);break}return[...t]}function SS(e,t,n){let a=Ff.get(e)||new Set;n?a.add(t):a.delete(t),a.size>0?(Ff.set(e,a),e.setAttribute(jf,"true")):(Ff.delete(e),e.removeAttribute(jf))}function CS(e){if(e.dataset.fcawFullBleed!=="true"||typeof IntersectionObserver>"u")return;let t=wS().filter(a=>!a.contains(e));if(t.length===0)return;AS(),new IntersectionObserver(([a])=>{t.forEach(l=>SS(l,e,a.isIntersecting))},{threshold:0}).observe(e)}function RS({host:e,initialData:t,initialProps:n}){let[a]=(0,Lt.useState)(d1),l=DS(t,a),[i,r]=(0,Lt.useState)(n.query),[o,u]=(0,Lt.useState)(n.selectedBrands),[c,s]=(0,Lt.useState)(n.priceRange),[f,d]=(0,Lt.useState)(n.discountAmount),[m,v]=(0,Lt.useState)(n.sort),[A,b]=(0,Lt.useState)(!1),h=!!(A&&n.compactEmbed&&n.includeDeals!==!1),g=(0,Lt.useRef)(!1);return(0,Lt.useEffect)(()=>{let p=()=>{g.current||(g.current=!0,i1(r1(l,n.resultCount),n.query))};if(typeof IntersectionObserver>"u"){p();return}let y=new IntersectionObserver(([C])=>{C?.isIntersecting&&(p(),y.disconnect())},{threshold:.1});return y.observe(e),()=>y.disconnect()},[e,l,n.query]),(0,Lt.useEffect)(()=>{if(typeof IntersectionObserver>"u"){b(!0);return}let p=new IntersectionObserver(([y])=>{y?.isIntersecting&&(b(!0),p.disconnect())},{rootMargin:"800px 0px"});return p.observe(e),()=>p.disconnect()},[e]),(0,Vf.jsx)(Jv,{...n,region:a||"unavailable",initialData:l,warmInventory:A,refreshDealsOnViewport:h,query:i,selectedBrands:o,priceRange:c,discountAmount:f,sort:m,editorMode:!1,onQueryChange:r,onBrandSelect:u,onBrandToggle:p=>u(y=>y.includes(p)?y.filter(C=>C!==p):[...y,p]),onPriceRangeChange:s,onDiscountAmountChange:d,onSortChange:v})}function TS(e){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${e}=([^;]*)`));return t?decodeURIComponent(t[1]):void 0}catch{return}}function cc(e){let n=String(e||"").trim().toUpperCase().replace("_","-").split("-").at(-1);return n==="UK"?"GB":["US","GB","AU","CA","DE","FR","IT","ES","NL"].includes(n||"")?n:void 0}function d1(){let e=new URLSearchParams(window.location.search).get("area");return cc(e)||cc(TS("FTR_Country_Code"))||cc(document.documentElement.getAttribute("data-locale"))||cc(window.navigator.language)}function u1(e,t){let n=e.querySelector(t);if(n?.textContent)try{return JSON.parse(n.textContent)}catch(a){console.warn("Author widget configuration could not be parsed.",a);return}}function ES(e){return e?.reviewInventoryFormat!==nv||!e.allDeals?e:{...e,allDeals:av(e.allDeals)}}function DS(e,t){let n=t?e?.regionalDealManifests?.[t]:void 0;if(!n)return e;let a=e?.regionalDealRailData?.[t];return{...e,allDeals:void 0,deals:n,...a}}function c1(e){e.querySelectorAll("a[href]").forEach(t=>{(t.hasAttribute("data-fcaw-affiliate-link")||t.classList.contains("hawk-affiliate-link-deal-widget")||t.classList.contains("hawk-affiliate-link-container")||t.classList.contains("hawk-affiliate-link-deal-button"))&&(t.rel="sponsored nofollow noopener")})}function xS(e){let t=e.closest(".tg-df-card"),n=t?.dataset.fcawRevenueId||e.dataset.fcawRevenueId;if(n)return n;let a=[window.location.href,t?.dataset.productName||"",t?.dataset.merchant||"",t?.dataset.modelId||"",new Date().toDateString(),"tomsguide"].join("|"),l=0;for(let r=0;r<a.length;r+=1)l=(l<<5)-l+a.charCodeAt(r),l|=0;let i=String(Math.abs(l));for(;i.length<19;)l=(l<<5)-l+i.length,l|=0,i+=String(Math.abs(l));return i=i.slice(0,19),t&&(t.dataset.fcawRevenueId=i),i}function MS(e){let t=e.dataset.fcawOriginalLink||e.href;if(!t.includes("hawk-custom-tracking"))return!1;let n=d1();if(!n)return!1;let a=xS(e);return e.dataset.fcawOriginalLink=t,e.dataset.fcawRevenueId=a,e.href=t.replaceAll("hawk-custom-tracking",`tomsguide-${n.toLowerCase()}-${a}`),e.setAttribute("data-fcaw-hawklinks-requested","true"),!0}function _S(){return!!window.hawklinks?.version}function BS(e){let t=!1,n,a,l=()=>Array.from(e.querySelectorAll(".article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-deal-widget[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested]), .article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-container[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested]), .article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-deal-button[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested])")),i=()=>{t=!1;let u=l();if(u.length===0)return;let c=u.filter(s=>!MS(s));if(c.length!==0){if(!_S()){let s=Date.now();a??=s,!n&&s-a<yS&&(n=window.setTimeout(()=>{n=void 0,r()},pS));return}a=void 0,c.forEach(s=>s.setAttribute("data-fcaw-hawklinks-requested","true")),document.dispatchEvent(new CustomEvent("processArticle",{detail:{element:e}}))}},r=()=>{t||(t=!0,window.setTimeout(i,0))},o=new MutationObserver(r);return o.observe(e,{attributes:!0,attributeFilter:["href"],childList:!0,subtree:!0}),r(),()=>{o.disconnect(),n&&window.clearTimeout(n)}}function NS(e){if(e.dataset.fcawFullBleed!=="true")return;let t=()=>{let n=document.documentElement.clientWidth||window.innerWidth,a=Math.min(1200,n),l=Math.max(0,(n-a)/2),i=e.parentElement?.getBoundingClientRect().left||0;e.style.setProperty("--fcaw-full-bleed-offset",`${l-i}px`),e.style.setProperty("--fcaw-viewport-width",`${n}px`)};t(),window.addEventListener("resize",t,{passive:!0}),typeof ResizeObserver<"u"&&e.parentElement&&new ResizeObserver(t).observe(e.parentElement)}function OS(e){let t=window.matchMedia(fS),n=!1,a=new Set,l=new Map,i,r=()=>t.matches||e.getBoundingClientRect().width<gS,o=()=>{n||(n=!0,window.requestAnimationFrame(s))},u=()=>{if(typeof MutationObserver>"u")return;let f=new Set(Array.from(document.querySelectorAll(mS)));l.forEach((d,m)=>{f.has(m)&&m.isConnected||(d.disconnect(),l.delete(m))}),f.forEach(d=>{if(l.has(d))return;let m=new MutationObserver(o);m.observe(d,{attributes:!0,attributeFilter:["class","style"],childList:!0,subtree:!0}),l.set(d,m)})},c=f=>{let d=new Set(f);a.forEach(m=>{d.has(m)||(i?.unobserve(m),m.removeEventListener("transitionend",o),a.delete(m))}),f.forEach(m=>{a.has(m)||(i?.observe(m),m.addEventListener("transitionend",o),a.add(m))})},s=()=>{if(n=!1,u(),!r()){c([]),e.style.removeProperty("--fcaw-mobile-sticky-offset");return}let f=Number.parseFloat(getComputedStyle(e).getPropertyValue("--fcaw-publisher-sticky-offset"));if(Number.isFinite(f)&&f>=0){c([]),e.style.setProperty("--fcaw-mobile-sticky-offset",`${f}px`);return}let d=Array.from(document.querySelectorAll(vS)).filter(v=>{if(v.contains(e))return!1;let A=getComputedStyle(v).position;return A==="fixed"||A==="sticky"});c(d);let m=d.reduce((v,A)=>{let b=A.getBoundingClientRect();return b.top>2||b.bottom<=0||b.height<=0||b.height>window.innerHeight*.5?v:Math.max(v,b.bottom)},0);e.style.setProperty("--fcaw-mobile-sticky-offset",`${Math.ceil(m)}px`)};return typeof ResizeObserver<"u"&&(i=new ResizeObserver(o),i.observe(e)),s(),window.addEventListener("scroll",o,{capture:!0,passive:!0}),window.addEventListener("resize",o,{passive:!0}),t.addEventListener?.("change",o),()=>{window.removeEventListener("scroll",o,!0),window.removeEventListener("resize",o),t.removeEventListener?.("change",o),i?.disconnect(),a.forEach(f=>f.removeEventListener("transitionend",o)),a.clear(),l.forEach(f=>f.disconnect()),l.clear()}}function kS(e){if(e.dataset.fcawEnhanced==="true")return;let t=u1(e,"script[data-fcaw-config]");if(!t)return;let n={...t1(e1(t),{brands:t.brands,shortenedHeadlines:t.shortenedHeadlines}),compactEmbed:t.compactEmbed,editorMode:!1,warmInventory:t.warmInventory},a=u1(e,"script[data-fcaw-preload]"),l=ES(a),i=e.querySelector("[data-fcaw-fallback]");if(!i)return;NS(e),CS(e),n.stickyMobileFilters!==!1&&OS(e),c1(i);let r=e.shadowRoot||e.attachShadow({mode:"open"}),o=e.querySelector(":scope > style[data-fcaw-host-protection]");if(o&&r.appendChild(o),!r.querySelector("style[data-fcaw-shadow-protection]")){let c=document.createElement("style");c.setAttribute("data-fcaw-shadow-protection",""),c.textContent=bS,r.appendChild(c)}i.querySelectorAll(":scope > style").forEach(c=>{r.appendChild(c)});let u=document.createElement("div");for(u.setAttribute("data-fcaw-mount","");i.firstChild;)u.appendChild(i.firstChild);i.remove(),r.appendChild(u),e.dataset.fcawEnhanced="true",a1(),e.dataset.fcawAnalyticsReady="true",o1(r),BS(r),(0,s1.createRoot)(u).render((0,Vf.jsx)(RS,{host:e,initialData:l,initialProps:n})),window.setTimeout(()=>c1(r),0)}function Yf(){document.querySelectorAll(dS).forEach(kS)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Yf,{once:!0}):Yf();new MutationObserver(Yf).observe(document.documentElement,{childList:!0,subtree:!0});})();/*! Bundled license information:react/cjs/react.production.js:  (**   * @license React   * react.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)scheduler/cjs/scheduler.production.js:  (**   * @license React   * scheduler.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react-dom/cjs/react-dom.production.js:  (**   * @license React   * react-dom.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react-dom/cjs/react-dom-client.production.js:  (**   * @license React   * react-dom-client.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react/cjs/react-jsx-runtime.production.js:  (**   * @license React   * react-jsx-runtime.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)*/</script></div><h2 class="article-body__section" id="section-black-friday-controller-deals-in-the-uk"><span>Black Friday controller deals in the UK</span></h2><h2 id="where-are-the-best-black-friday-controller-deals-in-the-uk">Where are the best Black Friday controller deals in the UK?</h2><ul><li><strong>Amazon: </strong><a href="https://www.amazon.co.uk/s?k=controllers&crid=60S1AC87VO31&sprefix=controller%2Caps%2C134&ref=nb_sb_noss_1" target="_blank">Big discounts on top-brand controllers</a></li><li><strong>Overclockers:</strong> <a href="https://www.overclockers.co.uk/peripherals/gamepads-game-controllers?q=controllers&_gl=1*hw2u4v*_up*MQ..*_ga*MTQ2NzEzNjg2OC4xNzkwNjgwODU3*_ga_123456*czE3OTA2ODA4NTckbzEkZzAkdDE3OTA2ODA4ODYkajMxJGwwJGgxODc0NzI0ODg.*_ga_7SS7XDNBS9*czE3OTA2ODA4NTckbzEkZzAkdDE3OTA2ODA4ODckajMwJGwwJGgw" target="_blank">A whole bunch of controllers to choose from</a></li><li><strong>Scan:</strong> <a href="https://www.scan.co.uk/shop/computer-hardware/game-controllers/all" target="_blank">Gamepads from just £15</a></li><li><strong>Box: </strong><a href="https://box.co.uk/xbox-controllers" target="_blank">Controllers for everyone</a></li><li><strong>Currys:</strong> <a href="https://www.currys.co.uk/gaming/controllers/controllers/pc-gaming-controllers" target="_blank">Controllers from as little as £20</a></li><li><strong>Argos: </strong><a href="https://www.argos.co.uk/search/controllers/?clickOrigin=searchbar:search:term:controllers" target="_blank">Good prices on budget to high-end controllers</a></li></ul><div class="product"><a data-dimension112="fac03a30-cdff-11f1-9bc9-bb463c98e37c" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="£18.99" href="https://www.amazon.co.uk/GameSir-Wireless-Controller-Bluetooth-Vibration-Nova-Lite-White/dp/B0CMCQ6WMC" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="soVwABeC6nbkWkMrnx2xcR" name="GameSir Nova Lite 2.4g Wireless Controller.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR-1920-80.jpg" mos="" align="middle" fullscreen="" width="200" height="200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/GameSir-Wireless-Controller-Bluetooth-Vibration-Nova-Lite-White/dp/B0CMCQ6WMC" target="_blank" rel="nofollow" data-dimension112="fac03a30-cdff-11f1-9bc9-bb463c98e37c" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="£18.99">Nova Lite: was £24.99 now £18.99</a></strong><br>This gaming controller remains our <a href="https://www.pcgamer.com/best-controller-for-pc-gaming/#section-the-best-budget-controller" target="_blank">top budget pick</a> for good reason. <a href="https://www.pcgamer.com/hardware/controllers/gamesir-nova-lite-controller-review/" target="_blank">In our review</a>, James was particularly impressed by just how much GameSir cram into such an affordable package, highlighting the controller's Hall Effect sticks and 2.4 GHz connectivity.</p><p><strong>Key specs: Hall effect thumb sticks | 2.4G wireless | 10 h battery</strong><a class="view-deal button" href="https://www.amazon.co.uk/GameSir-Wireless-Controller-Bluetooth-Vibration-Nova-Lite-White/dp/B0CMCQ6WMC" target="_blank" rel="nofollow" data-dimension112="fac03a30-cdff-11f1-9bc9-bb463c98e37c" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="£18.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03a8a-cdff-11f1-9c40-6dfbde122d72" data-action="Deal Block" data-label="Nova Lite 2" data-dimension48="Nova Lite 2" data-dimension25="£29.99" href="https://www.amazon.co.uk/GameSir-Lite-Controller-Joysticks-Remappable/dp/B0F3D25PD3/ref=sr_1_4" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1509px;"><p class="vanilla-image-block" style="padding-top:99.34%;"><img id="VGAcVx239apmX4EGiGsDnE" name="1781519450.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/VGAcVx239apmX4EGiGsDnE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1509" height="1499" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/GameSir-Lite-Controller-Joysticks-Remappable/dp/B0F3D25PD3/ref=sr_1_4" target="_blank" rel="nofollow" data-dimension112="fac03a8a-cdff-11f1-9c40-6dfbde122d72" data-action="Deal Block" data-label="Nova Lite 2" data-dimension48="Nova Lite 2" data-dimension25="£29.99">Nova Lite 2: £29.99</a></strong><br>An upgraded and improved version of the Nova Lite, this controller sets the standard for what you can score for a relatively slim amount of money. Hall effect everywhere and a mechanical D-pad.</p><p><strong>Key specs: Hall effect joysticks + triggers | 2.4G wireless | 1000 Hz polling</strong><a class="view-deal button" href="https://www.amazon.co.uk/GameSir-Lite-Controller-Joysticks-Remappable/dp/B0F3D25PD3/ref=sr_1_4" target="_blank" rel="nofollow" data-dimension112="fac03a8a-cdff-11f1-9c40-6dfbde122d72" data-action="Deal Block" data-label="Nova Lite 2" data-dimension48="Nova Lite 2" data-dimension25="£29.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03aee-cdff-11f1-a0c0-8de96454275f" data-action="Deal Block" data-label="Pro 3" data-dimension48="Pro 3" data-dimension25="£52.99" href="https://www.amazon.co.uk/8Bitdo-Pro-Bluetooth-Controller-Switch/dp/B0FFGQ6J35" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="PkKDcfAPjhcUAT2setQ2WW" name="8BitDo Pro 3 product image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/PkKDcfAPjhcUAT2setQ2WW-1920-80.png" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/8Bitdo-Pro-Bluetooth-Controller-Switch/dp/B0FFGQ6J35" target="_blank" rel="nofollow" data-dimension112="fac03aee-cdff-11f1-a0c0-8de96454275f" data-action="Deal Block" data-label="Pro 3" data-dimension48="Pro 3" data-dimension25="£52.99">Pro 3: was £59.99 now £52.99</a></strong><br>Though a little on the narrower side, this well-balanced controller remains comfortable to play through long sessions. A 20-hour battery life, plus the option to game while you charge (even without using the included dock), ensures this gamepad won't leave you high and dry when you need it most.</p><p><strong>Key specs: TMR sticks | Hall effect triggers | Swappable ABXY Buttons | Charging dock | 2.4 G wireless | 20h battery</strong><a class="view-deal button" href="https://www.amazon.co.uk/8Bitdo-Pro-Bluetooth-Controller-Switch/dp/B0FFGQ6J35" target="_blank" rel="nofollow" data-dimension112="fac03aee-cdff-11f1-a0c0-8de96454275f" data-action="Deal Block" data-label="Pro 3" data-dimension48="Pro 3" data-dimension25="£52.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03b48-cdff-11f1-8d3e-bdba0f629436" data-action="Deal Block" data-label="Wolverine V3 Pro" data-dimension48="Wolverine V3 Pro" data-dimension25="£158.98" href="https://www.amazon.co.uk/Razer-Wolverine-Pro-Controller-thumbsticks/dp/B0D7W5L9YY/ref=sr_1_1_sspa" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1508px;"><p class="vanilla-image-block" style="padding-top:99.34%;"><img id="bEho7QQ2jdCF6Vr3xoypw" name="1781520197.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/bEho7QQ2jdCF6Vr3xoypw-1920-80.jpg" mos="" align="middle" fullscreen="" width="1508" height="1498" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Razer-Wolverine-Pro-Controller-thumbsticks/dp/B0D7W5L9YY/ref=sr_1_1_sspa" target="_blank" rel="nofollow" data-dimension112="fac03b48-cdff-11f1-8d3e-bdba0f629436" data-action="Deal Block" data-label="Wolverine V3 Pro" data-dimension48="Wolverine V3 Pro" data-dimension25="£158.98">Wolverine V3 Pro: was £199.99 now £158.98</a></strong><br>A superb controller that's sufficiently endgame for most players. Every button and trigger offers excellent feedback and it features Hall effect sticks for improved stick drift resistance.</p><p><strong>Key specs: Hall effect joysticks | 2.4G wireless | mecha-tactile buttons</strong><a class="view-deal button" href="https://www.amazon.co.uk/Razer-Wolverine-Pro-Controller-thumbsticks/dp/B0D7W5L9YY/ref=sr_1_1_sspa" target="_blank" rel="nofollow" data-dimension112="fac03b48-cdff-11f1-8d3e-bdba0f629436" data-action="Deal Block" data-label="Wolverine V3 Pro" data-dimension48="Wolverine V3 Pro" data-dimension25="£158.98">View Deal</a></p></div><ul><li><a href="#main"><strong>Back to top ^</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/controllers/black-friday-controller-deals/</link>
                                                                            <description>
                            <![CDATA[ With the Black Friday sales rolling around again, peripherals like controllers could have some of the best deals. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">T9FZmNwwcE8Nt9rGPomNdn</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/SHB4vmy4M9VU5rbKmWiXW5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 10:04:38 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 10:06:25 +0000</updated>
                                                                                                                                            <category><![CDATA[Controllers]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                                                                <author><![CDATA[ dave.james@futurenet.com (Dave James) ]]></author>                    <dc:creator><![CDATA[ Dave James ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-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/SHB4vmy4M9VU5rbKmWiXW5-1920-80.jpg">
                                                            <media:credit><![CDATA[null]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Black Friday asset showing PC controllers on an abstract background]]></media:description>                                                            <media:text><![CDATA[Black Friday asset showing PC controllers on an abstract background]]></media:text>
                                <media:title type="plain"><![CDATA[Black Friday asset showing PC controllers on an abstract background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/SHB4vmy4M9VU5rbKmWiXW5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If there's one thing I'm sure of this November, it's that there will be some great Black Friday controller deals going around. It's going to still be tough to get full systems, graphics cards, and especially memory and storage at big discounts, but there will be peripherals going for a song. That's particular exciting because things have been changing in controllers over the past year, and previous models are still quality, but will likely have big discounts attached to them.</p><p><strong>👉</strong><a href="https://www.pcgamer.com/black-friday-pc-gaming-deals/" target="_blank"><strong>All our favorite Black Friday PC gaming deals</strong></a><strong>👈</strong></p><p>When it comes to the key high-end technology of today, such as TMR sticks and Hall effect triggers, that isn't necessarily the preserve of the super-premium $200 controllers. Companies such as GameSir and Easy SMX have brought these features down into the mainstream and you can find some of the <a href="https://www.pcgamer.com/best-controller-for-pc-gaming/" target="_blank">best PC controllers</a> sporting them for bargain prices right now. </p><h2 id="where-to-find-the-best-black-friday-controller-deals">Where to find the best Black Friday controller deals</h2><ul><li><strong>Amazon: </strong><a href="https://www.amazon.com/s?k=controllers&crid=39ANCIZGH03O&sprefix=controller%2Caps%2C179&ref=nb_sb_noss_1" target="_blank"><strong>All the pads you could ever want</strong></a></li><li><strong>Walmart:</strong> <a href="https://www.walmart.com/search?q=controllers" target="_blank">Solid controllers, series savings</a></li><li><strong>Best Buy:</strong> <a href="https://www.bestbuy.com/site/searchpage.jsp?id=pcat17071&st=controllers" target="_blank">Big name pads with big value discounts</a></li><li><strong>Newegg:</strong> <a href="https://www.newegg.com/p/pl?d=controllers" target="_blank">Big savings on big brand controllers</a></li></ul><div class="vizualizer-embed"><iframe   srcdoc="<!DOCTYPE html><html><head>  <style>    #widget-t4n1495 *:not(svg):not(path) { box-sizing: border-box; }    #widget-t4n1495 h1, #widget-t4n1495 p, #widget-t4n1495 h3 { margin: 0; line-height: normal; }    body { margin: 0; background: transparent; font-family: ui-sans-serif, system-ui, sans-serif; }  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {  *, ::before, ::after, ::backdrop { --tw-translate-x: 0; --tw-translate-y: 0; --tw-translate-z: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scale-z: 1; --tw-rotate-x: initial; --tw-rotate-y: initial; --tw-rotate-z: initial; --tw-skew-x: initial; --tw-skew-y: initial; --tw-scroll-snap-strictness: proximity; --tw-space-y-reverse: 0; --tw-space-x-reverse: 0; --tw-divide-y-reverse: 0; --tw-border-style: solid; --tw-gradient-position: initial; --tw-gradient-from: #0000; --tw-gradient-via: #0000; --tw-gradient-to: #0000; --tw-gradient-stops: initial; --tw-gradient-via-stops: initial; --tw-gradient-from-position: 0%; --tw-gradient-via-position: 50%; --tw-gradient-to-position: 100%; --tw-leading: initial; --tw-font-weight: initial; --tw-tracking: initial; --tw-ordinal: initial; --tw-slashed-zero: initial; --tw-numeric-figure: initial; --tw-numeric-spacing: initial; --tw-numeric-fraction: initial; --tw-shadow: 0 0 #0000; --tw-shadow-color: initial; --tw-shadow-alpha: 100%; --tw-inset-shadow: 0 0 #0000; --tw-inset-shadow-color: initial; --tw-inset-shadow-alpha: 100%; --tw-ring-color: initial; --tw-ring-shadow: 0 0 #0000; --tw-inset-ring-color: initial; --tw-inset-ring-shadow: 0 0 #0000; --tw-ring-inset: initial; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-outline-style: solid; --tw-blur: initial; --tw-brightness: initial; --tw-contrast: initial; --tw-grayscale: initial; --tw-hue-rotate: initial; --tw-invert: initial; --tw-opacity: initial; --tw-saturate: initial; --tw-sepia: initial; --tw-drop-shadow: initial; --tw-drop-shadow-color: initial; --tw-drop-shadow-alpha: 100%; --tw-drop-shadow-size: initial; --tw-backdrop-blur: initial; --tw-backdrop-brightness: initial; --tw-backdrop-contrast: initial; --tw-backdrop-grayscale: initial; --tw-backdrop-hue-rotate: initial; --tw-backdrop-invert: initial; --tw-backdrop-opacity: initial; --tw-backdrop-saturate: initial; --tw-backdrop-sepia: initial; --tw-duration: initial; --tw-ease: initial; }}#widget-t4n1495, :host { --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-50: oklch(97.1% .013 17.38); --color-red-100: oklch(93.6% .032 17.717); --color-red-400: oklch(70.4% .191 22.216); --color-red-500: oklch(63.7% .237 25.331); --color-red-600: oklch(57.7% .245 27.325); --color-red-700: oklch(50.5% .213 27.518); --color-orange-50: oklch(98% .016 73.684); --color-orange-600: oklch(64.6% .222 41.116); --color-orange-700: oklch(55.3% .195 38.402); --color-amber-50: oklch(98.7% .022 95.277); --color-amber-600: oklch(66.6% .179 58.318); --color-amber-700: oklch(55.5% .163 48.998); --color-yellow-50: oklch(98.7% .026 102.212); --color-yellow-300: oklch(90.5% .182 98.111); --color-yellow-500: oklch(79.5% .184 86.047); --color-yellow-600: oklch(68.1% .162 75.834); --color-yellow-700: oklch(55.4% .135 66.442); --color-yellow-800: oklch(47.6% .114 61.907); --color-lime-700: oklch(53.2% .157 131.589); --color-green-50: oklch(98.2% .018 155.826); --color-green-100: oklch(96.2% .044 156.743); --color-green-400: oklch(79.2% .209 151.711); --color-green-500: oklch(72.3% .219 149.579); --color-green-600: oklch(62.7% .194 149.214); --color-green-700: oklch(52.7% .154 150.069); --color-teal-50: oklch(98.4% .014 180.72); --color-teal-600: oklch(60% .118 184.704); --color-teal-700: oklch(51.1% .096 186.391); --color-blue-50: oklch(97% .014 254.604); --color-blue-500: oklch(62.3% .214 259.815); --color-blue-600: oklch(54.6% .245 262.881); --color-blue-700: oklch(48.8% .243 264.376); --color-indigo-50: oklch(96.2% .018 272.314); --color-indigo-600: oklch(51.1% .262 276.966); --color-purple-50: oklch(97.7% .014 308.299); --color-purple-400: oklch(71.4% .203 305.504); --color-purple-600: oklch(55.8% .288 302.321); --color-purple-700: oklch(49.6% .265 301.924); --color-pink-600: oklch(59.2% .249 .584); --color-rose-50: oklch(96.9% .015 12.422); --color-rose-100: oklch(94.1% .03 12.58); --color-rose-500: oklch(64.5% .246 16.439); --color-rose-600: oklch(58.6% .253 17.585); --color-slate-50: oklch(98.4% .003 247.858); --color-slate-400: oklch(70.4% .04 256.788); --color-slate-500: oklch(55.4% .046 257.417); --color-slate-600: oklch(44.6% .043 257.281); --color-slate-900: oklch(20.8% .042 265.755); --color-gray-50: oklch(98.5% .002 247.839); --color-gray-100: oklch(96.7% .003 264.542); --color-gray-200: oklch(92.8% .006 264.531); --color-gray-300: oklch(87.2% .01 258.338); --color-gray-400: oklch(70.7% .022 261.325); --color-gray-500: oklch(55.1% .027 264.364); --color-gray-600: oklch(44.6% .03 256.802); --color-gray-700: oklch(37.3% .034 259.733); --color-gray-800: oklch(27.8% .033 256.848); --color-gray-900: oklch(21% .034 264.665); --color-gray-950: oklch(13% .028 261.692); --color-zinc-300: oklch(87.1% .006 286.286); --color-zinc-800: oklch(27.4% .006 286.033); --color-zinc-900: oklch(21% .006 285.885); --color-neutral-50: oklch(98.5% 0 0); --color-neutral-100: oklch(97% 0 0); --color-neutral-200: oklch(92.2% 0 0); --color-neutral-300: oklch(87% 0 0); --color-neutral-400: oklch(70.8% 0 0); --color-neutral-500: oklch(55.6% 0 0); --color-neutral-600: oklch(43.9% 0 0); --color-neutral-700: oklch(37.1% 0 0); --color-neutral-800: oklch(26.9% 0 0); --color-neutral-900: oklch(20.5% 0 0); --color-neutral-950: oklch(14.5% 0 0); --color-black: #000; --color-white: #fff; --spacing: 4px; --breakpoint-xl: 1280px; --container-sm: 384px; --container-md: 448px; --container-lg: 512px; --container-xl: 576px; --container-2xl: 672px; --container-4xl: 896px; --container-6xl: 1152px; --container-7xl: 1280px; --text-xs: 12px; --text-xs--line-height: calc(1 / .75); --text-sm: 14px; --text-sm--line-height: calc(1.25 / .875); --text-base: 16px; --text-base--line-height: 1.5; --text-lg: 18px; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 20px; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 24px; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 30px; --text-3xl--line-height: 1.2; --text-4xl: 36px; --text-4xl--line-height: calc(2.5 / 2.25); --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; --font-weight-black: 900; --tracking-tight: -.025em; --tracking-normal: 0em; --tracking-wide: .025em; --tracking-wider: .05em; --tracking-widest: .1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --radius-xs: 2px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 12px; --radius-2xl: 16px; --radius-3xl: 24px; --radius-4xl: 32px; --ease-in: cubic-bezier(.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, .2, 1); --ease-in-out: cubic-bezier(.4, 0, .2, 1); --animate-spin: spin 1s linear infinite; --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; --blur-sm: 8px; --default-transition-duration: .15s; --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1); --default-font-family: var(--font-sans); --default-mono-font-family: var(--font-mono); }*, ::after, ::before, ::backdrop { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }::file-selector-button { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }html, :host { text-size-adjust: 100%; tab-size: 4; line-height: 1.5; font-family: var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); font-feature-settings: var(--default-font-feature-settings,normal); font-variation-settings: var(--default-font-variation-settings,normal); -webkit-tap-highlight-color: transparent; }hr { height: 0px; color: inherit; border-top-width: 1px; }abbr:where([title]) { text-decoration: underline dotted; }h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }a { color: inherit; text-decoration: inherit; }b, strong { font-weight: bolder; }code, kbd, samp, pre { font-family: var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); font-feature-settings: var(--default-mono-font-feature-settings,normal); font-variation-settings: var(--default-mono-font-variation-settings,normal); font-size: 1em; }small { font-size: 80%; }sub, sup { vertical-align: baseline; font-size: 75%; line-height: 0; position: relative; }sub { bottom: -0.25em; }sup { top: -0.5em; }table { text-indent: 0px; border-color: inherit; border-collapse: collapse; }progress { vertical-align: baseline; }summary { display: list-item; }ol, ul, menu { list-style: none; }img, svg, video, canvas, audio, iframe, embed, object { vertical-align: middle; display: block; }img, video { max-width: 100%; height: auto; }button, input, select, optgroup, textarea { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }::file-selector-button { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }:where(select:is([multiple], [size])) optgroup { font-weight: bolder; }:where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; }::file-selector-button { margin-inline-end: 4px; }::placeholder { opacity: 1; }@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {  ::placeholder { color: currentcolor; }  @supports (color:color-mix(in lab,red,red)) {  ::placeholder { color: color-mix(currentcolor, transparent); }}}textarea { resize: vertical; }::-webkit-search-decoration { appearance: none; }::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; }::-webkit-datetime-edit { display: inline-flex; }::-webkit-datetime-edit-fields-wrapper { padding: 0px; }::-webkit-datetime-edit { padding-block: 0px; }::-webkit-datetime-edit-year-field { padding-block: 0px; }::-webkit-datetime-edit-month-field { padding-block: 0px; }::-webkit-datetime-edit-day-field { padding-block: 0px; }::-webkit-datetime-edit-hour-field { padding-block: 0px; }::-webkit-datetime-edit-minute-field { padding-block: 0px; }::-webkit-datetime-edit-second-field { padding-block: 0px; }::-webkit-datetime-edit-millisecond-field { padding-block: 0px; }::-webkit-datetime-edit-meridiem-field { padding-block: 0px; }::-webkit-calendar-picker-indicator { line-height: 1; }button, input:where([type="button"], [type="reset"], [type="submit"]) { appearance: button; }::file-selector-button { appearance: button; }::-webkit-inner-spin-button { height: auto; }::-webkit-outer-spin-button { height: auto; }[hidden]:where(:not([hidden="until-found"])) { display: none !important; }@layer components;.\@container { container-type: inline-size; }.pointer-events-auto { pointer-events: auto; }.pointer-events-none { pointer-events: none; }.collapse { visibility: collapse; }.invisible { visibility: hidden; }.visible { visibility: visible; }.sr-only { clip-path: inset(50%); white-space: nowrap; border-width: 0px; width: 1px; height: 1px; margin: -1px; padding: 0px; position: absolute; overflow: hidden; }.absolute { position: absolute; }.fixed { position: fixed; }.relative { position: relative; }.static { position: static; }.sticky { position: sticky; }.inset-0 { inset: calc(var(--spacing) * 0); }.top-0 { top: calc(var(--spacing) * 0); }.top-1 { top: calc(var(--spacing) * 1); }.top-1\/2 { top: 50%; }.top-3 { top: calc(var(--spacing) * 3); }.top-4 { top: calc(var(--spacing) * 4); }.top-\[76px\] { top: 76px; }.top-\[80px\] { top: 80px; }.top-auto { top: auto; }.top-full { top: 100%; }.-right-0, .right-0 { right: calc(var(--spacing) * 0); }.right-1 { right: calc(var(--spacing) * 1); }.right-2 { right: calc(var(--spacing) * 2); }.right-3 { right: calc(var(--spacing) * 3); }.right-4 { right: calc(var(--spacing) * 4); }.right-full { right: 100%; }.-bottom-0, .bottom-0 { bottom: calc(var(--spacing) * 0); }.bottom-3 { bottom: calc(var(--spacing) * 3); }.bottom-4 { bottom: calc(var(--spacing) * 4); }.bottom-full { bottom: 100%; }.-left-2 { left: calc(var(--spacing) * -2); }.left-0 { left: calc(var(--spacing) * 0); }.left-1 { left: calc(var(--spacing) * 1); }.left-1\/2 { left: 50%; }.left-2 { left: calc(var(--spacing) * 2); }.left-3 { left: calc(var(--spacing) * 3); }.left-4 { left: calc(var(--spacing) * 4); }.left-auto { left: auto; }.left-full { left: 100%; }.isolate { isolation: isolate; }.z-10 { z-index: 10; }.z-20 { z-index: 20; }.z-50 { z-index: 50; }.z-\[60\] { z-index: 60; }.z-\[99\] { z-index: 99; }.z-\[100\] { z-index: 100; }.z-\[9999\] { z-index: 9999; }.z-\[10000\] { z-index: 10000; }.z-\[10001\] { z-index: 10001; }.z-\[var\(--burger-btn-z-index\,1\)\] { z-index: var(--burger-btn-z-index,1); }.order-first { order: -9999; }.col-span-2 { grid-column: span 2 / span 2; }.col-span-3 { grid-column: span 3 / span 3; }.col-span-7 { grid-column: span 7 / span 7; }.col-span-10 { grid-column: span 10 / span 10; }.row-3 { grid-row: 3; }.row-4 { grid-row: 4; }.float-end { float: inline-end; }.float-left { float: left; }.float-start { float: inline-start; }.clear-both { clear: both; }.clear-left { clear: left; }.container { width: 100%; }@media (min-width: 640px) {  .container { max-width: 640px; }}@media (min-width: 768px) {  .container { max-width: 768px; }}@media (min-width: 1024px) {  .container { max-width: 1024px; }}@media (min-width: 1280px) {  .container { max-width: 1280px; }}@media (min-width: 1536px) {  .container { max-width: 1536px; }}.m-0 { margin: calc(var(--spacing) * 0); }.m-1 { margin: calc(var(--spacing) * 1); }.m-4 { margin: calc(var(--spacing) * 4); }.m-auto { margin: auto; }.-mx-4 { margin-inline: calc(var(--spacing) * -4); }.mx-0 { margin-inline: calc(var(--spacing) * 0); }.mx-1 { margin-inline: calc(var(--spacing) * 1); }.mx-2 { margin-inline: calc(var(--spacing) * 2); }.mx-4 { margin-inline: calc(var(--spacing) * 4); }.mx-auto { margin-inline: auto; }.-my-2 { margin-block: calc(var(--spacing) * -2); }.my-0 { margin-block: calc(var(--spacing) * 0); }.my-1 { margin-block: calc(var(--spacing) * 1); }.my-2 { margin-block: calc(var(--spacing) * 2); }.my-3 { margin-block: calc(var(--spacing) * 3); }.my-4 { margin-block: calc(var(--spacing) * 4); }.my-5 { margin-block: calc(var(--spacing) * 5); }.my-6 { margin-block: calc(var(--spacing) * 6); }.my-7 { margin-block: calc(var(--spacing) * 7); }.my-8 { margin-block: calc(var(--spacing) * 8); }.my-10 { margin-block: calc(var(--spacing) * 10); }.my-auto { margin-block: auto; }.ms-4 { margin-inline-start: calc(var(--spacing) * 4); }.me-2 { margin-inline-end: calc(var(--spacing) * 2); }.prose { color: var(--tw-prose-#widget-t4n1495); max-width: 65ch; }.prose :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }.prose :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-lead); margin-top: 1.2em; margin-bottom: 1.2em; font-size: 1.25em; line-height: 1.6; }.prose :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-links); font-weight: 500; text-decoration: underline; }.prose :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600; }.prose :where(a strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(blockquote strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(thead th strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; list-style-type: decimal; }.prose :where(ol[type="A"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where(ol[type="a"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-alpha; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-alpha; }.prose :where(ol[type="I"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-roman; }.prose :where(ol[type="i"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-roman; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-roman; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-roman; }.prose :where(ol[type="1"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: decimal; }.prose :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; list-style-type: disc; }.prose :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { color: var(--tw-prose-counters); font-weight: 400; }.prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { color: var(--tw-prose-bullets); }.prose :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.25em; font-weight: 600; }.prose :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-top: 3em; margin-bottom: 3em; }.prose :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-quotes); border-inline-start-width: 4px; border-inline-start-color: var(--tw-prose-quote-borders); quotes: "“" "”" "‘" "’"; margin-top: 1.6em; margin-bottom: 1.6em; padding-inline-start: 1em; font-style: italic; font-weight: 500; }.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::before { content: open-quote; }.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: close-quote; }.prose :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 0px; margin-bottom: 0.888889em; font-size: 2.25em; font-weight: 800; line-height: 1.11111; }.prose :where(h1 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 900; }.prose :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 2em; margin-bottom: 1em; font-size: 1.5em; font-weight: 700; line-height: 1.33333; }.prose :where(h2 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 800; }.prose :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.6em; margin-bottom: 0.6em; font-size: 1.25em; font-weight: 600; line-height: 1.6; }.prose :where(h3 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 700; }.prose :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.5em; margin-bottom: 0.5em; font-weight: 600; line-height: 1.5; }.prose :where(h4 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 700; }.prose :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; display: block; }.prose :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-kbd); box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows); padding-top: 0.1875em; padding-inline: 0.375em; padding-bottom: 0.1875em; border-radius: 5px; font-family: inherit; font-size: 0.875em; font-weight: 500; }.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-code); font-size: 0.875em; font-weight: 600; }.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: "`"; }.prose :where(a code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h1 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-size: 0.875em; }.prose :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-size: 0.9em; }.prose :where(h4 code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(blockquote code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(thead th code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-pre-code); background-color: var(--tw-prose-pre-bg); padding-top: 0.857143em; padding-inline: 1.14286em; padding-bottom: 0.857143em; border-radius: 6px; margin-top: 1.71429em; margin-bottom: 1.71429em; font-size: 0.875em; font-weight: 400; line-height: 1.71429; overflow-x: auto; }.prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit; background-color: rgba(0, 0, 0, 0); border-width: 0px; border-radius: 0px; padding: 0px; }.prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: none; }.prose :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { table-layout: auto; width: 100%; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.71429; }.prose :where(thead):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders); }.prose :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); vertical-align: bottom; padding-inline: 0.571429em; padding-bottom: 0.571429em; font-weight: 600; }.prose :where(t#widget-t4n1495 tr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); }.prose :where(t#widget-t4n1495 tr:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 0px; }.prose :where(t#widget-t4n1495 td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { vertical-align: baseline; }.prose :where(tfoot):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-top-width: 1px; border-top-color: var(--tw-prose-th-borders); }.prose :where(tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { vertical-align: top; }.prose :where(th, td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { text-align: start; }.prose :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-captions); margin-top: 0.857143em; font-size: 0.875em; line-height: 1.42857; }.prose { --tw-prose-#widget-t4n1495: oklch(37.3% .034 259.733); --tw-prose-headings: oklch(21% .034 264.665); --tw-prose-lead: oklch(44.6% .03 256.802); --tw-prose-links: oklch(21% .034 264.665); --tw-prose-bold: oklch(21% .034 264.665); --tw-prose-counters: oklch(55.1% .027 264.364); --tw-prose-bullets: oklch(87.2% .01 258.338); --tw-prose-hr: oklch(92.8% .006 264.531); --tw-prose-quotes: oklch(21% .034 264.665); --tw-prose-quote-borders: oklch(92.8% .006 264.531); --tw-prose-captions: oklch(55.1% .027 264.364); --tw-prose-kbd: oklch(21% .034 264.665); --tw-prose-kbd-shadows: oklab(21% -.00316127 -.0338527/.1); --tw-prose-code: oklch(21% .034 264.665); --tw-prose-pre-code: oklch(92.8% .006 264.531); --tw-prose-pre-bg: oklch(27.8% .033 256.848); --tw-prose-th-borders: oklch(87.2% .01 258.338); --tw-prose-td-borders: oklch(92.8% .006 264.531); --tw-prose-invert-#widget-t4n1495: oklch(87.2% .01 258.338); --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: oklch(70.7% .022 261.325); --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: oklch(70.7% .022 261.325); --tw-prose-invert-bullets: oklch(44.6% .03 256.802); --tw-prose-invert-hr: oklch(37.3% .034 259.733); --tw-prose-invert-quotes: oklch(96.7% .003 264.542); --tw-prose-invert-quote-borders: oklch(37.3% .034 259.733); --tw-prose-invert-captions: oklch(70.7% .022 261.325); --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: #ffffff1a; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: oklch(87.2% .01 258.338); --tw-prose-invert-pre-bg: #00000080; --tw-prose-invert-th-borders: oklch(44.6% .03 256.802); --tw-prose-invert-td-borders: oklch(37.3% .034 259.733); font-size: 16px; line-height: 1.75; }.prose :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; }.prose :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0.375em; }.prose :where(.prose > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; }.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; }.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }.prose :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }.prose :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.5em; padding-inline-start: 1.625em; }.prose :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose :where(t#widget-t4n1495 td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.571429em; padding-inline: 0.571429em; padding-bottom: 0.571429em; }.prose :where(t#widget-t4n1495 td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose :where(t#widget-t4n1495 td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose :where(.prose > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 0px; }.prose-lg { font-size: 18px; line-height: 1.77778; }.prose-lg :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }.prose-lg :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.09091em; margin-bottom: 1.09091em; font-size: 1.22222em; line-height: 1.45455; }.prose-lg :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 1.66667em; padding-inline-start: 1em; }.prose-lg :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0.833333em; font-size: 2.66667em; line-height: 1; }.prose-lg :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.86667em; margin-bottom: 1.06667em; font-size: 1.66667em; line-height: 1.33333; }.prose-lg :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 0.666667em; font-size: 1.33333em; line-height: 1.5; }.prose-lg :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 0.444444em; line-height: 1.55556; }.prose-lg :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose-lg :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.222222em; padding-inline: 0.444444em; padding-bottom: 0.222222em; border-radius: 5px; font-size: 0.888889em; }.prose-lg :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.888889em; }.prose-lg :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.866667em; }.prose-lg :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.875em; }.prose-lg :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 1em; padding-inline: 1.5em; padding-bottom: 1em; border-radius: 6px; margin-top: 2em; margin-bottom: 2em; font-size: 0.888889em; line-height: 1.75; }.prose-lg :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; padding-inline-start: 1.55556em; }.prose-lg :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.666667em; margin-bottom: 0.666667em; }.prose-lg :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0.444444em; }.prose-lg :where(.prose-lg > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }.prose-lg :where(.prose-lg > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(.prose-lg > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.33333em; }.prose-lg :where(.prose-lg > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(.prose-lg > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.33333em; }.prose-lg :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }.prose-lg :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }.prose-lg :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.666667em; padding-inline-start: 1.55556em; }.prose-lg :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 3.11111em; margin-bottom: 3.11111em; }.prose-lg :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose-lg :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.888889em; line-height: 1.5; }.prose-lg :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline: 0.75em; padding-bottom: 0.75em; }.prose-lg :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose-lg :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose-lg :where(t#widget-t4n1495 td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.75em; padding-inline: 0.75em; padding-bottom: 0.75em; }.prose-lg :where(t#widget-t4n1495 td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose-lg :where(t#widget-t4n1495 td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose-lg :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose-lg :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1em; font-size: 0.888889em; line-height: 1.5; }.prose-lg :where(.prose-lg > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose-lg :where(.prose-lg > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 0px; }.mt-0 { margin-top: calc(var(--spacing) * 0); }.mt-1 { margin-top: calc(var(--spacing) * 1); }.mt-2 { margin-top: calc(var(--spacing) * 2); }.mt-3 { margin-top: calc(var(--spacing) * 3); }.mt-4 { margin-top: calc(var(--spacing) * 4); }.mt-5 { margin-top: calc(var(--spacing) * 5); }.mt-6 { margin-top: calc(var(--spacing) * 6); }.mt-7 { margin-top: calc(var(--spacing) * 7); }.mt-8 { margin-top: calc(var(--spacing) * 8); }.mt-10 { margin-top: calc(var(--spacing) * 10); }.mt-auto { margin-top: auto; }.-mr-1 { margin-right: calc(var(--spacing) * -1); }.mr-0 { margin-right: calc(var(--spacing) * 0); }.mr-1 { margin-right: calc(var(--spacing) * 1); }.mr-1\.5 { margin-right: calc(var(--spacing) * 1.5); }.mr-2 { margin-right: calc(var(--spacing) * 2); }.mr-3 { margin-right: calc(var(--spacing) * 3); }.mr-4 { margin-right: calc(var(--spacing) * 4); }.mr-5 { margin-right: calc(var(--spacing) * 5); }.mr-8 { margin-right: calc(var(--spacing) * 8); }.mr-auto { margin-right: auto; }.mb-0 { margin-bottom: calc(var(--spacing) * 0); }.mb-1 { margin-bottom: calc(var(--spacing) * 1); }.mb-2 { margin-bottom: calc(var(--spacing) * 2); }.mb-3 { margin-bottom: calc(var(--spacing) * 3); }.mb-4 { margin-bottom: calc(var(--spacing) * 4); }.mb-5 { margin-bottom: calc(var(--spacing) * 5); }.mb-6 { margin-bottom: calc(var(--spacing) * 6); }.mb-7 { margin-bottom: calc(var(--spacing) * 7); }.mb-8 { margin-bottom: calc(var(--spacing) * 8); }.mb-10 { margin-bottom: calc(var(--spacing) * 10); }.-ml-1 { margin-left: calc(var(--spacing) * -1); }.-ml-2 { margin-left: calc(var(--spacing) * -2); }.-ml-5 { margin-left: calc(var(--spacing) * -5); }.ml-0 { margin-left: calc(var(--spacing) * 0); }.ml-0\.5 { margin-left: calc(var(--spacing) * .5); }.ml-1 { margin-left: calc(var(--spacing) * 1); }.ml-2 { margin-left: calc(var(--spacing) * 2); }.ml-3 { margin-left: calc(var(--spacing) * 3); }.ml-4 { margin-left: calc(var(--spacing) * 4); }.ml-6 { margin-left: calc(var(--spacing) * 6); }.ml-8 { margin-left: calc(var(--spacing) * 8); }.ml-auto { margin-left: auto; }.box-border { box-sizing: border-box; }.line-clamp-2 { -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }.line-clamp-3 { -webkit-line-clamp: 3; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }.block { display: block; }.contents { display: contents; }.flex { display: flex; }.flow-root { display: flow-root; }.grid { display: grid; }.hidden { display: none; }.inline { display: inline; }.inline-block { display: inline-block; }.inline-flex { display: inline-flex; }.table { display: table; }.table-row { display: table-row; }.aspect-square { aspect-ratio: 1 / 1; }.size-1 { width: calc(var(--spacing) * 1); height: calc(var(--spacing) * 1); }.size-1\.5 { width: calc(var(--spacing) * 1.5); height: calc(var(--spacing) * 1.5); }.size-2 { width: calc(var(--spacing) * 2); height: calc(var(--spacing) * 2); }.size-3 { width: calc(var(--spacing) * 3); height: calc(var(--spacing) * 3); }.size-4 { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); }.size-5 { width: calc(var(--spacing) * 5); height: calc(var(--spacing) * 5); }.size-6 { width: calc(var(--spacing) * 6); height: calc(var(--spacing) * 6); }.size-7 { width: calc(var(--spacing) * 7); height: calc(var(--spacing) * 7); }.size-8 { width: calc(var(--spacing) * 8); height: calc(var(--spacing) * 8); }.size-9 { width: calc(var(--spacing) * 9); height: calc(var(--spacing) * 9); }.size-10 { width: calc(var(--spacing) * 10); height: calc(var(--spacing) * 10); }.size-12 { width: calc(var(--spacing) * 12); height: calc(var(--spacing) * 12); }.size-16 { width: calc(var(--spacing) * 16); height: calc(var(--spacing) * 16); }.size-20 { width: calc(var(--spacing) * 20); height: calc(var(--spacing) * 20); }.size-40 { width: calc(var(--spacing) * 40); height: calc(var(--spacing) * 40); }.size-full { width: 100%; height: 100%; }.h-1 { height: calc(var(--spacing) * 1); }.h-1\.5 { height: calc(var(--spacing) * 1.5); }.h-2 { height: calc(var(--spacing) * 2); }.h-3 { height: calc(var(--spacing) * 3); }.h-4 { height: calc(var(--spacing) * 4); }.h-5 { height: calc(var(--spacing) * 5); }.h-6 { height: calc(var(--spacing) * 6); }.h-7 { height: calc(var(--spacing) * 7); }.h-8 { height: calc(var(--spacing) * 8); }.h-9 { height: calc(var(--spacing) * 9); }.h-10 { height: calc(var(--spacing) * 10); }.h-12 { height: calc(var(--spacing) * 12); }.h-14 { height: calc(var(--spacing) * 14); }.h-16 { height: calc(var(--spacing) * 16); }.h-20 { height: calc(var(--spacing) * 20); }.h-24 { height: calc(var(--spacing) * 24); }.h-28 { height: calc(var(--spacing) * 28); }.h-64 { height: calc(var(--spacing) * 64); }.h-\[30px\] { height: 30px; }.h-\[40px\] { height: 40px; }.h-\[44px\] { height: 44px; }.h-\[76px\] { height: 76px; }.h-\[600px\] { height: 600px; }.h-\[var\(--logo-height-mobile\,25px\)\] { height: var(--logo-height-mobile,25px); }.h-\[var\(--site-header-height\,60px\)\] { height: var(--site-header-height,60px); }.h-auto { height: auto; }.h-fit { height: fit-content; }.h-full { height: 100%; }.h-min { height: min-content; }.h-px { height: 1px; }.h-screen { height: 100vh; }.max-h-0 { max-height: calc(var(--spacing) * 0); }.max-h-6 { max-height: calc(var(--spacing) * 6); }.max-h-12 { max-height: calc(var(--spacing) * 12); }.max-h-32 { max-height: calc(var(--spacing) * 32); }.max-h-80 { max-height: calc(var(--spacing) * 80); }.max-h-\[90vh\] { max-height: 90vh; }.max-h-\[var\(--logo-height-mobile\,25px\)\] { max-height: var(--logo-height-mobile,25px); }.min-h-8 { min-height: calc(var(--spacing) * 8); }.min-h-10 { min-height: calc(var(--spacing) * 10); }.min-h-\[400px\] { min-height: 400px; }.min-h-full { min-height: 100%; }.min-h-screen { min-height: 100vh; }.w-0 { width: calc(var(--spacing) * 0); }.w-1 { width: calc(var(--spacing) * 1); }.w-1\.5 { width: calc(var(--spacing) * 1.5); }.w-1\/3 { width: 33.3333%; }.w-1\/4 { width: 25%; }.w-2 { width: calc(var(--spacing) * 2); }.w-3 { width: calc(var(--spacing) * 3); }.w-4 { width: calc(var(--spacing) * 4); }.w-5 { width: calc(var(--spacing) * 5); }.w-6 { width: calc(var(--spacing) * 6); }.w-8 { width: calc(var(--spacing) * 8); }.w-9 { width: calc(var(--spacing) * 9); }.w-10 { width: calc(var(--spacing) * 10); }.w-12 { width: calc(var(--spacing) * 12); }.w-16 { width: calc(var(--spacing) * 16); }.w-20 { width: calc(var(--spacing) * 20); }.w-24 { width: calc(var(--spacing) * 24); }.w-28 { width: calc(var(--spacing) * 28); }.w-32 { width: calc(var(--spacing) * 32); }.w-36 { width: calc(var(--spacing) * 36); }.w-40 { width: calc(var(--spacing) * 40); }.w-44 { width: calc(var(--spacing) * 44); }.w-48 { width: calc(var(--spacing) * 48); }.w-56 { width: calc(var(--spacing) * 56); }.w-64 { width: calc(var(--spacing) * 64); }.w-\[140px\] { width: 140px; }.w-auto { width: auto; }.w-fit { width: fit-content; }.w-full { width: 100%; }.w-max { width: max-content; }.w-px { width: 1px; }.w-screen { width: 100vw; }.max-w-2xl { max-width: var(--container-2xl); }.max-w-4xl { max-width: var(--container-4xl); }.max-w-6xl { max-width: var(--container-6xl); }.max-w-7xl { max-width: var(--container-7xl); }.max-w-32 { max-width: calc(var(--spacing) * 32); }.max-w-40 { max-width: calc(var(--spacing) * 40); }.max-w-64 { max-width: calc(var(--spacing) * 64); }.max-w-\[960px\] { max-width: 960px; }.max-w-\[65ch\] { max-width: 65ch; }.max-w-\[1200px\] { max-width: 1200px; }.max-w-\[min\(var\(--site-header-max-width\,970px\)\,98dvw\)\] { max-width: min(var(--site-header-max-width,970px),98dvw); }.max-w-full { max-width: 100%; }.max-w-lg { max-width: var(--container-lg); }.max-w-md { max-width: var(--container-md); }.max-w-none { max-width: none; }.max-w-screen-xl { max-width: var(--breakpoint-xl); }.max-w-sm { max-width: var(--container-sm); }.max-w-xl { max-width: var(--container-xl); }.min-w-0 { min-width: calc(var(--spacing) * 0); }.min-w-8 { min-width: calc(var(--spacing) * 8); }.min-w-10 { min-width: calc(var(--spacing) * 10); }.min-w-16 { min-width: calc(var(--spacing) * 16); }.min-w-20 { min-width: calc(var(--spacing) * 20); }.min-w-36 { min-width: calc(var(--spacing) * 36); }.min-w-40 { min-width: calc(var(--spacing) * 40); }.min-w-52 { min-width: calc(var(--spacing) * 52); }.min-w-\[800px\] { min-width: 800px; }.min-w-\[var\(--tray-bell-min-width\,40px\)\] { min-width: var(--tray-bell-min-width,40px); }.min-w-full { min-width: 100%; }.flex-0 { flex: 0 1 0%; }.flex-1 { flex: 1 1 0%; }.flex-none { flex: 0 0 auto; }.flex-shrink { flex-shrink: 1; }.flex-shrink-0 { flex-shrink: 0; }.shrink { flex-shrink: 1; }.shrink-0 { flex-shrink: 0; }.flex-grow, .grow { flex-grow: 1; }.grow-0 { flex-grow: 0; }.basis-1 { flex-basis: calc(var(--spacing) * 1); }.basis-2 { flex-basis: calc(var(--spacing) * 2); }.basis-3 { flex-basis: calc(var(--spacing) * 3); }.basis-11 { flex-basis: calc(var(--spacing) * 11); }.basis-13 { flex-basis: calc(var(--spacing) * 13); }.basis-auto { flex-basis: auto; }.basis-full { flex-basis: 100%; }.border-collapse { border-collapse: collapse; }.origin-center { transform-origin: 50% center; }.origin-top-right { transform-origin: 100% 0px; }.-translate-x-1 { --tw-translate-x: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-x-1\/2 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-x-2 { --tw-translate-x: calc(var(--spacing) * -2); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-x-0 { --tw-translate-x: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-x-4 { --tw-translate-x: calc(var(--spacing) * 4); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-1 { --tw-translate-y: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-1\/2 { --tw-translate-y: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-full { --tw-translate-y: -100%; translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-0 { --tw-translate-y: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-4 { --tw-translate-y: calc(var(--spacing) * 4); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-full { --tw-translate-y: 100%; translate: var(--tw-translate-x) var(--tw-translate-y); }.scale-95 { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); }.scale-100 { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); }.-rotate-90 { rotate: -90deg; }.rotate-90 { rotate: 90deg; }.rotate-180 { rotate: 180deg; }.transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); }.animate-pulse { animation: var(--animate-pulse); }.animate-spin { animation: var(--animate-spin); }.cursor-default { cursor: default; }.cursor-not-allowed { cursor: not-allowed; }.cursor-pointer { cursor: pointer; }.resize { resize: both; }.resize-y { resize: vertical; }.snap-x { scroll-snap-type: x var(--tw-scroll-snap-strictness); }.snap-mandatory { --tw-scroll-snap-strictness: mandatory; }.snap-start { scroll-snap-align: start; }.list-outside { list-style-position: outside; }.list-disc { list-style-type: disc; }.list-none { list-style-type: none; }.appearance-none { appearance: none; }.grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }.grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }.grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }.grid-rows-2 { grid-template-rows: repeat(2, minmax(0px, 1fr)); }.flex-col { flex-direction: column; }.flex-row { flex-direction: row; }.flex-row-reverse { flex-direction: row-reverse; }.flex-nowrap { flex-wrap: nowrap; }.flex-wrap { flex-wrap: wrap; }.place-items-center { place-items: center; }.content-around { align-content: space-around; }.content-center { align-content: center; }.content-stretch { align-content: stretch; }.items-baseline { align-items: baseline; }.items-center { align-items: center; }.items-end { align-items: flex-end; }.items-start { align-items: flex-start; }.items-stretch { align-items: stretch; }.justify-between { justify-content: space-between; }.justify-center { justify-content: center; }.justify-end { justify-content: flex-end; }.justify-start { justify-content: flex-start; }.gap-0 { gap: calc(var(--spacing) * 0); }.gap-1 { gap: calc(var(--spacing) * 1); }.gap-1\.5 { gap: calc(var(--spacing) * 1.5); }.gap-2 { gap: calc(var(--spacing) * 2); }.gap-2\.5 { gap: calc(var(--spacing) * 2.5); }.gap-3 { gap: calc(var(--spacing) * 3); }.gap-4 { gap: calc(var(--spacing) * 4); }.gap-5 { gap: calc(var(--spacing) * 5); }.gap-6 { gap: calc(var(--spacing) * 6); }.gap-8 { gap: calc(var(--spacing) * 8); }.gap-\[var\(--site-header-gap\,0\10.4px\)\] { gap: var(--site-header-gap,10.4px); }.gap-px { gap: 1px; }:where(.space-y-1 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))); }.gap-x-1 { column-gap: calc(var(--spacing) * 1); }.gap-x-3 { column-gap: calc(var(--spacing) * 3); }.gap-x-4 { column-gap: calc(var(--spacing) * 4); }.gap-x-5 { column-gap: calc(var(--spacing) * 5); }.gap-x-8 { column-gap: calc(var(--spacing) * 8); }.gap-x-10 { column-gap: calc(var(--spacing) * 10); }:where(.space-x-3 > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse))); }.gap-y-1 { row-gap: calc(var(--spacing) * 1); }.gap-y-2 { row-gap: calc(var(--spacing) * 2); }.gap-y-3 { row-gap: calc(var(--spacing) * 3); }.gap-y-4 { row-gap: calc(var(--spacing) * 4); }.gap-y-6 { row-gap: calc(var(--spacing) * 6); }.gap-y-12 { row-gap: calc(var(--spacing) * 12); }:where(.divide-y > :not(:last-child)) { --tw-divide-y-reverse: 0; border-bottom-style: var(--tw-border-style); border-top-style: var(--tw-border-style); border-top-width: calc(1px * var(--tw-divide-y-reverse)); border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); }:where(.divide-neutral-100 > :not(:last-child)) { border-color: var(--color-neutral-100); }:where(.divide-white > :not(:last-child)) { border-color: var(--color-white); }.self-center { align-self: center; }.self-start { align-self: flex-start; }.truncate { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }.overflow-auto { overflow: auto; }.overflow-hidden { overflow: hidden; }.overflow-visible { overflow: visible; }.overflow-x-auto { overflow-x: auto; }.overflow-x-hidden { overflow-x: hidden; }.overflow-x-scroll { overflow-x: scroll; }.overflow-y-auto { overflow-y: auto; }.overflow-y-clip { overflow-y: clip; }.overflow-y-hidden { overflow-y: hidden; }.overflow-y-visible { overflow-y: visible; }.overscroll-x-contain { overscroll-behavior-x: contain; }.scroll-smooth { scroll-behavior: smooth; }.rounded { border-radius: 4px; }.rounded-2xl { border-radius: var(--radius-2xl); }.rounded-3xl { border-radius: var(--radius-3xl); }.rounded-4xl { border-radius: var(--radius-4xl); }.rounded-\[50\%\] { border-radius: 50%; }.rounded-\[var\(--image--border-radius\,0\)\] { border-radius: var(--image--border-radius,0); }.rounded-full { border-radius: 3.40282e+38px; }.rounded-lg { border-radius: var(--radius-lg); }.rounded-md { border-radius: var(--radius-md); }.rounded-none { border-radius: 0px; }.rounded-sm { border-radius: var(--radius-sm); }.rounded-xl { border-radius: var(--radius-xl); }.rounded-xs { border-radius: var(--radius-xs); }.rounded-t-2xl { border-top-left-radius: var(--radius-2xl); border-top-right-radius: var(--radius-2xl); }.rounded-l-full { border-top-left-radius: 3.40282e+38px; border-bottom-left-radius: 3.40282e+38px; }.rounded-tl-lg { border-top-left-radius: var(--radius-lg); }.rounded-r-full { border-top-right-radius: 3.40282e+38px; border-bottom-right-radius: 3.40282e+38px; }.rounded-tr-lg { border-top-right-radius: var(--radius-lg); }.rounded-b-none { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; }.rounded-br-lg { border-bottom-right-radius: var(--radius-lg); }.rounded-bl-lg { border-bottom-left-radius: var(--radius-lg); }.border { border-style: var(--tw-border-style); border-width: 1px; }.border-0 { border-style: var(--tw-border-style); border-width: 0px; }.border-1 { border-style: var(--tw-border-style); border-width: 1px; }.border-2 { border-style: var(--tw-border-style); border-width: 2px; }.border-8 { border-style: var(--tw-border-style); border-width: 8px; }.border-x-0 { border-inline-style: var(--tw-border-style); border-inline-width: 0px; }.border-y { border-block-style: var(--tw-border-style); border-block-width: 1px; }.border-y-0 { border-block-style: var(--tw-border-style); border-block-width: 0px; }.border-y-2 { border-block-style: var(--tw-border-style); border-block-width: 2px; }.border-t { border-top-style: var(--tw-border-style); border-top-width: 1px; }.border-t-2 { border-top-style: var(--tw-border-style); border-top-width: 2px; }.border-r { border-right-style: var(--tw-border-style); border-right-width: 1px; }.border-r-0 { border-right-style: var(--tw-border-style); border-right-width: 0px; }.border-b { border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; }.border-b-0 { border-bottom-style: var(--tw-border-style); border-bottom-width: 0px; }.border-b-2 { border-bottom-style: var(--tw-border-style); border-bottom-width: 2px; }.border-l { border-left-style: var(--tw-border-style); border-left-width: 1px; }.border-dashed { --tw-border-style: dashed; border-style: dashed; }.border-none { --tw-border-style: none; border-style: none; }.border-solid { --tw-border-style: solid; border-style: solid; }.border-\(--footer-nav-border-color\) { border-color: var(--footer-nav-border-color); }.border-\[\#DC1F26\] { border-color: rgb(220, 31, 38); }.border-black { border-color: var(--color-black); }.border-gray-100 { border-color: var(--color-gray-100); }.border-gray-200 { border-color: var(--color-gray-200); }.border-gray-300 { border-color: var(--color-gray-300); }.border-gray-400 { border-color: var(--color-gray-400); }.border-gray-500 { border-color: var(--color-gray-500); }.border-gray-600 { border-color: var(--color-gray-600); }.border-gray-700 { border-color: var(--color-gray-700); }.border-gray-800 { border-color: var(--color-gray-800); }.border-green-600 { border-color: var(--color-green-600); }.border-neutral-100 { border-color: var(--color-neutral-100); }.border-neutral-200 { border-color: var(--color-neutral-200); }.border-neutral-300 { border-color: var(--color-neutral-300); }.border-red-600 { border-color: var(--color-red-600); }.border-rose-100 { border-color: var(--color-rose-100); }.border-slate-600 { border-color: var(--color-slate-600); }.border-transparent { border-color: rgba(0, 0, 0, 0); }.border-white { border-color: var(--color-white); }.border-yellow-300 { border-color: var(--color-yellow-300); }.border-yellow-500 { border-color: var(--color-yellow-500); }.border-t-black { border-top-color: var(--color-black); }.border-t-neutral-500 { border-top-color: var(--color-neutral-500); }.border-r-neutral-100 { border-right-color: var(--color-neutral-100); }.border-r-neutral-200 { border-right-color: var(--color-neutral-200); }.border-b-black { border-bottom-color: var(--color-black); }.border-b-neutral-200 { border-bottom-color: var(--color-neutral-200); }.border-b-neutral-300 { border-bottom-color: var(--color-neutral-300); }.border-l-neutral-200 { border-left-color: var(--color-neutral-200); }.bg-\(--footer-bg-color\) { background-color: var(--footer-bg-color); }.bg-\[\#33333370\] { background-color: rgba(51, 51, 51, 0.44); }.bg-\[\#DC1F26\] { background-color: rgb(220, 31, 38); }.bg-\[\#ededed\] { background-color: rgb(237, 237, 237); }.bg-\[var\(--region-redirect-banner-background\,var\(--brand-color-1\)\)\] { background-color: var(--region-redirect-banner-background,var(--brand-color-1)); }.bg-\[var\(--site-header-background-color\,white\)\] { background-color: var(--site-header-background-color,white); }.bg-amber-50 { background-color: var(--color-amber-50); }.bg-black { background-color: var(--color-black); }.bg-blue-50 { background-color: var(--color-blue-50); }.bg-gray-50 { background-color: var(--color-gray-50); }.bg-gray-100 { background-color: var(--color-gray-100); }.bg-gray-200 { background-color: var(--color-gray-200); }.bg-gray-300 { background-color: var(--color-gray-300); }.bg-gray-500 { background-color: var(--color-gray-500); }.bg-gray-500\/75 { background-color: rgba(106, 114, 130, 0.75); }@supports (color:color-mix(in lab,red,red)) {  .bg-gray-500\/75 { background-color: color-mix(in oklab,var(--color-gray-500) 75%,transparent); }}.bg-gray-800 { background-color: var(--color-gray-800); }.bg-gray-900 { background-color: var(--color-gray-900); }.bg-gray-950 { background-color: var(--color-gray-950); }.bg-green-50 { background-color: var(--color-green-50); }.bg-green-100 { background-color: var(--color-green-100); }.bg-green-500 { background-color: var(--color-green-500); }.bg-green-600 { background-color: var(--color-green-600); }.bg-inherit { background-color: inherit; }.bg-neutral-50 { background-color: var(--color-neutral-50); }.bg-neutral-50\/50 { background-color: rgba(250, 250, 250, 0.5); }@supports (color:color-mix(in lab,red,red)) {  .bg-neutral-50\/50 { background-color: color-mix(in oklab,var(--color-neutral-50) 50%,transparent); }}.bg-neutral-100 { background-color: var(--color-neutral-100); }.bg-neutral-200 { background-color: var(--color-neutral-200); }.bg-neutral-300 { background-color: var(--color-neutral-300); }.bg-neutral-500 { background-color: var(--color-neutral-500); }.bg-neutral-600 { background-color: var(--color-neutral-600); }.bg-neutral-800 { background-color: var(--color-neutral-800); }.bg-neutral-900 { background-color: var(--color-neutral-900); }.bg-neutral-900\/40 { background-color: rgba(23, 23, 23, 0.4); }@supports (color:color-mix(in lab,red,red)) {  .bg-neutral-900\/40 { background-color: color-mix(in oklab,var(--color-neutral-900) 40%,transparent); }}.bg-neutral-950 { background-color: var(--color-neutral-950); }.bg-orange-50 { background-color: var(--color-orange-50); }.bg-purple-50 { background-color: var(--color-purple-50); }.bg-red-50 { background-color: var(--color-red-50); }.bg-red-100 { background-color: var(--color-red-100); }.bg-red-500 { background-color: var(--color-red-500); }.bg-red-600 { background-color: var(--color-red-600); }.bg-rose-50 { background-color: var(--color-rose-50); }.bg-rose-500 { background-color: var(--color-rose-500); }.bg-slate-50 { background-color: var(--color-slate-50); }.bg-slate-500 { background-color: var(--color-slate-500); }.bg-slate-900 { background-color: var(--color-slate-900); }.bg-teal-50 { background-color: var(--color-teal-50); }.bg-transparent { background-color: rgba(0, 0, 0, 0); }.bg-white { background-color: var(--color-white); }.bg-yellow-50 { background-color: var(--color-yellow-50); }.bg-yellow-500 { background-color: var(--color-yellow-500); }.bg-zinc-300 { background-color: var(--color-zinc-300); }.bg-zinc-800 { background-color: var(--color-zinc-800); }.bg-zinc-900 { background-color: var(--color-zinc-900); }.bg-gradient-to-l { --tw-gradient-position: to left in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }.bg-gradient-to-t { --tw-gradient-position: to top in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }.bg-none { background-image: none; }.from-gray-100 { --tw-gradient-from: var(--color-gray-100); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.from-gray-950 { --tw-gradient-from: var(--color-gray-950); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.from-white { --tw-gradient-from: var(--color-white); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-gray-200 { --tw-gradient-to: var(--color-gray-200); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-gray-800 { --tw-gradient-to: var(--color-gray-800); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-transparent { --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.bg-cover { background-size: cover; }.bg-center { background-position: 50% center; }.bg-repeat { background-repeat: repeat; }.fill-gray-500 { fill: var(--color-gray-500); }.fill-white { fill: var(--color-white); }.object-contain { object-fit: contain; }.object-cover { object-fit: cover; }.object-center { object-position: center center; }.p-0 { padding: calc(var(--spacing) * 0); }.p-1 { padding: calc(var(--spacing) * 1); }.p-1\.5 { padding: calc(var(--spacing) * 1.5); }.p-2 { padding: calc(var(--spacing) * 2); }.p-3 { padding: calc(var(--spacing) * 3); }.p-4 { padding: calc(var(--spacing) * 4); }.p-5 { padding: calc(var(--spacing) * 5); }.p-6 { padding: calc(var(--spacing) * 6); }.p-8 { padding: calc(var(--spacing) * 8); }.px-0 { padding-inline: calc(var(--spacing) * 0); }.px-1 { padding-inline: calc(var(--spacing) * 1); }.px-2 { padding-inline: calc(var(--spacing) * 2); }.px-2\.5 { padding-inline: calc(var(--spacing) * 2.5); }.px-3 { padding-inline: calc(var(--spacing) * 3); }.px-4 { padding-inline: calc(var(--spacing) * 4); }.px-5 { padding-inline: calc(var(--spacing) * 5); }.px-6 { padding-inline: calc(var(--spacing) * 6); }.px-8 { padding-inline: calc(var(--spacing) * 8); }.px-12 { padding-inline: calc(var(--spacing) * 12); }.py-0 { padding-block: calc(var(--spacing) * 0); }.py-0\.5 { padding-block: calc(var(--spacing) * .5); }.py-1 { padding-block: calc(var(--spacing) * 1); }.py-1\.5 { padding-block: calc(var(--spacing) * 1.5); }.py-2 { padding-block: calc(var(--spacing) * 2); }.py-2\.5 { padding-block: calc(var(--spacing) * 2.5); }.py-3 { padding-block: calc(var(--spacing) * 3); }.py-4 { padding-block: calc(var(--spacing) * 4); }.py-5 { padding-block: calc(var(--spacing) * 5); }.py-6 { padding-block: calc(var(--spacing) * 6); }.py-7 { padding-block: calc(var(--spacing) * 7); }.py-8 { padding-block: calc(var(--spacing) * 8); }.py-10 { padding-block: calc(var(--spacing) * 10); }.py-12 { padding-block: calc(var(--spacing) * 12); }.py-24 { padding-block: calc(var(--spacing) * 24); }.pt-1 { padding-top: calc(var(--spacing) * 1); }.pt-2 { padding-top: calc(var(--spacing) * 2); }.pt-3 { padding-top: calc(var(--spacing) * 3); }.pt-4 { padding-top: calc(var(--spacing) * 4); }.pt-5 { padding-top: calc(var(--spacing) * 5); }.pt-6 { padding-top: calc(var(--spacing) * 6); }.pt-7 { padding-top: calc(var(--spacing) * 7); }.pt-8 { padding-top: calc(var(--spacing) * 8); }.pr-0 { padding-right: calc(var(--spacing) * 0); }.pr-1 { padding-right: calc(var(--spacing) * 1); }.pr-2 { padding-right: calc(var(--spacing) * 2); }.pr-3 { padding-right: calc(var(--spacing) * 3); }.pr-4 { padding-right: calc(var(--spacing) * 4); }.pr-5 { padding-right: calc(var(--spacing) * 5); }.pr-6 { padding-right: calc(var(--spacing) * 6); }.pr-8 { padding-right: calc(var(--spacing) * 8); }.pr-10 { padding-right: calc(var(--spacing) * 10); }.pr-12 { padding-right: calc(var(--spacing) * 12); }.pb-0 { padding-bottom: calc(var(--spacing) * 0); }.pb-1 { padding-bottom: calc(var(--spacing) * 1); }.pb-2 { padding-bottom: calc(var(--spacing) * 2); }.pb-3 { padding-bottom: calc(var(--spacing) * 3); }.pb-4 { padding-bottom: calc(var(--spacing) * 4); }.pb-5 { padding-bottom: calc(var(--spacing) * 5); }.pb-6 { padding-bottom: calc(var(--spacing) * 6); }.pb-8 { padding-bottom: calc(var(--spacing) * 8); }.pb-12 { padding-bottom: calc(var(--spacing) * 12); }.pb-\[var\(--strapline-padding-bottom\,12px\)\] { padding-bottom: var(--strapline-padding-bottom,12px); }.pl-0 { padding-left: calc(var(--spacing) * 0); }.pl-1 { padding-left: calc(var(--spacing) * 1); }.pl-1\.5 { padding-left: calc(var(--spacing) * 1.5); }.pl-2 { padding-left: calc(var(--spacing) * 2); }.pl-3 { padding-left: calc(var(--spacing) * 3); }.pl-4 { padding-left: calc(var(--spacing) * 4); }.pl-8 { padding-left: calc(var(--spacing) * 8); }.pl-9 { padding-left: calc(var(--spacing) * 9); }.pl-12 { padding-left: calc(var(--spacing) * 12); }.text-center { text-align: center; }.text-left { text-align: left; }.text-right { text-align: right; }.-indent-0 { text-indent: calc(var(--spacing) * 0); }.align-middle { vertical-align: middle; }.align-text-top { vertical-align: text-top; }.align-top { vertical-align: top; }.font-mono { font-family: var(--font-mono); }.font-sans { font-family: var(--font-sans); }.font-serif { font-family: var(--font-serif); }.text-2xl { font-size: var(--text-2xl); line-height: var(--tw-leading,var(--text-2xl--line-height)); }.text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }.text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }.text-base { font-size: var(--text-base); line-height: var(--tw-leading,var(--text-base--line-height)); }.text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }.text-sm { font-size: var(--text-sm); line-height: var(--tw-leading,var(--text-sm--line-height)); }.text-xl { font-size: var(--text-xl); line-height: var(--tw-leading,var(--text-xl--line-height)); }.text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }.text-\[10px\] { font-size: 10px; }.text-\[11px\] { font-size: 11px; }.text-\[length\:var\(--strapline-font-size\,13px\)\] { font-size: var(--strapline-font-size,13px); }.leading-2 { --tw-leading: calc(var(--spacing) * 2); line-height: calc(var(--spacing) * 2); }.leading-3 { --tw-leading: calc(var(--spacing) * 3); line-height: calc(var(--spacing) * 3); }.leading-4 { --tw-leading: calc(var(--spacing) * 4); line-height: calc(var(--spacing) * 4); }.leading-5 { --tw-leading: calc(var(--spacing) * 5); line-height: calc(var(--spacing) * 5); }.leading-6 { --tw-leading: calc(var(--spacing) * 6); line-height: calc(var(--spacing) * 6); }.leading-7 { --tw-leading: calc(var(--spacing) * 7); line-height: calc(var(--spacing) * 7); }.leading-8 { --tw-leading: calc(var(--spacing) * 8); line-height: calc(var(--spacing) * 8); }.leading-10 { --tw-leading: calc(var(--spacing) * 10); line-height: calc(var(--spacing) * 10); }.leading-none { --tw-leading: 1; line-height: 1; }.leading-normal { --tw-leading: var(--leading-normal); line-height: var(--leading-normal); }.leading-relaxed { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }.leading-snug { --tw-leading: var(--leading-snug); line-height: var(--leading-snug); }.leading-tight { --tw-leading: var(--leading-tight); line-height: var(--leading-tight); }.font-black { --tw-font-weight: var(--font-weight-black); font-weight: var(--font-weight-black); }.font-bold { --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); }.font-extrabold { --tw-font-weight: var(--font-weight-extrabold); font-weight: var(--font-weight-extrabold); }.font-medium { --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); }.font-normal { --tw-font-weight: var(--font-weight-normal); font-weight: var(--font-weight-normal); }.font-semibold { --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); }.tracking-normal { --tw-tracking: var(--tracking-normal); letter-spacing: var(--tracking-normal); }.tracking-tight { --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); }.tracking-wide { --tw-tracking: var(--tracking-wide); letter-spacing: var(--tracking-wide); }.tracking-wider { --tw-tracking: var(--tracking-wider); letter-spacing: var(--tracking-wider); }.tracking-widest { --tw-tracking: var(--tracking-widest); letter-spacing: var(--tracking-widest); }.text-nowrap { text-wrap: nowrap; }.text-wrap { text-wrap: wrap; }.break-words { overflow-wrap: break-word; }.text-ellipsis { text-overflow: ellipsis; }.whitespace-break-spaces { white-space: break-spaces; }.whitespace-normal { white-space: normal; }.whitespace-nowrap { white-space: nowrap; }.whitespace-pre { white-space: pre; }.text-\(--footer-text-color\) { color: var(--footer-text-color); }.text-\[\#DC1F26\] { color: rgb(220, 31, 38); }.text-\[var\(--site-header-text-color\,\#333\)\] { color: var(--site-header-text-color,#333); }.text-amber-700 { color: var(--color-amber-700); }.text-black { color: var(--color-black); }.text-blue-500 { color: var(--color-blue-500); }.text-blue-700 { color: var(--color-blue-700); }.text-current { color: currentcolor; }.text-gray-50 { color: var(--color-gray-50); }.text-gray-100 { color: var(--color-gray-100); }.text-gray-200 { color: var(--color-gray-200); }.text-gray-300 { color: var(--color-gray-300); }.text-gray-400 { color: var(--color-gray-400); }.text-gray-500 { color: var(--color-gray-500); }.text-gray-600 { color: var(--color-gray-600); }.text-gray-700 { color: var(--color-gray-700); }.text-gray-800 { color: var(--color-gray-800); }.text-gray-900 { color: var(--color-gray-900); }.text-green-50 { color: var(--color-green-50); }.text-green-400 { color: var(--color-green-400); }.text-green-500 { color: var(--color-green-500); }.text-green-600 { color: var(--color-green-600); }.text-green-700 { color: var(--color-green-700); }.text-inherit { color: inherit; }.text-lime-700 { color: var(--color-lime-700); }.text-neutral-100 { color: var(--color-neutral-100); }.text-neutral-200 { color: var(--color-neutral-200); }.text-neutral-300 { color: var(--color-neutral-300); }.text-neutral-400 { color: var(--color-neutral-400); }.text-neutral-500 { color: var(--color-neutral-500); }.text-neutral-600 { color: var(--color-neutral-600); }.text-neutral-700 { color: var(--color-neutral-700); }.text-neutral-800 { color: var(--color-neutral-800); }.text-neutral-900 { color: var(--color-neutral-900); }.text-orange-700 { color: var(--color-orange-700); }.text-pink-600 { color: var(--color-pink-600); }.text-purple-700 { color: var(--color-purple-700); }.text-red-50 { color: var(--color-red-50); }.text-red-500 { color: var(--color-red-500); }.text-red-600 { color: var(--color-red-600); }.text-red-700 { color: var(--color-red-700); }.text-rose-600 { color: var(--color-rose-600); }.text-slate-50 { color: var(--color-slate-50); }.text-slate-500 { color: var(--color-slate-500); }.text-teal-700 { color: var(--color-teal-700); }.text-white { color: var(--color-white); }.text-yellow-700 { color: var(--color-yellow-700); }.text-yellow-800 { color: var(--color-yellow-800); }.\[text-transform\:var\(--strapline-text-transform\,uppercase\)\] { text-transform: var(--strapline-text-transform,uppercase); }.capitalize { text-transform: capitalize; }.lowercase { text-transform: lowercase; }.normal-case { text-transform: none; }.uppercase { text-transform: uppercase; }.italic { font-style: italic; }.ordinal { --tw-ordinal: ordinal; font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); }.line-through { text-decoration-line: line-through; }.no-underline { text-decoration-line: none; }.underline { text-decoration-line: underline; }.decoration-current { text-decoration-color: currentcolor; }.decoration-transparent { text-decoration-color: rgba(0, 0, 0, 0); }.decoration-solid { text-decoration-style: solid; }.underline-offset-2 { text-underline-offset: 2px; }.placeholder-neutral-500::placeholder { color: var(--color-neutral-500); }.opacity-0 { opacity: 0; }.opacity-30 { opacity: 0.3; }.opacity-40 { opacity: 0.4; }.opacity-50 { opacity: 0.5; }.opacity-80 { opacity: 0.8; }.opacity-100 { opacity: 1; }.shadow { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-2xl { --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color,#00000040); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.4\)\] { --tw-shadow: 0 20px 60px -15px var(--tw-shadow-color,#0006); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-inner { --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-lg { --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-md { --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-none { --tw-shadow: 0 0 #0000; box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-sm { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-xl { --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-xs { --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color,#0000000d); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-0 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-1 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-4 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-amber-600 { --tw-ring-color: var(--color-amber-600); }.ring-black { --tw-ring-color: var(--color-black); }.ring-blue-600 { --tw-ring-color: var(--color-blue-600); }.ring-gray-300 { --tw-ring-color: var(--color-gray-300); }.ring-green-600 { --tw-ring-color: var(--color-green-600); }.ring-orange-600 { --tw-ring-color: var(--color-orange-600); }.ring-purple-400 { --tw-ring-color: var(--color-purple-400); }.ring-purple-600 { --tw-ring-color: var(--color-purple-600); }.ring-red-600 { --tw-ring-color: var(--color-red-600); }.ring-slate-600 { --tw-ring-color: var(--color-slate-600); }.ring-teal-600 { --tw-ring-color: var(--color-teal-600); }.ring-white { --tw-ring-color: var(--color-white); }.ring-yellow-600 { --tw-ring-color: var(--color-yellow-600); }.outline-hidden { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .outline-hidden { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.outline, .outline-1 { outline-style: var(--tw-outline-style); outline-width: 1px; }.outline-transparent { outline-color: rgba(0, 0, 0, 0); }.blur { --tw-blur: blur(8px); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.brightness-0 { --tw-brightness: brightness(0%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.contrast-100 { --tw-contrast: contrast(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.grayscale { --tw-grayscale: grayscale(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.invert { --tw-invert: invert(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.filter { filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.backdrop-blur-sm { --tw-backdrop-blur: blur(var(--blur-sm)); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }.backdrop-filter { backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }.transition { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-all { transition-property: all; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-colors { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-opacity { transition-property: opacity; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-shadow { transition-property: box-shadow; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-transform { transition-property: transform, translate, scale, rotate; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.duration-75 { --tw-duration: 75ms; transition-duration: 75ms; }.duration-100 { --tw-duration: .1s; transition-duration: 0.1s; }.duration-150 { --tw-duration: .15s; transition-duration: 0.15s; }.duration-200 { --tw-duration: .2s; transition-duration: 0.2s; }.duration-300 { --tw-duration: .3s; transition-duration: 0.3s; }.duration-500 { --tw-duration: .5s; transition-duration: 0.5s; }.ease-in { --tw-ease: var(--ease-in); transition-timing-function: var(--ease-in); }.ease-in-out { --tw-ease: var(--ease-in-out); transition-timing-function: var(--ease-in-out); }.ease-out { --tw-ease: var(--ease-out); transition-timing-function: var(--ease-out); }.prose-neutral { --tw-prose-#widget-t4n1495: oklch(37.1% 0 0); --tw-prose-headings: oklch(20.5% 0 0); --tw-prose-lead: oklch(43.9% 0 0); --tw-prose-links: oklch(20.5% 0 0); --tw-prose-bold: oklch(20.5% 0 0); --tw-prose-counters: oklch(55.6% 0 0); --tw-prose-bullets: oklch(87% 0 0); --tw-prose-hr: oklch(92.2% 0 0); --tw-prose-quotes: oklch(20.5% 0 0); --tw-prose-quote-borders: oklch(92.2% 0 0); --tw-prose-captions: oklch(55.6% 0 0); --tw-prose-kbd: oklch(20.5% 0 0); --tw-prose-kbd-shadows: oklab(20.5% 0 0/.1); --tw-prose-code: oklch(20.5% 0 0); --tw-prose-pre-code: oklch(92.2% 0 0); --tw-prose-pre-bg: oklch(26.9% 0 0); --tw-prose-th-borders: oklch(87% 0 0); --tw-prose-td-borders: oklch(92.2% 0 0); --tw-prose-invert-#widget-t4n1495: oklch(87% 0 0); --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: oklch(70.8% 0 0); --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: oklch(70.8% 0 0); --tw-prose-invert-bullets: oklch(43.9% 0 0); --tw-prose-invert-hr: oklch(37.1% 0 0); --tw-prose-invert-quotes: oklch(97% 0 0); --tw-prose-invert-quote-borders: oklch(37.1% 0 0); --tw-prose-invert-captions: oklch(70.8% 0 0); --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: #ffffff1a; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: oklch(87% 0 0); --tw-prose-invert-pre-bg: #00000080; --tw-prose-invert-th-borders: oklch(43.9% 0 0); --tw-prose-invert-td-borders: oklch(37.1% 0 0); }.outline-none { --tw-outline-style: none; outline-style: none; }.select-none { user-select: none; }.ring-inset { --tw-ring-inset: inset; }:is(.\*\:pointer-events-auto > *) { pointer-events: auto; }@media (hover: hover) {  .group-hover\:text-\[\#DC1F26\]:is(:where(.group):hover *) { color: rgb(220, 31, 38); }  .group-hover\:opacity-100:is(:where(.group):hover *) { opacity: 1; }}.visited\:text-inherit:visited { color: inherit; }.empty\:border-none:empty { --tw-border-style: none; border-style: none; }@media (hover: hover) {  .hover\:border-black:hover { border-color: var(--color-black); }  .hover\:border-neutral-300:hover { border-color: var(--color-neutral-300); }  .hover\:bg-\[\#b8181e\]:hover { background-color: rgb(184, 24, 30); }  .hover\:bg-black:hover { background-color: var(--color-black); }  .hover\:bg-blue-50:hover { background-color: var(--color-blue-50); }  .hover\:bg-green-50:hover { background-color: var(--color-green-50); }  .hover\:bg-green-700:hover { background-color: var(--color-green-700); }  .hover\:bg-indigo-50:hover { background-color: var(--color-indigo-50); }  .hover\:bg-neutral-50:hover { background-color: var(--color-neutral-50); }  .hover\:bg-neutral-100:hover { background-color: var(--color-neutral-100); }  .hover\:bg-neutral-200:hover { background-color: var(--color-neutral-200); }  .hover\:bg-neutral-800:hover { background-color: var(--color-neutral-800); }  .hover\:bg-red-50:hover { background-color: var(--color-red-50); }  .hover\:bg-red-700:hover { background-color: var(--color-red-700); }  .hover\:text-\[\#DC1F26\]:hover { color: rgb(220, 31, 38); }  .hover\:text-blue-600:hover { color: var(--color-blue-600); }  .hover\:text-gray-500:hover { color: var(--color-gray-500); }  .hover\:text-indigo-600:hover { color: var(--color-indigo-600); }  .hover\:text-inherit:hover { color: inherit; }  .hover\:text-neutral-700:hover { color: var(--color-neutral-700); }  .hover\:text-neutral-900:hover { color: var(--color-neutral-900); }  .hover\:text-red-600:hover { color: var(--color-red-600); }  .hover\:no-underline:hover { text-decoration-line: none; }  .hover\:underline:hover { text-decoration-line: underline; }  .hover\:decoration-transparent:hover { text-decoration-color: rgba(0, 0, 0, 0); }  .hover\:underline-offset-2:hover { text-underline-offset: 2px; }}.focus\:border-rose-500:focus { border-color: var(--color-rose-500); }.focus\:text-inherit:focus { color: inherit; }.focus\:decoration-transparent:focus { text-decoration-color: rgba(0, 0, 0, 0); }.focus\:ring-1:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-2:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-4:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-\[\#DC1F26\]:focus { --tw-ring-color: #dc1f26; }.focus\:ring-\[\#DC1F26\]\/20:focus { --tw-ring-color: oklab(57.3239% .195826 .0976754/.2); }.focus\:ring-rose-500:focus { --tw-ring-color: var(--color-rose-500); }.focus\:ring-offset-1:focus { --tw-ring-offset-width: 1px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); }.focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); }.focus\:outline-hidden:focus { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .focus\:outline-hidden:focus { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.focus\:outline-1:focus { outline-style: var(--tw-outline-style); outline-width: 1px; }.focus\:outline-none:focus { --tw-outline-style: none; outline-style: none; }.focus\:\[outline-style\:auto\]:focus { outline-style: auto; }.focus-visible\:ring-2:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus-visible\:ring-gray-900:focus-visible { --tw-ring-color: var(--color-gray-900); }.focus-visible\:outline-hidden:focus-visible { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .focus-visible\:outline-hidden:focus-visible { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.active\:text-inherit:active { color: inherit; }@media not all and (min-width: 640px) {  .max-sm\:top-full { top: 100%; }  .max-sm\:left-2\/4 { left: 50%; }  .max-sm\:hidden { display: none; }  .max-sm\:min-w-\[300px\] { min-width: 300px; }  .max-sm\:-translate-x-2\/4 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }}@media (min-width: 640px) {  .sm\:visible { visibility: visible; }  .sm\:relative { position: relative; }  .sm\:top-4 { top: calc(var(--spacing) * 4); }  .sm\:top-\[88px\] { top: 88px; }  .sm\:top-\[92px\] { top: 92px; }  .sm\:right-3 { right: calc(var(--spacing) * 3); }  .sm\:right-4 { right: calc(var(--spacing) * 4); }  .sm\:left-3 { left: calc(var(--spacing) * 3); }  .sm\:order-3 { order: 3; }  .sm\:mx-auto { margin-inline: auto; }  .sm\:my-8 { margin-block: calc(var(--spacing) * 8); }  .sm\:mt-5 { margin-top: calc(var(--spacing) * 5); }  .sm\:mt-6 { margin-top: calc(var(--spacing) * 6); }  .sm\:mb-6 { margin-bottom: calc(var(--spacing) * 6); }  .sm\:mb-8 { margin-bottom: calc(var(--spacing) * 8); }  .sm\:block { display: block; }  .sm\:flex { display: flex; }  .sm\:hidden { display: none; }  .sm\:inline { display: inline; }  .sm\:h-6 { height: calc(var(--spacing) * 6); }  .sm\:h-12 { height: calc(var(--spacing) * 12); }  .sm\:h-\[50px\] { height: 50px; }  .sm\:h-\[var\(--logo-height-desktop\,auto\)\] { height: var(--logo-height-desktop,auto); }  .sm\:max-h-full { max-height: 100%; }  .sm\:w-6 { width: calc(var(--spacing) * 6); }  .sm\:w-12 { width: calc(var(--spacing) * 12); }  .sm\:w-64 { width: calc(var(--spacing) * 64); }  .sm\:w-\[480px\] { width: 480px; }  .sm\:max-w-full { max-width: 100%; }  .sm\:max-w-sm { max-width: var(--container-sm); }  .sm\:min-w-auto { min-width: auto; }  .sm\:translate-y-0 { --tw-translate-y: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }  .sm\:scale-95 { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); }  .sm\:scale-100 { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); }  .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }  .sm\:flex-row { flex-direction: row; }  .sm\:items-center { align-items: center; }  .sm\:border-r { border-right-style: var(--tw-border-style); border-right-width: 1px; }  .sm\:border-solid { --tw-border-style: solid; border-style: solid; }  .sm\:border-gray-300 { border-color: var(--color-gray-300); }  .sm\:p-0 { padding: calc(var(--spacing) * 0); }  .sm\:p-3 { padding: calc(var(--spacing) * 3); }  .sm\:p-6 { padding: calc(var(--spacing) * 6); }  .sm\:p-8 { padding: calc(var(--spacing) * 8); }  .sm\:px-0 { padding-inline: calc(var(--spacing) * 0); }  .sm\:px-4 { padding-inline: calc(var(--spacing) * 4); }  .sm\:py-4 { padding-block: calc(var(--spacing) * 4); }  .sm\:pl-14 { padding-left: calc(var(--spacing) * 14); }  .sm\:text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }  .sm\:text-base { font-size: var(--text-base); line-height: var(--tw-leading,var(--text-base--line-height)); }}@media (min-width: 768px) {  .md\:visible { visibility: visible; }  .md\:inline { display: inline; }  .md\:h-screen { height: 100vh; }  .md\:w-80 { width: calc(var(--spacing) * 80); }  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }  .md\:flex-row { flex-direction: row; }  .md\:overflow-hidden { overflow: hidden; }  .md\:overflow-y-auto { overflow-y: auto; }  .md\:p-12 { padding: calc(var(--spacing) * 12); }  .md\:text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }  .md\:text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }  .md\:text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }}.prose-headings\:font-serif :where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-p\:font-serif :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-family: var(--font-serif); }.prose-p\:leading-relaxed :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }.prose-p\:text-neutral-700 :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--color-neutral-700); }@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-rotate-x { syntax: "*"; inherits: false; }@property --tw-rotate-y { syntax: "*"; inherits: false; }@property --tw-rotate-z { syntax: "*"; inherits: false; }@property --tw-skew-x { syntax: "*"; inherits: false; }@property --tw-skew-y { syntax: "*"; inherits: false; }@property --tw-scroll-snap-strictness { syntax: "*"; inherits: false; initial-value: proximity; }@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-space-x-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-divide-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }@property --tw-gradient-position { syntax: "*"; inherits: false; }@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-stops { syntax: "*"; inherits: false; }@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }@property --tw-leading { syntax: "*"; inherits: false; }@property --tw-font-weight { syntax: "*"; inherits: false; }@property --tw-tracking { syntax: "*"; inherits: false; }@property --tw-ordinal { syntax: "*"; inherits: false; }@property --tw-slashed-zero { syntax: "*"; inherits: false; }@property --tw-numeric-figure { syntax: "*"; inherits: false; }@property --tw-numeric-spacing { syntax: "*"; inherits: false; }@property --tw-numeric-fraction { syntax: "*"; inherits: false; }@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-shadow-color { syntax: "*"; inherits: false; }@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-ring-color { syntax: "*"; inherits: false; }@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-inset-ring-color { syntax: "*"; inherits: false; }@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-ring-inset { syntax: "*"; inherits: false; }@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0; }@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-outline-style { syntax: "*"; inherits: false; initial-value: solid; }@property --tw-blur { syntax: "*"; inherits: false; }@property --tw-brightness { syntax: "*"; inherits: false; }@property --tw-contrast { syntax: "*"; inherits: false; }@property --tw-grayscale { syntax: "*"; inherits: false; }@property --tw-hue-rotate { syntax: "*"; inherits: false; }@property --tw-invert { syntax: "*"; inherits: false; }@property --tw-opacity { syntax: "*"; inherits: false; }@property --tw-saturate { syntax: "*"; inherits: false; }@property --tw-sepia { syntax: "*"; inherits: false; }@property --tw-drop-shadow { syntax: "*"; inherits: false; }@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }@property --tw-backdrop-blur { syntax: "*"; inherits: false; }@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }@property --tw-backdrop-invert { syntax: "*"; inherits: false; }@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }@property --tw-duration { syntax: "*"; inherits: false; }@property --tw-ease { syntax: "*"; inherits: false; }@keyframes spin {   100% { transform: rotate(360deg); }}@keyframes pulse {   50% { opacity: 0.5; }}      .pcg-results-list { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }      .pcg-result-item { margin: 0; padding: 0; list-style: none; }      .pcg-result-btn { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 1rem; border: none; background: transparent; cursor: pointer; text-align: left; transition: background 0.2s; height: 76px; }      .pcg-result-btn.hovered { background-color: #f9fafb; }      .pcg-result-border { border-bottom: 1px solid #f5f5f5; }      .pcg-result-content { display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding-right: 1rem; flex: 1; }      .pcg-result-meta-row { display: flex; align-items: center; gap: 0.5rem; overflow: hidden; }      .pcg-result-title { color: #000000; font-weight: bold; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }      .pcg-meta-date { color: #737373; font-size: 0.75rem; text-transform: uppercase; letter-spacing: -0.025em; flex-shrink: 0; }      .pcg-result-summary { color: #737373; font-size: 0.75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 0.25rem; }      .pcg-result-actions { display: flex; align-items: center; gap: 1rem; flex: none; }      .pcg-score { color: #DC1F26; font-weight: 900; font-size: 1.25rem; font-style: italic; }      .pcg-result-arrow { color: #d4d4d4; transition: color 0.2s; }      .pcg-reader-msg { text-align: center; padding: 2rem; color: #737373; }      .pcg-reader-loading { display: flex; justify-content: center; align-items: center; height: 100%; min-height: 400px; }      .pcg-reader-loading p { color: #DC1F26; }      .pcg-prose-content { max-width: 65ch; margin: 0 auto; padding: 0 0.5rem; }      .pcg-reader-header { margin-bottom: 2rem; }      .pcg-reader-title { font-size: 1.75rem; font-weight: bold; line-height: 1.2; margin-bottom: 1rem; }      .pcg-reader-meta { display: flex; gap: 0.75rem; align-items: center; font-size: 0.875rem; font-weight: 500; color: #52525b; text-transform: uppercase; letter-spacing: 0.05em; }      .pcg-reader-meta-divider { color: #d4d4d8; }      .pcg-reader-body { line-height: 1.6; color: #262626; font-size: 1.125rem; }      .pcg-prose-content img { width: 100%; height: auto; margin: 1.5rem 0; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); border-radius: 0.5rem; }       .pcg-prose-content a { color: #e11d48; text-decoration: none; font-weight: 500; }       .pcg-prose-content a:hover { text-decoration: underline; }       .pcg-prose-content p { margin-bottom: 1.5em !important; display: block !important; }    </style></head><body style="margin:0; padding:0; background:transparent;">  <div style="position: relative;">    <div class="w-full max-w-2xl mx-auto flex justify-center" id="widget-t4n1495"><div class="w-full max-w-2xl mx-auto font-sans relative"><div id="pcg-search-container" class="bg-[#ededed] p-2 sm:p-3 rounded-full shadow-sm relative z-20 flex items-center"><div class="relative w-full text-sm sm:text-base md:text-lg"><div class="absolute left-4 top-1/2 -translate-y-1/2 text-[#DC1F26]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search w-5 h-5 sm:w-6 sm:h-6" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></div><input id="pcg-search" placeholder="Search our 55 controller reviews" class="w-full bg-white border-2 border-[#DC1F26] rounded-full py-3 sm:py-4 pl-12 sm:pl-14 pr-10 outline-none text-black placeholder-neutral-500 shadow-inner focus:ring-4 focus:ring-[#DC1F26]/20 transition-all font-medium text-ellipsis overflow-hidden" type="text" value=""></div></div><div id="pcg-footer-stats" class="mt-4 text-center text-sm sm:text-base font-semibold text-neutral-600 px-4">PC Gamer has reviewed <span id="pcg-total-reviews">1336</span> PC gaming goodies since 2020</div></div>      <section id="pcg-dropdown-container" class="absolute top-[76px] sm:top-[88px] left-2 right-2 sm:left-3 sm:right-3 z-50 bg-white border-2 border-[#DC1F26] rounded-2xl shadow-xl flex-col overflow-hidden" style="display: none; max-height: 380px;">        <header style="display: flex; align-items: center; justify-content: space-between; background: #fafafa; padding: 0.75rem 1rem; border-bottom: 1px solid #f5f5f5;">          <h3 id="pcg-dropdown-title" style="font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #737373; margin: 0;">Latest Reviews</h3>          <div style="display: flex; align-items: center;">            <span style="font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #737373; margin-right: 1.25rem; user-select: none;">Score</span>            <button id="pcg-close-btn" aria-label="Close" style="color: #a3a3a3; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;">               <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="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>            </button>          </div>        </header>        <nav aria-label="Search Results" id="pcg-results" style="overflow-y: auto;">        </nav>      </section>            <article id="pcg-reader-container" class="absolute top-[80px] sm:top-[92px] left-2 right-2 sm:left-3 sm:right-3 z-[100] bg-white border-2 border-[#DC1F26] rounded-2xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.4)] flex-col overflow-hidden" style="display: none; height: 600px;">        <header style="display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid #f5f5f5; flex: none; background: white; position: relative;">          <div style="flex: 1;">            <span style="font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #a3a3a3;">Reader view</span>          </div>                    <div style="position: absolute; left: 50%; transform: translateX(-50%); text-align: center;" id="pcg-reader-link-container">          </div>          <div style="flex: 1; display: flex; justify-content: flex-end;">            <button id="pcg-reader-close" aria-label="Close Reader" style="color: #a3a3a3; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;">              <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="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>            </button>          </div>        </header>        <div id="pcg-reader-content" style="flex: 1; padding: 1rem 1rem 3rem; overflow-y: auto; background: white; font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;">        </div>      </article>    </div>  </div>        <script>        const API_BASE = "https://airedale-version-review-widget-builder.ai.studio";        const CATEGORY = "Controller";        const INITIALLY_OPEN = false;        // Embedded complete category data        let LOCAL_REVIEWS = JSON.parse(decodeURIComponent("%5B%7B%22id%22%3A%228NKgZmo3fxQQhxjqHrn2AB%22%2C%22title%22%3A%22Scuf%20Omega%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Fscuf-omega-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-09-07T15%3A02%3A11Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FPfiU4gZmnbsVoGaYsi3iY8.jpg%22%2C%22strapline%22%3A%22Closer%20to%20an%20Alpha%20or%20Beta%20than%20an%20Omega.%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22controller%22%2C%22wireless%20controller%22%2C%22wired%20controller%22%2C%22game%20controller%22%2C%22PC%20controller%22%2C%22Scuf%22%2C%22Scuf%20Omega%22%5D%2C%22score%22%3A70%2C%22summary%22%3A%22Closer%20to%20an%20Alpha%20or%20Beta%20than%20an%20Omega.%22%7D%2C%7B%22id%22%3A%22UqYpGJHzTjVNBBmU2SrrJn%22%2C%22title%22%3A%22GameSir%20T7%20Pro%20Sugar%20Whirl%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgame-pads%2Fgamesir-t7-pro-sugar-whirl-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-14T13%3A13%3A19Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2Fmx7yo6es2nmRYz34Vbuagg.jpg%22%2C%22strapline%22%3A%22Not%20quite%20the%20sweetest%20of%20treats.%22%2C%22categories%22%3A%5B%22Game%20Pads%22%2C%22Hardware%22%2C%22Controllers%22%5D%2C%22tags%22%3A%5B%22Review%22%2C%22Hardware%22%2C%22GameSir%22%2C%22Xbox%20Wireless%20Controller%22%2C%22Pink%22%2C%22Blue%22%2C%22purple%22%2C%22wireless%20controller%22%2C%22charging%22%2C%22charging%20stand%22%2C%22dock%22%2C%22TMR%20sticks%22%2C%22Hall%20effect%22%5D%2C%22score%22%3A75%2C%22summary%22%3A%22Not%20quite%20the%20sweetest%20of%20treats.%22%7D%2C%7B%22id%22%3A%22LxaJz5yKcWogc5hm5z84mj%22%2C%22title%22%3A%22GameSir%20G7%20Pro%208K%20Aimlabs%20Edition%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Fgamesir-g7-pro-8k-aimlabs-edition-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-05-01T11%3A37%3A15Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FuT6Y9ABVa5DY9xXcAJrEwf.jpg%22%2C%22strapline%22%3A%22Would%20you%20pay%20%2410%20more%20for%20higher%20polling%3F%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22controller%22%2C%22PC%20controller%22%2C%22game%20controller%22%2C%22wireless%20controller%22%2C%22Hardware%22%2C%22GameSir%22%2C%22GameSir%20G7%20Pro%208K%22%2C%22TMR%22%2C%22TMR%20sticks%22%2C%22GameSir%20g7%20Pro%208K%20Aimlabs%20Edition%22%5D%2C%22score%22%3A84%2C%22summary%22%3A%22Would%20you%20pay%20%2410%20more%20for%20higher%20polling%3F%22%7D%2C%7B%22id%22%3A%22B4p3aPJNV2Ckc47kSywXKQ%22%2C%22title%22%3A%22Steam%20Controller%20(2026)%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgame-pads%2Fsteam-controller-2026-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-04-27T17%3A00%3A00Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FaUXA7Xr75b7Xuvt2S6eeKY.jpg%22%2C%22strapline%22%3A%22Second%20time's%20the%20charm.%22%2C%22categories%22%3A%5B%22Game%20Pads%22%2C%22Hardware%22%2C%22Controllers%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Valve%22%2C%22Steam%20Controller%22%2C%22controller%22%2C%22game%20pad%22%2C%22Steam%22%5D%2C%22score%22%3A83%2C%22summary%22%3A%22Second%20time's%20the%20charm.%22%7D%2C%7B%22id%22%3A%22WRLnnowV6sabshmTC8HujQ%22%2C%22title%22%3A%22EasySMX%20D05%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Feasysmx-d05-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-03-31T15%3A00%3A43Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FPqjBcwBzNJUwKiWav7NBZF.jpg%22%2C%22strapline%22%3A%22You%20can%20get%20Hall%20effect%20controllers%20slightly%20cheaper%2C%20but%20you'd%20struggle%20to%20find%20as%20feature-rich%20a%20package%20without%20some%20heavy%2C%20heavy%20sales.%20%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22controller%22%2C%22wired%20controller%22%2C%22wireless%20controller%22%2C%22budget%22%2C%22Hall%20effect%22%2C%22EasySMX%22%2C%22EasySMX%20D10%22%2C%22Hardware%22%5D%2C%22score%22%3A87%2C%22summary%22%3A%22You%20can%20get%20Hall%20effect%20controllers%20slightly%20cheaper%2C%20but%20you'd%20struggle%20to%20find%20as%20feature-rich%20a%20package%20without%20some%20heavy%2C%20heavy%20sales.%20%22%7D%2C%7B%22id%22%3A%22fM5EQd4AH6qDUADhLjdeqe%22%2C%22title%22%3A%22EasySMX%20D10%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Feasysmx-d10-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-03-27T15%3A14%3A14Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FUgLVpPDZm7T9ZV36sAHGz4.jpg%22%2C%22strapline%22%3A%22A%20feature-rich%20budget%20TMR%20controller%20that%20only%20sometimes%20feels%20like%20a%20compromise.%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22controller%22%2C%22game%20controller%22%2C%22budget%22%2C%22TMR%22%2C%22TMR%20sticks%22%2C%22Hall%20effect%22%2C%22Review%22%2C%22Hardware%22%5D%2C%22score%22%3A80%2C%22summary%22%3A%22A%20feature-rich%20budget%20TMR%20controller%20that%20only%20sometimes%20feels%20like%20a%20compromise.%22%7D%2C%7B%22id%22%3A%22euxMmPNTRBtjcL6Rz4W3kD%22%2C%22title%22%3A%22Hyperkin%20Competitor%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgame-pads%2Fhyperkin-competitor-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-03-24T11%3A59%3A23Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2F3TEoYfnGkzXiCm8xisUHGZ.jpg%22%2C%22strapline%22%3A%22It%20competes%20with%20a%20home%20field%20advantage%20on%20bang%20for%20buck%2C%20but%20can%20fall%20short%20on%20away%20games.%22%2C%22categories%22%3A%5B%22Game%20Pads%22%2C%22Hardware%22%2C%22Controllers%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22controller%22%2C%22game%20pad%22%2C%22Hyperkin%22%5D%2C%22score%22%3A72%2C%22summary%22%3A%22It%20competes%20with%20a%20home%20field%20advantage%20on%20bang%20for%20buck%2C%20but%20can%20fall%20short%20on%20away%20games.%22%7D%2C%7B%22id%22%3A%22fjGZ5xcK8LaBGjLhbCCzjU%22%2C%22title%22%3A%22Moza%20AB9%20FFB%20Base%20%2B%20MH16%20Flightstick%20%2B%20MTP%20Throttle%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2Fmoza-ab9-ffb-base-mh16-flightstick-mtp-throttle-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-02-18T14%3A48%3A01Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2F7sPx82rcLMVn5XmFgPZj97.jpg%22%2C%22strapline%22%3A%22One%20for%20the%20serious%20flight%20simmers%2C%20but%20a%20very%20impressive%20experience.%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Flight%20Sims%22%2C%22force%20feedback%22%2C%22MOZA%22%2C%22joystick%22%2C%22flight%20stick%22%2C%22throttle%20controller%22%2C%22Moza%20AB9%20FFB%20Base%22%2C%22Moza%20MH16%20Flightstick%22%2C%22MSFS%202024%22%5D%2C%22score%22%3A86%2C%22summary%22%3A%22One%20for%20the%20serious%20flight%20simmers%2C%20but%20a%20very%20impressive%20experience.%22%7D%2C%7B%22id%22%3A%22NobwmgxJUWpkrLFPmkrnxL%22%2C%22title%22%3A%22Victrix%20Pro%20BFG%20Reloaded%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgame-pads%2Fvictrix-pro-bfg-reloaded-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222025-11-05T10%3A33%3A51Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2Fw5YASeamdYp7YnYfoUvq.jpg%22%2C%22strapline%22%3A%22A%20boon%20for%20fight%20pad%20lovers%2C%20but%20not%20a%20controller%20for%20the%20mainstream.%22%2C%22categories%22%3A%5B%22Game%20Pads%22%2C%22Hardware%22%2C%22Controllers%22%5D%2C%22tags%22%3A%5B%22PDP%22%2C%22Turtle%20Beach%22%2C%22Hardware%22%2C%22controller%22%5D%2C%22score%22%3A70%2C%22summary%22%3A%22A%20boon%20for%20fight%20pad%20lovers%2C%20but%20not%20a%20controller%20for%20the%20mainstream.%22%7D%2C%7B%22id%22%3A%22ifyAnNg9BLtnbkM7627JrR%22%2C%22title%22%3A%228BitDo%20Pro%203%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fcontrollers%2F8bitdo-pro-3-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222025-10-24T16%3A21%3A45Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2F2ViNbtNwhhNsspHfd3k2A5.jpg%22%2C%22strapline%22%3A%22My%20new%20everyday%20controller%2C%20despite%20its%20flaws.%22%2C%22categories%22%3A%5B%22Controllers%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22controller%22%2C%22wireless%20controller%22%2C%228bitdo%22%2C%228BitDo%20Pro%203%22%2C%22PC%20controller%22%5D%2C%22score%22%3A76%2C%22summary%22%3A%22My%20new%20everyday%20controller%2C%20despite%20its%20flaws.%22%7D%5D"));                const searchInput = document.getElementById("pcg-search");        const resultsContainer = document.getElementById("pcg-results");        const dropdownContainer = document.getElementById("pcg-dropdown-container");        const closeBtn = document.getElementById("pcg-close-btn");        const titleSpan = document.getElementById("pcg-dropdown-title");                const readerContainer = document.getElementById("pcg-reader-container");        const readerContent = document.getElementById("pcg-reader-content");        const readerCloseBtn = document.getElementById("pcg-reader-close");                let debounceTimer;                function updateIframeHeight(isDropdownOpen, isReaderOpen = false) {          let newHeight = '140px';          if (isReaderOpen) {            newHeight = '720px';          } else if (isDropdownOpen) {            newHeight = '500px';          }                    let resizedSuccessfully = false;          try {            if (window.frameElement) {              window.frameElement.style.height = newHeight;              resizedSuccessfully = true;            }          } catch (e) {            // Ignore cross-origin error when accessing frameElement          }                    if (!resizedSuccessfully && window.parent && window.parent !== window) {            try {              // Send message to parent only for cross-origin resizing               // using '*' to avoid target origin mismatch errors              window.parent.postMessage({ type: 'pcg-widget-resize', height: newHeight }, '*');            } catch (e) {}          }        }        function closeReader() {          readerContainer.style.display = 'none';          readerContent.innerHTML = '';          updateIframeHeight(dropdownContainer.style.display === 'flex', false);        }        if (readerCloseBtn) readerCloseBtn.addEventListener('click', closeReader);                function closeDropdown() {          dropdownContainer.style.display = 'none';          updateIframeHeight(false, readerContainer.style.display === 'flex');        }                function openDropdown() {          dropdownContainer.style.display = 'flex';          closeReader();          updateIframeHeight(true, false);        }                if (closeBtn) closeBtn.addEventListener("click", closeDropdown);                document.addEventListener("click", (e) => {           if (!searchInput.contains(e.target) && !dropdownContainer.contains(e.target) && !readerContainer.contains(e.target)) {               closeDropdown();           }        });                const TOTAL_COUNT = 1336;        const CATEGORY_COUNT = 55;        function initializeStats() {           const totalSpan = document.getElementById("pcg-total-reviews");           if (totalSpan) totalSpan.textContent = TOTAL_COUNT;                      if (searchInput && CATEGORY_COUNT > 0) {             function formatCat(cat) {               if (cat === "PC gaming hardware") return "PC gaming hardware";               if (cat === "Handheld Gaming PCs") return "handheld gaming PC";                if (cat === "Gaming PCs") return "gaming PC";               if (cat === "Gaming Mice") return "gaming mouse";               if (cat === "Memory" || cat === "Cooling" || cat === "Lighting" || cat === "Hardware") return cat.toLowerCase();               if (cat === "Earbuds & Headphones") return "earbud & headphone";               return cat.replace(/s$/i, '').toLowerCase();             }             const formattedCat = formatCat(CATEGORY);             searchInput.placeholder = CATEGORY_COUNT > 50 ? "Search our " + CATEGORY_COUNT + " " + formattedCat + " reviews" : "Search our " + formattedCat + " reviews";           }        }                initializeStats();        function fetchResults(q) {          if (q) {             titleSpan.textContent = "Search Results";          } else {             titleSpan.textContent = "Latest " + (CATEGORY === "PC gaming hardware" ? "PC gaming hardware" : CATEGORY) + " Reviews";          }                     if (!q) {            renderResults(LOCAL_REVIEWS);            return;          }                    resultsContainer.innerHTML = '<p style="padding:2rem;text-align:center;color:#737373;">Loading...</p>';                    fetch(API_BASE + "/api/reviews?category=" + encodeURIComponent(CATEGORY) + "&q=" + encodeURIComponent(q) + "&limit=20")            .then(res => res.json())            .then(data => {               renderResults(data.results || []);            })            .catch(err => {               console.error("Search failed:", err);               resultsContainer.innerHTML = '<p style="padding:2rem;text-align:center;color:#DC1F26;">Error searching reviews.</p>';            });        }                function renderResults(results) {          if(!results || results.length === 0) {            resultsContainer.innerHTML = '<p class="pcg-reader-msg">No results found.</p>';            return;          }          let html = '<ul class="pcg-results-list">';          results.forEach((res, i) => {            let scoreHtml = res.score ? '<div class="pcg-score" aria-label="Score: ' + res.score + '">' + res.score + '</div>' : '';                        // Format URL properly            let targetUrl = res.url.startsWith("http") ? res.url : "https://www.pcgamer.com" + res.url;                        let borderClass = i < results.length - 1 ? 'pcg-result-border' : '';                        let dateHtml = '';            if (res.publishDate) {              try {                let dateStr = new Date(res.publishDate).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });                dateHtml = '<span class="pcg-meta-date">' + dateStr + '</span>';              } catch(e) {}            }                        let subHtml = '<span class="pcg-result-summary">' + (res.summary || "") + '</span>';                        html += '<li class="pcg-result-item"><button aria-label="Read ' + (res.title || "Review").replace(/"/g, '&quot;') + '" onclick="openReaderInPage(\'' + targetUrl + '\')" class="pcg-result-btn ' + borderClass + '" onmouseover="this.classList.add(\'hovered\')" onmouseout="this.classList.remove(\'hovered\')" >' +                  '<div class="pcg-result-content">' +                    '<div class="pcg-result-meta-row">' +                       '<span class="pcg-result-title">' + (res.title || "Review") + '</span>' +                      dateHtml +                     '</div>' +                    subHtml +                  '</div>' +                  '<div class="pcg-result-actions">' +                    scoreHtml +                    '<span class="pcg-result-arrow" aria-hidden="true">→</span>' +                  '</div>' +              '</button></li>';          });          html += '</ul>';          resultsContainer.innerHTML = html;                    updateJSONLD(results);        }        function updateJSONLD(results) {          let ldScript = document.getElementById('pcg-json-ld');          if (!ldScript) {            ldScript = document.createElement('script');            ldScript.type = 'application/ld+json';            ldScript.id = 'pcg-json-ld';            document.head.appendChild(ldScript);          }                    const itemListElements = results.slice(0, 50).map((res, index) => {            let targetUrl = res.url.startsWith("http") ? res.url : "https://www.pcgamer.com" + res.url;            let itemName = (res.title || "Product").replace(/\s+review$/i, '');            let schemaItem = {              "@type": "Product",              "name": itemName,              "image": res.image || targetUrl,              "review": {                "@type": "Review",                "url": targetUrl,                "name": res.title || "Review",                "datePublished": res.publishDate || new Date().toISOString().split('T')[0],                "author": {                  "@type": "Organization",                  "name": "PC Gamer"                },                "publisher": {                  "@type": "Organization",                  "name": "PC Gamer"                }              }            };            if (res.score) {              schemaItem.review.reviewRating = {                "@type": "Rating",                "ratingValue": res.score,                "bestRating": "100",                "worstRating": "1"              };            }            return {              "@type": "ListItem",              "position": index + 1,              "item": schemaItem            };          });          const schema = {            "@context": "https://schema.org",            "@type": "ItemList",            "itemListElement": itemListElements          };          ldScript.textContent = JSON.stringify(schema);        }        function openReaderInPage(targetUrl) {          closeDropdown();          readerContainer.style.display = 'flex';          updateIframeHeight(false, true);          const readerLinkContainer = document.getElementById("pcg-reader-link-container");          if (readerLinkContainer) {            readerLinkContainer.innerHTML = '<a href="' + targetUrl + '" target="_blank" rel="noopener noreferrer" class="bg-[#DC1F26] text-white px-3 py-1.5 rounded-full font-sans text-[11px] md:text-xs font-bold hover:bg-black transition-colors border-2 border-[#DC1F26] hover:border-black shadow-sm inline-block" style="text-decoration: none;">Read full review</a>';          }          readerContent.innerHTML = '<div class="pcg-reader-loading"><p>Loading article...</p></div>';          fetch(API_BASE + "/api/content?q=" + btoa(targetUrl))            .then(res => res.json())            .then(data => {               if(!data || !data.content) {                 readerContent.innerHTML = '<div class="pcg-reader-msg">Could not load article content.</div>';                 return;               }               let html = '<div class="pcg-prose-content">';               html += '<header class="pcg-reader-header">';               html += '<h1 class="pcg-reader-title">' + (data.title || '') + '</h1>';                              if (data.byline || data.date) {                 html += '<div class="pcg-reader-meta">';                 if (data.byline) {                   html += '<span>BY ' + data.byline + '</span>';                 }                 if (data.byline && data.date) {                   html += '<span class="pcg-reader-meta-divider">|</span>';                 }                 if (data.date) {                   html += '<span>PUBLISHED ' + data.date + '</span>';                 }                 html += '</div>';               }               html += '</header>';                              html += '<div class="pcg-reader-body">';               html += data.content;               html += '</div></div>';                              readerContent.innerHTML = html;            })            .catch(err => {               console.error(err);               readerContent.innerHTML = '<div class="pcg-reader-msg">An error occurred loading the article.</div>';            });        }        const searchBoxContainer = document.getElementById("pcg-search-container");        if (searchBoxContainer) {           searchBoxContainer.addEventListener("click", () => {              openDropdown();           });        }                if (searchInput) {          searchInput.addEventListener("focus", () => {             openDropdown();          });          searchInput.addEventListener("click", () => {             openDropdown();          });          searchInput.addEventListener("input", (e) => {            openDropdown();            clearTimeout(debounceTimer);            debounceTimer = setTimeout(() => fetchResults(e.target.value), 500);          });                    // Initial render with embedded cache          fetchResults("");                    if (INITIALLY_OPEN) {            openDropdown();          }                    // Background revalidate          fetch(API_BASE + "/api/reviews?category=" + encodeURIComponent(CATEGORY) + "&limit=10")            .then(res => res.json())            .then(data => {               if (data && data.results && data.results.length > 0) {                 LOCAL_REVIEWS = data.results;                 // If the user hasn't typed anything yet, refresh the UI silently                 if (!searchInput.value) {                   fetchResults("");                 }               }            })            .catch(err => console.error("Background refresh failed:", err));        }      </script>    </body></html>"   width="100%"   height="140"   style="border: none; width: 100%; max-width: 1024px; margin: 0 auto; display: block; background: transparent; transition: height 0.3s ease-out;"   title="PC Gamer Controller Widget"></iframe></div><h2 class="article-body__section" id="section-black-friday-controller-deals"><span>Black Friday controller deals </span></h2><div class="product"><a data-dimension112="fac0354e-cdff-11f1-b691-a1d834e6d980" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="$24.99" href="https://www.walmart.com/ip/GameSir-Nova-Lite-USB-Gamepad-Wireless-Bluetooth-Joystick-for-Apple-Arcade-Games/5394301595" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:425px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="qrNkN3FB5J5tnFHGYuiYtE" name="Nova Lite" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/qrNkN3FB5J5tnFHGYuiYtE-1920-80.jpg" mos="" align="middle" fullscreen="" width="425" height="425" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>It's incredible to think you can spend so little and get a stick drift-resistant wireless controller that doesn't completely suck. Luckily for the GameSir Nova Lite, it does all of the above and manages to feel good and light in the hands, too. </p><p><strong>Key specs: Wireless (Bluetooth and 2.4 GHz) | Asymmetric | Hall effect</strong><a class="view-deal button" href="https://www.walmart.com/ip/GameSir-Nova-Lite-USB-Gamepad-Wireless-Bluetooth-Joystick-for-Apple-Arcade-Games/5394301595" target="_blank" rel="nofollow" data-dimension112="fac0354e-cdff-11f1-b691-a1d834e6d980" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="$24.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac035b2-cdff-11f1-b99c-65c51c333c09" data-action="Deal Block" data-label="Ultimate 2C" data-dimension48="Ultimate 2C" data-dimension25="$29.99" href="https://www.amazon.com/dp/B0D736BCNM/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="VzGnuWAwAyES8AAmGqAW9d" name="8BitDo Ultimate 2C Wireless Controller.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/VzGnuWAwAyES8AAmGqAW9d-1920-80.jpg" mos="" align="middle" fullscreen="" width="200" height="200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0D736BCNM/?th=1" target="_blank" rel="nofollow" data-dimension112="fac035b2-cdff-11f1-b99c-65c51c333c09" data-action="Deal Block" data-label="Ultimate 2C" data-dimension48="Ultimate 2C" data-dimension25="$29.99">Ultimate 2C: $29.99</a></strong><br>We've already raved about Hall effect joysticks and how they spell the end for the dreaded stick drift. In this wireless gaming controller, they're a welcome feature, but this handful of gaming hardware packs a few quirky surprises too. For instance, there are <em>extra </em>bumper buttons.</p><p><strong>Key specs: Hall effect sticks, triggers | 2.4G wireless | 19 h battery</strong><a class="view-deal button" href="https://www.amazon.com/dp/B0D736BCNM/?th=1" target="_blank" rel="nofollow" data-dimension112="fac035b2-cdff-11f1-b99c-65c51c333c09" data-action="Deal Block" data-label="Ultimate 2C" data-dimension48="Ultimate 2C" data-dimension25="$29.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03616-cdff-11f1-9b33-6bb894b7e678" data-action="Deal Block" data-label="Ultimate 3-mode" data-dimension48="Ultimate 3-mode" data-dimension25="$39.99" href="https://www.amazon.com/Ultimate-Controller-Joysticks-Triggers-Gaming-Console/dp/B0D1VHH4C5?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="TsR8EiJ3DDMXkFgnBrMDYB" name="PCGamer Deal Block (34)" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/TsR8EiJ3DDMXkFgnBrMDYB-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Ultimate-Controller-Joysticks-Triggers-Gaming-Console/dp/B0D1VHH4C5?th=1" target="_blank" rel="nofollow" data-dimension112="fac03616-cdff-11f1-9b33-6bb894b7e678" data-action="Deal Block" data-label="Ultimate 3-mode" data-dimension48="Ultimate 3-mode" data-dimension25="$39.99">Ultimate 3-mode: was $69.99 now $39.99</a></strong><br>Though not the latest Ultimate controller to date, it is the best-priced right now, and with a cute included charging dock and stick-drift-resistant sticks, it's sure to last you a long time. The only real caveat to me is the 250 Hz polling (200 Hz wireless), which is better than Sony and Microsoft, but it means a 4-5 ms response time to your device. </p><p><strong>Key specs: Wired and Wireless | Hall effect joysticks and impulse triggers | 2 back paddle buttons | 3.5 mm jack | up to 250 Hz polling | 250 g</strong><a class="view-deal button" href="https://www.amazon.com/Ultimate-Controller-Joysticks-Triggers-Gaming-Console/dp/B0D1VHH4C5?th=1" target="_blank" rel="nofollow" data-dimension112="fac03616-cdff-11f1-9b33-6bb894b7e678" data-action="Deal Block" data-label="Ultimate 3-mode" data-dimension48="Ultimate 3-mode" data-dimension25="$39.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03670-cdff-11f1-a8c6-e7db2d0d0af1" data-action="Deal Block" data-label="X05 Pro" data-dimension48="X05 Pro" data-dimension25="$43.69" href="https://www.amazon.com/EasySMX-X05Pro-Wireless-Gaming-Controller-Charging/dp/B0GVS7HTWZ" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:425px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="3eZyZnfyR9iAHvwpLaYTFo" name="D05" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/3eZyZnfyR9iAHvwpLaYTFo-1920-80.jpg" mos="" align="middle" fullscreen="" width="425" height="425" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The X05 Pro doesn't look like a budget controller. It uses Hall effect for the thumbsticks, which makes it resistant to stick drift. Moreover, it's wireless and comes with a charging dock. It's an easy pick even at full price.</p><p><strong>Key specs: Wireless (2.4 + Bluetooth) | HE sticks </strong><a class="view-deal button" href="https://www.amazon.com/EasySMX-X05Pro-Wireless-Gaming-Controller-Charging/dp/B0GVS7HTWZ" target="_blank" rel="nofollow" data-dimension112="fac03670-cdff-11f1-a8c6-e7db2d0d0af1" data-action="Deal Block" data-label="X05 Pro" data-dimension48="X05 Pro" data-dimension25="$43.69">View Deal</a></p></div><div class="product"><a data-dimension112="fac036d4-cdff-11f1-8dc4-e9b0e9e20eff" data-action="Deal Block" data-label="Wireless controller" data-dimension48="Wireless controller" data-dimension25="$49.49" href="https://www.walmart.com/ip/Microsoft-Xbox-Wireless-Controller-Carbon-Black/15060559533?classType=VARIANT&athbdg=L1200&from=/search" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="YTRwUu9W6d8x3mJzaimi69" name="1781604007.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/YTRwUu9W6d8x3mJzaimi69-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="2000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.walmart.com/ip/Microsoft-Xbox-Wireless-Controller-Carbon-Black/15060559533?classType=VARIANT&athbdg=L1200&from=/search" target="_blank" rel="nofollow" data-dimension112="fac036d4-cdff-11f1-8dc4-e9b0e9e20eff" data-action="Deal Block" data-label="Wireless controller" data-dimension48="Wireless controller" data-dimension25="$49.49">Wireless controller: was $64 now $49.49</a></strong><br>It may be vulnerable to stick drift (and that's a big downside), but it's hard to deny the quality on show with Microsoft's Xbox controller. Textured grips, clicky buttons, a nice weight and feel: it's got everything you need, ergonomically speaking.</p><p><strong>Key specs: Wireless | Asymmetric sticks </strong></p><p><strong>Price watch: </strong><a href="https://www.bestbuy.com/product/microsoft-xbox-wireless-controller-for-xbox-series-x-xbox-series-s-xbox-one-pcs-and-cloud-enabled-devices-deep-pink/JJGXPXQ257" target="_blank">Best Buy $69.99</a><strong> </strong>| <a href="https://www.amazon.com/Xbox-Wireless-Gaming-Controller-Headsets-Console/dp/B0F1J12R6N/ref=sr_1_3" target="_blank">Amazon $54</a></p></div><div class="product"><a data-dimension112="fac0372e-cdff-11f1-8cac-1db318e56d67" data-action="Deal Block" data-label="Valor Pro (wired)" data-dimension48="Valor Pro (wired)" data-dimension25="$69.99" href="https://www.scufgaming.com/us/en/p/scuf-valor-pro-black" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:964px;"><p class="vanilla-image-block" style="padding-top:98.96%;"><img id="Cyg8mvo5nBb2p5NVftwaoj" name="1792663014.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Cyg8mvo5nBb2p5NVftwaoj-1920-80.jpg" mos="" align="middle" fullscreen="" width="964" height="954" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.scufgaming.com/us/en/p/scuf-valor-pro-black" target="_blank" rel="nofollow" data-dimension112="fac0372e-cdff-11f1-8cac-1db318e56d67" data-action="Deal Block" data-label="Valor Pro (wired)" data-dimension48="Valor Pro (wired)" data-dimension25="$69.99">Valor Pro (wired): was $99.99 now $69.99</a></strong><br>This is the <a href="https://www.pcgamer.com/best-controller-for-pc-gaming/#section-the-best-wired-controller" target="_blank">best wired controller for PC gaming</a> because it's just so damn satisfying to use. Everything about it screams quality, from the clicky DPAD to thunky back paddles. And it's fairly modular and customizable, too.</p><p><strong>Key specs: Wired (USB-C) | Hall effect thumbsticks | 260 g</strong></p><p><strong>Price check: </strong><a href="https://www.amazon.com/gp/aw/d/B0DTB3F17W" target="_blank">Amazon $109.99</a><a class="view-deal button" href="https://www.scufgaming.com/us/en/p/scuf-valor-pro-black" target="_blank" rel="nofollow" data-dimension112="fac0372e-cdff-11f1-8cac-1db318e56d67" data-action="Deal Block" data-label="Valor Pro (wired)" data-dimension48="Valor Pro (wired)" data-dimension25="$69.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03792-cdff-11f1-9c8a-29d049b3edba" data-action="Deal Block" data-label="Wolverine V3 Pro 8K" data-dimension48="Wolverine V3 Pro 8K" data-dimension25="$151.99" href="https://www.amazon.com/dp/B0FC9DTDJ3" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="oyWyECCjM2npsCm4FAktzU" name="PCGamer Deal Block (9)" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/oyWyECCjM2npsCm4FAktzU-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>With a great feel, superb specs, and a bunch of remappable buttons, the Wolverine V3 Pro 8K is not only viable as a competitive choice, but comfy enough for everyday use. </p><p><strong>Key specs: Up to 8,000 Hz | TMR thumbsticks | Hall effect triggers |</strong> <strong>included carry case | Wireless and wired | 20 hour battery life (with 1,000 Hz polling)</strong><a class="view-deal button" href="https://www.amazon.com/dp/B0FC9DTDJ3" target="_blank" rel="nofollow" data-dimension112="fac03792-cdff-11f1-9c8a-29d049b3edba" data-action="Deal Block" data-label="Wolverine V3 Pro 8K" data-dimension48="Wolverine V3 Pro 8K" data-dimension25="$151.99">View Deal</a></p></div><ul><li><a href="#main"><strong>Back to top ^</strong></a></li></ul><div class="vizualizer-embed"><fc-author-commerce-widget data-fcaw-version="1" data-fcaw-full-bleed="false">  <style data-fcaw-host-protection>fc-author-commerce-widget[data-fcaw-version="1"] {  display: block !important;  width: 100% !important;  min-width: 0 !important;  max-width: none !important;  isolation: isolate !important;  contain: style !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]{  width: min(    1200px,    var(--fcaw-viewport-width, 100vw)  ) !important;  max-width: 1200px !important;  margin-left: var(    --fcaw-full-bleed-offset,    calc(50% - min(600px, 50vw))  ) !important;  margin-right: 0 !important;  position: relative !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]  #tg-df-spreadsheet-filters {  width: min(    1500px,    var(--fcaw-viewport-width, 100vw)  ) !important;  max-width: 1500px !important;  margin-left: calc(    (      100% -      min(1500px, var(--fcaw-viewport-width, 100vw))    ) / 2  ) !important;  margin-right: 0 !important;}fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::before,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::after {  box-sizing: border-box;}</style>  <div data-fcaw-fallback class="fcaw-v1-fallback">    <style>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with 'tg-df-' to prevent CMS style leakage.    */    .tg-df-container { user-select: text; -webkit-user-select: text;      container-type: inline-size;      container-name: tg-df;                  --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-widget-host[data-tg-df-full-bleed="true"]    {      width: min(        1200px,        var(--fcaw-viewport-width, 100vw)      ) !important;      max-width: 1200px !important;      margin-left: calc(        (          100% -          min(1200px, var(--fcaw-viewport-width, 100vw))        ) / 2      ) !important;      margin-right: 0 !important;      position: relative !important;    }    .tg-df-widget-host[data-tg-df-full-bleed="true"]      #tg-df-spreadsheet-filters {      width: min(        1500px,        var(--fcaw-viewport-width, 100vw)      ) !important;      max-width: 1500px !important;      margin-left: calc(        (          100% -          min(1500px, var(--fcaw-viewport-width, 100vw))        ) / 2      ) !important;      margin-right: 0 !important;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;      position: relative;      z-index: 20;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      margin: 0 auto;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: var(--tg-df-blue);    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters-container {      position: relative;      width: 100%;      max-width: 42rem;    }    .tg-df-scroll-btn {      display: none;      position: absolute;      top: 50%;      transform: translateY(-50%);      width: 32px;      height: 32px;      background: white;      border: 1px solid var(--tg-df-border);      border-radius: 50%;      align-items: center;      justify-content: center;      cursor: pointer;      z-index: 10;      box-shadow: 0 2px 8px rgba(0,0,0,0.1);      color: var(--tg-df-text-primary);      padding: 0;    }    .tg-df-scroll-btn svg {      width: 16px;      height: 16px;    }    .tg-df-scroll-btn:hover {      background: #f4f4f4;    }    .tg-df-scroll-btn.left {      left: 0px;    }    .tg-df-scroll-btn.right {      right: 0px;    }        .tg-df-filters {      display: flex;      justify-content: center;      width: 100%;      gap: 12px;      margin: 0 auto;      max-width: 42rem;    }                 .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;      width: 100%;      max-width: 280px;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      width: 100%;      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }    .tg-df-scroll-btn {      position: absolute;      top: 50%;      transform: translateY(-50%);      width: 32px;      height: 32px;      background: white;      border: 1px solid var(--tg-df-border);      border-radius: 50%;      align-items: center;      justify-content: center;      cursor: pointer;      z-index: 10;      box-shadow: 0 2px 8px rgba(0,0,0,0.1);      color: var(--tg-df-text-primary);      padding: 0;    }    .tg-df-scroll-btn svg {      width: 16px;      height: 16px;    }    .tg-df-scroll-btn:hover {      background: #f4f4f4;    }    .tg-df-scroll-btn.left {      left: 4px;    }    .tg-df-scroll-btn.right {      right: 4px;    }    @container tg-df (max-width: 768px) {      .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; }      .tg-df-filters-container {      position: relative;      width: 100%;      max-width: 42rem;      margin: 0 auto;    }    .tg-df-filters {        justify-content: center;        width: 100%;        margin: 0 auto;        margin-bottom: -320px;        padding: 0 0 320px 0;        display: flex;        flex-wrap: nowrap;        gap: 8px;        overflow-x: auto;        overflow-y: hidden;        pointer-events: none;        scrollbar-width: none;        -webkit-overflow-scrolling: touch;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }      .tg-df-sort-wrapper {        pointer-events: auto;        flex: 0 0 auto;        width: 175px;        min-width: 175px;      }    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: calc(100% + 32px);      max-width: none;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;      margin: 0 -16px -16px -16px;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }    .tg-df-buying-guide-badge {      left: auto;      right: 12px;      max-width: calc(100% - 24px);      overflow: hidden;      text-overflow: ellipsis;      white-space: nowrap;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges { position: absolute; bottom: 8px; left: 8px; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 0; z-index: 10; }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-card-listings {      margin: 0 0 12px;    }    .tg-df-card-listings-title {      display: block;      color: var(--tg-df-text-muted);      font-size: 11px;      font-weight: 700;      letter-spacing: 0.45px;      line-height: 1.2;      margin-bottom: 4px;      text-transform: uppercase;    }    .tg-df-card-listings-links {      border-top: 1px solid var(--tg-df-border);    }    .tg-df-container .tg-df-card-listing-link {      align-items: center;      border-bottom: 1px solid var(--tg-df-border);      box-sizing: border-box;      color: var(--tg-df-blue);      display: flex;      font-size: 13px;      font-weight: 700;      justify-content: space-between;      line-height: 1.2;      min-height: 34px;      padding: 5px 2px;      text-decoration: none;    }    .tg-df-container .tg-df-card-listing-link::after {      content: '↗';      font-size: 14px;      font-weight: 600;      margin-left: 8px;    }    .tg-df-container .tg-df-card-listing-link:hover,    .tg-df-container .tg-df-card-listing-link:focus-visible {      background: #f8fafc;      color: var(--tg-df-blue);      outline: 2px solid var(--tg-df-blue);      outline-offset: -2px;      text-decoration: none;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: calc(100% + 32px);      max-width: none;      box-sizing: border-box;      background-color: var(--tg-df-blue);      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;      margin: 0 -16px -16px -16px;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      filter: brightness(0.85);    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 120px;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /* Optional mobile 2x2 filter grid */    .tg-df-mobile-2x2-container {      display: none;      width: 100%;      margin: 0 0 16px 0;      position: relative;      z-index: 30;    }    .tg-df-mobile-2x2-grid {      display: grid;      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);      width: 100%;      border: 1px solid var(--tg-df-border, #e2e8f0);      background: var(--tg-df-bg, #ffffff);    }    .tg-df-container .tg-df-mobile-grid-cell {      appearance: none;      display: flex;      align-items: center;      justify-content: space-between;      min-width: 0;      padding: 12px 14px;      font-family: inherit;      font-size: 11px;      font-weight: 600;      line-height: 1.2;      text-transform: uppercase;      letter-spacing: 0.5px;      text-align: left;      color: var(--tg-df-text-muted, #64748b);      background: var(--tg-df-bg, #ffffff);      border: 0;      border-radius: 0;      cursor: pointer;      box-shadow: none;    }    .tg-df-mobile-grid-cell > span {      overflow: hidden;      text-overflow: ellipsis;      white-space: nowrap;    }    .tg-df-mobile-grid-cell > svg {      flex: 0 0 auto;      margin-left: 8px;      transition: transform 0.15s ease;    }    .tg-df-mobile-grid-cell > svg.is-open {      transform: rotate(180deg);    }    .tg-df-mobile-grid-cell {      border-bottom: 1px solid var(--tg-df-border, #e2e8f0);    }    .tg-df-mobile-grid-cell:nth-child(odd) {      border-right: 1px solid var(--tg-df-border, #e2e8f0);    }    .tg-df-mobile-2x2-grid--even .tg-df-mobile-grid-cell:nth-last-child(-n + 2) {      border-bottom: 0;    }    .tg-df-mobile-2x2-grid--odd .tg-df-mobile-grid-cell:last-child {      grid-column: 1 / -1;      border-right: 0;      border-bottom: 0;    }    .tg-df-container .tg-df-mobile-grid-cell.active,    .tg-df-container .tg-df-mobile-grid-cell:hover {      background: var(--tg-df-bg-secondary, #f8fafc);      color: var(--tg-df-text, #0f172a);    }    .tg-df-container .tg-df-mobile-grid-cell.has-active-filter {      background: var(--tg-df-blue, #1f69ff);      color: #ffffff;    }    .tg-df-mobile-menu-drawer {      width: 100%;      max-height: 260px;      overflow-y: auto;      overscroll-behavior: contain;      border: 1px solid var(--tg-df-border, #e2e8f0);      border-top: 0;      background: var(--tg-df-bg, #ffffff);      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);    }    .tg-df-container .tg-df-mobile-menu-item {      appearance: none;      display: flex;      align-items: center;      justify-content: space-between;      width: 100%;      min-height: 42px;      padding: 12px 16px;      font-family: inherit;      font-size: 12px;      font-weight: 500;      line-height: 1.3;      text-align: left;      color: var(--tg-df-text, #0f172a);      background: var(--tg-df-bg, #ffffff);      border: 0;      border-bottom: 1px solid #f1f5f9;      border-radius: 0;      cursor: pointer;      box-shadow: none;    }    .tg-df-container .tg-df-mobile-menu-item:last-child {      border-bottom: 0;    }    .tg-df-container .tg-df-mobile-menu-item.selected {      color: var(--tg-df-blue, #1f69ff);      background: rgba(31, 105, 255, 0.08);      font-weight: 600;    }    .tg-df-container .tg-df-mobile-menu-item:hover {      background: var(--tg-df-bg-secondary, #f8fafc);    }    .tg-df-mobile-cell-badge {      display: inline-flex;      align-items: center;      justify-content: center;      padding: 2px 6px;      margin-left: 4px;      color: var(--tg-df-blue, #1f69ff);      background: rgba(31, 105, 255, 0.1);      border-radius: 9999px;      font-size: 10px;      font-weight: 700;    }    @container tg-df (max-width: 599px) {      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-mobile-2x2-container {        display: block !important;        z-index: 50;        background: var(--tg-df-bg, #ffffff);        box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"]        .tg-df-mobile-2x2-container {        position: sticky !important;        top: var(--fcaw-mobile-sticky-offset, 0px);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-controls {        display: none !important;      }    }    @media (max-width: 599px) {      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-mobile-2x2-container {        display: block !important;        z-index: 50;        background: var(--tg-df-bg, #ffffff);        box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"]        .tg-df-mobile-2x2-container {        position: sticky !important;        top: var(--fcaw-mobile-sticky-offset, 0px);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-controls {        display: none !important;      }    }    /* A non-full-bleed desktop embed is constrained to the article column.       Reuse the compact filter grid there instead of squeezing the rails. */    @container tg-df (min-width: 600px) {      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-mobile-2x2-container {        display: block !important;      }      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-controls {        display: none !important;      }    }    @media (min-width: 600px) {      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-mobile-2x2-container {        display: block !important;      }      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-controls {        display: none !important;      }    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-mobile-authors { gap: 16px !important; }      .tg-df-mobile-authors .tg-df-author-row-item { width: 56px !important; }      .tg-df-mobile-authors .tg-df-author-img-wrapper { width: 48px !important; height: 48px !important; }      .tg-df-mobile-authors .tg-df-author-brand-logo { width: 18px !important; height: 18px !important; bottom: -2px !important; right: -2px !important; }      .tg-df-mobile-authors .tg-df-author-row-name { font-size: 11px !important; }      .tg-df-mobile-authors .tg-df-author-row-role { font-size: 10px !important; }            .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; }      .tg-df-controls {        padding: 16px 0 8px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }                  .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;        width: auto;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 8px;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 5px 12px !important;        font-size: 11px !important;        height: 30px !important;        min-height: 30px !important;        border-radius: 0 !important;        flex: 0 0 auto;        text-align: center;        white-space: nowrap;        line-height: 1.2;        margin: 8px 0 0;      }    }    @media (max-width: 599px) {      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 5px 12px !important;        font-size: 11px !important;        height: 30px !important;        min-height: 30px !important;        border-radius: 0 !important;        flex: 0 0 auto;        text-align: center;        white-space: nowrap;        line-height: 1.2;        margin: 8px 0 0;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;      width: 100vw;      max-width: 1200px;      position: relative;      left: 50%;      transform: translateX(-50%);    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: var(--tg-df-blue);      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }        .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: var(--tg-df-blue);      position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }      .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: var(--tg-df-blue);      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 14px;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }        .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;      scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }    .tg-df-container .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-carousel-scroll-left {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: rgba(255, 255, 255, 0.4);      color: var(--tg-df-blue);      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);      border: none;      cursor: pointer;      transition: background-color 0.2s;      margin-top: -4px;      z-index: 10;    }    .tg-df-container .tg-df-carousel-scroll-right {      right: 0;    }    .tg-df-container .tg-df-carousel-scroll-left {      left: 0;    }    .tg-df-container .tg-df-carousel-scroll-right:hover,    .tg-df-container .tg-df-carousel-scroll-left:hover {      background-color: rgba(255, 255, 255, 0.6);    }    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left {       height: 30px;       width: 30px;       background-color: rgba(255, 255, 255, 0.8);       box-shadow: 0 2px 4px rgba(0,0,0,0.1);       margin-top: 0;       color: #0f4098;    }    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right:hover,    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left:hover {       background-color: white;    }    .tg-df-container .tg-df-grid-wrapper {       position: relative;    }    .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-left {       background-color: white;       box-shadow: 0 4px 12px rgba(0,0,0,0.15);       top: 40%;       width: 44px;       height: 44px;       color: #0f4098;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue);    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue);    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }            .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn {      display: inline-flex;      align-items: center;    }    .tg-df-container .tg-df-carousel-filter-btn:hover, .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      width: calc(100% + 24px);      border-radius: 0;      padding: 8px 10px;      margin: auto -12px -12px -12px;      background-color: var(--tg-df-blue);    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.40);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; padding-right: 12px; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @media (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }      .tg-df-container .hawk-deal-widget-title-product-title,      .tg-df-container .hawk-deal-widget-title-price,      .tg-df-container .hawk-deal-widget-title-retailer {        font-size: 14px !important;        line-height: 1.35 !important;        font-weight: 700 !important;      }      .tg-df-container .hawk-deal-widget-title-was-price {        font-size: 13px !important;        line-height: 1.35 !important;      }      .tg-df-container .hawk-deal-widget-text-body-main {        font-size: 14px !important;        line-height: 1.35 !important;        margin-bottom: 8px !important;      }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    /* BESPOKE AUTHOR HEADER STYLES - MAX ISOLATION PROTECTION */    .tg-df-author-embed {      width: 100% !important;      font-family: inherit !important;      background: transparent !important;      margin: 0 !important;      padding: 0 !important;      border: none !important;    }    .tg-df-author-section {      display: block !important;      width: 100% !important;      max-width: 100% !important;      opacity: 1 !important;      overflow: visible !important;      background: transparent !important;      border: none !important;      margin: 0 auto !important;      padding: 0 !important;      box-shadow: none !important;    }    .tg-df-author-card {      text-align: center !important;      padding: 1.75rem 1rem 1.25rem 1rem !important;      margin: 0 auto !important;      max-width: 48rem !important;      background: transparent !important;      border: none !important;      border-radius: 0 !important;      box-sizing: border-box !important;      box-shadow: none !important;    }    .tg-df-author-image {      width: 180px !important;      height: 180px !important;      border-radius: 50% !important;      object-fit: cover !important;      margin: 0 auto 0.75rem auto !important;      display: block !important;      border: none !important;      box-shadow: none !important;      max-width: 100% !important;    }    .tg-df-author-media-slot {      width: 100% !important;      height: 180px !important;      min-height: 180px !important;      margin: 0 auto 0.75rem auto !important;      display: flex !important;      align-items: center !important;      justify-content: center !important;    }    .tg-df-author-media-slot .tg-df-author-image {      margin: 0 auto !important;    }    .tg-df-author-profile-image-wrapper {      position: relative !important;      width: 180px !important;      height: 180px !important;      margin: 0 auto 0.75rem auto !important;      flex: 0 0 auto !important;    }    .tg-df-author-profile-brand-logo {      position: absolute !important;      right: 12px !important;      bottom: 12px !important;      width: 42px !important;      height: 42px !important;      padding: 0 !important;      border: 3px solid var(--tg-df-bg, #fff) !important;      border-radius: 50% !important;      background: #000 !important;      object-fit: contain !important;      box-sizing: border-box !important;    }    .tg-df-author-curated-by {      font-size: 0.875rem !important;      color: #6B7280 !important;      font-style: normal !important;      margin: 0 0 0.25rem 0 !important;      padding: 0 !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;      letter-spacing: normal !important;      line-height: 1.4 !important;    }    .tg-df-author-name {      font-size: 2rem !important;      font-weight: 300 !important;      color: #111827 !important;      margin: 0 0 0.25rem 0 !important;      padding: 0 !important;      line-height: 1.1 !important;      letter-spacing: -0.02em !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;    }    .tg-df-author-role {      font-size: 0.9375rem !important;      font-weight: 500 !important;      color: var(--tg-df-blue, #1F69FF) !important;      margin: 0 0 1.25rem 0 !important;      padding: 0 !important;      line-height: 1.3 !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;    }    .tg-df-author-meta-slot {      width: 100% !important;      min-height: 88px !important;      display: flex !important;      flex-direction: column !important;      align-items: center !important;      justify-content: flex-start !important;    }    .tg-df-author-meta-slot--site {      padding-top: 1rem !important;    }    .tg-df-author-meta-slot--no-social {      min-height: 0 !important;    }    .tg-df-author-meta-slot--no-social .tg-df-author-role {      margin-bottom: 0.5rem !important;    }    .tg-df-author-social-links {      display: flex !important;      flex-wrap: wrap !important;      align-items: center !important;      justify-content: center !important;      gap: 1rem !important;      margin: 0 auto 1.25rem auto !important;      padding: 0 !important;      max-width: 42rem !important;      width: 100% !important;      list-style: none !important;      background: none !important;      border: none !important;      box-shadow: none !important;    }    .tg-df-author-social-btn {      display: inline-flex !important;      align-items: center !important;      justify-content: center !important;      padding: 0 !important;      border-radius: 50% !important;      background-color: #f2f2f2 !important;      color: #111111 !important;      font-size: 0.8125rem !important;      font-weight: 500 !important;      text-decoration: none !important;      transition: all 0.2s ease !important;      border: 0 !important;      line-height: 1 !important;      box-shadow: none !important;      cursor: pointer !important;      outline: none !important;      margin: 0 !important;      height: 34px !important;      width: 34px !important;      min-width: 34px !important;      box-sizing: border-box !important;    }    .tg-df-author-social-btn:hover {      background-color: #dedede !important;      color: #111111 !important;      transform: translateY(-1px) !important;    }    .tg-df-author-social-btn > svg {      width: 19px !important;      height: 19px !important;      flex-shrink: 0 !important;      display: block !important;      margin: 0 !important;    }    .tg-df-author-social-btn[data-social-key="facebook"] > svg {      transform: scale(1.25) !important;    }    .tg-df-author-social-btn[data-social-key="pinterest"] > svg,    .tg-df-author-social-btn[data-social-key="tiktok"] > svg {      transform: scale(1.2) !important;    }    .tg-df-author-bio {      max-width: 42rem !important;      margin: 0 auto 1.25rem auto !important;      padding: 0 0.5rem !important;      color: #4b5563 !important;      line-height: 1.6 !important;      font-weight: 300 !important;      font-size: 0.9375rem !important;      text-align: center !important;      background: none !important;      border: none !important;      border-radius: 0 !important;      box-shadow: none !important;      display: block !important;      height: auto !important;      overflow: visible !important;    }    .tg-df-author-bio-shell--stable {      width: 100% !important;      box-sizing: border-box !important;    }    .tg-df-author-bio--clamped {      min-height: 4.8em !important;      height: 4.8em !important;      max-height: 4.8em !important;      display: -webkit-box !important;      -webkit-box-orient: vertical !important;      -webkit-line-clamp: 3 !important;      overflow: hidden !important;    }    .tg-df-author-bio--expanded {      min-height: 4.8em !important;      height: auto !important;      max-height: none !important;      display: block !important;      overflow: visible !important;    }    .tg-df-author-bio--static,    .tg-df-author-bio--static:hover,    .tg-df-author-bio--static:focus,    .tg-df-author-bio--static:focus-visible {      outline: none !important;      box-shadow: none !important;      cursor: default !important;    }    .tg-df-author-bio-toggle-slot {      height: 28px !important;      display: flex !important;      align-items: center !important;      justify-content: center !important;      margin: 0.125rem 0 0 !important;    }    .tg-df-author-bio-toggle {      appearance: none !important;      border: 0 !important;      border-bottom: 1px solid currentColor !important;      border-radius: 0 !important;      padding: 0.125rem 0 !important;      margin: 0 !important;      background: transparent !important;      color: #4b5563 !important;      box-shadow: none !important;      font: inherit !important;      font-size: 0.75rem !important;      font-weight: 600 !important;      line-height: 1.2 !important;      text-decoration: none !important;      text-transform: none !important;      cursor: pointer !important;    }    .tg-df-author-bio a {      color: var(--tg-df-blue, #1F69FF) !important;      text-decoration: underline !important;      font-weight: 400 !important;      background: none !important;      border: none !important;      padding: 0 !important;      margin: 0 !important;      border-radius: 0 !important;      display: inline !important;      box-shadow: none !important;    }    .tg-df-author-bio p,    .tg-df-author-bio div,    .tg-df-author-bio span {      margin: 0 !important;      padding: 0 !important;      color: inherit !important;      font: inherit !important;      line-height: inherit !important;      text-align: inherit !important;      text-transform: none !important;      letter-spacing: normal !important;      background: none !important;      border: none !important;      box-shadow: none !important;    }    .tg-df-author-bio strong,    .tg-df-author-bio b {      font-weight: 600 !important;    }    .tg-df-author-bio em,    .tg-df-author-bio i {      font-style: italic !important;    }    @container tg-df (min-width: 600px) {      .tg-df-author-image {        width: 180px !important;        height: 180px !important;      }      .tg-df-author-name {        font-size: 2.5rem !important;      }    }    @media (min-width: 600px) {      .tg-df-author-image {        width: 180px !important;        height: 180px !important;      }      .tg-df-author-name {        font-size: 2.5rem !important;      }    }    @container tg-df (max-width: 768px) {      .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; }    }    @media (max-width: 768px) {      .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; }    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; }      .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; }      .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; }      .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; }      .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }    }    @media (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; }      .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; }      .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; }      .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; }      .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }    }        .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button {      align-items: center; background-color: var(--tg-df-blue); box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;    }    .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button:hover { filter: brightness(0.85); text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }    .tg-df-active-badges-row {      display: flex;      flex-wrap: wrap;      gap: 8px;      align-items: center;      margin-top: 12px;      margin-bottom: 16px;      width: 100%;    }    .tg-df-active-badge {      display: inline-flex;      align-items: center;      gap: 6px;      padding: 8px 14px;      background-color: var(--tg-df-blue, #1f69ff);      color: #ffffff;      border: 1px solid var(--tg-df-blue, #1f69ff);      border-radius: 0px;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      line-height: 1;    }    .tg-df-badge-remove {      display: inline-flex;      align-items: center;      justify-content: center;      width: 16px;      height: 16px;      border-radius: 0px;      border: none;      background: rgba(255, 255, 255, 0.25);      color: #ffffff;      cursor: pointer;      padding: 0;      margin-left: 4px;      transition: background-color 0.15s, color 0.15s;    }    .tg-df-badge-remove:hover {      background: rgba(255, 255, 255, 0.45);      color: #ffffff;    }    .tg-df-badge-clear-all {      display: inline-flex;      align-items: center;      justify-content: center;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      line-height: 1;      padding: 8px 14px;      color: var(--tg-df-text-muted, #64748b);      cursor: pointer;      background: #ffffff;      border: 1px solid var(--tg-df-border, #e2e8f0);      border-radius: 0px;      transition: all 0.15s ease;    }    .tg-df-badge-clear-all:hover {      background: var(--tg-df-blue, #1f69ff);      color: #ffffff;      border-color: var(--tg-df-blue, #1f69ff);    }    .tg-df-savings-squad-header {      margin-bottom: 24px;      text-align: center;    }    .tg-df-banner-img-desktop {      display: block;      width: 100%;      height: auto;      margin-bottom: 32px;    }    .tg-df-banner-img-mobile {      display: none;      width: 100%;      height: auto;      margin-bottom: 32px;    }    @container tg-df (max-width: 600px) {      .tg-df-banner-img-desktop {        display: none;      }      .tg-df-banner-img-mobile {        display: block;      }    }    .tg-df-header-title {      font-size: 28px;      font-weight: 700;      color: var(--tg-df-text);      margin: 32px 0 12px 0;      line-height: 1.3;    }    .tg-df-header-subtitle {      font-size: 16px;      color: var(--tg-df-text-muted);      margin: 0 0 32px 0;      line-height: 1.5;    }    @container tg-df (max-width: 599px) {      .tg-df-filters-container { display: none !important; }      #tg-df-controls { display: none !important; }      .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; }      .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; }      .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; }    }    @media (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-filters-container { display: none !important; }      #tg-df-controls { display: none !important; }      .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; }      .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; }      .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; }    }    /* Article Intro Content Styling */    .tg-df-article-content {      font-size: 1rem;      line-height: 1.7;      color: #334155;    }    .tg-df-article-content p {      margin-bottom: 1.25rem;      line-height: 1.7;      font-size: 1rem;      color: #334155;    }    .tg-df-article-content > p:first-of-type::first-letter {      font-size: 3.25rem;      font-weight: 700;      float: left;      line-height: 0.85;      margin-right: 0.5rem;      margin-top: 0.15rem;      color: #0f172a;      font-family: inherit;    }    .tg-df-article-content a {      color: #0066cc;      text-decoration: underline;      font-weight: 500;    }    .tg-df-article-content a:hover {      color: #004499;    }    .tg-df-article-content strong, .tg-df-article-content b {      font-weight: 700;      color: #0f172a;    }    .tg-df-article-section-banner {      border-bottom: 2px solid #e6007e;      margin: 2.25rem 0 1.25rem 0;      position: relative;      clear: both;    }    .tg-df-article-section-banner span {      background-color: #e6007e;      color: #ffffff;      padding: 6px 16px;      font-weight: 700;      font-size: 0.875rem;      text-transform: uppercase;      letter-spacing: 0.05em;      display: inline-block;    }  </style><div class="tg-df-widget-host" data-vizualizer-embed="true" data-tg-df-full-bleed="false" data-tg-df-mobile-dropdowns="true" data-tg-df-sticky-mobile-filters="false" style="--tg-df-blue: #DC191B;"><div class="tg-df-container article-body" style="background-color: transparent;"><div id="tg-df-spreadsheet-filters" style="display: block; margin-bottom: 16px;"><div class="tg-df-categories-row-container" style="border-bottom: 1px solid var(--tg-df-border); position: relative;"><button aria-label="Scroll left" class="tg-df-scroll-btn left tg-df-desktop-only" type="button" style="display: none;"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M15 18l-6-6 6-6"></path></svg></button><button aria-label="Scroll right" class="tg-df-scroll-btn right tg-df-desktop-only" type="button" style="display: none;"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M9 18l6-6-6-6"></path></svg></button><div class="tg-df-categories-row" style="display: flex; overflow-x: auto; scrollbar-width: none;"><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Hardware <span style="color: var(--tg-df-blue); font-size: 10px;">66</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Monitors <span style="color: var(--tg-df-blue); font-size: 10px;">9</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming PCs <span style="color: var(--tg-df-blue); font-size: 10px;">7</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Mice <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Headsets <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Audio <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">SSDs <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Storage <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Laptops <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Controllers <span style="color: var(--tg-df-blue); font-size: 10px;">1</span></button></div></div></div><div class="tg-df-mobile-2x2-container"><div class="tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--odd"><button type="button" class="tg-df-mobile-grid-cell" aria-expanded="false"><span>CATEGORIES</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button><button type="button" class="tg-df-mobile-grid-cell" aria-expanded="false"><span>PRICES</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button><button type="button" class="tg-df-mobile-grid-cell has-active-filter" aria-expanded="false"><span>DISCOUNTS (25%+)</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button></div></div><div class="tg-df-controls" id="tg-df-controls" style="display: flex; margin-top: 12px; margin-bottom: 16px; justify-content: center;"><div class="tg-df-filters-container" style="position: relative; width: 100%; max-width: 800px; margin: 0px auto;"><button class="tg-df-scroll-btn left" style="display: none;"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"></path></svg></button><button class="tg-df-scroll-btn right" style="display: none;"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"></path></svg></button><div class="tg-df-filters"><div class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper" style="display: flex;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path></svg><select class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices"><option value="all">All Prices</option><option value="under50">Under $50</option><option value="50_100">$50 - $100</option><option value="100_200">$100 - $200</option><option value="200_500">$200 - $500</option><option value="over500">Over $500</option></select></div><div class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper" style="display: flex;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path></svg><select class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount"><option value="all">Any discount</option><option value="5">Min 5%</option><option value="10">Min 10%</option><option value="15">Min 15%</option><option value="20">Min 20%</option><option value="25">Min 25%</option><option value="30">Min 30%</option><option value="40">Min 40%</option><option value="50">Min 50%</option><option value="60">Min 60%</option><option value="70">Min 70%</option></select></div><div class="tg-df-sort-wrapper" id="tg-df-review-sort-wrapper" style="display: none;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 7h16M7 12h10m-7 5h4"></path></svg><select class="tg-df-filter-select" id="tg-df-review-sort" aria-label="Sort Reviews"><option value="date_desc">Most recent</option><option value="rating_desc">Highest rating</option><option value="scored_first">Scored products first</option></select></div></div></div></div><div class="tg-df-active-badges-row" style="display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-top: 10px; margin-bottom: 16px;"><span class="tg-df-active-badge">Min 25% off<button type="button" class="tg-df-badge-remove" aria-label="Remove Min 25% off"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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></span></div><div class="tg-df-grid-wrapper"><div class="tg-df-grid article-body tg-df-grid-auto" id="tg-df-grid"><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-0" data-merchant="Amazon" data-previous-price="34.99" data-price="25.99" data-product-name="G203 | Wired"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $9</span><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G203 | Wired" class="tg-df-card-image" loading="lazy" src="http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G203 | Wired"><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G203 | Wired</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>25.99</span></span><span class="tg-df-card-msrp">$34.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Glorious" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-0" data-merchant="Amazon" data-previous-price="59.99" data-price="26.31" data-product-name="GHS Eternal | 40 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $33.68</span><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="GHS Eternal | 40 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="GHS Eternal | 40 mm drivers"><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Glorious GHS Eternal | 40 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>26.31</span></span><span class="tg-df-card-msrp">$59.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-1" data-merchant="Amazon" data-previous-price="49.99" data-price="29.99" data-product-name="G305 Lightspeed | Wireless"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G305 Lightspeed | Wireless" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G305 Lightspeed | Wireless"><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G305 Lightspeed | Wireless</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>29.99</span></span><span class="tg-df-card-msrp">$49.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-86" data-merchant="Amazon" data-previous-price="49.99" data-price="29.99" data-product-name="G305 Lightspeed"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G305 Lightspeed" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G305 Lightspeed"><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G305 Lightspeed</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>29.99</span></span><span class="tg-df-card-msrp">$49.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-87" data-merchant="Bestbuy" data-previous-price="69.99" data-price="34.98" data-product-name="Basilisk V3"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $35.01</span><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Basilisk V3" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Basilisk V3"><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer Basilisk V3</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>34.98</span></span><span class="tg-df-card-msrp">$69.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Bestbuy</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-3" data-merchant="Amazon" data-previous-price="69.99" data-price="37.99" data-product-name="G502 Hero | Wired"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $32</span><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G502 Hero | Wired" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G502 Hero | Wired"><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G502 Hero | Wired</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>37.99</span></span><span class="tg-df-card-msrp">$69.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-80" data-merchant="Amazon" data-previous-price="59.99" data-price="39.79" data-product-name="BlackShark V2 X"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20.2</span><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="BlackShark V2 X" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="BlackShark V2 X"><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer BlackShark V2 X</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>39.79</span></span><span class="tg-df-card-msrp">$59.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-1" data-merchant="Amazon" data-previous-price="79.99" data-price="39.99" data-product-name="G432 | 50 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $40</span><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G432 | 50 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G432 | 50 mm drivers"><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G432 | 50 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>39.99</span></span><span class="tg-df-card-msrp">$79.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-2" data-merchant="Amazon" data-previous-price="79.99" data-price="44.99" data-product-name="Kraken V4 X | 40 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $35</span><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Kraken V4 X | 40 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Kraken V4 X | 40 mm drivers"><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer Kraken V4 X | 40 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>44.99</span></span><span class="tg-df-card-msrp">$79.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Turtle Beach" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-5" data-merchant="Amazon" data-previous-price="99.99" data-price="54.99" data-product-name="Burst II Air | Wireless"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $45</span><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Burst II Air | Wireless" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Burst II Air | Wireless"><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Turtle Beach Burst II Air | Wireless</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>54.99</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="HyperX" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-5" data-merchant="Amazon" data-previous-price="99.99" data-price="57.99" data-product-name="Cloud III | 53 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $42</span><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Cloud III | 53 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Cloud III | 53 mm drivers"><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>HyperX Cloud III | 53 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>57.99</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Nothing" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-15" data-merchant="Amazon" data-previous-price="79" data-price="59" data-product-name="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)"><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Nothing Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>59</span></span><span class="tg-df-card-msrp">$79</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="KTC" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-40" data-merchant="Newegg" data-previous-price="99.99" data-price="62.49" data-product-name="H24V27"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $37.5</span><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="H24V27" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="H24V27"><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>KTC H24V27</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code &quot;LDSF246&quot; for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>62.49</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Newegg</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Scuf" data-currency="$" data-deal-id="airedale-A97h9Ug45WeF5xPLdcoJyf-0" data-merchant="Amazon" data-previous-price="109.99" data-price="76.99" data-product-name="Valor Pro"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $33</span><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Valor Pro" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Valor Pro"><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Scuf Valor Pro</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>76.99</span></span><span class="tg-df-card-msrp">$109.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Jess Kinghorn" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/controllers/the-best-wired-pc-controller-has-been-knocked-down-to-usd77-so-long-as-you-dont-mind-it-in-white" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Jess Kinghorn</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 24 days ago</span></div></div></div></div><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Acer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-41" data-merchant="Newegg" data-previous-price="129.99" data-price="79.99" data-product-name="AOpen 24KG1Y X3bip"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50</span><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="AOpen 24KG1Y X3bip" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="AOpen 24KG1Y X3bip"><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Acer AOpen 24KG1Y X3bip</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>79.99</span></span><span class="tg-df-card-msrp">$129.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Newegg</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Asus" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-82" data-merchant="Amazon" data-previous-price="129.99" data-price="79.99" data-product-name="ROG Pelta"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50</span><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="ROG Pelta" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="ROG Pelta"><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Asus ROG Pelta</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>79.99</span></span><span class="tg-df-card-msrp">$129.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="MSI" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-43" data-merchant="Bestbuy" data-previous-price="149.99" data-price="97.49" data-product-name="MAG 244F"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $52.5</span><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="MAG 244F" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="MAG 244F"><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>MSI MAG 244F</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>97.49</span></span><span class="tg-df-card-msrp">$149.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Bestbuy</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="MSI" data-currency="$" data-deal-id="airedale-UBBZiFU9BXsLfvbZ8d4awf-1" data-merchant="Walmart" data-previous-price="149.99" data-price="99" data-product-name="MAG 255XFV"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50.99</span><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="MAG 255XFV" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="MAG 255XFV"><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>MSI MAG 255XFV</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>99</span></span><span class="tg-df-card-msrp">$149.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Walmart</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/amazon-prime-day-gaming-monitor-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-load-more-control" style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1; overflow-anchor: none;"><button type="button" class="tg-df-tag-outline" aria-busy="false" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer;">Load More</button></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Product","name":"G203 | Wired","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":25.99,"url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":2,"item":{"@type":"Product","name":"GHS Eternal | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","brand":{"@type":"Brand","name":"Glorious"},"offers":{"@type":"Offer","priceCurrency":"USD","price":26.31,"url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":3,"item":{"@type":"Product","name":"G305 Lightspeed | Wireless","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":4,"item":{"@type":"Product","name":"G305 Lightspeed","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/dp/B07CMS5Q6P","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":5,"item":{"@type":"Product","name":"Basilisk V3","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":34.98,"url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":6,"item":{"@type":"Product","name":"G502 Hero | Wired","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":37.99,"url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":7,"item":{"@type":"Product","name":"BlackShark V2 X","image":"https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg","description":"The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.79,"url":"https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":8,"item":{"@type":"Product","name":"G432 | 50 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg","description":"Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.99,"url":"https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":9,"item":{"@type":"Product","name":"Kraken V4 X | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg","description":"If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":44.99,"url":"https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":10,"item":{"@type":"Product","name":"Burst II Air | Wireless","image":"https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg","description":"We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99","brand":{"@type":"Brand","name":"Turtle Beach"},"offers":{"@type":"Offer","priceCurrency":"USD","price":54.99,"url":"https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":11,"item":{"@type":"Product","name":"Cloud III | 53 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg","description":"We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99","brand":{"@type":"Brand","name":"HyperX"},"offers":{"@type":"Offer","priceCurrency":"USD","price":57.99,"url":"https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":12,"item":{"@type":"Product","name":"Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)","image":"https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png","description":"These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response","brand":{"@type":"Brand","name":"Nothing"},"offers":{"@type":"Offer","priceCurrency":"USD","price":59,"url":"https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":13,"item":{"@type":"Product","name":"H24V27","image":"https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png","description":"This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code "LDSF246" for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA","brand":{"@type":"Brand","name":"KTC"},"offers":{"@type":"Offer","priceCurrency":"USD","price":62.49,"url":"https://www.newegg.com/p/3D4-007C-00016","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":14,"item":{"@type":"Product","name":"Valor Pro","image":"https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png","description":"This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks","brand":{"@type":"Brand","name":"Scuf"},"offers":{"@type":"Offer","priceCurrency":"USD","price":76.99,"url":"https://www.amazon.com/dp/B0DTB3QCS5","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":15,"item":{"@type":"Product","name":"AOpen 24KG1Y X3bip","image":"https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png","description":"With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"Acer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.newegg.com/p/N82E16824011533","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":16,"item":{"@type":"Product","name":"ROG Pelta","image":"https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg","description":"With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life","brand":{"@type":"Brand","name":"Asus"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":17,"item":{"@type":"Product","name":"MAG 244F","image":"https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png","description":"With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":97.49,"url":"https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":18,"item":{"@type":"Product","name":"MAG 255XFV","image":"https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg","description":"You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":99,"url":"https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174","seller":{"@type":"Organization","name":"Walmart"}}}}]}</script></div></div><div class="tg-df-modal-backdrop "><div class="tg-df-modal"><div class="tg-df-modal-header"><h3 class="tg-df-modal-title">Available Coupons & Deals</h3><button class="tg-df-modal-close"><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 class="tg-df-modal-body"><div class="tg-df-message">No active vouchers found for .</div></div></div></div></div></div>  </div>  <script type="application/json" data-fcaw-config>{"authorBioLength":"short","authorFullBleed":false,"authorHandle":"all-authors","authorName":"All authors","backgroundColor":"transparent","customBio":"","discountAmount":"25","editorMode":false,"editorialMaxAgeMonths":"0","includeBuyingGuideProducts":false,"includeCollections":false,"includeDeals":true,"includeReviewProducts":false,"mobileDropdowns":true,"stickyMobileFilters":false,"offerType":"","preloadReviewInventory":false,"lightweightReviewDelivery":false,"hideHawkPrices":false,"prioritiseCommercialProducts":true,"priceRange":"all","productSelection":"mix","query":"","region":"auto","resultCount":"6","retailer":"","selectedBrands":[],"showAuthorBio":false,"showAuthorCounters":true,"showAuthorIdentity":false,"showAuthorRail":false,"showBrandRail":false,"showCategoryRail":true,"showCollectionsDropdown":false,"showPriceDiscountFilters":true,"showReviewSort":false,"showSocialButtons":false,"showCountdown":false,"showHeaderDetails":true,"showFreeformTagRail":false,"sort":"price_asc","viewMode":"author","website":"pcgamer","widgetSubtitle":"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.","widgetTitle":"Top Deals Handpicked by Our Editors","brands":[],"shortenedHeadlines":{},"compactEmbed":true}</script>  <script type="application/json" data-fcaw-preload>{"authors":[{"bioLong":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","bioShort":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","name":"James","fullName":"James Bentley","handle":"james-bentley","role":"Hardware writer","image":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","brandKey":"pcgamer"},{"bioLong":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","bioShort":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","name":"Dave","fullName":"Dave James","handle":"dave-james","role":"Editor-in-Chief, Hardware","image":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/not_the_gk","label":"X (Twitter)"},{"key":"email","href":"mailto:dave.james@futurenet.com","label":"Email"}]},{"bioLong":"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'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's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","bioShort":"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'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's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","name":"Jacob","fullName":"Jacob Fox","handle":"jacob-fox","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/Ee8ZL5rzgTjTNkBFJ4jBnD.png","brandKey":"pcgamer"},{"bioLong":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","bioShort":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","name":"Andy","fullName":"Andy Edser","handle":"andy-edser","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","brandKey":"pcgamer"},{"bioLong":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","bioShort":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","name":"Jess","fullName":"Jess Kinghorn","handle":"jess-kinghorn","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/KoeniginKatze","label":"X (Twitter)"},{"key":"linkedin","href":"https://www.linkedin.com/in/jess-kinghorn","label":"LinkedIn"}]}],"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"activeDealTag":null,"activeFreeformTag":null,"activeFreeformTags":[],"couponMap":{"Amazon":"has","Bestbuy":"none","Newegg":"none","Walmart":"none"},"totalAuthorCount":5,"totalDealCount":56,"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"reviewInventoryBaked":false,"regionalDealManifests":{"US":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-0","url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":25.99,"rawMsrp":34.99,"price":"25.99","msrp":"34.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $9","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g203-lightsync-wired-optical-gaming-mouse-with-8000-dpi-sensor-white/6409362.p?skuId=6409362\" target=\"_blank\"\u003eBest Buy $39.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-0","url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","title":"GHS Eternal | 40 mm drivers","brand":"Glorious","productName":"GHS Eternal | 40 mm drivers","merchant":"Amazon","rawPrice":26.31,"rawMsrp":59.99,"price":"26.31","msrp":"59.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $33.68","savingType":"amount","isPrime":false,"starRating":null,"description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","text":"\u003cp\u003eWith a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20 hz - 20 kHz | 255 g\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-1","url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite budget wireless mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/product/logitech-g305-lightspeed-wireless-optical-6-programmable-button-gaming-mouse-with-12000-dpi-hero-sensor-wireless-white/J7H7ZY2ZYR\" target=\"_blank\"\u003eBest Buy $49.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-86","url":"https://www.amazon.com/dp/B07CMS5Q6P","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","title":"G305 Lightspeed","brand":"Logitech","productName":"G305 Lightspeed","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","text":"\u003cp\u003eAlready reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-87","url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","title":"Basilisk V3","brand":"Razer","productName":"Basilisk V3","merchant":"Bestbuy","rawPrice":34.98,"rawMsrp":69.99,"price":"34.98","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $35.01","savingType":"amount","isPrime":false,"starRating":null,"description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","text":"\u003cp\u003eThis mouse might be a few years old, but we scored it highly in \u003ca href=\"https://www.pcgamer.com/razer-basilisk-v3-gaming-mouse-review/\" target=\"_blank\"\u003eour review\u003c/a\u003e in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to \u003ca href=\"https://www.pcgamer.com/hardware/im-ashamed-to-say-that-this-razer-mouse-has-made-me-actually-take-a-shine-to-rgb-and-now-you-can-be-persuaded-too-for-almost-50-percent-off/\" target=\"_blank\"\u003etempt even those who usually hate RGB lighting\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-3","url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":37.99,"rawMsrp":69.99,"price":"37.99","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $32","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","text":"\u003cp\u003eThis is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g502-hero-wired-optical-gaming-mouse-with-rgb-lighting-black/6265133.p?skuId=6265133\" target=\"_blank\"\u003eBest Buy $69.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true}],"GB":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-10","url":"https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":19.99,"rawMsrp":30.99,"price":"19.99","msrp":"30.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £11","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-11","url":"https://www.amazon.co.uk/Logitech-Wireless-Lightweight-Programmable-compatible/dp/B07CGPZ3ZQ","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":19.99,"rawMsrp":27.99,"price":"19.99","msrp":"27.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £8","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite wireless budget mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays. Key specs: Wireless | 12,000 DPI | Right-handed","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite wireless budget mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-19","url":"https://www.amazon.co.uk/JBL-Quantum-Gaming-Wired-Over-ear-Black/dp/B083X24CFF/","image":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","title":"Quantum 100 | 40 mm drivers","brand":"JBL","productName":"Quantum 100 | 40 mm drivers","merchant":"Amazon","rawPrice":19.99,"rawMsrp":29.99,"price":"19.99","msrp":"29.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £10","savingType":"amount","isPrime":false,"starRating":null,"description":"JBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired","text":"\u003cp\u003eJBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-12","url":"https://www.amazon.co.uk/Logitech-Programmable-Buttons-Computer-Adjustable/dp/B07GS6ZB7T/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":22.01,"rawMsrp":37.79,"price":"22.01","msrp":"37.79","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £15.78","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness. Key specs: Wired | 25,600 DPI | Right-handed","text":"\u003cp\u003eThis is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-23","url":"https://www.amazon.co.uk/Logitech-LIGHTSPEED-Wireless-Bluetooth-Nintendo/dp/B0FL7NNGRG?th=1","image":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","title":"G321 Lightspeed | 40 mm drivers","brand":"Logitech","productName":"G321 Lightspeed | 40 mm drivers","merchant":"Amazon","rawPrice":32.99,"rawMsrp":59.99,"price":"32.99","msrp":"59.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £27","savingType":"amount","isPrime":false,"starRating":null,"description":"This very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in his review. It won't blow you away with bass or features, but at this price it's still worth considering. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless Price check: Currys £42.99","text":"\u003cp\u003eThis very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in \u003ca href=\"https://www.pcgamer.com/hardware/gaming-headsets/logitech-g321-lightspeed-review/\" target=\"_blank\"\u003ehis review\u003c/a\u003e. It won't blow you away with bass or features, but at this price it's still worth considering.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless \u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g321-lightspeed-wireless-bluetooth-gaming-headset-black-10289632.html\" target=\"_blank\"\u003eCurrys £42.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-20","url":"https://www.amazon.co.uk/Logitech-Microphone-Comfortable-Lightweight-PlayStation/dp/B07W6J6TG5/","image":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","title":"G335 | 40 mm drivers","brand":"Logitech","productName":"G335 | 40 mm drivers","merchant":"Amazon","rawPrice":34.99,"rawMsrp":64.99,"price":"34.99","msrp":"64.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £30","savingType":"amount","isPrime":false,"starRating":null,"description":"This Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired Price check: Currys £34.99","text":"\u003cp\u003eThis Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g335-gaming-headset-black-10227173.html\" target=\"_blank\"\u003eCurrys £34.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true}],"AU":[{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-5","url":"https://www.amazon.com.au/JBL-QuantumSOUND-Signature-Comfortable-Breathable/dp/B0D6NLHV8N","image":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","title":"Quantum 100M2","brand":"JBL","productName":"Quantum 100M2","merchant":"Amazon","rawPrice":29,"rawMsrp":59.95,"price":"29","msrp":"59.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$30.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.","text":"\u003cp\u003eIf you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-1","url":"https://www.amazon.com.au/dp/B0CMCPY4VG","image":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","title":"Nova Lite","brand":"GameSir","productName":"Nova Lite","merchant":"Amazon","rawPrice":32,"rawMsrp":45,"price":"32","msrp":"45","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$13","savingType":"amount","isPrime":false,"starRating":null,"description":"Our favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.","text":"\u003cp\u003eOur favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-15","url":"https://www.amazon.com.au/dp/B07MG5547J","image":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","title":"G502 Hero","brand":"Logitech","productName":"G502 Hero","merchant":"Amazon","rawPrice":55.99,"rawMsrp":149.95,"price":"55.99","msrp":"149.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$93.96","savingType":"amount","isPrime":false,"starRating":null,"description":"Logitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;","text":"\u003cp\u003eLogitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-8","url":"https://www.amazon.com.au/CORSAIR-Membrane-Wired-Gaming-Keyboard/dp/B0CP6BR96G","image":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","title":"K55 Core Membrane","brand":"Corsair","productName":"K55 Core Membrane","merchant":"Amazon","rawPrice":59,"rawMsrp":79.95,"price":"59","msrp":"79.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$20.95","savingType":"amount","isPrime":false,"starRating":null,"description":"This discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.","text":"\u003cp\u003eThis discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-11","url":"https://www.amazon.com.au/dp/B01K48R5V4","image":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","fallbackImage":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","title":"G G213 Prodigy","brand":"Logitech","productName":"G G213 Prodigy","merchant":"Amazon","rawPrice":72,"rawMsrp":129.95,"price":"72","msrp":"129.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$57.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.","text":"\u003cp\u003eIf you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-13","url":"https://www.amazon.com.au/CORSAIR-Sabre-Ultralight-Wireless-Gaming/dp/B0FKJ2J2R8/","image":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","title":"Sabre v2 Pro","brand":"Corsair","productName":"Sabre v2 Pro","merchant":"Amazon","rawPrice":79,"rawMsrp":169,"price":"79","msrp":"169","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$90","savingType":"amount","isPrime":false,"starRating":null,"description":"The Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox loved its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life.","text":"\u003cp\u003eThe Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox \u003ca href=\"https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/\"\u003eloved\u003c/a\u003e its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life. \u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true}]},"regionalDealRailData":{"US":{"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"totalAuthorCount":5,"totalDealCount":56},"GB":{"brands":[{"formatted_value":"Logitech","count":6},{"formatted_value":"Steelseries","count":2},{"formatted_value":"EarFun","count":2},{"formatted_value":"Lexar","count":2},{"formatted_value":"AOC","count":2},{"formatted_value":"MSI","count":2},{"formatted_value":"JBL","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Turtle Beach","count":1}],"freeformTagCounts":{"hardware":17,"mouse":5,"gaming-mouse":5,"prime-day":5,"amazon-prime-day-2026":14,"amazon-prime-day":17,"prime-day-deals":8,"deals":17,"deal":17,"big-deal-days":17,"gaming-headset":9,"amazon-prime":3,"ssd":1,"pc-deals":3,"gaming-monitor":2,"monitors":2,"solid-state-drive":1,"solid-state":1,"hdd":1,"hard-drive":1,"storage":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"}],"tagCounts":{"Gaming Mice":5,"Hardware":17,"Gaming Headsets":9,"Gaming Audio":9,"SSDs":1,"Storage":1,"Gaming Monitors":2},"tags":["Hardware","Gaming Headsets","Gaming Audio","Gaming Mice","Gaming Monitors","SSDs","Storage"],"totalAuthorCount":4,"totalDealCount":17},"AU":{"brands":[{"formatted_value":"Logitech","count":7},{"formatted_value":"Corsair","count":4},{"formatted_value":"JBL","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"GameSir","count":1},{"formatted_value":"8BitDo","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Asus","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"SteelSeries","count":1}],"freeformTagCounts":{"hardware":20,"amazon-prime":20,"pc-deals":20,"deals":20,"prime-day-deals":20},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"}],"tagCounts":{"Hardware":20},"tags":["Hardware"],"totalAuthorCount":1,"totalDealCount":20}}}</script></fc-author-commerce-widget><script>(()=>{var Z1=Object.create;var cg=Object.defineProperty;var W1=Object.getOwnPropertyDescriptor;var I1=Object.getOwnPropertyNames;var J1=Object.getPrototypeOf,$1=Object.prototype.hasOwnProperty;var un=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var eb=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of I1(t))!$1.call(e,l)&&l!==n&&cg(e,l,{get:()=>t[l],enumerable:!(a=W1(t,l))||a.enumerable});return e};var B=(e,t,n)=>(n=e!=null?Z1(J1(e)):{},eb(t||!e||!e.__esModule?cg(n,"default",{value:e,enumerable:!0}):n,e));var Ag=un(z=>{"use strict";var Tc=Symbol.for("react.transitional.element"),tb=Symbol.for("react.portal"),nb=Symbol.for("react.fragment"),ab=Symbol.for("react.strict_mode"),lb=Symbol.for("react.profiler"),ib=Symbol.for("react.consumer"),rb=Symbol.for("react.context"),ob=Symbol.for("react.forward_ref"),ub=Symbol.for("react.suspense"),cb=Symbol.for("react.memo"),mg=Symbol.for("react.lazy"),sb=Symbol.for("react.activity"),sg=Symbol.iterator;function db(e){return e===null||typeof e!="object"?null:(e=sg&&e[sg]||e["@@iterator"],typeof e=="function"?e:null)}var hg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pg=Object.assign,yg={};function ml(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}ml.prototype.isReactComponent={};ml.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ml.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function vg(){}vg.prototype=ml.prototype;function Ec(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}var Dc=Ec.prototype=new vg;Dc.constructor=Ec;pg(Dc,ml.prototype);Dc.isPureReactComponent=!0;var dg=Array.isArray;function Rc(){}var he={H:null,A:null,T:null,S:null},bg=Object.prototype.hasOwnProperty;function xc(e,t,n){var a=n.ref;return{$$typeof:Tc,type:e,key:t,ref:a!==void 0?a:null,props:n}}function fb(e,t){return xc(e.type,t,e.props)}function Mc(e){return typeof e=="object"&&e!==null&&e.$$typeof===Tc}function gb(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var fg=/\/+/g;function Cc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?gb(""+e.key):t.toString(36)}function mb(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Rc,Rc):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function gl(e,t,n,a,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var r=!1;if(e===null)r=!0;else switch(i){case"bigint":case"string":case"number":r=!0;break;case"object":switch(e.$$typeof){case Tc:case tb:r=!0;break;case mg:return r=e._init,gl(r(e._payload),t,n,a,l)}}if(r)return l=l(e),r=a===""?"."+Cc(e,0):a,dg(l)?(n="",r!=null&&(n=r.replace(fg,"$&/")+"/"),gl(l,t,n,"",function(c){return c})):l!=null&&(Mc(l)&&(l=fb(l,n+(l.key==null||e&&e.key===l.key?"":(""+l.key).replace(fg,"$&/")+"/")+r)),t.push(l)),1;r=0;var o=a===""?".":a+":";if(dg(e))for(var u=0;u<e.length;u++)a=e[u],i=o+Cc(a,u),r+=gl(a,t,n,i,l);else if(u=db(e),typeof u=="function")for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,i=o+Cc(a,u++),r+=gl(a,t,n,i,l);else if(i==="object"){if(typeof e.then=="function")return gl(mb(e),t,n,a,l);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return r}function ro(e,t,n){if(e==null)return e;var a=[],l=0;return gl(e,a,"","",function(i){return t.call(n,i,l++)}),a}function hb(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var gg=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},pb={map:ro,forEach:function(e,t,n){ro(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ro(e,function(){t++}),t},toArray:function(e){return ro(e,function(t){return t})||[]},only:function(e){if(!Mc(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};z.Activity=sb;z.Children=pb;z.Component=ml;z.Fragment=nb;z.Profiler=lb;z.PureComponent=Ec;z.StrictMode=ab;z.Suspense=ub;z.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=he;z.__COMPILER_RUNTIME={__proto__:null,c:function(e){return he.H.useMemoCache(e)}};z.cache=function(e){return function(){return e.apply(null,arguments)}};z.cacheSignal=function(){return null};z.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var a=pg({},e.props),l=e.key;if(t!=null)for(i in t.key!==void 0&&(l=""+t.key),t)!bg.call(t,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&t.ref===void 0||(a[i]=t[i]);var i=arguments.length-2;if(i===1)a.children=n;else if(1<i){for(var r=Array(i),o=0;o<i;o++)r[o]=arguments[o+2];a.children=r}return xc(e.type,l,a)};z.createContext=function(e){return e={$$typeof:rb,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:ib,_context:e},e};z.createElement=function(e,t,n){var a,l={},i=null;if(t!=null)for(a in t.key!==void 0&&(i=""+t.key),t)bg.call(t,a)&&a!=="key"&&a!=="__self"&&a!=="__source"&&(l[a]=t[a]);var r=arguments.length-2;if(r===1)l.children=n;else if(1<r){for(var o=Array(r),u=0;u<r;u++)o[u]=arguments[u+2];l.children=o}if(e&&e.defaultProps)for(a in r=e.defaultProps,r)l[a]===void 0&&(l[a]=r[a]);return xc(e,i,l)};z.createRef=function(){return{current:null}};z.forwardRef=function(e){return{$$typeof:ob,render:e}};z.isValidElement=Mc;z.lazy=function(e){return{$$typeof:mg,_payload:{_status:-1,_result:e},_init:hb}};z.memo=function(e,t){return{$$typeof:cb,type:e,compare:t===void 0?null:t}};z.startTransition=function(e){var t=he.T,n={};he.T=n;try{var a=e(),l=he.S;l!==null&&l(n,a),typeof a=="object"&&a!==null&&typeof a.then=="function"&&a.then(Rc,gg)}catch(i){gg(i)}finally{t!==null&&n.types!==null&&(t.types=n.types),he.T=t}};z.unstable_useCacheRefresh=function(){return he.H.useCacheRefresh()};z.use=function(e){return he.H.use(e)};z.useActionState=function(e,t,n){return he.H.useActionState(e,t,n)};z.useCallback=function(e,t){return he.H.useCallback(e,t)};z.useContext=function(e){return he.H.useContext(e)};z.useDebugValue=function(){};z.useDeferredValue=function(e,t){return he.H.useDeferredValue(e,t)};z.useEffect=function(e,t){return he.H.useEffect(e,t)};z.useEffectEvent=function(e){return he.H.useEffectEvent(e)};z.useId=function(){return he.H.useId()};z.useImperativeHandle=function(e,t,n){return he.H.useImperativeHandle(e,t,n)};z.useInsertionEffect=function(e,t){return he.H.useInsertionEffect(e,t)};z.useLayoutEffect=function(e,t){return he.H.useLayoutEffect(e,t)};z.useMemo=function(e,t){return he.H.useMemo(e,t)};z.useOptimistic=function(e,t){return he.H.useOptimistic(e,t)};z.useReducer=function(e,t,n){return he.H.useReducer(e,t,n)};z.useRef=function(e){return he.H.useRef(e)};z.useState=function(e){return he.H.useState(e)};z.useSyncExternalStore=function(e,t,n){return he.H.useSyncExternalStore(e,t,n)};z.useTransition=function(){return he.H.useTransition()};z.version="19.2.8"});var ft=un((zS,wg)=>{"use strict";wg.exports=Ag()});var Bg=un(Se=>{"use strict";function Oc(e,t){var n=e.length;e.push(t);e:for(;0<n;){var a=n-1>>>1,l=e[a];if(0<oo(l,t))e[a]=t,e[n]=l,n=a;else break e}}function cn(e){return e.length===0?null:e[0]}function co(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var a=0,l=e.length,i=l>>>1;a<i;){var r=2*(a+1)-1,o=e[r],u=r+1,c=e[u];if(0>oo(o,n))u<l&&0>oo(c,o)?(e[a]=c,e[u]=n,a=u):(e[a]=o,e[r]=n,a=r);else if(u<l&&0>oo(c,n))e[a]=c,e[u]=n,a=u;else break e}}return t}function oo(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}Se.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Sg=performance,Se.unstable_now=function(){return Sg.now()}):(_c=Date,Cg=_c.now(),Se.unstable_now=function(){return _c.now()-Cg});var Sg,_c,Cg,wn=[],Qn=[],yb=1,Ut=null,et=3,kc=!1,Mi=!1,_i=!1,Lc=!1,Eg=typeof setTimeout=="function"?setTimeout:null,Dg=typeof clearTimeout=="function"?clearTimeout:null,Rg=typeof setImmediate<"u"?setImmediate:null;function uo(e){for(var t=cn(Qn);t!==null;){if(t.callback===null)co(Qn);else if(t.startTime<=e)co(Qn),t.sortIndex=t.expirationTime,Oc(wn,t);else break;t=cn(Qn)}}function Hc(e){if(_i=!1,uo(e),!Mi)if(cn(wn)!==null)Mi=!0,pl||(pl=!0,hl());else{var t=cn(Qn);t!==null&&zc(Hc,t.startTime-e)}}var pl=!1,Bi=-1,xg=5,Mg=-1;function _g(){return Lc?!0:!(Se.unstable_now()-Mg<xg)}function Bc(){if(Lc=!1,pl){var e=Se.unstable_now();Mg=e;var t=!0;try{e:{Mi=!1,_i&&(_i=!1,Dg(Bi),Bi=-1),kc=!0;var n=et;try{t:{for(uo(e),Ut=cn(wn);Ut!==null&&!(Ut.expirationTime>e&&_g());){var a=Ut.callback;if(typeof a=="function"){Ut.callback=null,et=Ut.priorityLevel;var l=a(Ut.expirationTime<=e);if(e=Se.unstable_now(),typeof l=="function"){Ut.callback=l,uo(e),t=!0;break t}Ut===cn(wn)&&co(wn),uo(e)}else co(wn);Ut=cn(wn)}if(Ut!==null)t=!0;else{var i=cn(Qn);i!==null&&zc(Hc,i.startTime-e),t=!1}}break e}finally{Ut=null,et=n,kc=!1}t=void 0}}finally{t?hl():pl=!1}}}var hl;typeof Rg=="function"?hl=function(){Rg(Bc)}:typeof MessageChannel<"u"?(Nc=new MessageChannel,Tg=Nc.port2,Nc.port1.onmessage=Bc,hl=function(){Tg.postMessage(null)}):hl=function(){Eg(Bc,0)};var Nc,Tg;function zc(e,t){Bi=Eg(function(){e(Se.unstable_now())},t)}Se.unstable_IdlePriority=5;Se.unstable_ImmediatePriority=1;Se.unstable_LowPriority=4;Se.unstable_NormalPriority=3;Se.unstable_Profiling=null;Se.unstable_UserBlockingPriority=2;Se.unstable_cancelCallback=function(e){e.callback=null};Se.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):xg=0<e?Math.floor(1e3/e):5};Se.unstable_getCurrentPriorityLevel=function(){return et};Se.unstable_next=function(e){switch(et){case 1:case 2:case 3:var t=3;break;default:t=et}var n=et;et=t;try{return e()}finally{et=n}};Se.unstable_requestPaint=function(){Lc=!0};Se.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=et;et=e;try{return t()}finally{et=n}};Se.unstable_scheduleCallback=function(e,t,n){var a=Se.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?a+n:a):n=a,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return l=n+l,e={id:yb++,callback:t,priorityLevel:e,startTime:n,expirationTime:l,sortIndex:-1},n>a?(e.sortIndex=n,Oc(Qn,e),cn(wn)===null&&e===cn(Qn)&&(_i?(Dg(Bi),Bi=-1):_i=!0,zc(Hc,n-a))):(e.sortIndex=l,Oc(wn,e),Mi||kc||(Mi=!0,pl||(pl=!0,hl()))),e};Se.unstable_shouldYield=_g;Se.unstable_wrapCallback=function(e){var t=et;return function(){var n=et;et=t;try{return e.apply(this,arguments)}finally{et=n}}}});var Og=un((GS,Ng)=>{"use strict";Ng.exports=Bg()});var Lg=un(ot=>{"use strict";var vb=ft();function kg(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Kn(){}var rt={d:{f:Kn,r:function(){throw Error(kg(522))},D:Kn,C:Kn,L:Kn,m:Kn,X:Kn,S:Kn,M:Kn},p:0,findDOMNode:null},bb=Symbol.for("react.portal");function Ab(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:bb,key:a==null?null:""+a,children:e,containerInfo:t,implementation:n}}var Ni=vb.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function so(e,t){if(e==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}ot.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=rt;ot.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(kg(299));return Ab(e,t,null,n)};ot.flushSync=function(e){var t=Ni.T,n=rt.p;try{if(Ni.T=null,rt.p=2,e)return e()}finally{Ni.T=t,rt.p=n,rt.d.f()}};ot.preconnect=function(e,t){typeof e=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,rt.d.C(e,t))};ot.prefetchDNS=function(e){typeof e=="string"&&rt.d.D(e)};ot.preinit=function(e,t){if(typeof e=="string"&&t&&typeof t.as=="string"){var n=t.as,a=so(n,t.crossOrigin),l=typeof t.integrity=="string"?t.integrity:void 0,i=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;n==="style"?rt.d.S(e,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:a,integrity:l,fetchPriority:i}):n==="script"&&rt.d.X(e,{crossOrigin:a,integrity:l,fetchPriority:i,nonce:typeof t.nonce=="string"?t.nonce:void 0})}};ot.preinitModule=function(e,t){if(typeof e=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var n=so(t.as,t.crossOrigin);rt.d.M(e,{crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&rt.d.M(e)};ot.preload=function(e,t){if(typeof e=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var n=t.as,a=so(n,t.crossOrigin);rt.d.L(e,n,{crossOrigin:a,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}};ot.preloadModule=function(e,t){if(typeof e=="string")if(t){var n=so(t.as,t.crossOrigin);rt.d.m(e,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else rt.d.m(e)};ot.requestFormReset=function(e){rt.d.r(e)};ot.unstable_batchedUpdates=function(e,t){return e(t)};ot.useFormState=function(e,t,n){return Ni.H.useFormState(e,t,n)};ot.useFormStatus=function(){return Ni.H.useHostTransitionStatus()};ot.version="19.2.8"});var Ug=un((qS,zg)=>{"use strict";function Hg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Hg)}catch(e){console.error(e)}}Hg(),zg.exports=Lg()});var Wy=un(Hu=>{"use strict";var Ge=Og(),sh=ft(),wb=Ug();function S(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function dh(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function vr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function fh(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function gh(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Gg(e){if(vr(e)!==e)throw Error(S(188))}function Sb(e){var t=e.alternate;if(!t){if(t=vr(e),t===null)throw Error(S(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return Gg(l),e;if(i===a)return Gg(l),t;i=i.sibling}throw Error(S(188))}if(n.return!==a.return)n=l,a=i;else{for(var r=!1,o=l.child;o;){if(o===n){r=!0,n=l,a=i;break}if(o===a){r=!0,a=l,n=i;break}o=o.sibling}if(!r){for(o=i.child;o;){if(o===n){r=!0,n=i,a=l;break}if(o===a){r=!0,a=i,n=l;break}o=o.sibling}if(!r)throw Error(S(189))}}if(n.alternate!==a)throw Error(S(190))}if(n.tag!==3)throw Error(S(188));return n.stateNode.current===n?e:t}function mh(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=mh(e),t!==null)return t;e=e.sibling}return null}var ve=Object.assign,Cb=Symbol.for("react.element"),fo=Symbol.for("react.transitional.element"),Pi=Symbol.for("react.portal"),Sl=Symbol.for("react.fragment"),hh=Symbol.for("react.strict_mode"),ys=Symbol.for("react.profiler"),ph=Symbol.for("react.consumer"),Mn=Symbol.for("react.context"),fd=Symbol.for("react.forward_ref"),vs=Symbol.for("react.suspense"),bs=Symbol.for("react.suspense_list"),gd=Symbol.for("react.memo"),Zn=Symbol.for("react.lazy");Symbol.for("react.scope");var As=Symbol.for("react.activity");Symbol.for("react.legacy_hidden");Symbol.for("react.tracing_marker");var Rb=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var Pg=Symbol.iterator;function Oi(e){return e===null||typeof e!="object"?null:(e=Pg&&e[Pg]||e["@@iterator"],typeof e=="function"?e:null)}var Tb=Symbol.for("react.client.reference");function ws(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Tb?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Sl:return"Fragment";case ys:return"Profiler";case hh:return"StrictMode";case vs:return"Suspense";case bs:return"SuspenseList";case As:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case Pi:return"Portal";case Mn:return e.displayName||"Context";case ph:return(e._context.displayName||"Context")+".Consumer";case fd:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case gd:return t=e.displayName||null,t!==null?t:ws(e.type)||"Memo";case Zn:t=e._payload,e=e._init;try{return ws(e(t))}catch{}}return null}var qi=Array.isArray,L=sh.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=wb.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,za={pending:!1,data:null,method:null,action:null},Ss=[],Cl=-1;function mn(e){return{current:e}}function Fe(e){0>Cl||(e.current=Ss[Cl],Ss[Cl]=null,Cl--)}function ge(e,t){Cl++,Ss[Cl]=e.current,e.current=t}var gn=mn(null),lr=mn(null),ra=mn(null),Vo=mn(null);function Xo(e,t){switch(ge(ra,t),ge(lr,e),ge(gn,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Qm(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Qm(t),e=Hy(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Fe(gn),ge(gn,e)}function ql(){Fe(gn),Fe(lr),Fe(ra)}function Cs(e){e.memoizedState!==null&&ge(Vo,e);var t=gn.current,n=Hy(t,e.type);t!==n&&(ge(lr,e),ge(gn,n))}function Qo(e){lr.current===e&&(Fe(gn),Fe(lr)),Vo.current===e&&(Fe(Vo),hr._currentValue=za)}var Uc,qg;function Oa(e){if(Uc===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Uc=t&&t[1]||"",qg=-1<n.stack.indexOf(`    at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return``+Uc+e+qg}var Gc=!1;function Pc(e,t){if(!e||Gc)return"";Gc=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var f=function(){throw Error()};if(Object.defineProperty(f.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(f,[])}catch(m){var d=m}Reflect.construct(e,[],f)}else{try{f.call()}catch(m){d=m}e.call(f.prototype)}}else{try{throw Error()}catch(m){d=m}(f=e())&&typeof f.catch=="function"&&f.catch(function(){})}}catch(m){if(m&&d&&typeof m.stack=="string")return[m.stack,d.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var i=a.DetermineComponentFrameRoot(),r=i[0],o=i[1];if(r&&o){var u=r.split(``),c=o.split(``);for(l=a=0;a<u.length&&!u[a].includes("DetermineComponentFrameRoot");)a++;for(;l<c.length&&!c[l].includes("DetermineComponentFrameRoot");)l++;if(a===u.length||l===c.length)for(a=u.length-1,l=c.length-1;1<=a&&0<=l&&u[a]!==c[l];)l--;for(;1<=a&&0<=l;a--,l--)if(u[a]!==c[l]){if(a!==1||l!==1)do if(a--,l--,0>l||u[a]!==c[l]){var s=``+u[a].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}while(1<=a&&0<=l);break}}}finally{Gc=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Oa(n):""}function Eb(e,t){switch(e.tag){case 26:case 27:case 5:return Oa(e.type);case 16:return Oa("Lazy");case 13:return e.child!==t&&t!==null?Oa("Suspense Fallback"):Oa("Suspense");case 19:return Oa("SuspenseList");case 0:case 15:return Pc(e.type,!1);case 11:return Pc(e.type.render,!1);case 1:return Pc(e.type,!0);case 31:return Oa("Activity");default:return""}}function Fg(e){try{var t="",n=null;do t+=Eb(e,n),n=e,e=e.return;while(e);return t}catch(a){return`Error generating stack: `+a.message+``+a.stack}}var Rs=Object.prototype.hasOwnProperty,md=Ge.unstable_scheduleCallback,qc=Ge.unstable_cancelCallback,Db=Ge.unstable_shouldYield,xb=Ge.unstable_requestPaint,Dt=Ge.unstable_now,Mb=Ge.unstable_getCurrentPriorityLevel,yh=Ge.unstable_ImmediatePriority,vh=Ge.unstable_UserBlockingPriority,Ko=Ge.unstable_NormalPriority,_b=Ge.unstable_LowPriority,bh=Ge.unstable_IdlePriority,Bb=Ge.log,Nb=Ge.unstable_setDisableYieldValue,br=null,xt=null;function ta(e){if(typeof Bb=="function"&&Nb(e),xt&&typeof xt.setStrictMode=="function")try{xt.setStrictMode(br,e)}catch{}}var Mt=Math.clz32?Math.clz32:Lb,Ob=Math.log,kb=Math.LN2;function Lb(e){return e>>>=0,e===0?32:31-(Ob(e)/kb|0)|0}var go=256,mo=262144,ho=4194304;function ka(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Au(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,i=e.suspendedLanes,r=e.pingedLanes;e=e.warmLanes;var o=a&134217727;return o!==0?(a=o&~i,a!==0?l=ka(a):(r&=o,r!==0?l=ka(r):n||(n=o&~e,n!==0&&(l=ka(n))))):(o=a&~i,o!==0?l=ka(o):r!==0?l=ka(r):n||(n=a&~e,n!==0&&(l=ka(n)))),l===0?0:t!==0&&t!==l&&(t&i)===0&&(i=l&-l,n=t&-t,i>=n||i===32&&(n&4194048)!==0)?t:l}function Ar(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Hb(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ah(){var e=ho;return ho<<=1,(ho&62914560)===0&&(ho=4194304),e}function Fc(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function wr(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function zb(e,t,n,a,l,i){var r=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,u=e.expirationTimes,c=e.hiddenUpdates;for(n=r&~n;0<n;){var s=31-Mt(n),f=1<<s;o[s]=0,u[s]=-1;var d=c[s];if(d!==null)for(c[s]=null,s=0;s<d.length;s++){var m=d[s];m!==null&&(m.lane&=-536870913)}n&=~f}a!==0&&wh(e,a,0),i!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=i&~(r&~t))}function wh(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-Mt(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function Sh(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-Mt(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function Ch(e,t){var n=t&-t;return n=(n&42)!==0?1:hd(n),(n&(e.suspendedLanes|t))!==0?0:n}function hd(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function pd(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Rh(){var e=$.p;return e!==0?e:(e=window.event,e===void 0?32:Qy(e.type))}function jg(e,t){var n=$.p;try{return $.p=e,t()}finally{$.p=n}}var ba=Math.random().toString(36).slice(2),Ve="__reactFiber$"+ba,vt="__reactProps$"+ba,Jl="__reactContainer$"+ba,Ts="__reactEvents$"+ba,Ub="__reactListeners$"+ba,Gb="__reactHandles$"+ba,Yg="__reactResources$"+ba,Sr="__reactMarker$"+ba;function yd(e){delete e[Ve],delete e[vt],delete e[Ts],delete e[Ub],delete e[Gb]}function Rl(e){var t=e[Ve];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jl]||n[Ve]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Jm(e);e!==null;){if(n=e[Ve])return n;e=Jm(e)}return t}e=n,n=e.parentNode}return null}function $l(e){if(e=e[Ve]||e[Jl]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Fi(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(S(33))}function kl(e){var t=e[Yg];return t||(t=e[Yg]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function qe(e){e[Sr]=!0}var Th=new Set,Eh={};function Qa(e,t){Fl(e,t),Fl(e+"Capture",t)}function Fl(e,t){for(Eh[e]=t,e=0;e<t.length;e++)Th.add(t[e])}var Pb=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Vg={},Xg={};function qb(e){return Rs.call(Xg,e)?!0:Rs.call(Vg,e)?!1:Pb.test(e)?Xg[e]=!0:(Vg[e]=!0,!1)}function _o(e,t,n){if(qb(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function po(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function Sn(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function Pt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Dh(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Fb(e,t,n){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var l=a.get,i=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(r){n=""+r,i.call(this,r)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(r){n=""+r},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Es(e){if(!e._valueTracker){var t=Dh(e)?"checked":"value";e._valueTracker=Fb(e,t,""+e[t])}}function xh(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Dh(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function Zo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var jb=/[\n"\\]/g;function jt(e){return e.replace(jb,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ds(e,t,n,a,l,i,r,o){e.name="",r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"?e.type=r:e.removeAttribute("type"),t!=null?r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Pt(t)):e.value!==""+Pt(t)&&(e.value=""+Pt(t)):r!=="submit"&&r!=="reset"||e.removeAttribute("value"),t!=null?xs(e,r,Pt(t)):n!=null?xs(e,r,Pt(n)):a!=null&&e.removeAttribute("value"),l==null&&i!=null&&(e.defaultChecked=!!i),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.name=""+Pt(o):e.removeAttribute("name")}function Mh(e,t,n,a,l,i,r,o){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||n!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){Es(e);return}n=n!=null?""+Pt(n):"",t=t!=null?""+Pt(t):n,o||t===e.value||(e.value=t),e.defaultValue=t}a=a??l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=o?e.checked:!!a,e.defaultChecked=!!a,r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(e.name=r),Es(e)}function xs(e,t,n){t==="number"&&Zo(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Ll(e,t,n,a){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&a&&(e[n].defaultSelected=!0)}else{for(n=""+Pt(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,a&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function _h(e,t,n){if(t!=null&&(t=""+Pt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+Pt(n):""}function Bh(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(S(92));if(qi(a)){if(1<a.length)throw Error(S(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=Pt(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Es(e)}function jl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Yb=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Qg(e,t,n){var a=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,n):typeof n!="number"||n===0||Yb.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Nh(e,t,n){if(t!=null&&typeof t!="object")throw Error(S(62));if(e=e.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var l in t)a=t[l],t.hasOwnProperty(l)&&n[l]!==a&&Qg(e,l,a)}else for(var i in t)t.hasOwnProperty(i)&&Qg(e,i,t[i])}function vd(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Vb=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Xb=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Bo(e){return Xb.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function _n(){}var Ms=null;function bd(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tl=null,Hl=null;function Kg(e){var t=$l(e);if(t&&(e=t.stateNode)){var n=e[vt]||null;e:switch(e=t.stateNode,t.type){case"input":if(Ds(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+jt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[vt]||null;if(!l)throw Error(S(90));Ds(a,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(t=0;t<n.length;t++)a=n[t],a.form===e.form&&xh(a)}break e;case"textarea":_h(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Ll(e,!!n.multiple,t,!1)}}}var jc=!1;function Oh(e,t,n){if(jc)return e(t,n);jc=!0;try{var a=e(t);return a}finally{if(jc=!1,(Tl!==null||Hl!==null)&&(Nu(),Tl&&(t=Tl,e=Hl,Hl=Tl=null,Kg(t),e)))for(t=0;t<e.length;t++)Kg(e[t])}}function ir(e,t){var n=e.stateNode;if(n===null)return null;var a=n[vt]||null;if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(S(231,t,typeof n));return n}var Ln=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_s=!1;if(Ln)try{yl={},Object.defineProperty(yl,"passive",{get:function(){_s=!0}}),window.addEventListener("test",yl,yl),window.removeEventListener("test",yl,yl)}catch{_s=!1}var yl,na=null,Ad=null,No=null;function kh(){if(No)return No;var e,t=Ad,n=t.length,a,l="value"in na?na.value:na.textContent,i=l.length;for(e=0;e<n&&t[e]===l[e];e++);var r=n-e;for(a=1;a<=r&&t[n-a]===l[i-a];a++);return No=l.slice(e,1<a?1-a:void 0)}function Oo(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function yo(){return!0}function Zg(){return!1}function bt(e){function t(n,a,l,i,r){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=i,this.target=r,this.currentTarget=null;for(var o in e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?yo:Zg,this.isPropagationStopped=Zg,this}return ve(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=yo)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=yo)},persist:function(){},isPersistent:yo}),t}var Ka={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},wu=bt(Ka),Cr=ve({},Ka,{view:0,detail:0}),Qb=bt(Cr),Yc,Vc,ki,Su=ve({},Cr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:wd,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ki&&(ki&&e.type==="mousemove"?(Yc=e.screenX-ki.screenX,Vc=e.screenY-ki.screenY):Vc=Yc=0,ki=e),Yc)},movementY:function(e){return"movementY"in e?e.movementY:Vc}}),Wg=bt(Su),Kb=ve({},Su,{dataTransfer:0}),Zb=bt(Kb),Wb=ve({},Cr,{relatedTarget:0}),Xc=bt(Wb),Ib=ve({},Ka,{animationName:0,elapsedTime:0,pseudoElement:0}),Jb=bt(Ib),$b=ve({},Ka,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),eA=bt($b),tA=ve({},Ka,{data:0}),Ig=bt(tA),nA={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},aA={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},lA={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function iA(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=lA[e])?!!t[e]:!1}function wd(){return iA}var rA=ve({},Cr,{key:function(e){if(e.key){var t=nA[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Oo(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?aA[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:wd,charCode:function(e){return e.type==="keypress"?Oo(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Oo(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),oA=bt(rA),uA=ve({},Su,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Jg=bt(uA),cA=ve({},Cr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:wd}),sA=bt(cA),dA=ve({},Ka,{propertyName:0,elapsedTime:0,pseudoElement:0}),fA=bt(dA),gA=ve({},Su,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),mA=bt(gA),hA=ve({},Ka,{newState:0,oldState:0}),pA=bt(hA),yA=[9,13,27,32],Sd=Ln&&"CompositionEvent"in window,Vi=null;Ln&&"documentMode"in document&&(Vi=document.documentMode);var vA=Ln&&"TextEvent"in window&&!Vi,Lh=Ln&&(!Sd||Vi&&8<Vi&&11>=Vi),$g=" ",em=!1;function Hh(e,t){switch(e){case"keyup":return yA.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var El=!1;function bA(e,t){switch(e){case"compositionend":return zh(t);case"keypress":return t.which!==32?null:(em=!0,$g);case"textInput":return e=t.data,e===$g&&em?null:e;default:return null}}function AA(e,t){if(El)return e==="compositionend"||!Sd&&Hh(e,t)?(e=kh(),No=Ad=na=null,El=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Lh&&t.locale!=="ko"?null:t.data;default:return null}}var wA={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function tm(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!wA[e.type]:t==="textarea"}function Uh(e,t,n,a){Tl?Hl?Hl.push(a):Hl=[a]:Tl=a,t=gu(t,"onChange"),0<t.length&&(n=new wu("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Xi=null,rr=null;function SA(e){Oy(e,0)}function Cu(e){var t=Fi(e);if(xh(t))return e}function nm(e,t){if(e==="change")return t}var Gh=!1;Ln&&(Ln?(bo="oninput"in document,bo||(Qc=document.createElement("div"),Qc.setAttribute("oninput","return;"),bo=typeof Qc.oninput=="function"),vo=bo):vo=!1,Gh=vo&&(!document.documentMode||9<document.documentMode));var vo,bo,Qc;function am(){Xi&&(Xi.detachEvent("onpropertychange",Ph),rr=Xi=null)}function Ph(e){if(e.propertyName==="value"&&Cu(rr)){var t=[];Uh(t,rr,e,bd(e)),Oh(SA,t)}}function CA(e,t,n){e==="focusin"?(am(),Xi=t,rr=n,Xi.attachEvent("onpropertychange",Ph)):e==="focusout"&&am()}function RA(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Cu(rr)}function TA(e,t){if(e==="click")return Cu(t)}function EA(e,t){if(e==="input"||e==="change")return Cu(t)}function DA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Bt=typeof Object.is=="function"?Object.is:DA;function or(e,t){if(Bt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var l=n[a];if(!Rs.call(t,l)||!Bt(e[l],t[l]))return!1}return!0}function lm(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function im(e,t){var n=lm(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=lm(n)}}function qh(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?qh(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fh(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Zo(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Zo(e.document)}return t}function Cd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var xA=Ln&&"documentMode"in document&&11>=document.documentMode,Dl=null,Bs=null,Qi=null,Ns=!1;function rm(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ns||Dl==null||Dl!==Zo(a)||(a=Dl,"selectionStart"in a&&Cd(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qi&&or(Qi,a)||(Qi=a,a=gu(Bs,"onSelect"),0<a.length&&(t=new wu("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Dl)))}function Na(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xl={animationend:Na("Animation","AnimationEnd"),animationiteration:Na("Animation","AnimationIteration"),animationstart:Na("Animation","AnimationStart"),transitionrun:Na("Transition","TransitionRun"),transitionstart:Na("Transition","TransitionStart"),transitioncancel:Na("Transition","TransitionCancel"),transitionend:Na("Transition","TransitionEnd")},Kc={},jh={};Ln&&(jh=document.createElement("div").style,"AnimationEvent"in window||(delete xl.animationend.animation,delete xl.animationiteration.animation,delete xl.animationstart.animation),"TransitionEvent"in window||delete xl.transitionend.transition);function Za(e){if(Kc[e])return Kc[e];if(!xl[e])return e;var t=xl[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in jh)return Kc[e]=t[n];return e}var Yh=Za("animationend"),Vh=Za("animationiteration"),Xh=Za("animationstart"),MA=Za("transitionrun"),_A=Za("transitionstart"),BA=Za("transitioncancel"),Qh=Za("transitionend"),Kh=new Map,Os="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Os.push("scrollEnd");function tn(e,t){Kh.set(e,t),Qa(t,[e])}var Wo=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Gt=[],Ml=0,Rd=0;function Ru(){for(var e=Ml,t=Rd=Ml=0;t<e;){var n=Gt[t];Gt[t++]=null;var a=Gt[t];Gt[t++]=null;var l=Gt[t];Gt[t++]=null;var i=Gt[t];if(Gt[t++]=null,a!==null&&l!==null){var r=a.pending;r===null?l.next=l:(l.next=r.next,r.next=l),a.pending=l}i!==0&&Zh(n,l,i)}}function Tu(e,t,n,a){Gt[Ml++]=e,Gt[Ml++]=t,Gt[Ml++]=n,Gt[Ml++]=a,Rd|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function Td(e,t,n,a){return Tu(e,t,n,a),Io(e)}function Wa(e,t){return Tu(e,null,null,t),Io(e)}function Zh(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,i=e.return;i!==null;)i.childLanes|=n,a=i.alternate,a!==null&&(a.childLanes|=n),i.tag===22&&(e=i.stateNode,e===null||e._visibility&1||(l=!0)),e=i,i=i.return;return e.tag===3?(i=e.stateNode,l&&t!==null&&(l=31-Mt(n),e=i.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),i):null}function Io(e){if(50<nr)throw nr=0,ed=null,Error(S(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var _l={};function NA(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Tt(e,t,n,a){return new NA(e,t,n,a)}function Ed(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nn(e,t){var n=e.alternate;return n===null?(n=Tt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Wh(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ko(e,t,n,a,l,i){var r=0;if(a=e,typeof e=="function")Ed(e)&&(r=1);else if(typeof e=="string")r=Lw(e,n,gn.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case As:return e=Tt(31,n,t,l),e.elementType=As,e.lanes=i,e;case Sl:return Ua(n.children,l,i,t);case hh:r=8,l|=24;break;case ys:return e=Tt(12,n,t,l|2),e.elementType=ys,e.lanes=i,e;case vs:return e=Tt(13,n,t,l),e.elementType=vs,e.lanes=i,e;case bs:return e=Tt(19,n,t,l),e.elementType=bs,e.lanes=i,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Mn:r=10;break e;case ph:r=9;break e;case fd:r=11;break e;case gd:r=14;break e;case Zn:r=16,a=null;break e}r=29,n=Error(S(130,e===null?"null":typeof e,"")),a=null}return t=Tt(r,n,t,l),t.elementType=e,t.type=a,t.lanes=i,t}function Ua(e,t,n,a){return e=Tt(7,e,a,t),e.lanes=n,e}function Zc(e,t,n){return e=Tt(6,e,null,t),e.lanes=n,e}function Ih(e){var t=Tt(18,null,null,0);return t.stateNode=e,t}function Wc(e,t,n){return t=Tt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var om=new WeakMap;function Yt(e,t){if(typeof e=="object"&&e!==null){var n=om.get(e);return n!==void 0?n:(t={value:e,source:t,stack:Fg(t)},om.set(e,t),t)}return{value:e,source:t,stack:Fg(t)}}var Bl=[],Nl=0,Jo=null,ur=0,qt=[],Ft=0,ha=null,sn=1,dn="";function Dn(e,t){Bl[Nl++]=ur,Bl[Nl++]=Jo,Jo=e,ur=t}function Jh(e,t,n){qt[Ft++]=sn,qt[Ft++]=dn,qt[Ft++]=ha,ha=e;var a=sn;e=dn;var l=32-Mt(a)-1;a&=~(1<<l),n+=1;var i=32-Mt(t)+l;if(30<i){var r=l-l%5;i=(a&(1<<r)-1).toString(32),a>>=r,l-=r,sn=1<<32-Mt(t)+l|n<<l|a,dn=i+e}else sn=1<<i|n<<l|a,dn=e}function Dd(e){e.return!==null&&(Dn(e,1),Jh(e,1,0))}function xd(e){for(;e===Jo;)Jo=Bl[--Nl],Bl[Nl]=null,ur=Bl[--Nl],Bl[Nl]=null;for(;e===ha;)ha=qt[--Ft],qt[Ft]=null,dn=qt[--Ft],qt[Ft]=null,sn=qt[--Ft],qt[Ft]=null}function $h(e,t){qt[Ft++]=sn,qt[Ft++]=dn,qt[Ft++]=ha,sn=t.id,dn=t.overflow,ha=e}var Xe=null,ye=null,V=!1,oa=null,Vt=!1,ks=Error(S(519));function pa(e){var t=Error(S(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw cr(Yt(t,e)),ks}function um(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[Ve]=e,t[vt]=a,n){case"dialog":q("cancel",t),q("close",t);break;case"iframe":case"object":case"embed":q("load",t);break;case"video":case"audio":for(n=0;n<gr.length;n++)q(gr[n],t);break;case"source":q("error",t);break;case"img":case"image":case"link":q("error",t),q("load",t);break;case"details":q("toggle",t);break;case"input":q("invalid",t),Mh(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":q("invalid",t);break;case"textarea":q("invalid",t),Bh(t,a.value,a.defaultValue,a.children)}n=a.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||a.suppressHydrationWarning===!0||Ly(t.textContent,n)?(a.popover!=null&&(q("beforetoggle",t),q("toggle",t)),a.onScroll!=null&&q("scroll",t),a.onScrollEnd!=null&&q("scrollend",t),a.onClick!=null&&(t.onclick=_n),t=!0):t=!1,t||pa(e,!0)}function cm(e){for(Xe=e.return;Xe;)switch(Xe.tag){case 5:case 31:case 13:Vt=!1;return;case 27:case 3:Vt=!0;return;default:Xe=Xe.return}}function vl(e){if(e!==Xe)return!1;if(!V)return cm(e),V=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||id(e.type,e.memoizedProps)),n=!n),n&&ye&&pa(e),cm(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(317));ye=Im(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(317));ye=Im(e)}else t===27?(t=ye,Aa(e.type)?(e=cd,cd=null,ye=e):ye=t):ye=Xe?Qt(e.stateNode.nextSibling):null;return!0}function Fa(){ye=Xe=null,V=!1}function Ic(){var e=oa;return e!==null&&(pt===null?pt=e:pt.push.apply(pt,e),oa=null),e}function cr(e){oa===null?oa=[e]:oa.push(e)}var Ls=mn(null),Ia=null,Bn=null;function In(e,t,n){ge(Ls,t._currentValue),t._currentValue=n}function On(e){e._currentValue=Ls.current,Fe(Ls)}function Hs(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function zs(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var i=l.dependencies;if(i!==null){var r=l.child;i=i.firstContext;e:for(;i!==null;){var o=i;i=l;for(var u=0;u<t.length;u++)if(o.context===t[u]){i.lanes|=n,o=i.alternate,o!==null&&(o.lanes|=n),Hs(i.return,n,e),a||(r=null);break e}i=o.next}}else if(l.tag===18){if(r=l.return,r===null)throw Error(S(341));r.lanes|=n,i=r.alternate,i!==null&&(i.lanes|=n),Hs(r,n,e),r=null}else r=l.child;if(r!==null)r.return=l;else for(r=l;r!==null;){if(r===e){r=null;break}if(l=r.sibling,l!==null){l.return=r.return,r=l;break}r=r.return}l=r}}function ei(e,t,n,a){e=null;for(var l=t,i=!1;l!==null;){if(!i){if((l.flags&524288)!==0)i=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var r=l.alternate;if(r===null)throw Error(S(387));if(r=r.memoizedProps,r!==null){var o=l.type;Bt(l.pendingProps.value,r.value)||(e!==null?e.push(o):e=[o])}}else if(l===Vo.current){if(r=l.alternate,r===null)throw Error(S(387));r.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(hr):e=[hr])}l=l.return}e!==null&&zs(t,e,n,a),t.flags|=262144}function $o(e){for(e=e.firstContext;e!==null;){if(!Bt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ja(e){Ia=e,Bn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Qe(e){return ep(Ia,e)}function Ao(e,t){return Ia===null&&ja(e),ep(e,t)}function ep(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Bn===null){if(e===null)throw Error(S(308));Bn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Bn=Bn.next=t;return n}var OA=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},kA=Ge.unstable_scheduleCallback,LA=Ge.unstable_NormalPriority,ke={$$typeof:Mn,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Md(){return{controller:new OA,data:new Map,refCount:0}}function Rr(e){e.refCount--,e.refCount===0&&kA(LA,function(){e.controller.abort()})}var Ki=null,Us=0,Yl=0,zl=null;function HA(e,t){if(Ki===null){var n=Ki=[];Us=0,Yl=ef(),zl={status:"pending",value:void 0,then:function(a){n.push(a)}}}return Us++,t.then(sm,sm),t}function sm(){if(--Us===0&&Ki!==null){zl!==null&&(zl.status="fulfilled");var e=Ki;Ki=null,Yl=0,zl=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function zA(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(a.status="rejected",a.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),a}var dm=L.S;L.S=function(e,t){my=Dt(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&HA(e,t),dm!==null&&dm(e,t)};var Ga=mn(null);function _d(){var e=Ga.current;return e!==null?e:ue.pooledCache}function Lo(e,t){t===null?ge(Ga,Ga.current):ge(Ga,t.pool)}function tp(){var e=_d();return e===null?null:{parent:ke._currentValue,pool:e}}var ti=Error(S(460)),Bd=Error(S(474)),Eu=Error(S(542)),eu={then:function(){}};function fm(e){return e=e.status,e==="fulfilled"||e==="rejected"}function np(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(_n,_n),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mm(e),e;default:if(typeof t.status=="string")t.then(_n,_n);else{if(e=ue,e!==null&&100<e.shellSuspendCounter)throw Error(S(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=a}},function(a){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mm(e),e}throw Pa=t,ti}}function La(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Pa=n,ti):n}}var Pa=null;function gm(){if(Pa===null)throw Error(S(459));var e=Pa;return Pa=null,e}function mm(e){if(e===ti||e===Eu)throw Error(S(483))}var Ul=null,sr=0;function wo(e){var t=sr;return sr+=1,Ul===null&&(Ul=[]),np(Ul,e,t)}function Li(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function So(e,t){throw t.$$typeof===Cb?Error(S(525)):(e=Object.prototype.toString.call(t),Error(S(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function ap(e){function t(h,g){if(e){var p=h.deletions;p===null?(h.deletions=[g],h.flags|=16):p.push(g)}}function n(h,g){if(!e)return null;for(;g!==null;)t(h,g),g=g.sibling;return null}function a(h){for(var g=new Map;h!==null;)h.key!==null?g.set(h.key,h):g.set(h.index,h),h=h.sibling;return g}function l(h,g){return h=Nn(h,g),h.index=0,h.sibling=null,h}function i(h,g,p){return h.index=p,e?(p=h.alternate,p!==null?(p=p.index,p<g?(h.flags|=67108866,g):p):(h.flags|=67108866,g)):(h.flags|=1048576,g)}function r(h){return e&&h.alternate===null&&(h.flags|=67108866),h}function o(h,g,p,y){return g===null||g.tag!==6?(g=Zc(p,h.mode,y),g.return=h,g):(g=l(g,p),g.return=h,g)}function u(h,g,p,y){var C=p.type;return C===Sl?s(h,g,p.props.children,y,p.key):g!==null&&(g.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zn&&La(C)===g.type)?(g=l(g,p.props),Li(g,p),g.return=h,g):(g=ko(p.type,p.key,p.props,null,h.mode,y),Li(g,p),g.return=h,g)}function c(h,g,p,y){return g===null||g.tag!==4||g.stateNode.containerInfo!==p.containerInfo||g.stateNode.implementation!==p.implementation?(g=Wc(p,h.mode,y),g.return=h,g):(g=l(g,p.children||[]),g.return=h,g)}function s(h,g,p,y,C){return g===null||g.tag!==7?(g=Ua(p,h.mode,y,C),g.return=h,g):(g=l(g,p),g.return=h,g)}function f(h,g,p){if(typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint")return g=Zc(""+g,h.mode,p),g.return=h,g;if(typeof g=="object"&&g!==null){switch(g.$$typeof){case fo:return p=ko(g.type,g.key,g.props,null,h.mode,p),Li(p,g),p.return=h,p;case Pi:return g=Wc(g,h.mode,p),g.return=h,g;case Zn:return g=La(g),f(h,g,p)}if(qi(g)||Oi(g))return g=Ua(g,h.mode,p,null),g.return=h,g;if(typeof g.then=="function")return f(h,wo(g),p);if(g.$$typeof===Mn)return f(h,Ao(h,g),p);So(h,g)}return null}function d(h,g,p,y){var C=g!==null?g.key:null;if(typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint")return C!==null?null:o(h,g,""+p,y);if(typeof p=="object"&&p!==null){switch(p.$$typeof){case fo:return p.key===C?u(h,g,p,y):null;case Pi:return p.key===C?c(h,g,p,y):null;case Zn:return p=La(p),d(h,g,p,y)}if(qi(p)||Oi(p))return C!==null?null:s(h,g,p,y,null);if(typeof p.then=="function")return d(h,g,wo(p),y);if(p.$$typeof===Mn)return d(h,g,Ao(h,p),y);So(h,p)}return null}function m(h,g,p,y,C){if(typeof y=="string"&&y!==""||typeof y=="number"||typeof y=="bigint")return h=h.get(p)||null,o(g,h,""+y,C);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case fo:return h=h.get(y.key===null?p:y.key)||null,u(g,h,y,C);case Pi:return h=h.get(y.key===null?p:y.key)||null,c(g,h,y,C);case Zn:return y=La(y),m(h,g,p,y,C)}if(qi(y)||Oi(y))return h=h.get(p)||null,s(g,h,y,C,null);if(typeof y.then=="function")return m(h,g,p,wo(y),C);if(y.$$typeof===Mn)return m(h,g,p,Ao(g,y),C);So(g,y)}return null}function v(h,g,p,y){for(var C=null,R=null,T=g,M=g=0,w=null;T!==null&&M<p.length;M++){T.index>M?(w=T,T=null):w=T.sibling;var D=d(h,T,p[M],y);if(D===null){T===null&&(T=w);break}e&&T&&D.alternate===null&&t(h,T),g=i(D,g,M),R===null?C=D:R.sibling=D,R=D,T=w}if(M===p.length)return n(h,T),V&&Dn(h,M),C;if(T===null){for(;M<p.length;M++)T=f(h,p[M],y),T!==null&&(g=i(T,g,M),R===null?C=T:R.sibling=T,R=T);return V&&Dn(h,M),C}for(T=a(T);M<p.length;M++)w=m(T,h,M,p[M],y),w!==null&&(e&&w.alternate!==null&&T.delete(w.key===null?M:w.key),g=i(w,g,M),R===null?C=w:R.sibling=w,R=w);return e&&T.forEach(function(k){return t(h,k)}),V&&Dn(h,M),C}function A(h,g,p,y){if(p==null)throw Error(S(151));for(var C=null,R=null,T=g,M=g=0,w=null,D=p.next();T!==null&&!D.done;M++,D=p.next()){T.index>M?(w=T,T=null):w=T.sibling;var k=d(h,T,D.value,y);if(k===null){T===null&&(T=w);break}e&&T&&k.alternate===null&&t(h,T),g=i(k,g,M),R===null?C=k:R.sibling=k,R=k,T=w}if(D.done)return n(h,T),V&&Dn(h,M),C;if(T===null){for(;!D.done;M++,D=p.next())D=f(h,D.value,y),D!==null&&(g=i(D,g,M),R===null?C=D:R.sibling=D,R=D);return V&&Dn(h,M),C}for(T=a(T);!D.done;M++,D=p.next())D=m(T,h,M,D.value,y),D!==null&&(e&&D.alternate!==null&&T.delete(D.key===null?M:D.key),g=i(D,g,M),R===null?C=D:R.sibling=D,R=D);return e&&T.forEach(function(se){return t(h,se)}),V&&Dn(h,M),C}function b(h,g,p,y){if(typeof p=="object"&&p!==null&&p.type===Sl&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case fo:e:{for(var C=p.key;g!==null;){if(g.key===C){if(C=p.type,C===Sl){if(g.tag===7){n(h,g.sibling),y=l(g,p.props.children),y.return=h,h=y;break e}}else if(g.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zn&&La(C)===g.type){n(h,g.sibling),y=l(g,p.props),Li(y,p),y.return=h,h=y;break e}n(h,g);break}else t(h,g);g=g.sibling}p.type===Sl?(y=Ua(p.props.children,h.mode,y,p.key),y.return=h,h=y):(y=ko(p.type,p.key,p.props,null,h.mode,y),Li(y,p),y.return=h,h=y)}return r(h);case Pi:e:{for(C=p.key;g!==null;){if(g.key===C)if(g.tag===4&&g.stateNode.containerInfo===p.containerInfo&&g.stateNode.implementation===p.implementation){n(h,g.sibling),y=l(g,p.children||[]),y.return=h,h=y;break e}else{n(h,g);break}else t(h,g);g=g.sibling}y=Wc(p,h.mode,y),y.return=h,h=y}return r(h);case Zn:return p=La(p),b(h,g,p,y)}if(qi(p))return v(h,g,p,y);if(Oi(p)){if(C=Oi(p),typeof C!="function")throw Error(S(150));return p=C.call(p),A(h,g,p,y)}if(typeof p.then=="function")return b(h,g,wo(p),y);if(p.$$typeof===Mn)return b(h,g,Ao(h,p),y);So(h,p)}return typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint"?(p=""+p,g!==null&&g.tag===6?(n(h,g.sibling),y=l(g,p),y.return=h,h=y):(n(h,g),y=Zc(p,h.mode,y),y.return=h,h=y),r(h)):n(h,g)}return function(h,g,p,y){try{sr=0;var C=b(h,g,p,y);return Ul=null,C}catch(T){if(T===ti||T===Eu)throw T;var R=Tt(29,T,null,h.mode);return R.lanes=y,R.return=h,R}finally{}}}var Ya=ap(!0),lp=ap(!1),Wn=!1;function Nd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Gs(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ua(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ca(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(J&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=Io(e),Zh(e,null,n),t}return Tu(e,a,t,n),Io(e)}function Zi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Sh(e,n)}}function Jc(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var r={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};i===null?l=i=r:i=i.next=r,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ps=!1;function Wi(){if(Ps){var e=zl;if(e!==null)throw e}}function Ii(e,t,n,a){Ps=!1;var l=e.updateQueue;Wn=!1;var i=l.firstBaseUpdate,r=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var u=o,c=u.next;u.next=null,r===null?i=c:r.next=c,r=u;var s=e.alternate;s!==null&&(s=s.updateQueue,o=s.lastBaseUpdate,o!==r&&(o===null?s.firstBaseUpdate=c:o.next=c,s.lastBaseUpdate=u))}if(i!==null){var f=l.baseState;r=0,s=c=u=null,o=i;do{var d=o.lane&-536870913,m=d!==o.lane;if(m?(Y&d)===d:(a&d)===d){d!==0&&d===Yl&&(Ps=!0),s!==null&&(s=s.next={lane:0,tag:o.tag,payload:o.payload,callback:null,next:null});e:{var v=e,A=o;d=t;var b=n;switch(A.tag){case 1:if(v=A.payload,typeof v=="function"){f=v.call(b,f,d);break e}f=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=A.payload,d=typeof v=="function"?v.call(b,f,d):v,d==null)break e;f=ve({},f,d);break e;case 2:Wn=!0}}d=o.callback,d!==null&&(e.flags|=64,m&&(e.flags|=8192),m=l.callbacks,m===null?l.callbacks=[d]:m.push(d))}else m={lane:d,tag:o.tag,payload:o.payload,callback:o.callback,next:null},s===null?(c=s=m,u=f):s=s.next=m,r|=d;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;m=o,o=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);s===null&&(u=f),l.baseState=u,l.firstBaseUpdate=c,l.lastBaseUpdate=s,i===null&&(l.shared.lanes=0),va|=r,e.lanes=r,e.memoizedState=f}}function ip(e,t){if(typeof e!="function")throw Error(S(191,e));e.call(t)}function rp(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)ip(n[e],t)}var Vl=mn(null),tu=mn(0);function hm(e,t){e=Gn,ge(tu,e),ge(Vl,t),Gn=e|t.baseLanes}function qs(){ge(tu,Gn),ge(Vl,Vl.current)}function Od(){Gn=tu.current,Fe(Vl),Fe(tu)}var Nt=mn(null),Xt=null;function Jn(e){var t=e.alternate;ge(xe,xe.current&1),ge(Nt,e),Xt===null&&(t===null||Vl.current!==null||t.memoizedState!==null)&&(Xt=e)}function Fs(e){ge(xe,xe.current),ge(Nt,e),Xt===null&&(Xt=e)}function op(e){e.tag===22?(ge(xe,xe.current),ge(Nt,e),Xt===null&&(Xt=e)):$n(e)}function $n(){ge(xe,xe.current),ge(Nt,Nt.current)}function Rt(e){Fe(Nt),Xt===e&&(Xt=null),Fe(xe)}var xe=mn(0);function nu(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||od(n)||ud(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Hn=0,G=null,re=null,Ne=null,au=!1,Gl=!1,Va=!1,lu=0,dr=0,Pl=null,UA=0;function Re(){throw Error(S(321))}function kd(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Bt(e[n],t[n]))return!1;return!0}function Ld(e,t,n,a,l,i){return Hn=i,G=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,L.H=e===null||e.memoizedState===null?Up:Xd,Va=!1,i=n(a,l),Va=!1,Gl&&(i=cp(t,n,a,l)),up(e),i}function up(e){L.H=fr;var t=re!==null&&re.next!==null;if(Hn=0,Ne=re=G=null,au=!1,dr=0,Pl=null,t)throw Error(S(300));e===null||Le||(e=e.dependencies,e!==null&&$o(e)&&(Le=!0))}function cp(e,t,n,a){G=e;var l=0;do{if(Gl&&(Pl=null),dr=0,Gl=!1,25<=l)throw Error(S(301));if(l+=1,Ne=re=null,e.updateQueue!=null){var i=e.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,i.memoCache!=null&&(i.memoCache.index=0)}L.H=Gp,i=t(n,a)}while(Gl);return i}function GA(){var e=L.H,t=e.useState()[0];return t=typeof t.then=="function"?Tr(t):t,e=e.useState()[0],(re!==null?re.memoizedState:null)!==e&&(G.flags|=1024),t}function Hd(){var e=lu!==0;return lu=0,e}function zd(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Ud(e){if(au){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}au=!1}Hn=0,Ne=re=G=null,Gl=!1,dr=lu=0,Pl=null}function ut(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ne===null?G.memoizedState=Ne=e:Ne=Ne.next=e,Ne}function Me(){if(re===null){var e=G.alternate;e=e!==null?e.memoizedState:null}else e=re.next;var t=Ne===null?G.memoizedState:Ne.next;if(t!==null)Ne=t,re=e;else{if(e===null)throw G.alternate===null?Error(S(467)):Error(S(310));re=e,e={memoizedState:re.memoizedState,baseState:re.baseState,baseQueue:re.baseQueue,queue:re.queue,next:null},Ne===null?G.memoizedState=Ne=e:Ne=Ne.next=e}return Ne}function Du(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Tr(e){var t=dr;return dr+=1,Pl===null&&(Pl=[]),e=np(Pl,e,t),t=G,(Ne===null?t.memoizedState:Ne.next)===null&&(t=t.alternate,L.H=t===null||t.memoizedState===null?Up:Xd),e}function xu(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Tr(e);if(e.$$typeof===Mn)return Qe(e)}throw Error(S(438,String(e)))}function Gd(e){var t=null,n=G.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=G.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=Du(),G.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),a=0;a<e;a++)n[a]=Rb;return t.index++,n}function zn(e,t){return typeof t=="function"?t(e):t}function Ho(e){var t=Me();return Pd(t,re,e)}function Pd(e,t,n){var a=e.queue;if(a===null)throw Error(S(311));a.lastRenderedReducer=n;var l=e.baseQueue,i=a.pending;if(i!==null){if(l!==null){var r=l.next;l.next=i.next,i.next=r}t.baseQueue=l=i,a.pending=null}if(i=e.baseState,l===null)e.memoizedState=i;else{t=l.next;var o=r=null,u=null,c=t,s=!1;do{var f=c.lane&-536870913;if(f!==c.lane?(Y&f)===f:(Hn&f)===f){var d=c.revertLane;if(d===0)u!==null&&(u=u.next={lane:0,revertLane:0,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),f===Yl&&(s=!0);else if((Hn&d)===d){c=c.next,d===Yl&&(s=!0);continue}else f={lane:0,revertLane:c.revertLane,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},u===null?(o=u=f,r=i):u=u.next=f,G.lanes|=d,va|=d;f=c.action,Va&&n(i,f),i=c.hasEagerState?c.eagerState:n(i,f)}else d={lane:f,revertLane:c.revertLane,gesture:c.gesture,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},u===null?(o=u=d,r=i):u=u.next=d,G.lanes|=f,va|=f;c=c.next}while(c!==null&&c!==t);if(u===null?r=i:u.next=o,!Bt(i,e.memoizedState)&&(Le=!0,s&&(n=zl,n!==null)))throw n;e.memoizedState=i,e.baseState=r,e.baseQueue=u,a.lastRenderedState=i}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function $c(e){var t=Me(),n=t.queue;if(n===null)throw Error(S(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var r=l=l.next;do i=e(i,r.action),r=r.next;while(r!==l);Bt(i,t.memoizedState)||(Le=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,a]}function sp(e,t,n){var a=G,l=Me(),i=V;if(i){if(n===void 0)throw Error(S(407));n=n()}else n=t();var r=!Bt((re||l).memoizedState,n);if(r&&(l.memoizedState=n,Le=!0),l=l.queue,qd(gp.bind(null,a,l,e),[e]),l.getSnapshot!==t||r||Ne!==null&&Ne.memoizedState.tag&1){if(a.flags|=2048,Xl(9,{destroy:void 0},fp.bind(null,a,l,n,t),null),ue===null)throw Error(S(349));i||(Hn&127)!==0||dp(a,t,n)}return n}function dp(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=G.updateQueue,t===null?(t=Du(),G.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function fp(e,t,n,a){t.value=n,t.getSnapshot=a,mp(t)&&hp(e)}function gp(e,t,n){return n(function(){mp(t)&&hp(e)})}function mp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Bt(e,n)}catch{return!0}}function hp(e){var t=Wa(e,2);t!==null&&yt(t,e,2)}function js(e){var t=ut();if(typeof e=="function"){var n=e;if(e=n(),Va){ta(!0);try{n()}finally{ta(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:e},t}function pp(e,t,n,a){return e.baseState=n,Pd(e,re,typeof a=="function"?a:zn)}function PA(e,t,n,a,l){if(_u(e))throw Error(S(485));if(e=t.action,e!==null){var i={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(r){i.listeners.push(r)}};L.T!==null?n(!0):i.isTransition=!1,a(i),n=t.pending,n===null?(i.next=t.pending=i,yp(t,i)):(i.next=n.next,t.pending=n.next=i)}}function yp(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var i=L.T,r={};L.T=r;try{var o=n(l,a),u=L.S;u!==null&&u(r,o),pm(e,t,o)}catch(c){Ys(e,t,c)}finally{i!==null&&r.types!==null&&(i.types=r.types),L.T=i}}else try{i=n(l,a),pm(e,t,i)}catch(c){Ys(e,t,c)}}function pm(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){ym(e,t,a)},function(a){return Ys(e,t,a)}):ym(e,t,n)}function ym(e,t,n){t.status="fulfilled",t.value=n,vp(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,yp(e,n)))}function Ys(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,vp(t),t=t.next;while(t!==a)}e.action=null}function vp(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function bp(e,t){return t}function vm(e,t){if(V){var n=ue.formState;if(n!==null){e:{var a=G;if(V){if(ye){t:{for(var l=ye,i=Vt;l.nodeType!==8;){if(!i){l=null;break t}if(l=Qt(l.nextSibling),l===null){l=null;break t}}i=l.data,l=i==="F!"||i==="F"?l:null}if(l){ye=Qt(l.nextSibling),a=l.data==="F!";break e}}pa(a)}a=!1}a&&(t=n[0])}}return n=ut(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:bp,lastRenderedState:t},n.queue=a,n=Lp.bind(null,G,a),a.dispatch=n,a=js(!1),i=Vd.bind(null,G,!1,a.queue),a=ut(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=PA.bind(null,G,l,i,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function bm(e){var t=Me();return Ap(t,re,e)}function Ap(e,t,n){if(t=Pd(e,t,bp)[0],e=Ho(zn)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Tr(t)}catch(r){throw r===ti?Eu:r}else a=t;t=Me();var l=t.queue,i=l.dispatch;return n!==t.memoizedState&&(G.flags|=2048,Xl(9,{destroy:void 0},qA.bind(null,l,n),null)),[a,i,e]}function qA(e,t){e.action=t}function Am(e){var t=Me(),n=re;if(n!==null)return Ap(t,n,e);Me(),t=t.memoizedState,n=Me();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Xl(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=G.updateQueue,t===null&&(t=Du(),G.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function wp(){return Me().memoizedState}function zo(e,t,n,a){var l=ut();G.flags|=e,l.memoizedState=Xl(1|t,{destroy:void 0},n,a===void 0?null:a)}function Mu(e,t,n,a){var l=Me();a=a===void 0?null:a;var i=l.memoizedState.inst;re!==null&&a!==null&&kd(a,re.memoizedState.deps)?l.memoizedState=Xl(t,i,n,a):(G.flags|=e,l.memoizedState=Xl(1|t,i,n,a))}function wm(e,t){zo(8390656,8,e,t)}function qd(e,t){Mu(2048,8,e,t)}function FA(e){G.flags|=4;var t=G.updateQueue;if(t===null)t=Du(),G.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Sp(e){var t=Me().memoizedState;return FA({ref:t,nextImpl:e}),function(){if((J&2)!==0)throw Error(S(440));return t.impl.apply(void 0,arguments)}}function Cp(e,t){return Mu(4,2,e,t)}function Rp(e,t){return Mu(4,4,e,t)}function Tp(e,t){if(typeof t=="function"){e=e();var n=t(e);return function(){typeof n=="function"?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Ep(e,t,n){n=n!=null?n.concat([e]):null,Mu(4,4,Tp.bind(null,t,e),n)}function Fd(){}function Dp(e,t){var n=Me();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&kd(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function xp(e,t){var n=Me();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&kd(t,a[1]))return a[0];if(a=e(),Va){ta(!0);try{e()}finally{ta(!1)}}return n.memoizedState=[a,t],a}function jd(e,t,n){return n===void 0||(Hn&1073741824)!==0&&(Y&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=py(),G.lanes|=e,va|=e,n)}function Mp(e,t,n,a){return Bt(n,t)?n:Vl.current!==null?(e=jd(e,n,a),Bt(e,t)||(Le=!0),e):(Hn&42)===0||(Hn&1073741824)!==0&&(Y&261930)===0?(Le=!0,e.memoizedState=n):(e=py(),G.lanes|=e,va|=e,t)}function _p(e,t,n,a,l){var i=$.p;$.p=i!==0&&8>i?i:8;var r=L.T,o={};L.T=o,Vd(e,!1,t,n);try{var u=l(),c=L.S;if(c!==null&&c(o,u),u!==null&&typeof u=="object"&&typeof u.then=="function"){var s=zA(u,a);Ji(e,t,s,_t(e))}else Ji(e,t,a,_t(e))}catch(f){Ji(e,t,{then:function(){},status:"rejected",reason:f},_t())}finally{$.p=i,r!==null&&o.types!==null&&(r.types=o.types),L.T=r}}function jA(){}function Vs(e,t,n,a){if(e.tag!==5)throw Error(S(476));var l=Bp(e).queue;_p(e,l,t,za,n===null?jA:function(){return Np(e),n(a)})}function Bp(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:za,baseState:za,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:za},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Np(e){var t=Bp(e);t.next===null&&(t=e.alternate.memoizedState),Ji(e,t.next.queue,{},_t())}function Yd(){return Qe(hr)}function Op(){return Me().memoizedState}function kp(){return Me().memoizedState}function YA(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=_t();e=ua(n);var a=ca(t,e,n);a!==null&&(yt(a,t,n),Zi(a,t,n)),t={cache:Md()},e.payload=t;return}t=t.return}}function VA(e,t,n){var a=_t();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},_u(e)?Hp(t,n):(n=Td(e,t,n,a),n!==null&&(yt(n,e,a),zp(n,t,a)))}function Lp(e,t,n){var a=_t();Ji(e,t,n,a)}function Ji(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(_u(e))Hp(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var r=t.lastRenderedState,o=i(r,n);if(l.hasEagerState=!0,l.eagerState=o,Bt(o,r))return Tu(e,t,l,0),ue===null&&Ru(),!1}catch{}finally{}if(n=Td(e,t,l,a),n!==null)return yt(n,e,a),zp(n,t,a),!0}return!1}function Vd(e,t,n,a){if(a={lane:2,revertLane:ef(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},_u(e)){if(t)throw Error(S(479))}else t=Td(e,n,a,2),t!==null&&yt(t,e,2)}function _u(e){var t=e.alternate;return e===G||t!==null&&t===G}function Hp(e,t){Gl=au=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function zp(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Sh(e,n)}}var fr={readContext:Qe,use:xu,useCallback:Re,useContext:Re,useEffect:Re,useImperativeHandle:Re,useLayoutEffect:Re,useInsertionEffect:Re,useMemo:Re,useReducer:Re,useRef:Re,useState:Re,useDebugValue:Re,useDeferredValue:Re,useTransition:Re,useSyncExternalStore:Re,useId:Re,useHostTransitionStatus:Re,useFormState:Re,useActionState:Re,useOptimistic:Re,useMemoCache:Re,useCacheRefresh:Re};fr.useEffectEvent=Re;var Up={readContext:Qe,use:xu,useCallback:function(e,t){return ut().memoizedState=[e,t===void 0?null:t],e},useContext:Qe,useEffect:wm,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,zo(4194308,4,Tp.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zo(4194308,4,e,t)},useInsertionEffect:function(e,t){zo(4,2,e,t)},useMemo:function(e,t){var n=ut();t=t===void 0?null:t;var a=e();if(Va){ta(!0);try{e()}finally{ta(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=ut();if(n!==void 0){var l=n(t);if(Va){ta(!0);try{n(t)}finally{ta(!1)}}}else l=t;return a.memoizedState=a.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},a.queue=e,e=e.dispatch=VA.bind(null,G,e),[a.memoizedState,e]},useRef:function(e){var t=ut();return e={current:e},t.memoizedState=e},useState:function(e){e=js(e);var t=e.queue,n=Lp.bind(null,G,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Fd,useDeferredValue:function(e,t){var n=ut();return jd(n,e,t)},useTransition:function(){var e=js(!1);return e=_p.bind(null,G,e.queue,!0,!1),ut().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=G,l=ut();if(V){if(n===void 0)throw Error(S(407));n=n()}else{if(n=t(),ue===null)throw Error(S(349));(Y&127)!==0||dp(a,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,wm(gp.bind(null,a,i,e),[e]),a.flags|=2048,Xl(9,{destroy:void 0},fp.bind(null,a,i,n,t),null),n},useId:function(){var e=ut(),t=ue.identifierPrefix;if(V){var n=dn,a=sn;n=(a&~(1<<32-Mt(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=lu++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=UA++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Yd,useFormState:vm,useActionState:vm,useOptimistic:function(e){var t=ut();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Vd.bind(null,G,!0,n),n.dispatch=t,[e,t]},useMemoCache:Gd,useCacheRefresh:function(){return ut().memoizedState=YA.bind(null,G)},useEffectEvent:function(e){var t=ut(),n={impl:e};return t.memoizedState=n,function(){if((J&2)!==0)throw Error(S(440));return n.impl.apply(void 0,arguments)}}},Xd={readContext:Qe,use:xu,useCallback:Dp,useContext:Qe,useEffect:qd,useImperativeHandle:Ep,useInsertionEffect:Cp,useLayoutEffect:Rp,useMemo:xp,useReducer:Ho,useRef:wp,useState:function(){return Ho(zn)},useDebugValue:Fd,useDeferredValue:function(e,t){var n=Me();return Mp(n,re.memoizedState,e,t)},useTransition:function(){var e=Ho(zn)[0],t=Me().memoizedState;return[typeof e=="boolean"?e:Tr(e),t]},useSyncExternalStore:sp,useId:Op,useHostTransitionStatus:Yd,useFormState:bm,useActionState:bm,useOptimistic:function(e,t){var n=Me();return pp(n,re,e,t)},useMemoCache:Gd,useCacheRefresh:kp};Xd.useEffectEvent=Sp;var Gp={readContext:Qe,use:xu,useCallback:Dp,useContext:Qe,useEffect:qd,useImperativeHandle:Ep,useInsertionEffect:Cp,useLayoutEffect:Rp,useMemo:xp,useReducer:$c,useRef:wp,useState:function(){return $c(zn)},useDebugValue:Fd,useDeferredValue:function(e,t){var n=Me();return re===null?jd(n,e,t):Mp(n,re.memoizedState,e,t)},useTransition:function(){var e=$c(zn)[0],t=Me().memoizedState;return[typeof e=="boolean"?e:Tr(e),t]},useSyncExternalStore:sp,useId:Op,useHostTransitionStatus:Yd,useFormState:Am,useActionState:Am,useOptimistic:function(e,t){var n=Me();return re!==null?pp(n,re,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Gd,useCacheRefresh:kp};Gp.useEffectEvent=Sp;function es(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:ve({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Xs={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=_t(),l=ua(a);l.payload=t,n!=null&&(l.callback=n),t=ca(e,l,a),t!==null&&(yt(t,e,a),Zi(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=_t(),l=ua(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=ca(e,l,a),t!==null&&(yt(t,e,a),Zi(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=_t(),a=ua(n);a.tag=2,t!=null&&(a.callback=t),t=ca(e,a,n),t!==null&&(yt(t,e,n),Zi(t,e,n))}};function Sm(e,t,n,a,l,i,r){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,i,r):t.prototype&&t.prototype.isPureReactComponent?!or(n,a)||!or(l,i):!0}function Cm(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&Xs.enqueueReplaceState(t,t.state,null)}function Xa(e,t){var n=t;if("ref"in t){n={};for(var a in t)a!=="ref"&&(n[a]=t[a])}if(e=e.defaultProps){n===t&&(n=ve({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function Pp(e){Wo(e)}function qp(e){console.error(e)}function Fp(e){Wo(e)}function iu(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Rm(e,t,n){try{var a=e.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(l){setTimeout(function(){throw l})}}function Qs(e,t,n){return n=ua(n),n.tag=3,n.payload={element:null},n.callback=function(){iu(e,t)},n}function jp(e){return e=ua(e),e.tag=3,e}function Yp(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var i=a.value;e.payload=function(){return l(i)},e.callback=function(){Rm(t,n,a)}}var r=n.stateNode;r!==null&&typeof r.componentDidCatch=="function"&&(e.callback=function(){Rm(t,n,a),typeof l!="function"&&(sa===null?sa=new Set([this]):sa.add(this));var o=a.stack;this.componentDidCatch(a.value,{componentStack:o!==null?o:""})})}function XA(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&ei(t,n,l,!0),n=Nt.current,n!==null){switch(n.tag){case 31:case 13:return Xt===null?su():n.alternate===null&&Te===0&&(Te=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===eu?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),ds(e,a,l)),!1;case 22:return n.flags|=65536,a===eu?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([a]):n.add(a)),ds(e,a,l)),!1}throw Error(S(435,n.tag))}return ds(e,a,l),su(),!1}if(V)return t=Nt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==ks&&(e=Error(S(422),{cause:a}),cr(Yt(e,n)))):(a!==ks&&(t=Error(S(423),{cause:a}),cr(Yt(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=Yt(a,n),l=Qs(e.stateNode,a,l),Jc(e,l),Te!==4&&(Te=2)),!1;var i=Error(S(520),{cause:a});if(i=Yt(i,n),tr===null?tr=[i]:tr.push(i),Te!==4&&(Te=2),t===null)return!0;a=Yt(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Qs(n.stateNode,a,e),Jc(n,e),!1;case 1:if(t=n.type,i=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(sa===null||!sa.has(i))))return n.flags|=65536,l&=-l,n.lanes|=l,l=jp(l),Yp(l,e,n,a),Jc(n,l),!1}n=n.return}while(n!==null);return!1}var Qd=Error(S(461)),Le=!1;function Ye(e,t,n,a){t.child=e===null?lp(t,null,n,a):Ya(t,e.child,n,a)}function Tm(e,t,n,a,l){n=n.render;var i=t.ref;if("ref"in a){var r={};for(var o in a)o!=="ref"&&(r[o]=a[o])}else r=a;return ja(t),a=Ld(e,t,n,r,i,l),o=Hd(),e!==null&&!Le?(zd(e,t,l),Un(e,t,l)):(V&&o&&Dd(t),t.flags|=1,Ye(e,t,a,l),t.child)}function Em(e,t,n,a,l){if(e===null){var i=n.type;return typeof i=="function"&&!Ed(i)&&i.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=i,Vp(e,t,i,a,l)):(e=ko(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!Kd(e,l)){var r=i.memoizedProps;if(n=n.compare,n=n!==null?n:or,n(r,a)&&e.ref===t.ref)return Un(e,t,l)}return t.flags|=1,e=Nn(i,a),e.ref=t.ref,e.return=t,t.child=e}function Vp(e,t,n,a,l){if(e!==null){var i=e.memoizedProps;if(or(i,a)&&e.ref===t.ref)if(Le=!1,t.pendingProps=a=i,Kd(e,l))(e.flags&131072)!==0&&(Le=!0);else return t.lanes=e.lanes,Un(e,t,l)}return Ks(e,t,n,a,l)}function Xp(e,t,n,a){var l=a.children,i=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(i=i!==null?i.baseLanes|n:n,e!==null){for(a=t.child=e.child,l=0;a!==null;)l=l|a.lanes|a.childLanes,a=a.sibling;a=l&~i}else a=0,t.child=null;return Dm(e,t,i,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Lo(t,i!==null?i.cachePool:null),i!==null?hm(t,i):qs(),op(t);else return a=t.lanes=536870912,Dm(e,t,i!==null?i.baseLanes|n:n,n,a)}else i!==null?(Lo(t,i.cachePool),hm(t,i),$n(t),t.memoizedState=null):(e!==null&&Lo(t,null),qs(),$n(t));return Ye(e,t,l,n),t.child}function ji(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Dm(e,t,n,a,l){var i=_d();return i=i===null?null:{parent:ke._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},e!==null&&Lo(t,null),qs(),op(t),e!==null&&ei(e,t,a,!0),t.childLanes=l,null}function Uo(e,t){return t=ru({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function xm(e,t,n){return Ya(t,e.child,null,n),e=Uo(t,t.pendingProps),e.flags|=2,Rt(t),t.memoizedState=null,e}function QA(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(V){if(a.mode==="hidden")return e=Uo(t,a),t.lanes=536870912,ji(null,e);if(Fs(t),(e=ye)?(e=Uy(e,Vt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ha!==null?{id:sn,overflow:dn}:null,retryLane:536870912,hydrationErrors:null},n=Ih(e),n.return=t,t.child=n,Xe=t,ye=null)):e=null,e===null)throw pa(t);return t.lanes=536870912,null}return Uo(t,a)}var i=e.memoizedState;if(i!==null){var r=i.dehydrated;if(Fs(t),l)if(t.flags&256)t.flags&=-257,t=xm(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(S(558));else if(Le||ei(e,t,n,!1),l=(n&e.childLanes)!==0,Le||l){if(a=ue,a!==null&&(r=Ch(a,n),r!==0&&r!==i.retryLane))throw i.retryLane=r,Wa(e,r),yt(a,e,r),Qd;su(),t=xm(e,t,n)}else e=i.treeContext,ye=Qt(r.nextSibling),Xe=t,V=!0,oa=null,Vt=!1,e!==null&&$h(t,e),t=Uo(t,a),t.flags|=4096;return t}return e=Nn(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Go(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(S(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Ks(e,t,n,a,l){return ja(t),n=Ld(e,t,n,a,void 0,l),a=Hd(),e!==null&&!Le?(zd(e,t,l),Un(e,t,l)):(V&&a&&Dd(t),t.flags|=1,Ye(e,t,n,l),t.child)}function Mm(e,t,n,a,l,i){return ja(t),t.updateQueue=null,n=cp(t,a,n,l),up(e),a=Hd(),e!==null&&!Le?(zd(e,t,i),Un(e,t,i)):(V&&a&&Dd(t),t.flags|=1,Ye(e,t,n,i),t.child)}function _m(e,t,n,a,l){if(ja(t),t.stateNode===null){var i=_l,r=n.contextType;typeof r=="object"&&r!==null&&(i=Qe(r)),i=new n(a,i),t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=Xs,t.stateNode=i,i._reactInternals=t,i=t.stateNode,i.props=a,i.state=t.memoizedState,i.refs={},Nd(t),r=n.contextType,i.context=typeof r=="object"&&r!==null?Qe(r):_l,i.state=t.memoizedState,r=n.getDerivedStateFromProps,typeof r=="function"&&(es(t,n,r,a),i.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(r=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),r!==i.state&&Xs.enqueueReplaceState(i,i.state,null),Ii(t,a,i,l),Wi(),i.state=t.memoizedState),typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){i=t.stateNode;var o=t.memoizedProps,u=Xa(n,o);i.props=u;var c=i.context,s=n.contextType;r=_l,typeof s=="object"&&s!==null&&(r=Qe(s));var f=n.getDerivedStateFromProps;s=typeof f=="function"||typeof i.getSnapshotBeforeUpdate=="function",o=t.pendingProps!==o,s||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(o||c!==r)&&Cm(t,i,a,r),Wn=!1;var d=t.memoizedState;i.state=d,Ii(t,a,i,l),Wi(),c=t.memoizedState,o||d!==c||Wn?(typeof f=="function"&&(es(t,n,f,a),c=t.memoizedState),(u=Wn||Sm(t,n,u,a,d,c,r))?(s||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=c),i.props=a,i.state=c,i.context=r,a=u):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,Gs(e,t),r=t.memoizedProps,s=Xa(n,r),i.props=s,f=t.pendingProps,d=i.context,c=n.contextType,u=_l,typeof c=="object"&&c!==null&&(u=Qe(c)),o=n.getDerivedStateFromProps,(c=typeof o=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(r!==f||d!==u)&&Cm(t,i,a,u),Wn=!1,d=t.memoizedState,i.state=d,Ii(t,a,i,l),Wi();var m=t.memoizedState;r!==f||d!==m||Wn||e!==null&&e.dependencies!==null&&$o(e.dependencies)?(typeof o=="function"&&(es(t,n,o,a),m=t.memoizedState),(s=Wn||Sm(t,n,s,a,d,m,u)||e!==null&&e.dependencies!==null&&$o(e.dependencies))?(c||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,m,u),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,m,u)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=m),i.props=a,i.state=m,i.context=u,a=s):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),a=!1)}return i=a,Go(e,t),a=(t.flags&128)!==0,i||a?(i=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:i.render(),t.flags|=1,e!==null&&a?(t.child=Ya(t,e.child,null,l),t.child=Ya(t,null,n,l)):Ye(e,t,n,l),t.memoizedState=i.state,e=t.child):e=Un(e,t,l),e}function Bm(e,t,n,a){return Fa(),t.flags|=256,Ye(e,t,n,a),t.child}var ts={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ns(e){return{baseLanes:e,cachePool:tp()}}function as(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=Et),e}function Qp(e,t,n){var a=t.pendingProps,l=!1,i=(t.flags&128)!==0,r;if((r=i)||(r=e!==null&&e.memoizedState===null?!1:(xe.current&2)!==0),r&&(l=!0,t.flags&=-129),r=(t.flags&32)!==0,t.flags&=-33,e===null){if(V){if(l?Jn(t):$n(t),(e=ye)?(e=Uy(e,Vt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ha!==null?{id:sn,overflow:dn}:null,retryLane:536870912,hydrationErrors:null},n=Ih(e),n.return=t,t.child=n,Xe=t,ye=null)):e=null,e===null)throw pa(t);return ud(e)?t.lanes=32:t.lanes=536870912,null}var o=a.children;return a=a.fallback,l?($n(t),l=t.mode,o=ru({mode:"hidden",children:o},l),a=Ua(a,l,n,null),o.return=t,a.return=t,o.sibling=a,t.child=o,a=t.child,a.memoizedState=ns(n),a.childLanes=as(e,r,n),t.memoizedState=ts,ji(null,a)):(Jn(t),Zs(t,o))}var u=e.memoizedState;if(u!==null&&(o=u.dehydrated,o!==null)){if(i)t.flags&256?(Jn(t),t.flags&=-257,t=ls(e,t,n)):t.memoizedState!==null?($n(t),t.child=e.child,t.flags|=128,t=null):($n(t),o=a.fallback,l=t.mode,a=ru({mode:"visible",children:a.children},l),o=Ua(o,l,n,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,Ya(t,e.child,null,n),a=t.child,a.memoizedState=ns(n),a.childLanes=as(e,r,n),t.memoizedState=ts,t=ji(null,a));else if(Jn(t),ud(o)){if(r=o.nextSibling&&o.nextSibling.dataset,r)var c=r.dgst;r=c,a=Error(S(419)),a.stack="",a.digest=r,cr({value:a,source:null,stack:null}),t=ls(e,t,n)}else if(Le||ei(e,t,n,!1),r=(n&e.childLanes)!==0,Le||r){if(r=ue,r!==null&&(a=Ch(r,n),a!==0&&a!==u.retryLane))throw u.retryLane=a,Wa(e,a),yt(r,e,a),Qd;od(o)||su(),t=ls(e,t,n)}else od(o)?(t.flags|=192,t.child=e.child,t=null):(e=u.treeContext,ye=Qt(o.nextSibling),Xe=t,V=!0,oa=null,Vt=!1,e!==null&&$h(t,e),t=Zs(t,a.children),t.flags|=4096);return t}return l?($n(t),o=a.fallback,l=t.mode,u=e.child,c=u.sibling,a=Nn(u,{mode:"hidden",children:a.children}),a.subtreeFlags=u.subtreeFlags&65011712,c!==null?o=Nn(c,o):(o=Ua(o,l,n,null),o.flags|=2),o.return=t,a.return=t,a.sibling=o,t.child=a,ji(null,a),a=t.child,o=e.child.memoizedState,o===null?o=ns(n):(l=o.cachePool,l!==null?(u=ke._currentValue,l=l.parent!==u?{parent:u,pool:u}:l):l=tp(),o={baseLanes:o.baseLanes|n,cachePool:l}),a.memoizedState=o,a.childLanes=as(e,r,n),t.memoizedState=ts,ji(e.child,a)):(Jn(t),n=e.child,e=n.sibling,n=Nn(n,{mode:"visible",children:a.children}),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function Zs(e,t){return t=ru({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function ru(e,t){return e=Tt(22,e,null,t),e.lanes=0,e}function ls(e,t,n){return Ya(t,e.child,null,n),e=Zs(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Nm(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Hs(e.return,t,n)}function is(e,t,n,a,l,i){var r=e.memoizedState;r===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:i}:(r.isBackwards=t,r.rendering=null,r.renderingStartTime=0,r.last=a,r.tail=n,r.tailMode=l,r.treeForkCount=i)}function Kp(e,t,n){var a=t.pendingProps,l=a.revealOrder,i=a.tail;a=a.children;var r=xe.current,o=(r&2)!==0;if(o?(r=r&1|2,t.flags|=128):r&=1,ge(xe,r),Ye(e,t,a,n),a=V?ur:0,!o&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Nm(e,n,t);else if(e.tag===19)Nm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&nu(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),is(t,!1,l,n,i,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&nu(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}is(t,!0,n,null,i,a);break;case"together":is(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function Un(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),va|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(ei(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(S(153));if(t.child!==null){for(e=t.child,n=Nn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Nn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Kd(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&$o(e)))}function KA(e,t,n){switch(t.tag){case 3:Xo(t,t.stateNode.containerInfo),In(t,ke,e.memoizedState.cache),Fa();break;case 27:case 5:Cs(t);break;case 4:Xo(t,t.stateNode.containerInfo);break;case 10:In(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Fs(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(Jn(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Qp(e,t,n):(Jn(t),e=Un(e,t,n),e!==null?e.sibling:null);Jn(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(ei(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return Kp(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),ge(xe,xe.current),a)break;return null;case 22:return t.lanes=0,Xp(e,t,n,t.pendingProps);case 24:In(t,ke,e.memoizedState.cache)}return Un(e,t,n)}function Zp(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Le=!0;else{if(!Kd(e,n)&&(t.flags&128)===0)return Le=!1,KA(e,t,n);Le=(e.flags&131072)!==0}else Le=!1,V&&(t.flags&1048576)!==0&&Jh(t,ur,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=La(t.elementType),t.type=e,typeof e=="function")Ed(e)?(a=Xa(e,a),t.tag=1,t=_m(null,t,e,a,n)):(t.tag=0,t=Ks(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===fd){t.tag=11,t=Tm(null,t,e,a,n);break e}else if(l===gd){t.tag=14,t=Em(null,t,e,a,n);break e}}throw t=ws(e)||e,Error(S(306,t,""))}}return t;case 0:return Ks(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=Xa(a,t.pendingProps),_m(e,t,a,l,n);case 3:e:{if(Xo(t,t.stateNode.containerInfo),e===null)throw Error(S(387));a=t.pendingProps;var i=t.memoizedState;l=i.element,Gs(e,t),Ii(t,a,null,n);var r=t.memoizedState;if(a=r.cache,In(t,ke,a),a!==i.cache&&zs(t,[ke],n,!0),Wi(),a=r.element,i.isDehydrated)if(i={element:a,isDehydrated:!1,cache:r.cache},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){t=Bm(e,t,a,n);break e}else if(a!==l){l=Yt(Error(S(424)),t),cr(l),t=Bm(e,t,a,n);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(ye=Qt(e.firstChild),Xe=t,V=!0,oa=null,Vt=!0,n=lp(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Fa(),a===l){t=Un(e,t,n);break e}Ye(e,t,a,n)}t=t.child}return t;case 26:return Go(e,t),e===null?(n=eh(t.type,null,t.pendingProps,null))?t.memoizedState=n:V||(n=t.type,e=t.pendingProps,a=mu(ra.current).createElement(n),a[Ve]=t,a[vt]=e,Ke(a,n,e),qe(a),t.stateNode=a):t.memoizedState=eh(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Cs(t),e===null&&V&&(a=t.stateNode=Gy(t.type,t.pendingProps,ra.current),Xe=t,Vt=!0,l=ye,Aa(t.type)?(cd=l,ye=Qt(a.firstChild)):ye=l),Ye(e,t,t.pendingProps.children,n),Go(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&V&&((l=a=ye)&&(a=Sw(a,t.type,t.pendingProps,Vt),a!==null?(t.stateNode=a,Xe=t,ye=Qt(a.firstChild),Vt=!1,l=!0):l=!1),l||pa(t)),Cs(t),l=t.type,i=t.pendingProps,r=e!==null?e.memoizedProps:null,a=i.children,id(l,i)?a=null:r!==null&&id(l,r)&&(t.flags|=32),t.memoizedState!==null&&(l=Ld(e,t,GA,null,null,n),hr._currentValue=l),Go(e,t),Ye(e,t,a,n),t.child;case 6:return e===null&&V&&((e=n=ye)&&(n=Cw(n,t.pendingProps,Vt),n!==null?(t.stateNode=n,Xe=t,ye=null,e=!0):e=!1),e||pa(t)),null;case 13:return Qp(e,t,n);case 4:return Xo(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=Ya(t,null,a,n):Ye(e,t,a,n),t.child;case 11:return Tm(e,t,t.type,t.pendingProps,n);case 7:return Ye(e,t,t.pendingProps,n),t.child;case 8:return Ye(e,t,t.pendingProps.children,n),t.child;case 12:return Ye(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,In(t,t.type,a.value),Ye(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,ja(t),l=Qe(l),a=a(l),t.flags|=1,Ye(e,t,a,n),t.child;case 14:return Em(e,t,t.type,t.pendingProps,n);case 15:return Vp(e,t,t.type,t.pendingProps,n);case 19:return Kp(e,t,n);case 31:return QA(e,t,n);case 22:return Xp(e,t,n,t.pendingProps);case 24:return ja(t),a=Qe(ke),e===null?(l=_d(),l===null&&(l=ue,i=Md(),l.pooledCache=i,i.refCount++,i!==null&&(l.pooledCacheLanes|=n),l=i),t.memoizedState={parent:a,cache:l},Nd(t),In(t,ke,l)):((e.lanes&n)!==0&&(Gs(e,t),Ii(t,null,null,n),Wi()),l=e.memoizedState,i=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),In(t,ke,a)):(a=i.cache,In(t,ke,a),a!==l.cache&&zs(t,[ke],n,!0))),Ye(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(S(156,t.tag))}function Cn(e){e.flags|=4}function rs(e,t,n,a,l){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(l&335544128)===l)if(e.stateNode.complete)e.flags|=8192;else if(by())e.flags|=8192;else throw Pa=eu,Bd}else e.flags&=-16777217}function Om(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Fy(t))if(by())e.flags|=8192;else throw Pa=eu,Bd}function Co(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Ah():536870912,e.lanes|=t,Ql|=t)}function Hi(e,t){if(!V)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function pe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags&65011712,a|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags,a|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function ZA(e,t,n){var a=t.pendingProps;switch(xd(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return pe(t),null;case 1:return pe(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),On(ke),ql(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(vl(t)?Cn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Ic())),pe(t),null;case 26:var l=t.type,i=t.memoizedState;return e===null?(Cn(t),i!==null?(pe(t),Om(t,i)):(pe(t),rs(t,l,null,a,n))):i?i!==e.memoizedState?(Cn(t),pe(t),Om(t,i)):(pe(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&Cn(t),pe(t),rs(t,l,e,a,n)),null;case 27:if(Qo(t),n=ra.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return pe(t),null}e=gn.current,vl(t)?um(t,e):(e=Gy(l,a,n),t.stateNode=e,Cn(t))}return pe(t),null;case 5:if(Qo(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return pe(t),null}if(i=gn.current,vl(t))um(t,i);else{var r=mu(ra.current);switch(i){case 1:i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":i=r.createElement("div"),i.innerHTML="<script><\/scr"+"ipt>",i=i.removeChild(i.firstChild);break;case"select":i=typeof a.is=="string"?r.createElement("select",{is:a.is}):r.createElement("select"),a.multiple?i.multiple=!0:a.size&&(i.size=a.size);break;default:i=typeof a.is=="string"?r.createElement(l,{is:a.is}):r.createElement(l)}}i[Ve]=t,i[vt]=a;e:for(r=t.child;r!==null;){if(r.tag===5||r.tag===6)i.appendChild(r.stateNode);else if(r.tag!==4&&r.tag!==27&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break e;for(;r.sibling===null;){if(r.return===null||r.return===t)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}t.stateNode=i;e:switch(Ke(i,l,a),l){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&Cn(t)}}return pe(t),rs(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(S(166));if(e=ra.current,vl(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=Xe,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[Ve]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Ly(e.nodeValue,n)),e||pa(t,!0)}else e=mu(e).createTextNode(a),e[Ve]=t,t.stateNode=e}return pe(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=vl(t),n!==null){if(e===null){if(!a)throw Error(S(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(557));e[Ve]=t}else Fa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;pe(t),e=!1}else n=Ic(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Rt(t),t):(Rt(t),null);if((t.flags&128)!==0)throw Error(S(558))}return pe(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=vl(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(S(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(S(317));l[Ve]=t}else Fa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;pe(t),l=!1}else l=Ic(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(Rt(t),t):(Rt(t),null)}return Rt(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),i=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(i=a.memoizedState.cachePool.pool),i!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Co(t,t.updateQueue),pe(t),null);case 4:return ql(),e===null&&tf(t.stateNode.containerInfo),pe(t),null;case 10:return On(t.type),pe(t),null;case 19:if(Fe(xe),a=t.memoizedState,a===null)return pe(t),null;if(l=(t.flags&128)!==0,i=a.rendering,i===null)if(l)Hi(a,!1);else{if(Te!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=nu(e),i!==null){for(t.flags|=128,Hi(a,!1),e=i.updateQueue,t.updateQueue=e,Co(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Wh(n,e),n=n.sibling;return ge(xe,xe.current&1|2),V&&Dn(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&Dt()>uu&&(t.flags|=128,l=!0,Hi(a,!1),t.lanes=4194304)}else{if(!l)if(e=nu(i),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,Co(t,e),Hi(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!V)return pe(t),null}else 2*Dt()-a.renderingStartTime>uu&&n!==536870912&&(t.flags|=128,l=!0,Hi(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(e=a.last,e!==null?e.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=Dt(),e.sibling=null,n=xe.current,ge(xe,l?n&1|2:n&1),V&&Dn(t,a.treeForkCount),e):(pe(t),null);case 22:case 23:return Rt(t),Od(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&(pe(t),t.subtreeFlags&6&&(t.flags|=8192)):pe(t),n=t.updateQueue,n!==null&&Co(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&Fe(Ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),On(ke),pe(t),null;case 25:return null;case 30:return null}throw Error(S(156,t.tag))}function WA(e,t){switch(xd(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return On(ke),ql(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Qo(t),null;case 31:if(t.memoizedState!==null){if(Rt(t),t.alternate===null)throw Error(S(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Rt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(S(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Fe(xe),null;case 4:return ql(),null;case 10:return On(t.type),null;case 22:case 23:return Rt(t),Od(),e!==null&&Fe(Ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return On(ke),null;case 25:return null;default:return null}}function Wp(e,t){switch(xd(t),t.tag){case 3:On(ke),ql();break;case 26:case 27:case 5:Qo(t);break;case 4:ql();break;case 31:t.memoizedState!==null&&Rt(t);break;case 13:Rt(t);break;case 19:Fe(xe);break;case 10:On(t.type);break;case 22:case 23:Rt(t),Od(),e!==null&&Fe(Ga);break;case 24:On(ke)}}function Er(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var l=a.next;n=l;do{if((n.tag&e)===e){a=void 0;var i=n.create,r=n.inst;a=i(),r.destroy=a}n=n.next}while(n!==l)}}catch(o){le(t,t.return,o)}}function ya(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){var r=a.inst,o=r.destroy;if(o!==void 0){r.destroy=void 0,l=t;var u=n,c=o;try{c()}catch(s){le(l,u,s)}}}a=a.next}while(a!==i)}}catch(s){le(t,t.return,s)}}function Ip(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{rp(t,n)}catch(a){le(e,e.return,a)}}}function Jp(e,t,n){n.props=Xa(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){le(e,t,a)}}function $i(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof n=="function"?e.refCleanup=n(a):n.current=a}}catch(l){le(e,t,l)}}function fn(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){le(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(l){le(e,t,l)}else n.current=null}function $p(e){var t=e.type,n=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break e;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(l){le(e,e.return,l)}}function os(e,t,n){try{var a=e.stateNode;pw(a,e.type,n,t),a[vt]=t}catch(l){le(e,e.return,l)}}function ey(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Aa(e.type)||e.tag===4}function us(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ey(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Aa(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ws(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=_n));else if(a!==4&&(a===27&&Aa(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Ws(e,t,n),e=e.sibling;e!==null;)Ws(e,t,n),e=e.sibling}function ou(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&Aa(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(ou(e,t,n),e=e.sibling;e!==null;)ou(e,t,n),e=e.sibling}function ty(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);Ke(t,a,n),t[Ve]=e,t[vt]=n}catch(i){le(e,e.return,i)}}var xn=!1,Oe=!1,cs=!1,km=typeof WeakSet=="function"?WeakSet:Set,Pe=null;function IA(e,t){if(e=e.containerInfo,ad=vu,e=Fh(e),Cd(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var l=a.anchorOffset,i=a.focusNode;a=a.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var r=0,o=-1,u=-1,c=0,s=0,f=e,d=null;t:for(;;){for(var m;f!==n||l!==0&&f.nodeType!==3||(o=r+l),f!==i||a!==0&&f.nodeType!==3||(u=r+a),f.nodeType===3&&(r+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===e)break t;if(d===n&&++c===l&&(o=r),d===i&&++s===a&&(u=r),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}n=o===-1||u===-1?null:{start:o,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ld={focusedElem:e,selectionRange:n},vu=!1,Pe=t;Pe!==null;)if(t=Pe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Pe=e;else for(;Pe!==null;){switch(t=Pe,i=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&i!==null){e=void 0,n=t,l=i.memoizedProps,i=i.memoizedState,a=n.stateNode;try{var v=Xa(n.type,l);e=a.getSnapshotBeforeUpdate(v,i),a.__reactInternalSnapshotBeforeUpdate=e}catch(A){le(n,n.return,A)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)rd(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":rd(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(S(163))}if(e=t.sibling,e!==null){e.return=t.return,Pe=e;break}Pe=t.return}}function ny(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:Tn(e,n),a&4&&Er(5,n);break;case 1:if(Tn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(r){le(n,n.return,r)}else{var l=Xa(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(r){le(n,n.return,r)}}a&64&&Ip(n),a&512&&$i(n,n.return);break;case 3:if(Tn(e,n),a&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{rp(e,t)}catch(r){le(n,n.return,r)}}break;case 27:t===null&&a&4&&ty(n);case 26:case 5:Tn(e,n),t===null&&a&4&&$p(n),a&512&&$i(n,n.return);break;case 12:Tn(e,n);break;case 31:Tn(e,n),a&4&&iy(e,n);break;case 13:Tn(e,n),a&4&&ry(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=rw.bind(null,n),Rw(e,n))));break;case 22:if(a=n.memoizedState!==null||xn,!a){t=t!==null&&t.memoizedState!==null||Oe,l=xn;var i=Oe;xn=a,(Oe=t)&&!i?En(e,n,(n.subtreeFlags&8772)!==0):Tn(e,n),xn=l,Oe=i}break;case 30:break;default:Tn(e,n)}}function ay(e){var t=e.alternate;t!==null&&(e.alternate=null,ay(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&yd(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Ce=null,ht=!1;function Rn(e,t,n){for(n=n.child;n!==null;)ly(e,t,n),n=n.sibling}function ly(e,t,n){if(xt&&typeof xt.onCommitFiberUnmount=="function")try{xt.onCommitFiberUnmount(br,n)}catch{}switch(n.tag){case 26:Oe||fn(n,t),Rn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Oe||fn(n,t);var a=Ce,l=ht;Aa(n.type)&&(Ce=n.stateNode,ht=!1),Rn(e,t,n),ar(n.stateNode),Ce=a,ht=l;break;case 5:Oe||fn(n,t);case 6:if(a=Ce,l=ht,Ce=null,Rn(e,t,n),Ce=a,ht=l,Ce!==null)if(ht)try{(Ce.nodeType===9?Ce.body:Ce.nodeName==="HTML"?Ce.ownerDocument.body:Ce).removeChild(n.stateNode)}catch(i){le(n,t,i)}else try{Ce.removeChild(n.stateNode)}catch(i){le(n,t,i)}break;case 18:Ce!==null&&(ht?(e=Ce,Zm(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),Il(e)):Zm(Ce,n.stateNode));break;case 4:a=Ce,l=ht,Ce=n.stateNode.containerInfo,ht=!0,Rn(e,t,n),Ce=a,ht=l;break;case 0:case 11:case 14:case 15:ya(2,n,t),Oe||ya(4,n,t),Rn(e,t,n);break;case 1:Oe||(fn(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Jp(n,t,a)),Rn(e,t,n);break;case 21:Rn(e,t,n);break;case 22:Oe=(a=Oe)||n.memoizedState!==null,Rn(e,t,n),Oe=a;break;default:Rn(e,t,n)}}function iy(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Il(e)}catch(n){le(t,t.return,n)}}}function ry(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Il(e)}catch(n){le(t,t.return,n)}}function JA(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new km),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new km),t;default:throw Error(S(435,e.tag))}}function Ro(e,t){var n=JA(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=ow.bind(null,e,a);a.then(l,l)}})}function gt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],i=e,r=t,o=r;e:for(;o!==null;){switch(o.tag){case 27:if(Aa(o.type)){Ce=o.stateNode,ht=!1;break e}break;case 5:Ce=o.stateNode,ht=!1;break e;case 3:case 4:Ce=o.stateNode.containerInfo,ht=!0;break e}o=o.return}if(Ce===null)throw Error(S(160));ly(i,r,l),Ce=null,ht=!1,i=l.alternate,i!==null&&(i.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)oy(t,e),t=t.sibling}var en=null;function oy(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:gt(t,e),mt(e),a&4&&(ya(3,e,e.return),Er(3,e),ya(5,e,e.return));break;case 1:gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),a&64&&xn&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var l=en;if(gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),a&4){var i=n!==null?n.memoizedState:null;if(a=e.memoizedState,n===null)if(a===null)if(e.stateNode===null){e:{a=e.type,n=e.memoizedProps,l=l.ownerDocument||l;t:switch(a){case"title":i=l.getElementsByTagName("title")[0],(!i||i[Sr]||i[Ve]||i.namespaceURI==="http://www.w3.org/2000/svg"||i.hasAttribute("itemprop"))&&(i=l.createElement(a),l.head.insertBefore(i,l.querySelector("head > title"))),Ke(i,a,n),i[Ve]=e,qe(i),a=i;break e;case"link":var r=nh("link","href",l).get(a+(n.href||""));if(r){for(var o=0;o<r.length;o++)if(i=r[o],i.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&i.getAttribute("rel")===(n.rel==null?null:n.rel)&&i.getAttribute("title")===(n.title==null?null:n.title)&&i.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){r.splice(o,1);break t}}i=l.createElement(a),Ke(i,a,n),l.head.appendChild(i);break;case"meta":if(r=nh("meta","content",l).get(a+(n.content||""))){for(o=0;o<r.length;o++)if(i=r[o],i.getAttribute("content")===(n.content==null?null:""+n.content)&&i.getAttribute("name")===(n.name==null?null:n.name)&&i.getAttribute("property")===(n.property==null?null:n.property)&&i.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&i.getAttribute("charset")===(n.charSet==null?null:n.charSet)){r.splice(o,1);break t}}i=l.createElement(a),Ke(i,a,n),l.head.appendChild(i);break;default:throw Error(S(468,a))}i[Ve]=e,qe(i),a=i}e.stateNode=a}else ah(l,e.type,e.stateNode);else e.stateNode=th(l,a,e.memoizedProps);else i!==a?(i===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):i.count--,a===null?ah(l,e.type,e.stateNode):th(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&os(e,e.memoizedProps,n.memoizedProps)}break;case 27:gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),n!==null&&a&4&&os(e,e.memoizedProps,n.memoizedProps);break;case 5:if(gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),e.flags&32){l=e.stateNode;try{jl(l,"")}catch(v){le(e,e.return,v)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,os(e,l,n!==null?n.memoizedProps:l)),a&1024&&(cs=!0);break;case 6:if(gt(t,e),mt(e),a&4){if(e.stateNode===null)throw Error(S(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(v){le(e,e.return,v)}}break;case 3:if(Fo=null,l=en,en=hu(t.containerInfo),gt(t,e),en=l,mt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{Il(t.containerInfo)}catch(v){le(e,e.return,v)}cs&&(cs=!1,uy(e));break;case 4:a=en,en=hu(e.stateNode.containerInfo),gt(t,e),mt(e),en=a;break;case 12:gt(t,e),mt(e);break;case 31:gt(t,e),mt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 13:gt(t,e),mt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Bu=Dt()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 22:l=e.memoizedState!==null;var u=n!==null&&n.memoizedState!==null,c=xn,s=Oe;if(xn=c||l,Oe=s||u,gt(t,e),Oe=s,xn=c,mt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||u||xn||Oe||Ha(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){u=n=t;try{if(i=u.stateNode,l)r=i.style,typeof r.setProperty=="function"?r.setProperty("display","none","important"):r.display="none";else{o=u.stateNode;var f=u.memoizedProps.style,d=f!=null&&f.hasOwnProperty("display")?f.display:null;o.style.display=d==null||typeof d=="boolean"?"":(""+d).trim()}}catch(v){le(u,u.return,v)}}}else if(t.tag===6){if(n===null){u=t;try{u.stateNode.nodeValue=l?"":u.memoizedProps}catch(v){le(u,u.return,v)}}}else if(t.tag===18){if(n===null){u=t;try{var m=u.stateNode;l?Wm(m,!0):Wm(u.stateNode,!1)}catch(v){le(u,u.return,v)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,Ro(e,n))));break;case 19:gt(t,e),mt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 30:break;case 21:break;default:gt(t,e),mt(e)}}function mt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(ey(a)){n=a;break}a=a.return}if(n==null)throw Error(S(160));switch(n.tag){case 27:var l=n.stateNode,i=us(e);ou(e,i,l);break;case 5:var r=n.stateNode;n.flags&32&&(jl(r,""),n.flags&=-33);var o=us(e);ou(e,o,r);break;case 3:case 4:var u=n.stateNode.containerInfo,c=us(e);Ws(e,c,u);break;default:throw Error(S(161))}}catch(s){le(e,e.return,s)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function uy(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;uy(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Tn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)ny(e,t.alternate,t),t=t.sibling}function Ha(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:ya(4,t,t.return),Ha(t);break;case 1:fn(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Jp(t,t.return,n),Ha(t);break;case 27:ar(t.stateNode);case 26:case 5:fn(t,t.return),Ha(t);break;case 22:t.memoizedState===null&&Ha(t);break;case 30:Ha(t);break;default:Ha(t)}e=e.sibling}}function En(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,i=t,r=i.flags;switch(i.tag){case 0:case 11:case 15:En(l,i,n),Er(4,i);break;case 1:if(En(l,i,n),a=i,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(c){le(a,a.return,c)}if(a=i,l=a.updateQueue,l!==null){var o=a.stateNode;try{var u=l.shared.hiddenCallbacks;if(u!==null)for(l.shared.hiddenCallbacks=null,l=0;l<u.length;l++)ip(u[l],o)}catch(c){le(a,a.return,c)}}n&&r&64&&Ip(i),$i(i,i.return);break;case 27:ty(i);case 26:case 5:En(l,i,n),n&&a===null&&r&4&&$p(i),$i(i,i.return);break;case 12:En(l,i,n);break;case 31:En(l,i,n),n&&r&4&&iy(l,i);break;case 13:En(l,i,n),n&&r&4&&ry(l,i);break;case 22:i.memoizedState===null&&En(l,i,n),$i(i,i.return);break;case 30:break;default:En(l,i,n)}t=t.sibling}}function Zd(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Rr(n))}function Wd(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rr(e))}function $t(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)cy(e,t,n,a),t=t.sibling}function cy(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:$t(e,t,n,a),l&2048&&Er(9,t);break;case 1:$t(e,t,n,a);break;case 3:$t(e,t,n,a),l&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rr(e)));break;case 12:if(l&2048){$t(e,t,n,a),e=t.stateNode;try{var i=t.memoizedProps,r=i.id,o=i.onPostCommit;typeof o=="function"&&o(r,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(u){le(t,t.return,u)}}else $t(e,t,n,a);break;case 31:$t(e,t,n,a);break;case 13:$t(e,t,n,a);break;case 23:break;case 22:i=t.stateNode,r=t.alternate,t.memoizedState!==null?i._visibility&2?$t(e,t,n,a):er(e,t):i._visibility&2?$t(e,t,n,a):(i._visibility|=2,Al(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&Zd(r,t);break;case 24:$t(e,t,n,a),l&2048&&Wd(t.alternate,t);break;default:$t(e,t,n,a)}}function Al(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var i=e,r=t,o=n,u=a,c=r.flags;switch(r.tag){case 0:case 11:case 15:Al(i,r,o,u,l),Er(8,r);break;case 23:break;case 22:var s=r.stateNode;r.memoizedState!==null?s._visibility&2?Al(i,r,o,u,l):er(i,r):(s._visibility|=2,Al(i,r,o,u,l)),l&&c&2048&&Zd(r.alternate,r);break;case 24:Al(i,r,o,u,l),l&&c&2048&&Wd(r.alternate,r);break;default:Al(i,r,o,u,l)}t=t.sibling}}function er(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,a=t,l=a.flags;switch(a.tag){case 22:er(n,a),l&2048&&Zd(a.alternate,a);break;case 24:er(n,a),l&2048&&Wd(a.alternate,a);break;default:er(n,a)}t=t.sibling}}var Yi=8192;function bl(e,t,n){if(e.subtreeFlags&Yi)for(e=e.child;e!==null;)sy(e,t,n),e=e.sibling}function sy(e,t,n){switch(e.tag){case 26:bl(e,t,n),e.flags&Yi&&e.memoizedState!==null&&Hw(n,en,e.memoizedState,e.memoizedProps);break;case 5:bl(e,t,n);break;case 3:case 4:var a=en;en=hu(e.stateNode.containerInfo),bl(e,t,n),en=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=Yi,Yi=16777216,bl(e,t,n),Yi=a):bl(e,t,n));break;default:bl(e,t,n)}}function dy(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function zi(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];Pe=a,gy(a,e)}dy(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)fy(e),e=e.sibling}function fy(e){switch(e.tag){case 0:case 11:case 15:zi(e),e.flags&2048&&ya(9,e,e.return);break;case 3:zi(e);break;case 12:zi(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Po(e)):zi(e);break;default:zi(e)}}function Po(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];Pe=a,gy(a,e)}dy(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:ya(8,t,t.return),Po(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Po(t));break;default:Po(t)}e=e.sibling}}function gy(e,t){for(;Pe!==null;){var n=Pe;switch(n.tag){case 0:case 11:case 15:ya(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var a=n.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Rr(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,Pe=a;else e:for(n=e;Pe!==null;){a=Pe;var l=a.sibling,i=a.return;if(ay(a),a===n){Pe=null;break e}if(l!==null){l.return=i,Pe=l;break e}Pe=i}}}var $A={getCacheForType:function(e){var t=Qe(ke),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Qe(ke).controller.signal}},ew=typeof WeakMap=="function"?WeakMap:Map,J=0,ue=null,F=null,Y=0,ae=0,Ct=null,aa=!1,ni=!1,Id=!1,Gn=0,Te=0,va=0,qa=0,Jd=0,Et=0,Ql=0,tr=null,pt=null,Is=!1,Bu=0,my=0,uu=1/0,cu=null,sa=null,Ue=0,da=null,Kl=null,kn=0,Js=0,$s=null,hy=null,nr=0,ed=null;function _t(){return(J&2)!==0&&Y!==0?Y&-Y:L.T!==null?ef():Rh()}function py(){if(Et===0)if((Y&536870912)===0||V){var e=mo;mo<<=1,(mo&3932160)===0&&(mo=262144),Et=e}else Et=536870912;return e=Nt.current,e!==null&&(e.flags|=32),Et}function yt(e,t,n){(e===ue&&(ae===2||ae===9)||e.cancelPendingCommit!==null)&&(Zl(e,0),la(e,Y,Et,!1)),wr(e,n),((J&2)===0||e!==ue)&&(e===ue&&((J&2)===0&&(qa|=n),Te===4&&la(e,Y,Et,!1)),hn(e))}function yy(e,t,n){if((J&6)!==0)throw Error(S(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||Ar(e,t),l=a?aw(e,t):ss(e,t,!0),i=a;do{if(l===0){ni&&!a&&la(e,t,0,!1);break}else{if(n=e.current.alternate,i&&!tw(n)){l=ss(e,t,!1),i=!1;continue}if(l===2){if(i=t,e.errorRecoveryDisabledLanes&i)var r=0;else r=e.pendingLanes&-536870913,r=r!==0?r:r&536870912?536870912:0;if(r!==0){t=r;e:{var o=e;l=tr;var u=o.current.memoizedState.isDehydrated;if(u&&(Zl(o,r).flags|=256),r=ss(o,r,!1),r!==2){if(Id&&!u){o.errorRecoveryDisabledLanes|=i,qa|=i,l=4;break e}i=pt,pt=l,i!==null&&(pt===null?pt=i:pt.push.apply(pt,i))}l=r}if(i=!1,l!==2)continue}}if(l===1){Zl(e,0),la(e,t,0,!0);break}e:{switch(a=e,i=l,i){case 0:case 1:throw Error(S(345));case 4:if((t&4194048)!==t)break;case 6:la(a,t,Et,!aa);break e;case 2:pt=null;break;case 3:case 5:break;default:throw Error(S(329))}if((t&62914560)===t&&(l=Bu+300-Dt(),10<l)){if(la(a,t,Et,!aa),Au(a,0,!0)!==0)break e;kn=t,a.timeoutHandle=zy(Lm.bind(null,a,n,pt,cu,Is,t,Et,qa,Ql,aa,i,"Throttled",-0,0),l);break e}Lm(a,n,pt,cu,Is,t,Et,qa,Ql,aa,i,null,-0,0)}}break}while(!0);hn(e)}function Lm(e,t,n,a,l,i,r,o,u,c,s,f,d,m){if(e.timeoutHandle=-1,f=t.subtreeFlags,f&8192||(f&16785408)===16785408){f={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:_n},sy(t,i,f);var v=(i&62914560)===i?Bu-Dt():(i&4194048)===i?my-Dt():0;if(v=zw(f,v),v!==null){kn=i,e.cancelPendingCommit=v(zm.bind(null,e,t,i,n,a,l,r,o,u,s,f,null,d,m)),la(e,i,r,!c);return}}zm(e,t,i,n,a,l,r,o,u)}function tw(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var l=n[a],i=l.getSnapshot;l=l.value;try{if(!Bt(i(),l))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function la(e,t,n,a){t&=~Jd,t&=~qa,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var i=31-Mt(l),r=1<<i;a[i]=-1,l&=~r}n!==0&&wh(e,n,t)}function Nu(){return(J&6)===0?(Dr(0,!1),!1):!0}function $d(){if(F!==null){if(ae===0)var e=F.return;else e=F,Bn=Ia=null,Ud(e),Ul=null,sr=0,e=F;for(;e!==null;)Wp(e.alternate,e),e=e.return;F=null}}function Zl(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,bw(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),kn=0,$d(),ue=e,F=n=Nn(e.current,null),Y=t,ae=0,Ct=null,aa=!1,ni=Ar(e,t),Id=!1,Ql=Et=Jd=qa=va=Te=0,pt=tr=null,Is=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var l=31-Mt(a),i=1<<l;t|=e[l],a&=~i}return Gn=t,Ru(),n}function vy(e,t){G=null,L.H=fr,t===ti||t===Eu?(t=gm(),ae=3):t===Bd?(t=gm(),ae=4):ae=t===Qd?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Ct=t,F===null&&(Te=1,iu(e,Yt(t,e.current)))}function by(){var e=Nt.current;return e===null?!0:(Y&4194048)===Y?Xt===null:(Y&62914560)===Y||(Y&536870912)!==0?e===Xt:!1}function Ay(){var e=L.H;return L.H=fr,e===null?fr:e}function wy(){var e=L.A;return L.A=$A,e}function su(){Te=4,aa||(Y&4194048)!==Y&&Nt.current!==null||(ni=!0),(va&134217727)===0&&(qa&134217727)===0||ue===null||la(ue,Y,Et,!1)}function ss(e,t,n){var a=J;J|=2;var l=Ay(),i=wy();(ue!==e||Y!==t)&&(cu=null,Zl(e,t)),t=!1;var r=Te;e:do try{if(ae!==0&&F!==null){var o=F,u=Ct;switch(ae){case 8:$d(),r=6;break e;case 3:case 2:case 9:case 6:Nt.current===null&&(t=!0);var c=ae;if(ae=0,Ct=null,Ol(e,o,u,c),n&&ni){r=0;break e}break;default:c=ae,ae=0,Ct=null,Ol(e,o,u,c)}}nw(),r=Te;break}catch(s){vy(e,s)}while(!0);return t&&e.shellSuspendCounter++,Bn=Ia=null,J=a,L.H=l,L.A=i,F===null&&(ue=null,Y=0,Ru()),r}function nw(){for(;F!==null;)Sy(F)}function aw(e,t){var n=J;J|=2;var a=Ay(),l=wy();ue!==e||Y!==t?(cu=null,uu=Dt()+500,Zl(e,t)):ni=Ar(e,t);e:do try{if(ae!==0&&F!==null){t=F;var i=Ct;t:switch(ae){case 1:ae=0,Ct=null,Ol(e,t,i,1);break;case 2:case 9:if(fm(i)){ae=0,Ct=null,Hm(t);break}t=function(){ae!==2&&ae!==9||ue!==e||(ae=7),hn(e)},i.then(t,t);break e;case 3:ae=7;break e;case 4:ae=5;break e;case 7:fm(i)?(ae=0,Ct=null,Hm(t)):(ae=0,Ct=null,Ol(e,t,i,7));break;case 5:var r=null;switch(F.tag){case 26:r=F.memoizedState;case 5:case 27:var o=F;if(r?Fy(r):o.stateNode.complete){ae=0,Ct=null;var u=o.sibling;if(u!==null)F=u;else{var c=o.return;c!==null?(F=c,Ou(c)):F=null}break t}}ae=0,Ct=null,Ol(e,t,i,5);break;case 6:ae=0,Ct=null,Ol(e,t,i,6);break;case 8:$d(),Te=6;break e;default:throw Error(S(462))}}lw();break}catch(s){vy(e,s)}while(!0);return Bn=Ia=null,L.H=a,L.A=l,J=n,F!==null?0:(ue=null,Y=0,Ru(),Te)}function lw(){for(;F!==null&&!Db();)Sy(F)}function Sy(e){var t=Zp(e.alternate,e,Gn);e.memoizedProps=e.pendingProps,t===null?Ou(e):F=t}function Hm(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Mm(n,t,t.pendingProps,t.type,void 0,Y);break;case 11:t=Mm(n,t,t.pendingProps,t.type.render,t.ref,Y);break;case 5:Ud(t);default:Wp(n,t),t=F=Wh(t,Gn),t=Zp(n,t,Gn)}e.memoizedProps=e.pendingProps,t===null?Ou(e):F=t}function Ol(e,t,n,a){Bn=Ia=null,Ud(t),Ul=null,sr=0;var l=t.return;try{if(XA(e,l,t,n,Y)){Te=1,iu(e,Yt(n,e.current)),F=null;return}}catch(i){if(l!==null)throw F=l,i;Te=1,iu(e,Yt(n,e.current)),F=null;return}t.flags&32768?(V||a===1?e=!0:ni||(Y&536870912)!==0?e=!1:(aa=e=!0,(a===2||a===9||a===3||a===6)&&(a=Nt.current,a!==null&&a.tag===13&&(a.flags|=16384))),Cy(t,e)):Ou(t)}function Ou(e){var t=e;do{if((t.flags&32768)!==0){Cy(t,aa);return}e=t.return;var n=ZA(t.alternate,t,Gn);if(n!==null){F=n;return}if(t=t.sibling,t!==null){F=t;return}F=t=e}while(t!==null);Te===0&&(Te=5)}function Cy(e,t){do{var n=WA(e.alternate,e);if(n!==null){n.flags&=32767,F=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){F=e;return}F=e=n}while(e!==null);Te=6,F=null}function zm(e,t,n,a,l,i,r,o,u){e.cancelPendingCommit=null;do ku();while(Ue!==0);if((J&6)!==0)throw Error(S(327));if(t!==null){if(t===e.current)throw Error(S(177));if(i=t.lanes|t.childLanes,i|=Rd,zb(e,n,i,r,o,u),e===ue&&(F=ue=null,Y=0),Kl=t,da=e,kn=n,Js=i,$s=l,hy=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,uw(Ko,function(){return xy(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=L.T,L.T=null,l=$.p,$.p=2,r=J,J|=4;try{IA(e,t,n)}finally{J=r,$.p=l,L.T=a}}Ue=1,Ry(),Ty(),Ey()}}function Ry(){if(Ue===1){Ue=0;var e=da,t=Kl,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=L.T,L.T=null;var a=$.p;$.p=2;var l=J;J|=4;try{oy(t,e);var i=ld,r=Fh(e.containerInfo),o=i.focusedElem,u=i.selectionRange;if(r!==o&&o&&o.ownerDocument&&qh(o.ownerDocument.documentElement,o)){if(u!==null&&Cd(o)){var c=u.start,s=u.end;if(s===void 0&&(s=c),"selectionStart"in o)o.selectionStart=c,o.selectionEnd=Math.min(s,o.value.length);else{var f=o.ownerDocument||document,d=f&&f.defaultView||window;if(d.getSelection){var m=d.getSelection(),v=o.textContent.length,A=Math.min(u.start,v),b=u.end===void 0?A:Math.min(u.end,v);!m.extend&&A>b&&(r=b,b=A,A=r);var h=im(o,A),g=im(o,b);if(h&&g&&(m.rangeCount!==1||m.anchorNode!==h.node||m.anchorOffset!==h.offset||m.focusNode!==g.node||m.focusOffset!==g.offset)){var p=f.createRange();p.setStart(h.node,h.offset),m.removeAllRanges(),A>b?(m.addRange(p),m.extend(g.node,g.offset)):(p.setEnd(g.node,g.offset),m.addRange(p))}}}}for(f=[],m=o;m=m.parentNode;)m.nodeType===1&&f.push({element:m,left:m.scrollLeft,top:m.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<f.length;o++){var y=f[o];y.element.scrollLeft=y.left,y.element.scrollTop=y.top}}vu=!!ad,ld=ad=null}finally{J=l,$.p=a,L.T=n}}e.current=t,Ue=2}}function Ty(){if(Ue===2){Ue=0;var e=da,t=Kl,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=L.T,L.T=null;var a=$.p;$.p=2;var l=J;J|=4;try{ny(e,t.alternate,t)}finally{J=l,$.p=a,L.T=n}}Ue=3}}function Ey(){if(Ue===4||Ue===3){Ue=0,xb();var e=da,t=Kl,n=kn,a=hy;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?Ue=5:(Ue=0,Kl=da=null,Dy(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(sa=null),pd(n),t=t.stateNode,xt&&typeof xt.onCommitFiberRoot=="function")try{xt.onCommitFiberRoot(br,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=L.T,l=$.p,$.p=2,L.T=null;try{for(var i=e.onRecoverableError,r=0;r<a.length;r++){var o=a[r];i(o.value,{componentStack:o.stack})}}finally{L.T=t,$.p=l}}(kn&3)!==0&&ku(),hn(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===ed?nr++:(nr=0,ed=e):nr=0,Dr(0,!1)}}function Dy(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Rr(t)))}function ku(){return Ry(),Ty(),Ey(),xy()}function xy(){if(Ue!==5)return!1;var e=da,t=Js;Js=0;var n=pd(kn),a=L.T,l=$.p;try{$.p=32>n?32:n,L.T=null,n=$s,$s=null;var i=da,r=kn;if(Ue=0,Kl=da=null,kn=0,(J&6)!==0)throw Error(S(331));var o=J;if(J|=4,fy(i.current),cy(i,i.current,r,n),J=o,Dr(0,!1),xt&&typeof xt.onPostCommitFiberRoot=="function")try{xt.onPostCommitFiberRoot(br,i)}catch{}return!0}finally{$.p=l,L.T=a,Dy(e,t)}}function Um(e,t,n){t=Yt(n,t),t=Qs(e.stateNode,t,2),e=ca(e,t,2),e!==null&&(wr(e,2),hn(e))}function le(e,t,n){if(e.tag===3)Um(e,e,n);else for(;t!==null;){if(t.tag===3){Um(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(sa===null||!sa.has(a))){e=Yt(n,e),n=jp(2),a=ca(t,n,2),a!==null&&(Yp(n,a,t,e),wr(a,2),hn(a));break}}t=t.return}}function ds(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new ew;var l=new Set;a.set(t,l)}else l=a.get(t),l===void 0&&(l=new Set,a.set(t,l));l.has(n)||(Id=!0,l.add(n),e=iw.bind(null,e,t,n),t.then(e,e))}function iw(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ue===e&&(Y&n)===n&&(Te===4||Te===3&&(Y&62914560)===Y&&300>Dt()-Bu?(J&2)===0&&Zl(e,0):Jd|=n,Ql===Y&&(Ql=0)),hn(e)}function My(e,t){t===0&&(t=Ah()),e=Wa(e,t),e!==null&&(wr(e,t),hn(e))}function rw(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),My(e,n)}function ow(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(S(314))}a!==null&&a.delete(t),My(e,n)}function uw(e,t){return md(e,t)}var du=null,wl=null,td=!1,fu=!1,fs=!1,ia=0;function hn(e){e!==wl&&e.next===null&&(wl===null?du=wl=e:wl=wl.next=e),fu=!0,td||(td=!0,sw())}function Dr(e,t){if(!fs&&fu){fs=!0;do for(var n=!1,a=du;a!==null;){if(!t)if(e!==0){var l=a.pendingLanes;if(l===0)var i=0;else{var r=a.suspendedLanes,o=a.pingedLanes;i=(1<<31-Mt(42|e)+1)-1,i&=l&~(r&~o),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(n=!0,Gm(a,i))}else i=Y,i=Au(a,a===ue?i:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(i&3)===0||Ar(a,i)||(n=!0,Gm(a,i));a=a.next}while(n);fs=!1}}function cw(){_y()}function _y(){fu=td=!1;var e=0;ia!==0&&vw()&&(e=ia);for(var t=Dt(),n=null,a=du;a!==null;){var l=a.next,i=By(a,t);i===0?(a.next=null,n===null?du=l:n.next=l,l===null&&(wl=n)):(n=a,(e!==0||(i&3)!==0)&&(fu=!0)),a=l}Ue!==0&&Ue!==5||Dr(e,!1),ia!==0&&(ia=0)}function By(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes&-62914561;0<i;){var r=31-Mt(i),o=1<<r,u=l[r];u===-1?((o&n)===0||(o&a)!==0)&&(l[r]=Hb(o,t)):u<=t&&(e.expiredLanes|=o),i&=~o}if(t=ue,n=Y,n=Au(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(ae===2||ae===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&qc(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||Ar(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&qc(a),pd(n)){case 2:case 8:n=vh;break;case 32:n=Ko;break;case 268435456:n=bh;break;default:n=Ko}return a=Ny.bind(null,e),n=md(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&qc(a),e.callbackPriority=2,e.callbackNode=null,2}function Ny(e,t){if(Ue!==0&&Ue!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(ku()&&e.callbackNode!==n)return null;var a=Y;return a=Au(e,e===ue?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(yy(e,a,t),By(e,Dt()),e.callbackNode!=null&&e.callbackNode===n?Ny.bind(null,e):null)}function Gm(e,t){if(ku())return null;yy(e,t,!0)}function sw(){Aw(function(){(J&6)!==0?md(yh,cw):_y()})}function ef(){if(ia===0){var e=Yl;e===0&&(e=go,go<<=1,(go&261888)===0&&(go=256)),ia=e}return ia}function Pm(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:Bo(""+e)}function qm(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function dw(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var i=Pm((l[vt]||null).action),r=a.submitter;r&&(t=(t=r[vt]||null)?Pm(t.formAction):r.getAttribute("formAction"),t!==null&&(i=t,r=null));var o=new wu("action","action",null,a,l);e.push({event:o,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(ia!==0){var u=r?qm(l,r):new FormData(l);Vs(n,{pending:!0,data:u,method:l.method,action:i},null,u)}}else typeof i=="function"&&(o.preventDefault(),u=r?qm(l,r):new FormData(l),Vs(n,{pending:!0,data:u,method:l.method,action:i},i,u))},currentTarget:l}]})}}for(To=0;To<Os.length;To++)Eo=Os[To],Fm=Eo.toLowerCase(),jm=Eo[0].toUpperCase()+Eo.slice(1),tn(Fm,"on"+jm);var Eo,Fm,jm,To;tn(Yh,"onAnimationEnd");tn(Vh,"onAnimationIteration");tn(Xh,"onAnimationStart");tn("dblclick","onDoubleClick");tn("focusin","onFocus");tn("focusout","onBlur");tn(MA,"onTransitionRun");tn(_A,"onTransitionStart");tn(BA,"onTransitionCancel");tn(Qh,"onTransitionEnd");Fl("onMouseEnter",["mouseout","mouseover"]);Fl("onMouseLeave",["mouseout","mouseover"]);Fl("onPointerEnter",["pointerout","pointerover"]);Fl("onPointerLeave",["pointerout","pointerover"]);Qa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Qa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Qa("onBeforeInput",["compositionend","keypress","textInput","paste"]);Qa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Qa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Qa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var gr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),fw=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(gr));function Oy(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],l=a.event;a=a.listeners;e:{var i=void 0;if(t)for(var r=a.length-1;0<=r;r--){var o=a[r],u=o.instance,c=o.currentTarget;if(o=o.listener,u!==i&&l.isPropagationStopped())break e;i=o,l.currentTarget=c;try{i(l)}catch(s){Wo(s)}l.currentTarget=null,i=u}else for(r=0;r<a.length;r++){if(o=a[r],u=o.instance,c=o.currentTarget,o=o.listener,u!==i&&l.isPropagationStopped())break e;i=o,l.currentTarget=c;try{i(l)}catch(s){Wo(s)}l.currentTarget=null,i=u}}}}function q(e,t){var n=t[Ts];n===void 0&&(n=t[Ts]=new Set);var a=e+"__bubble";n.has(a)||(ky(t,e,2,!1),n.add(a))}function gs(e,t,n){var a=0;t&&(a|=4),ky(n,e,a,t)}var Do="_reactListening"+Math.random().toString(36).slice(2);function tf(e){if(!e[Do]){e[Do]=!0,Th.forEach(function(n){n!=="selectionchange"&&(fw.has(n)||gs(n,!1,e),gs(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Do]||(t[Do]=!0,gs("selectionchange",!1,t))}}function ky(e,t,n,a){switch(Qy(t)){case 2:var l=Pw;break;case 8:l=qw;break;default:l=rf}n=l.bind(null,t,n,e),l=void 0,!_s||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),a?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function ms(e,t,n,a,l){var i=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var r=a.tag;if(r===3||r===4){var o=a.stateNode.containerInfo;if(o===l)break;if(r===4)for(r=a.return;r!==null;){var u=r.tag;if((u===3||u===4)&&r.stateNode.containerInfo===l)return;r=r.return}for(;o!==null;){if(r=Rl(o),r===null)return;if(u=r.tag,u===5||u===6||u===26||u===27){a=i=r;continue e}o=o.parentNode}}a=a.return}Oh(function(){var c=i,s=bd(n),f=[];e:{var d=Kh.get(e);if(d!==void 0){var m=wu,v=e;switch(e){case"keypress":if(Oo(n)===0)break e;case"keydown":case"keyup":m=oA;break;case"focusin":v="focus",m=Xc;break;case"focusout":v="blur",m=Xc;break;case"beforeblur":case"afterblur":m=Xc;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":m=Wg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":m=Zb;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":m=sA;break;case Yh:case Vh:case Xh:m=Jb;break;case Qh:m=fA;break;case"scroll":case"scrollend":m=Qb;break;case"wheel":m=mA;break;case"copy":case"cut":case"paste":m=eA;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":m=Jg;break;case"toggle":case"beforetoggle":m=pA}var A=(t&4)!==0,b=!A&&(e==="scroll"||e==="scrollend"),h=A?d!==null?d+"Capture":null:d;A=[];for(var g=c,p;g!==null;){var y=g;if(p=y.stateNode,y=y.tag,y!==5&&y!==26&&y!==27||p===null||h===null||(y=ir(g,h),y!=null&&A.push(mr(g,y,p))),b)break;g=g.return}0<A.length&&(d=new m(d,v,null,n,s),f.push({event:d,listeners:A}))}}if((t&7)===0){e:{if(d=e==="mouseover"||e==="pointerover",m=e==="mouseout"||e==="pointerout",d&&n!==Ms&&(v=n.relatedTarget||n.fromElement)&&(Rl(v)||v[Jl]))break e;if((m||d)&&(d=s.window===s?s:(d=s.ownerDocument)?d.defaultView||d.parentWindow:window,m?(v=n.relatedTarget||n.toElement,m=c,v=v?Rl(v):null,v!==null&&(b=vr(v),A=v.tag,v!==b||A!==5&&A!==27&&A!==6)&&(v=null)):(m=null,v=c),m!==v)){if(A=Wg,y="onMouseLeave",h="onMouseEnter",g="mouse",(e==="pointerout"||e==="pointerover")&&(A=Jg,y="onPointerLeave",h="onPointerEnter",g="pointer"),b=m==null?d:Fi(m),p=v==null?d:Fi(v),d=new A(y,g+"leave",m,n,s),d.target=b,d.relatedTarget=p,y=null,Rl(s)===c&&(A=new A(h,g+"enter",v,n,s),A.target=p,A.relatedTarget=b,y=A),b=y,m&&v)t:{for(A=gw,h=m,g=v,p=0,y=h;y;y=A(y))p++;y=0;for(var C=g;C;C=A(C))y++;for(;0<p-y;)h=A(h),p--;for(;0<y-p;)g=A(g),y--;for(;p--;){if(h===g||g!==null&&h===g.alternate){A=h;break t}h=A(h),g=A(g)}A=null}else A=null;m!==null&&Ym(f,d,m,A,!1),v!==null&&b!==null&&Ym(f,b,v,A,!0)}}e:{if(d=c?Fi(c):window,m=d.nodeName&&d.nodeName.toLowerCase(),m==="select"||m==="input"&&d.type==="file")var R=nm;else if(tm(d))if(Gh)R=EA;else{R=RA;var T=CA}else m=d.nodeName,!m||m.toLowerCase()!=="input"||d.type!=="checkbox"&&d.type!=="radio"?c&&vd(c.elementType)&&(R=nm):R=TA;if(R&&(R=R(e,c))){Uh(f,R,n,s);break e}T&&T(e,d,c),e==="focusout"&&c&&d.type==="number"&&c.memoizedProps.value!=null&&xs(d,"number",d.value)}switch(T=c?Fi(c):window,e){case"focusin":(tm(T)||T.contentEditable==="true")&&(Dl=T,Bs=c,Qi=null);break;case"focusout":Qi=Bs=Dl=null;break;case"mousedown":Ns=!0;break;case"contextmenu":case"mouseup":case"dragend":Ns=!1,rm(f,n,s);break;case"selectionchange":if(xA)break;case"keydown":case"keyup":rm(f,n,s)}var M;if(Sd)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else El?Hh(e,n)&&(w="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(w="onCompositionStart");w&&(Lh&&n.locale!=="ko"&&(El||w!=="onCompositionStart"?w==="onCompositionEnd"&&El&&(M=kh()):(na=s,Ad="value"in na?na.value:na.textContent,El=!0)),T=gu(c,w),0<T.length&&(w=new Ig(w,e,null,n,s),f.push({event:w,listeners:T}),M?w.data=M:(M=zh(n),M!==null&&(w.data=M)))),(M=vA?bA(e,n):AA(e,n))&&(w=gu(c,"onBeforeInput"),0<w.length&&(T=new Ig("onBeforeInput","beforeinput",null,n,s),f.push({event:T,listeners:w}),T.data=M)),dw(f,e,c,n,s)}Oy(f,t)})}function mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function gu(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,i=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||i===null||(l=ir(e,n),l!=null&&a.unshift(mr(e,l,i)),l=ir(e,t),l!=null&&a.push(mr(e,l,i))),e.tag===3)return a;e=e.return}return[]}function gw(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Ym(e,t,n,a,l){for(var i=t._reactName,r=[];n!==null&&n!==a;){var o=n,u=o.alternate,c=o.stateNode;if(o=o.tag,u!==null&&u===a)break;o!==5&&o!==26&&o!==27||c===null||(u=c,l?(c=ir(n,i),c!=null&&r.unshift(mr(n,c,u))):l||(c=ir(n,i),c!=null&&r.push(mr(n,c,u)))),n=n.return}r.length!==0&&e.push({event:t,listeners:r})}var mw=/\r\n?/g,hw=/\u0000|\uFFFD/g;function Vm(e){return(typeof e=="string"?e:""+e).replace(mw,``).replace(hw,"")}function Ly(e,t){return t=Vm(t),Vm(e)===t}function ie(e,t,n,a,l,i){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||jl(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&jl(e,""+a);break;case"className":po(e,"class",a);break;case"tabIndex":po(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":po(e,n,a);break;case"style":Nh(e,a,i);break;case"data":if(t!=="object"){po(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=Bo(""+a),e.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof i=="function"&&(n==="formAction"?(t!=="input"&&ie(e,t,"name",l.name,l,null),ie(e,t,"formEncType",l.formEncType,l,null),ie(e,t,"formMethod",l.formMethod,l,null),ie(e,t,"formTarget",l.formTarget,l,null)):(ie(e,t,"encType",l.encType,l,null),ie(e,t,"method",l.method,l,null),ie(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=Bo(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=_n);break;case"onScroll":a!=null&&q("scroll",e);break;case"onScrollEnd":a!=null&&q("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(S(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(S(60));e.innerHTML=n}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}n=Bo(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""+a):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":a===!0?e.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,a):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(n,a):e.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(n):e.setAttribute(n,a);break;case"popover":q("beforetoggle",e),q("toggle",e),_o(e,"popover",a);break;case"xlinkActuate":Sn(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":Sn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":Sn(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":Sn(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":Sn(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":Sn(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":_o(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=Vb.get(n)||n,_o(e,n,a))}}function nd(e,t,n,a,l,i){switch(n){case"style":Nh(e,a,i);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(S(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(S(60));e.innerHTML=n}}break;case"children":typeof a=="string"?jl(e,a):(typeof a=="number"||typeof a=="bigint")&&jl(e,""+a);break;case"onScroll":a!=null&&q("scroll",e);break;case"onScrollEnd":a!=null&&q("scrollend",e);break;case"onClick":a!=null&&(e.onclick=_n);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Eh.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),i=e[vt]||null,i=i!=null?i[n]:null,typeof i=="function"&&e.removeEventListener(t,i,l),typeof a=="function")){typeof i!="function"&&i!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,l);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):_o(e,n,a)}}}function Ke(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":q("error",e),q("load",e);var a=!1,l=!1,i;for(i in n)if(n.hasOwnProperty(i)){var r=n[i];if(r!=null)switch(i){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(S(137,t));default:ie(e,t,i,r,n,null)}}l&&ie(e,t,"srcSet",n.srcSet,n,null),a&&ie(e,t,"src",n.src,n,null);return;case"input":q("invalid",e);var o=i=r=l=null,u=null,c=null;for(a in n)if(n.hasOwnProperty(a)){var s=n[a];if(s!=null)switch(a){case"name":l=s;break;case"type":r=s;break;case"checked":u=s;break;case"defaultChecked":c=s;break;case"value":i=s;break;case"defaultValue":o=s;break;case"children":case"dangerouslySetInnerHTML":if(s!=null)throw Error(S(137,t));break;default:ie(e,t,a,s,n,null)}}Mh(e,i,o,u,c,r,l,!1);return;case"select":q("invalid",e),a=r=i=null;for(l in n)if(n.hasOwnProperty(l)&&(o=n[l],o!=null))switch(l){case"value":i=o;break;case"defaultValue":r=o;break;case"multiple":a=o;default:ie(e,t,l,o,n,null)}t=i,n=r,e.multiple=!!a,t!=null?Ll(e,!!a,t,!1):n!=null&&Ll(e,!!a,n,!0);return;case"textarea":q("invalid",e),i=l=a=null;for(r in n)if(n.hasOwnProperty(r)&&(o=n[r],o!=null))switch(r){case"value":a=o;break;case"defaultValue":l=o;break;case"children":i=o;break;case"dangerouslySetInnerHTML":if(o!=null)throw Error(S(91));break;default:ie(e,t,r,o,n,null)}Bh(e,a,l,i);return;case"option":for(u in n)if(n.hasOwnProperty(u)&&(a=n[u],a!=null))switch(u){case"selected":e.selected=a&&typeof a!="function"&&typeof a!="symbol";break;default:ie(e,t,u,a,n,null)}return;case"dialog":q("beforetoggle",e),q("toggle",e),q("cancel",e),q("close",e);break;case"iframe":case"object":q("load",e);break;case"video":case"audio":for(a=0;a<gr.length;a++)q(gr[a],e);break;case"image":q("error",e),q("load",e);break;case"details":q("toggle",e);break;case"embed":case"source":case"link":q("error",e),q("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in n)if(n.hasOwnProperty(c)&&(a=n[c],a!=null))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(S(137,t));default:ie(e,t,c,a,n,null)}return;default:if(vd(t)){for(s in n)n.hasOwnProperty(s)&&(a=n[s],a!==void 0&&nd(e,t,s,a,n,void 0));return}}for(o in n)n.hasOwnProperty(o)&&(a=n[o],a!=null&&ie(e,t,o,a,n,null))}function pw(e,t,n,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,i=null,r=null,o=null,u=null,c=null,s=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case"checked":break;case"value":break;case"defaultValue":u=f;default:a.hasOwnProperty(m)||ie(e,t,m,null,a,f)}}for(var d in a){var m=a[d];if(f=n[d],a.hasOwnProperty(d)&&(m!=null||f!=null))switch(d){case"type":i=m;break;case"name":l=m;break;case"checked":c=m;break;case"defaultChecked":s=m;break;case"value":r=m;break;case"defaultValue":o=m;break;case"children":case"dangerouslySetInnerHTML":if(m!=null)throw Error(S(137,t));break;default:m!==f&&ie(e,t,d,m,a,f)}}Ds(e,r,o,u,c,s,i,l);return;case"select":m=r=o=d=null;for(i in n)if(u=n[i],n.hasOwnProperty(i)&&u!=null)switch(i){case"value":break;case"multiple":m=u;default:a.hasOwnProperty(i)||ie(e,t,i,null,a,u)}for(l in a)if(i=a[l],u=n[l],a.hasOwnProperty(l)&&(i!=null||u!=null))switch(l){case"value":d=i;break;case"defaultValue":o=i;break;case"multiple":r=i;default:i!==u&&ie(e,t,l,i,a,u)}t=o,n=r,a=m,d!=null?Ll(e,!!n,d,!1):!!a!=!!n&&(t!=null?Ll(e,!!n,t,!0):Ll(e,!!n,n?[]:"",!1));return;case"textarea":m=d=null;for(o in n)if(l=n[o],n.hasOwnProperty(o)&&l!=null&&!a.hasOwnProperty(o))switch(o){case"value":break;case"children":break;default:ie(e,t,o,null,a,l)}for(r in a)if(l=a[r],i=n[r],a.hasOwnProperty(r)&&(l!=null||i!=null))switch(r){case"value":d=l;break;case"defaultValue":m=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(S(91));break;default:l!==i&&ie(e,t,r,l,a,i)}_h(e,d,m);return;case"option":for(var v in n)if(d=n[v],n.hasOwnProperty(v)&&d!=null&&!a.hasOwnProperty(v))switch(v){case"selected":e.selected=!1;break;default:ie(e,t,v,null,a,d)}for(u in a)if(d=a[u],m=n[u],a.hasOwnProperty(u)&&d!==m&&(d!=null||m!=null))switch(u){case"selected":e.selected=d&&typeof d!="function"&&typeof d!="symbol";break;default:ie(e,t,u,d,a,m)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var A in n)d=n[A],n.hasOwnProperty(A)&&d!=null&&!a.hasOwnProperty(A)&&ie(e,t,A,null,a,d);for(c in a)if(d=a[c],m=n[c],a.hasOwnProperty(c)&&d!==m&&(d!=null||m!=null))switch(c){case"children":case"dangerouslySetInnerHTML":if(d!=null)throw Error(S(137,t));break;default:ie(e,t,c,d,a,m)}return;default:if(vd(t)){for(var b in n)d=n[b],n.hasOwnProperty(b)&&d!==void 0&&!a.hasOwnProperty(b)&&nd(e,t,b,void 0,a,d);for(s in a)d=a[s],m=n[s],!a.hasOwnProperty(s)||d===m||d===void 0&&m===void 0||nd(e,t,s,d,a,m);return}}for(var h in n)d=n[h],n.hasOwnProperty(h)&&d!=null&&!a.hasOwnProperty(h)&&ie(e,t,h,null,a,d);for(f in a)d=a[f],m=n[f],!a.hasOwnProperty(f)||d===m||d==null&&m==null||ie(e,t,f,d,a,m)}function Xm(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function yw(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var l=n[a],i=l.transferSize,r=l.initiatorType,o=l.duration;if(i&&o&&Xm(r)){for(r=0,o=l.responseEnd,a+=1;a<n.length;a++){var u=n[a],c=u.startTime;if(c>o)break;var s=u.transferSize,f=u.initiatorType;s&&Xm(f)&&(u=u.responseEnd,r+=s*(u<o?1:(o-c)/(u-c)))}if(--a,t+=8*(i+r)/(l.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var ad=null,ld=null;function mu(e){return e.nodeType===9?e:e.ownerDocument}function Qm(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Hy(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function id(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var hs=null;function vw(){var e=window.event;return e&&e.type==="popstate"?e===hs?!1:(hs=e,!0):(hs=null,!1)}var zy=typeof setTimeout=="function"?setTimeout:void 0,bw=typeof clearTimeout=="function"?clearTimeout:void 0,Km=typeof Promise=="function"?Promise:void 0,Aw=typeof queueMicrotask=="function"?queueMicrotask:typeof Km<"u"?function(e){return Km.resolve(null).then(e).catch(ww)}:zy;function ww(e){setTimeout(function(){throw e})}function Aa(e){return e==="head"}function Zm(e,t){var n=t,a=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"||n==="/&"){if(a===0){e.removeChild(l),Il(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")ar(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,ar(n);for(var i=n.firstChild;i;){var r=i.nextSibling,o=i.nodeName;i[Sr]||o==="SCRIPT"||o==="STYLE"||o==="LINK"&&i.rel.toLowerCase()==="stylesheet"||n.removeChild(i),i=r}}else n==="body"&&ar(e.ownerDocument.body);n=l}while(n);Il(t)}function Wm(e,t){var n=e;e=0;do{var a=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=a}while(n)}function rd(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":rd(n),yd(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Sw(e,t,n,a){for(;e.nodeType===1;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[Sr])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(i=e.getAttribute("rel"),i==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(i!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(i=e.getAttribute("src"),(i!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&i&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var i=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===i)return e}else return e;if(e=Qt(e.nextSibling),e===null)break}return null}function Cw(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Qt(e.nextSibling),e===null))return null;return e}function Uy(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Qt(e.nextSibling),e===null))return null;return e}function od(e){return e.data==="$?"||e.data==="$~"}function ud(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function Rw(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function Qt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var cd=null;function Im(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Qt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function Jm(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(t===0)return e;t--}else n!=="/$"&&n!=="/&"||t++}e=e.previousSibling}return null}function Gy(e,t,n){switch(t=mu(n),e){case"html":if(e=t.documentElement,!e)throw Error(S(452));return e;case"head":if(e=t.head,!e)throw Error(S(453));return e;case"body":if(e=t.body,!e)throw Error(S(454));return e;default:throw Error(S(451))}}function ar(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);yd(e)}var Kt=new Map,$m=new Set;function hu(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Pn=$.d;$.d={f:Tw,r:Ew,D:Dw,C:xw,L:Mw,m:_w,X:Nw,S:Bw,M:Ow};function Tw(){var e=Pn.f(),t=Nu();return e||t}function Ew(e){var t=$l(e);t!==null&&t.tag===5&&t.type==="form"?Np(t):Pn.r(e)}var ai=typeof document>"u"?null:document;function Py(e,t,n){var a=ai;if(a&&typeof t=="string"&&t){var l=jt(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),$m.has(l)||($m.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),Ke(t,"link",e),qe(t),a.head.appendChild(t)))}}function Dw(e){Pn.D(e),Py("dns-prefetch",e,null)}function xw(e,t){Pn.C(e,t),Py("preconnect",e,t)}function Mw(e,t,n){Pn.L(e,t,n);var a=ai;if(a&&e&&t){var l='link[rel="preload"][as="'+jt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+jt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+jt(n.imageSizes)+'"]')):l+='[href="'+jt(e)+'"]';var i=l;switch(t){case"style":i=Wl(e);break;case"script":i=li(e)}Kt.has(i)||(e=ve({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Kt.set(i,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(xr(i))||t==="script"&&a.querySelector(Mr(i))||(t=a.createElement("link"),Ke(t,"link",e),qe(t),a.head.appendChild(t)))}}function _w(e,t){Pn.m(e,t);var n=ai;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+jt(a)+'"][href="'+jt(e)+'"]',i=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=li(e)}if(!Kt.has(i)&&(e=ve({rel:"modulepreload",href:e},t),Kt.set(i,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Mr(i)))return}a=n.createElement("link"),Ke(a,"link",e),qe(a),n.head.appendChild(a)}}}function Bw(e,t,n){Pn.S(e,t,n);var a=ai;if(a&&e){var l=kl(a).hoistableStyles,i=Wl(e);t=t||"default";var r=l.get(i);if(!r){var o={loading:0,preload:null};if(r=a.querySelector(xr(i)))o.loading=5;else{e=ve({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Kt.get(i))&&nf(e,n);var u=r=a.createElement("link");qe(u),Ke(u,"link",e),u._p=new Promise(function(c,s){u.onload=c,u.onerror=s}),u.addEventListener("load",function(){o.loading|=1}),u.addEventListener("error",function(){o.loading|=2}),o.loading|=4,qo(r,t,a)}r={type:"stylesheet",instance:r,count:1,state:o},l.set(i,r)}}}function Nw(e,t){Pn.X(e,t);var n=ai;if(n&&e){var a=kl(n).hoistableScripts,l=li(e),i=a.get(l);i||(i=n.querySelector(Mr(l)),i||(e=ve({src:e,async:!0},t),(t=Kt.get(l))&&af(e,t),i=n.createElement("script"),qe(i),Ke(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function Ow(e,t){Pn.M(e,t);var n=ai;if(n&&e){var a=kl(n).hoistableScripts,l=li(e),i=a.get(l);i||(i=n.querySelector(Mr(l)),i||(e=ve({src:e,async:!0,type:"module"},t),(t=Kt.get(l))&&af(e,t),i=n.createElement("script"),qe(i),Ke(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function eh(e,t,n,a){var l=(l=ra.current)?hu(l):null;if(!l)throw Error(S(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Wl(n.href),n=kl(l).hoistableStyles,a=n.get(t),a||(a={type:"style",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=Wl(n.href);var i=kl(l).hoistableStyles,r=i.get(e);if(r||(l=l.ownerDocument||l,r={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,r),(i=l.querySelector(xr(e)))&&!i._p&&(r.instance=i,r.state.loading=5),Kt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Kt.set(e,n),i||kw(l,e,n,r.state))),t&&a===null)throw Error(S(528,""));return r}if(t&&a!==null)throw Error(S(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=li(n),n=kl(l).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(S(444,e))}}function Wl(e){return'href="'+jt(e)+'"'}function xr(e){return'link[rel="stylesheet"]['+e+"]"}function qy(e){return ve({},e,{"data-precedence":e.precedence,precedence:null})}function kw(e,t,n,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ke(t,"link",n),qe(t),e.head.appendChild(t))}function li(e){return'[src="'+jt(e)+'"]'}function Mr(e){return"script[async]"+e}function th(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+jt(n.href)+'"]');if(a)return t.instance=a,qe(a),a;var l=ve({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),qe(a),Ke(a,"style",l),qo(a,n.precedence,e),t.instance=a;case"stylesheet":l=Wl(n.href);var i=e.querySelector(xr(l));if(i)return t.state.loading|=4,t.instance=i,qe(i),i;a=qy(n),(l=Kt.get(l))&&nf(a,l),i=(e.ownerDocument||e).createElement("link"),qe(i);var r=i;return r._p=new Promise(function(o,u){r.onload=o,r.onerror=u}),Ke(i,"link",a),t.state.loading|=4,qo(i,n.precedence,e),t.instance=i;case"script":return i=li(n.src),(l=e.querySelector(Mr(i)))?(t.instance=l,qe(l),l):(a=n,(l=Kt.get(i))&&(a=ve({},n),af(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),qe(l),Ke(l,"link",a),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(S(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,qo(a,n.precedence,e));return t.instance}function qo(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,i=l,r=0;r<a.length;r++){var o=a[r];if(o.dataset.precedence===t)i=o;else if(i!==l)break}i?i.parentNode.insertBefore(e,i.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function nf(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function af(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var Fo=null;function nh(e,t,n){if(Fo===null){var a=new Map,l=Fo=new Map;l.set(n,a)}else l=Fo,a=l.get(n),a||(a=new Map,l.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var i=n[l];if(!(i[Sr]||i[Ve]||e==="link"&&i.getAttribute("rel")==="stylesheet")&&i.namespaceURI!=="http://www.w3.org/2000/svg"){var r=i.getAttribute(t)||"";r=e+r;var o=a.get(r);o?o.push(i):a.set(r,[i])}}return a}function ah(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Lw(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Fy(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Hw(e,t,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var l=Wl(a.href),i=t.querySelector(xr(l));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=pu.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=i,qe(i);return}i=t.ownerDocument||t,a=qy(a),(l=Kt.get(l))&&nf(a,l),i=i.createElement("link"),qe(i);var r=i;r._p=new Promise(function(o,u){r.onload=o,r.onerror=u}),Ke(i,"link",a),n.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=pu.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var ps=0;function zw(e,t){return e.stylesheets&&e.count===0&&jo(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&jo(e,e.stylesheets),e.unsuspend){var i=e.unsuspend;e.unsuspend=null,i()}},6e4+t);0<e.imgBytes&&ps===0&&(ps=62500*yw());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&jo(e,e.stylesheets),e.unsuspend)){var i=e.unsuspend;e.unsuspend=null,i()}},(e.imgBytes>ps?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function pu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)jo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var yu=null;function jo(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,yu=new Map,t.forEach(Uw,e),yu=null,pu.call(e))}function Uw(e,t){if(!(t.state.loading&4)){var n=yu.get(e);if(n)var a=n.get(null);else{n=new Map,yu.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i<l.length;i++){var r=l[i];(r.nodeName==="LINK"||r.getAttribute("media")!=="not all")&&(n.set(r.dataset.precedence,r),a=r)}a&&n.set(null,a)}l=t.instance,r=l.getAttribute("data-precedence"),i=n.get(r)||a,i===a&&n.set(null,l),n.set(r,l),this.count++,a=pu.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),i?i.parentNode.insertBefore(l,i.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var hr={$$typeof:Mn,Provider:null,Consumer:null,_currentValue:za,_currentValue2:za,_threadCount:0};function Gw(e,t,n,a,l,i,r,o,u){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Fc(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Fc(0),this.hiddenUpdates=Fc(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=i,this.onRecoverableError=r,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=u,this.incompleteTransitions=new Map}function jy(e,t,n,a,l,i,r,o,u,c,s,f){return e=new Gw(e,t,n,r,u,c,s,f,o),t=1,i===!0&&(t|=24),i=Tt(3,null,null,t),e.current=i,i.stateNode=e,t=Md(),t.refCount++,e.pooledCache=t,t.refCount++,i.memoizedState={element:a,isDehydrated:n,cache:t},Nd(i),e}function Yy(e){return e?(e=_l,e):_l}function Vy(e,t,n,a,l,i){l=Yy(l),a.context===null?a.context=l:a.pendingContext=l,a=ua(t),a.payload={element:n},i=i===void 0?null:i,i!==null&&(a.callback=i),n=ca(e,a,t),n!==null&&(yt(n,e,t),Zi(n,e,t))}function lh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function lf(e,t){lh(e,t),(e=e.alternate)&&lh(e,t)}function Xy(e){if(e.tag===13||e.tag===31){var t=Wa(e,67108864);t!==null&&yt(t,e,67108864),lf(e,67108864)}}function ih(e){if(e.tag===13||e.tag===31){var t=_t();t=hd(t);var n=Wa(e,t);n!==null&&yt(n,e,t),lf(e,t)}}var vu=!0;function Pw(e,t,n,a){var l=L.T;L.T=null;var i=$.p;try{$.p=2,rf(e,t,n,a)}finally{$.p=i,L.T=l}}function qw(e,t,n,a){var l=L.T;L.T=null;var i=$.p;try{$.p=8,rf(e,t,n,a)}finally{$.p=i,L.T=l}}function rf(e,t,n,a){if(vu){var l=sd(a);if(l===null)ms(e,t,a,bu,n),rh(e,a);else if(jw(l,e,t,n,a))a.stopPropagation();else if(rh(e,a),t&4&&-1<Fw.indexOf(e)){for(;l!==null;){var i=$l(l);if(i!==null)switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var r=ka(i.pendingLanes);if(r!==0){var o=i;for(o.pendingLanes|=2,o.entangledLanes|=2;r;){var u=1<<31-Mt(r);o.entanglements[1]|=u,r&=~u}hn(i),(J&6)===0&&(uu=Dt()+500,Dr(0,!1))}}break;case 31:case 13:o=Wa(i,2),o!==null&&yt(o,i,2),Nu(),lf(i,2)}if(i=sd(a),i===null&&ms(e,t,a,bu,n),i===l)break;l=i}l!==null&&a.stopPropagation()}else ms(e,t,a,null,n)}}function sd(e){return e=bd(e),of(e)}var bu=null;function of(e){if(bu=null,e=Rl(e),e!==null){var t=vr(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=fh(t),e!==null)return e;e=null}else if(n===31){if(e=gh(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return bu=e,null}function Qy(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Mb()){case yh:return 2;case vh:return 8;case Ko:case _b:return 32;case bh:return 268435456;default:return 32}default:return 32}}var dd=!1,fa=null,ga=null,ma=null,pr=new Map,yr=new Map,ea=[],Fw="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function rh(e,t){switch(e){case"focusin":case"focusout":fa=null;break;case"dragenter":case"dragleave":ga=null;break;case"mouseover":case"mouseout":ma=null;break;case"pointerover":case"pointerout":pr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":yr.delete(t.pointerId)}}function Ui(e,t,n,a,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:i,targetContainers:[l]},t!==null&&(t=$l(t),t!==null&&Xy(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function jw(e,t,n,a,l){switch(t){case"focusin":return fa=Ui(fa,e,t,n,a,l),!0;case"dragenter":return ga=Ui(ga,e,t,n,a,l),!0;case"mouseover":return ma=Ui(ma,e,t,n,a,l),!0;case"pointerover":var i=l.pointerId;return pr.set(i,Ui(pr.get(i)||null,e,t,n,a,l)),!0;case"gotpointercapture":return i=l.pointerId,yr.set(i,Ui(yr.get(i)||null,e,t,n,a,l)),!0}return!1}function Ky(e){var t=Rl(e.target);if(t!==null){var n=vr(t);if(n!==null){if(t=n.tag,t===13){if(t=fh(n),t!==null){e.blockedOn=t,jg(e.priority,function(){ih(n)});return}}else if(t===31){if(t=gh(n),t!==null){e.blockedOn=t,jg(e.priority,function(){ih(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Yo(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=sd(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Ms=a,n.target.dispatchEvent(a),Ms=null}else return t=$l(n),t!==null&&Xy(t),e.blockedOn=n,!1;t.shift()}return!0}function oh(e,t,n){Yo(e)&&n.delete(t)}function Yw(){dd=!1,fa!==null&&Yo(fa)&&(fa=null),ga!==null&&Yo(ga)&&(ga=null),ma!==null&&Yo(ma)&&(ma=null),pr.forEach(oh),yr.forEach(oh)}function xo(e,t){e.blockedOn===t&&(e.blockedOn=null,dd||(dd=!0,Ge.unstable_scheduleCallback(Ge.unstable_NormalPriority,Yw)))}var Mo=null;function uh(e){Mo!==e&&(Mo=e,Ge.unstable_scheduleCallback(Ge.unstable_NormalPriority,function(){Mo===e&&(Mo=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],l=e[t+2];if(typeof a!="function"){if(of(a||n)===null)continue;break}var i=$l(n);i!==null&&(e.splice(t,3),t-=3,Vs(i,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function Il(e){function t(u){return xo(u,e)}fa!==null&&xo(fa,e),ga!==null&&xo(ga,e),ma!==null&&xo(ma,e),pr.forEach(t),yr.forEach(t);for(var n=0;n<ea.length;n++){var a=ea[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<ea.length&&(n=ea[0],n.blockedOn===null);)Ky(n),n.blockedOn===null&&ea.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],i=n[a+1],r=l[vt]||null;if(typeof i=="function")r||uh(n);else if(r){var o=null;if(i&&i.hasAttribute("formAction")){if(l=i,r=i[vt]||null)o=r.formAction;else if(of(l)!==null)continue}else o=r.action;typeof o=="function"?n[a+1]=o:(n.splice(a,3),a-=3),uh(n)}}}function Zy(){function e(i){i.canIntercept&&i.info==="react-transition"&&i.intercept({handler:function(){return new Promise(function(r){return l=r})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var i=navigation.currentEntry;i&&i.url!=null&&navigation.navigate(i.url,{state:i.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),l!==null&&(l(),l=null)}}}function uf(e){this._internalRoot=e}Lu.prototype.render=uf.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(S(409));var n=t.current,a=_t();Vy(n,a,e,t,null,null)};Lu.prototype.unmount=uf.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Vy(e.current,2,null,e,null,null),Nu(),t[Jl]=null}};function Lu(e){this._internalRoot=e}Lu.prototype.unstable_scheduleHydration=function(e){if(e){var t=Rh();e={blockedOn:null,target:e,priority:t};for(var n=0;n<ea.length&&t!==0&&t<ea[n].priority;n++);ea.splice(n,0,e),n===0&&Ky(e)}};var ch=sh.version;if(ch!=="19.2.8")throw Error(S(527,ch,"19.2.8"));$.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(S(188)):(e=Object.keys(e).join(","),Error(S(268,e)));return e=Sb(t),e=e!==null?mh(e):null,e=e===null?null:e.stateNode,e};var Vw={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:L,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(Gi=__REACT_DEVTOOLS_GLOBAL_HOOK__,!Gi.isDisabled&&Gi.supportsFiber))try{br=Gi.inject(Vw),xt=Gi}catch{}var Gi;Hu.createRoot=function(e,t){if(!dh(e))throw Error(S(299));var n=!1,a="",l=Pp,i=qp,r=Fp;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(r=t.onRecoverableError)),t=jy(e,1,!1,null,null,n,a,null,l,i,r,Zy),e[Jl]=t.current,tf(e),new uf(t)};Hu.hydrateRoot=function(e,t,n){if(!dh(e))throw Error(S(299));var a=!1,l="",i=Pp,r=qp,o=Fp,u=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(i=n.onUncaughtError),n.onCaughtError!==void 0&&(r=n.onCaughtError),n.onRecoverableError!==void 0&&(o=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=jy(e,1,!0,t,n??null,a,l,u,i,r,o,Zy),t.context=Yy(null),n=t.current,a=_t(),a=hd(a),l=ua(a),l.callback=null,ca(n,l,a),n=a,t.current.lanes=n,wr(t,n),hn(t),e[Jl]=t.current,tf(e),new Lu(t)};Hu.version="19.2.8"});var $y=un((jS,Jy)=>{"use strict";function Iy(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Iy)}catch(e){console.error(e)}}Iy(),Jy.exports=Wy()});var t0=un(zu=>{"use strict";var Xw=Symbol.for("react.transitional.element"),Qw=Symbol.for("react.fragment");function e0(e,t,n){var a=null;if(n!==void 0&&(a=""+n),t.key!==void 0&&(a=""+t.key),"key"in t){n={};for(var l in t)l!=="key"&&(n[l]=t[l])}else n=t;return t=n.ref,{$$typeof:Xw,type:e,key:a,ref:t!==void 0?t:null,props:n}}zu.Fragment=Qw;zu.jsx=e0;zu.jsxs=e0});var O=un((VS,n0)=>{"use strict";n0.exports=t0()});var Lt=B(ft(),1),s1=B($y(),1);var Wv=B(ft(),1);var qn=B(O(),1);function Kw(e){return{under50:"Under $50",over50:"Over $50",over30:"Over $30",over500:"Over $500","50_100":"$50 - $100","100_200":"$100 - $200","200_500":"$200 - $500"}[e]||e}function a0({activeDealTag:e,activeFreeformTags:t,airedaleTags:n,freeformTags:a,discountAmount:l,onBrandSelect:i,onBrandToggle:r,onDiscountAmountChange:o,onPriceRangeChange:u,onTagClear:c,onFreeformTagClear:s,onFreeformTagToggle:f,priceRange:d,selectedBrands:m}){let v=m.map(b=>({type:"brand",value:b,label:b}));if(e){let b=n.find(h=>h.startsWith(e+":::")||h===e);v.push({type:"category",value:e,label:b?b.split(":::")[1]||b.split(":::")[0]:e})}if(t.forEach(b=>{let h=a.find(g=>g.handle===b);v.push({type:"freeform-tag",value:b,label:h?.label||b})}),d&&d!=="all"&&v.push({type:"price",value:d,label:Kw(d)}),l&&l!=="0"&&l!=="all"&&v.push({type:"discount",value:l,label:`Min ${l}% off`}),v.length===0)return null;let A=b=>{b.type==="brand"&&r?.(b.value),b.type==="category"&&c(),b.type==="freeform-tag"&&f(b.value),b.type==="discount"&&o?.("0"),b.type==="price"&&u?.("all")};return(0,qn.jsxs)("div",{className:"tg-df-active-badges-row",style:{display:"flex",flexWrap:"wrap",gap:"4px",alignItems:"center",marginTop:"10px",marginBottom:"16px"},children:[v.map(b=>(0,qn.jsxs)("span",{className:"tg-df-active-badge",children:[b.label,(0,qn.jsx)("button",{type:"button",className:"tg-df-badge-remove","aria-label":`Remove ${b.label}`,onClick:()=>A(b),children:(0,qn.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,qn.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,qn.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},b.type+"-"+b.value)),v.length>1&&(0,qn.jsx)("button",{type:"button",className:"tg-df-badge-clear-all",onClick:()=>{i?.([]),c(),s(),o?.("0"),u?.("all")},children:"Clear all"})]})}function l0(e){if(!e)return null;let t=e.documentname||e.title||"";!t&&e.documentnametext&&(t=Array.isArray(e.documentnametext)?e.documentnametext[0]:e.documentnametext),!t&&e.articlename&&(t=Array.isArray(e.articlename)?e.articlename[0]:e.articlename),!t&&e.articlesocialtitle&&Array.isArray(e.articlesocialtitle)&&(t=e.articlesocialtitle[0]);let n=e.strapline||e.articlestrapline||e.subtitle||e.dek||"";!n&&e.image_thumbnail&&e.image_thumbnail.dek&&(n=e.image_thumbnail.dek),Array.isArray(n)&&(n=n[0]||"");let a="";if(e.articlepage)try{let l=e.articlepage;if(typeof l=="string")try{l=JSON.parse(l)}catch{}if(Array.isArray(l)&&l.length>0){let i=l[0];if(typeof i=="string")try{i=JSON.parse(i)}catch{}if(Array.isArray(i)){let r=[];for(let o of i){if(o.type==="featured-product")break;if(o.type==="text"&&o.data)Array.isArray(o.data.paragraphs)?o.data.paragraphs.forEach(u=>{u&&r.push(u.startsWith("<")?u:`<p>${u}<\/p>`)}):typeof o.data.text=="string"&&o.data.text&&r.push(o.data.text.startsWith("<")?o.data.text:`<p>${o.data.text}<\/p>`);else if(o.type==="section"&&o.data){let u=o.data.text||o.data.heading||o.data.title||"";u&&r.push(`<div class="tg-df-article-section-banner"><span>${u}<\/span><\/div>`)}}r.length>0&&(a=r.join(""))}}}catch(l){console.error("Error parsing articlepage",l)}return!a&&e.content?a=typeof e.content=="string"?e.content:"":!a&&e.intro?a=typeof e.intro=="string"?e.intro:"":!a&&e.paragraphs&&(a=(Array.isArray(e.paragraphs)?e.paragraphs:[e.paragraphs]).map(i=>`<p>${i}<\/p>`).join("")),{headline:t,strapline:n,contentHtml:a}}var ii=B(O(),1);function i0({articles:e,selectedArticleId:t}){if(!t)return null;let n=e.find(l=>l.id===t);if(!n)return null;let a=l0(n);return!a||!a.headline&&!a.strapline&&!a.contentHtml?null:(0,ii.jsxs)("div",{className:"tg-df-article-intro-container",id:"tg-df-article-intro",style:{margin:"0 auto 32px",width:"100%",maxWidth:"800px",textAlign:"left",padding:"0 16px"},children:[a.headline&&(0,ii.jsx)("h2",{className:"tg-df-article-headline",id:"tg-df-article-headline",style:{fontSize:"1.75rem",fontWeight:800,color:"#0f172a",marginBottom:"1rem",lineHeight:1.25},children:a.headline}),a.strapline&&(0,ii.jsx)("p",{className:"tg-df-article-strapline",id:"tg-df-article-strapline",style:{fontSize:"1.125rem",fontWeight:600,color:"#334155",marginBottom:"1.25rem",lineHeight:1.4},children:a.strapline}),a.contentHtml&&(0,ii.jsx)("div",{className:"tg-df-article-content",id:"tg-df-article-content",dangerouslySetInnerHTML:{__html:a.contentHtml}})]})}var Fn=B(O(),1);function Zw({articles:e,authorHandle:t,authorName:n}){let a=n||e.length>0&&(e[0].articleauthortext?.[0]||e[0].articleauthor?.[0])||"Author";(t==="all-authors"||n==="all-authors"||n==="All authors")&&(a="All authors");let l=a.trim().split(" ")[0]||"Author";return a==="All authors"&&(l="All authors"),`Shop all ${l==="All authors"?"authors'":l.endsWith("'s")||l.endsWith("\u2019s")?l:`${l}'s`} collections`}function Ww(e){let t=[];return e.documentnametext&&t.push(e.documentnametext),e.documentname&&t.push(e.documentname),e.articlename&&t.push(Array.isArray(e.articlename)?e.articlename[0]:e.articlename),e.articlesocialtitle&&Array.isArray(e.articlesocialtitle)&&t.push(...e.articlesocialtitle),t.length>0?t.reduce((n,a)=>a&&a.length<n.length?a:n,t[0]):"Article"}function r0({articles:e,authorHandle:t,authorName:n,onChange:a,selectedArticleId:l,shortenedHeadlines:i}){return(0,Fn.jsx)("div",{className:"tg-df-top-bar",id:"tg-df-top-bar",style:{position:"relative",zIndex:100,margin:"0 auto 20px",width:"100%",display:"flex",justifyContent:"center"},children:(0,Fn.jsxs)("div",{className:"tg-df-sort-wrapper",style:{width:"auto",maxWidth:"320px",display:"inline-flex",position:"relative"},children:[(0,Fn.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",style:{position:"absolute",left:"14px",top:"50%",transform:"translateY(-50%)",width:"14px",height:"14px",color:"var(--tg-df-text-muted)",pointerEvents:"none",zIndex:2},children:(0,Fn.jsx)("path",{d:"M12 2l-10 4.5 10 4.5 10-4.5-10-4.5zm0 6.5l-8-3.6 8-3.6 8 3.6-8 3.6zm-10 6l10 4.5 10-4.5v-2.5l-10 4.5-10-4.5v2.5zm0 5l10 4.5 10-4.5v-2.5l-10 4.5-10-4.5v2.5z"})}),(0,Fn.jsxs)("select",{className:"tg-df-filter-select tg-df-article-select",style:{width:"100%",maxWidth:"320px",padding:"10px 36px 10px 38px",fontSize:"14px",fontWeight:500,borderRadius:"100px",border:"1px solid var(--tg-df-border)",color:"var(--tg-df-text)",backgroundColor:"var(--tg-df-bg-secondary)",appearance:"none",backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 14px center",textAlign:"left",textAlignLast:"left",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",cursor:"pointer"},value:l||"",onChange:r=>a(r.target.value),children:[(0,Fn.jsx)("option",{value:"",style:{textAlign:"left"},children:Zw({articles:e,authorHandle:t,authorName:n})}),e.map(r=>{let o=i?.[r.id]||Ww(r);return o&&o.length>38&&(o=o.substring(0,36)+"\u2026"),(0,Fn.jsx)("option",{value:r.id,style:{textAlign:"left"},children:o},r.id)})]})]})})}var A0=B(ft(),1);function o0(e,t=new Date){if(!e)return"";let n=new Date(e),a=Math.floor((t.getTime()-n.getTime())/1e3);if(a<60)return"Just now";let l=Math.floor(a/60);if(l<60)return`${l} min${l>1?"s":""} ago`;let i=Math.floor(l/60);if(i<24)return`${i} hr${i>1?"s":""} ago`;let r=Math.floor(i/24);if(r<30)return`${r} day${r>1?"s":""} ago`;let o=Math.floor(r/30);if(o<12)return`${o} mo${o>1?"s":""} ago`;let u=Math.floor(r/365);return`${u} yr${u>1?"s":""} ago`}function Iw(e){return e.replace(/<\/p\s*>/gi," ").replace(/<p[^>]*>/gi," ").replace(/<br\s*\/?>/gi," ").replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function _r(e,t,n){let a="";return n==="short"?a=e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"":a=e.articleauthorlongbio&&e.articleauthorlongbio[t]&&e.articleauthorlongbio[t]!=="null"?e.articleauthorlongbio[t]:e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"",a?Iw(a):""}function u0(e,t){return e.articleauthorrole&&e.articleauthorrole[t]&&e.articleauthorrole[t]!=="null"?e.articleauthorrole[t]:""}function c0(e,t){return e.articleauthormedia&&e.articleauthormedia[t]?e.articleauthormedia[t]:""}function ri(e){if(typeof e!="string"||!e.trim())return"";try{let t=new URL(e);if(t.hostname.toLowerCase()!=="cdn.mos.cms.futurecdn.net")return e;let n=/\.(?:jpe?g|png|webp)$/i;return!n.test(t.pathname)||/-\d+-\d+\.(?:jpe?g|png|webp)$/i.test(t.pathname)?e:(t.pathname=t.pathname.replace(n,"-480-80$&"),t.toString())}catch{return e}}function Uu(e,t=0){if(!e||!e.articleauthorsocialnetworks)return[];let n=e.articleauthorsocialnetworks[t];if(n||(n=e.articleauthorsocialnetworks[0]),!n)return[];let a=null;if(typeof n=="string")try{a=JSON.parse(n)}catch{try{a=JSON.parse(n.replace(/\\"/g,'"'))}catch{}}else typeof n=="object"&&n!==null&&(a=n);if(!a||typeof a!="object")return[];let l=[];for(let[i,r]of Object.entries(a)){if(!r)continue;let o="",u="";if(typeof r=="string"?o=r:typeof r=="object"&&r!==null&&(o=r.url||r.address||r.link||"",u=r.address||""),!o&&!u)continue;let c=i.toLowerCase().trim(),s=o||u;c==="email"?s.startsWith("mailto:")||(s=s.includes("@")?`mailto:${s}`:`mailto:${s}`):!s.startsWith("http://")&&!s.startsWith("https://")&&!s.startsWith("//")&&(s=`https://${s}`);let f=c.charAt(0).toUpperCase()+c.slice(1);c==="linkedin"?f="LinkedIn":c==="youtube"?f="YouTube":c==="tiktok"?f="TikTok":c==="twitch"?f="Twitch":c==="steam"?f="Steam":c==="github"?f="GitHub":c==="rss"?f="RSS":(c==="x"||c==="twitter")&&(f="X (Twitter)"),l.push({key:c,href:s,label:f})}return l}function ee(e){if(!e)return"";let t=String(e);for(let n=0;n<3;n+=1){let a=t.replace(/&/gi,"&").replace(/£/g,"\xA3").replace(/£/gi,"\xA3").replace(/$/g,"$").replace(/&dollar;/gi,"$").replace(/€/g,"\u20AC").replace(/€/gi,"\u20AC").replace(/&#(\d+);/g,(l,i)=>String.fromCharCode(Number(i))).replace(/&#x([0-9a-f]+);/gi,(l,i)=>String.fromCharCode(parseInt(i,16)));if(a===t)break;t=a}return t}var Ee=B(O(),1);function cf({authorUrl:e,deal:t}){if(!t.authorName)return null;let n=ee(String(t.authorName)),a=t.authorRole&&!["null","nul","undefined"].includes(String(t.authorRole).toLowerCase())?` \u2022 ${ee(String(t.authorRole))}`:"";return(0,Ee.jsx)("div",{className:"tg-df-author-line-desktop",style:{padding:"0 0 12px 0"},children:(0,Ee.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[t.authorImage&&(0,Ee.jsx)("img",{src:ri(t.authorImage),alt:n,className:"tg-df-author-img",width:"36",height:"36",style:{borderRadius:"50%",objectFit:"cover",flexShrink:0,aspectRatio:"1 / 1",minWidth:"36px",minHeight:"36px"}}),(0,Ee.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,Ee.jsx)("div",{style:{fontSize:"10px",color:"var(--tg-df-text-muted)",textTransform:"uppercase",letterSpacing:"0.5px",marginBottom:"2px",fontWeight:600},children:t.isReviewProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Product tested by:"}):t.isBuyingGuideProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Expert review by:"}):t.isFeatured?(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:"Top product"})," ","recommended by:"]}):(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:t.merchant})," ","deal recommended by:"]})}),(0,Ee.jsxs)("div",{style:{fontSize:"11px",color:"var(--tg-df-text)",lineHeight:1.2},children:[(0,Ee.jsx)("strong",{children:(0,Ee.jsx)("a",{href:e,target:"_blank",rel:"noopener",style:{textDecoration:"none",color:"inherit",borderBottom:"1px dotted var(--tg-df-text-muted)"},children:n})}),a,t.modifiedDate?(0,Ee.jsxs)("span",{style:{color:"var(--tg-df-text-muted)"},children:[" ","\u2022 ",o0(t.modifiedDate)]}):""]})]})]})})}var K=B(O(),1);function s0({authorUrl:e,deal:t,hideHawkPrices:n,msrpFormatted:a,sourceArticleUrl:l}){let i=ee(String(t.merchant||"")),r=ee(String(t.currency||""));if(t.isBuyingGuideProduct||t.isReviewProduct){let o=!!t.hasCommerceOffer,u=o&&!t.isCheckPrice,c=!!t.hawkPricePending,s=!!t.isReviewProduct&&!c&&!o,f=n&&o&&Array.isArray(t.hawkListings)?t.hawkListings.filter(m=>m?.merchant&&m?.url).slice(0,4):[],d=f.length>0;return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[c?(0,K.jsx)("div",{className:"tg-df-card-price-group","aria-live":"polite",children:(0,K.jsx)("span",{className:"tg-df-card-price",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"Checking live price\u2026"})}):d?(0,K.jsxs)("div",{className:"tg-df-card-listings",children:[(0,K.jsx)("span",{className:"tg-df-card-listings-title",children:"Today's cheapest prices:"}),(0,K.jsx)("div",{className:"tg-df-card-listings-links",children:f.map((m,v)=>{let A=ee(String(m.merchant));return(0,K.jsx)("a",{"aria-label":`View product at ${A}`,className:"tg-df-card-listing-link hawk-affiliate-link-container","data-fcaw-affiliate-link":"","data-merchant":A,"data-merchant-id":m.merchantId||void 0,"data-model-id":m.modelId||void 0,"data-product-key":m.productKey||void 0,href:m.url,rel:"sponsored nofollow noopener",target:"_blank",children:A},`${m.merchant}-${m.url}-${v}`)})})]}):u?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsxs)("div",{className:"tg-df-card-price-group",children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})]}):s?(0,K.jsx)("div",{className:"tg-df-card-price-group",children:(0,K.jsx)("span",{className:"tg-df-card-price tg-df-card-price--unavailable",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"No retail listing found"})}):null,(0,K.jsx)(cf,{authorUrl:e,deal:t}),!d&&(0,K.jsx)("a",{href:o?t.url:l,"data-fcaw-affiliate-link":o?"":void 0,target:"_blank",rel:o?"sponsored nofollow noopener":"noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},children:o?u?"VIEW DEAL":"CHECK PRICE":"READ REVIEW"})]})}return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[!(t.authorName&&!t.isFeatured)&&(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsx)("div",{className:"tg-df-card-price-group",children:t.isCheckPrice?(0,K.jsx)("span",{className:"tg-df-card-price",style:{fontSize:"15px",fontWeight:500,fontStyle:"italic"},children:"See price at retailer"}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})}),(0,K.jsx)(cf,{authorUrl:e,deal:t}),(0,K.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":"",target:"_blank",rel:"sponsored nofollow noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},"data-model-id":t.modelId||void 0,"data-product-key":t.productKey||void 0,"data-merchant-id":t.merchantId||void 0,children:t.isCheckPrice?"CHECK PRICE":t.isFeatured?"SHOP NOW":"VIEW DEAL"})]})}var Ze=B(O(),1);function d0({couponStatus:e,deal:t,onOpenVouchers:n}){let a=!!t.hasCommerceOffer;return(0,Ze.jsxs)("div",{className:"tg-df-card-image-box",children:[t.buyingGuideBadge?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge tg-df-buying-guide-badge",children:t.buyingGuideBadge}):t.savingLabel&&!t.isCheckPrice?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge",children:ee(t.savingLabel)}):null,(0,Ze.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":a?"":void 0,className:a?"hawk-affiliate-link-deal-widget":void 0,target:"_blank",rel:a?"sponsored nofollow noopener":"noopener",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:(0,Ze.jsx)("img",{src:t.image||void 0,alt:ee(String(t.title||"")),className:"tg-df-card-image",loading:"lazy",onError:l=>{t.fallbackImage&&!l.currentTarget.dataset.fb?(l.currentTarget.dataset.fb="1",l.currentTarget.src=t.fallbackImage):l.currentTarget.style.opacity="0"}})}),(0,Ze.jsxs)("div",{className:"tg-df-card-badges",children:[t.isPrime&&(0,Ze.jsxs)("span",{className:"tg-df-tag tg-df-tag-prime",children:[(0,Ze.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,Ze.jsx)("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})})," ","Prime"]}),!t.merchant?.toLowerCase().includes("amazon")&&(e==="loading"||e==="has")&&(0,Ze.jsx)("div",{className:"tg-df-coupon-wrapper",style:{display:"inline-flex",alignItems:"center"},children:e==="loading"?(0,Ze.jsx)("div",{className:"tg-df-coupon-spinner"}):(0,Ze.jsxs)("button",{type:"button",className:"tg-df-tag tg-df-tag-coupons",onClick:l=>{l.preventDefault(),n(t.merchant)},children:[(0,Ze.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Ze.jsx)("path",{d:"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"}),(0,Ze.jsx)("line",{x1:"7",y1:"7",x2:"7.01",y2:"7"})]})," ","Coupons"]})})]})]})}var ct=B(O(),1);function f0({label:e="Tom's Guide:",starRating:t,color:n="#1f69ff"}){if(!t||t<=0)return null;let a=Math.floor(t),l=t-a>=.5?1:0,i=Math.max(0,5-a-l),r=[];for(let o=0;o<a;o++)r.push((0,ct.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:n,stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})},`f${o}`));l&&r.push((0,ct.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"url(#halfGrad)",stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ct.jsx)("defs",{children:(0,ct.jsxs)("linearGradient",{id:"halfGrad",x1:"0",x2:"1",y1:"0",y2:"0",children:[(0,ct.jsx)("stop",{offset:"50%",stopColor:n}),(0,ct.jsx)("stop",{offset:"50%",stopColor:"transparent"})]})}),(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})]},"h"));for(let o=0;o<i;o++)r.push((0,ct.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:n,opacity:"0.35",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})},`e${o}`));return(0,ct.jsxs)("div",{className:"tg-df-card-stars",style:{display:"flex",alignItems:"center",marginBottom:"8px",fontSize:"13px",fontWeight:600,color:"var(--tg-df-text-muted)"},children:[e&&(0,ct.jsx)("span",{style:{marginRight:"6px"},children:e}),(0,ct.jsx)("div",{style:{display:"flex",gap:"2px"},children:r})]})}var At=B(O(),1);function g0({heading:e,items:t}){return t.length===0?null:(0,At.jsxs)("div",{style:{marginBottom:"10px"},children:[(0,At.jsx)("strong",{style:{display:"block",fontSize:"12px",marginBottom:"3px"},children:e}),(0,At.jsx)("ul",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:0,paddingLeft:"18px"},children:t.map(n=>{let a=ee(String(n));return(0,At.jsx)("li",{children:a},n)})})]})}function m0({cons:e=[],expanded:t,fullReviewUrl:n,onToggle:a,pros:l=[],subtitle:i="",truncateSubtitle:r=!1}){let o=l.length>0||e.length>0,u=ee(i);return!u&&!o?null:(0,At.jsxs)("div",{style:{marginBottom:"12px"},children:[u&&(0,At.jsx)("p",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:"0 0 8px",display:!t&&r?"-webkit-box":"block",WebkitLineClamp:!t&&r?3:void 0,WebkitBoxOrient:!t&&r?"vertical":void 0,overflow:!t&&r?"hidden":void 0},children:u}),t&&o&&(0,At.jsxs)("div",{children:[(0,At.jsx)(g0,{heading:"Pros",items:l}),(0,At.jsx)(g0,{heading:"Cons",items:e})]}),(o||r)&&(0,At.jsxs)("div",{className:"tg-df-review-summary-actions",style:{alignItems:"flex-start",display:"flex",flexDirection:"column",gap:t&&n?"4px":0},children:[t&&n&&(0,At.jsx)("a",{href:n,target:"_blank",rel:"noopener",className:"tg-df-review-full-link",style:{alignItems:"center",color:"var(--tg-df-blue)",display:"flex",fontSize:"12px",fontWeight:700,minHeight:"40px",paddingRight:"12px",textDecoration:"underline"},children:"Read our full review"}),(0,At.jsx)("button",{type:"button",onClick:c=>{c.preventDefault(),c.stopPropagation(),a()},className:"tg-df-review-summary-toggle",style:{appearance:"none",background:"transparent",border:"none",color:"#000000",cursor:"pointer",fontFamily:"inherit",fontSize:"11px",fontWeight:700,minHeight:"40px",padding:"0 12px 0 0",textTransform:"uppercase"},children:t?"LESS":"READ MORE"})]})]})}var oi=B(ft(),1);var Br=B(O(),1);function h0({text:e,expanded:t,onToggle:n}){let[a,l]=(0,oi.useState)(!1),i=(0,oi.useRef)(null),r=ee(e);return(0,oi.useEffect)(()=>{i.current&&l(i.current.scrollHeight>i.current.clientHeight||i.current.scrollHeight>60)},[r]),r?(0,Br.jsxs)("div",{style:{marginBottom:"12px",position:"relative"},children:[(0,Br.jsx)("p",{ref:i,style:{fontSize:"13px",color:"var(--tg-df-text-muted)",marginBottom:"0",lineHeight:"1.4",display:t?"inline":"-webkit-box",WebkitLineClamp:t?"unset":3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:r}),a&&(0,Br.jsx)("button",{type:"button",onClick:o=>{o.preventDefault(),o.stopPropagation(),n()},style:{display:"block",appearance:"none",border:"none",color:"#000000",fontSize:"11px",fontWeight:700,textTransform:"uppercase",cursor:"pointer",fontFamily:"inherit",position:t?"static":"absolute",bottom:"2px",right:0,background:t?"transparent":"linear-gradient(to right, transparent, #fff 20%, #fff)",padding:t?"0":"0 0 0 16px"},children:t?"LESS":"READ MORE"})]}):null}var p0={pcgamer:"#DC191B",space:"#2E4A7F",tomsguide:"#1F69FF",techradar:"#E40784",golfmonthly:"#FFFFFF",androidcentral:"#1CCC3E",cinemablend:"#FFC033",creativebloq:"#DC361A",cyclingnews:"#371B51",cyclingweekly:"#AE1305",decanter:"#1B1B1B",digitalcameraworld:"#CAEBF2",fitandwell:"#BED100",fourfourtwo:"#AE1006",gamesradar:"#DC361A",guitarplayer:"#FFFFFF",guitarworld:"#DC1F26",homesandgardens:"#185A7D",idealhome:"#CAEBF2",imore:"#FFD600",livescience:"#023953",livingetc:"#FFFFFF",loudersound:"#DC0F17",marieclaireus:"#FFFFFF",marieclaireuk:"#FFFFFF",musicradar:"#006EA9",shortlist:"#2853E0",t3:"#DF0A14",theweek:"#DF0A14",theweekjuniorus:"#10A0B0",tomshardware:"#D8373B",wallpaper:"#FFFFFF",whathifi:"#E02928",whowhatwear:"#FFFFFF",windowscentral:"#CE0E5F",womanandhome:"#2F746E"},Nr={tomsguide:"https://proof.vanilla.tools/media/images/brandLogos/tomsguide.png",techradar:"https://proof.vanilla.tools/media/images/brandLogos/techradar.png",tomshardware:"https://proof.vanilla.tools/media/images/brandLogos/tomshardware.png",pcgamer:"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png",gamesradar:"https://proof.vanilla.tools/media/images/brandLogos/gamesradar.png",creativebloq:"https://proof.vanilla.tools/media/images/brandLogos/creativebloq.png",space:"https://proof.vanilla.tools/media/images/brandLogos/space.png",livescience:"https://proof.vanilla.tools/media/images/brandLogos/livescience.png",cinemablend:"https://proof.vanilla.tools/media/images/brandLogos/cinemablend.png",marieclaireus:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireus.png",marieclaireuk:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireuk.png",homesandgardens:"https://proof.vanilla.tools/media/images/brandLogos/homesandgardens.png",whowhatwear:"https://proof.vanilla.tools/media/images/brandLogos/whowhatwear.png",idealhome:"https://proof.vanilla.tools/media/images/brandLogos/idealhome.png",womanandhome:"https://proof.vanilla.tools/media/images/brandLogos/womanandhome.png",livingetc:"https://proof.vanilla.tools/media/images/brandLogos/livingetc.png",t3:"https://proof.vanilla.tools/media/images/brandLogos/t3.png",whathifi:"https://proof.vanilla.tools/media/images/brandLogos/whathifi.png",digitalcameraworld:"https://proof.vanilla.tools/media/images/brandLogos/digitalcameraworld.png",fitandwell:"https://proof.vanilla.tools/media/images/brandLogos/fitandwell.png",golfmonthly:"https://proof.vanilla.tools/media/images/brandLogos/golfmonthly.png",musicradar:"https://proof.vanilla.tools/media/images/brandLogos/musicradar.png",windowscentral:"https://proof.vanilla.tools/media/images/brandLogos/windowscentral.png",cyclingnews:"https://proof.vanilla.tools/media/images/brandLogos/cyclingnews.png",cyclingweekly:"https://proof.vanilla.tools/media/images/brandLogos/cyclingweekly.png",loudersound:"https://proof.vanilla.tools/media/images/brandLogos/loudersound.png",guitarworld:"https://proof.vanilla.tools/media/images/brandLogos/guitarworld.png",guitarplayer:"https://proof.vanilla.tools/media/images/brandLogos/guitarplayer.png",wallpaper:"https://proof.vanilla.tools/media/images/brandLogos/wallpaper.png",fourfourtwo:"https://proof.vanilla.tools/media/images/brandLogos/fourfourtwo.png",shortlist:"https://proof.vanilla.tools/media/images/brandLogos/shortlist.png",advnture:"https://proof.vanilla.tools/media/images/brandLogos/advnture.png",countrylife:"https://proof.vanilla.tools/media/images/brandLogos/countrylife.png",gardeningknowhow:"https://proof.vanilla.tools/media/images/brandLogos/gardeningknowhow.png",gnomesingardens:"https://proof.vanilla.tools/media/images/brandLogos/gnomesingardens.png",kiplinger:"https://proof.vanilla.tools/media/images/brandLogos/kiplinger.png",moneyweek:"https://proof.vanilla.tools/media/images/brandLogos/moneyweek.png",toptenreviews:"https://proof.vanilla.tools/media/images/brandLogos/toptenreviews.png"},Gu={tomsguide:"Tom's Guide",techradar:"TechRadar",tomshardware:"Tom's Hardware",pcgamer:"PC Gamer",gamesradar:"GamesRadar+",creativebloq:"Creative Bloq",space:"Space",livescience:"Live Science",cinemablend:"CinemaBlend",marieclaireus:"Marie Claire US",marieclaireuk:"Marie Claire UK",homesandgardens:"Homes & Gardens",whowhatwear:"Who What Wear",idealhome:"Ideal Home",womanandhome:"Woman & Home",livingetc:"Living Etc",t3:"T3",whathifi:"What Hi-Fi?",digitalcameraworld:"Digital Camera World",fitandwell:"Fit & Well",golfmonthly:"Golf Monthly",musicradar:"MusicRadar",androidcentral:"Android Central",imore:"iMore",windowscentral:"Windows Central",cyclingnews:"Cycling News",cyclingweekly:"Cycling Weekly",loudersound:"Louder Sound",guitarworld:"Guitar World",guitarplayer:"Guitar Player",theweek:"The Week",theweekjuniorus:"The Week Junior US",wallpaper:"Wallpaper",decanter:"Decanter",fourfourtwo:"FourFourTwo",shortlist:"ShortList",advnture:"Advnture",countrylife:"Country Life",gardeningknowhow:"Gardening Know How",gnomesingardens:"Gnomes in Gardens",kiplinger:"Kiplinger",moneyweek:"Money Week",toptenreviews:"Top 10 Reviews"},y0={pcgamer:[{key:"steam",href:"https://steamcommunity.com/groups/pcgamer",label:"PC Gamer on Steam"},{key:"x",href:"https://twitter.com/pcgamer",label:"PC Gamer on X"},{key:"facebook",href:"https://www.facebook.com/pcgamermagazine",label:"PC Gamer on Facebook"},{key:"instagram",href:"https://www.instagram.com/pcgamer_mag/?hl=en",label:"PC Gamer on Instagram"},{key:"youtube",href:"https://www.youtube.com/user/pcgamer",label:"PC Gamer on YouTube"},{key:"twitch",href:"https://www.twitch.tv/pcgamer",label:"PC Gamer on Twitch"},{key:"tiktok",href:"https://www.tiktok.com/@pcgamer_mag?lang=en",label:"PC Gamer on TikTok"}],homesandgardens:[{key:"instagram",href:"https://www.instagram.com/homesandgardensofficial",label:"Homes & Gardens on Instagram"},{key:"facebook",href:"https://www.facebook.com/homesandgardens/",label:"Homes & Gardens on Facebook"},{key:"x",href:"https://x.com/homesandgardens",label:"Homes & Gardens on X"},{key:"tiktok",href:"https://www.tiktok.com/@homesandgardensofficial",label:"Homes & Gardens on TikTok"},{key:"pinterest",href:"https://pinterest.com/homesgardensofficial/",label:"Homes & Gardens on Pinterest"}],whowhatwear:[{key:"x",href:"https://twitter.com/WhoWhatWear",label:"Who What Wear on X"},{key:"instagram",href:"https://www.instagram.com/whowhatwear/",label:"Who What Wear on Instagram"},{key:"facebook",href:"https://www.facebook.com/WhoWhatWear/",label:"Who What Wear on Facebook"},{key:"pinterest",href:"https://www.pinterest.co.uk/whowhatwearuk/",label:"Who What Wear on Pinterest"},{key:"tiktok",href:"https://www.tiktok.com/@whowhatwear.uk",label:"Who What Wear on TikTok"}]};var Ot=B(O(),1);function v0(e){return String(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ").trim().toLowerCase()}function Jw(e){let t=ee(String(e.brand||"")).trim(),n=ee(String(e.productName||e.title||"")).trim(),a=v0(t),l=v0(n);return a.length>0&&l.startsWith(a)&&!/^[a-z0-9]/.test(l.slice(a.length))||!t?n:`${t} ${n}`.trim()}function b0({couponStatus:e,deal:t,editorMode:n,hideHawkPrices:a,isDescriptionExpanded:l,isSelected:i,onDescriptionToggle:r,onOpenVouchers:o,onSelectionChange:u,website:c}){let s=ee(String(t.currency||"")),f=t.rawMsrp?s+t.rawMsrp:null,d=Jw(t),m=ee(String(t.title||"")),v=Gu[c||"tomsguide"]||c||"Tom's Guide",A=(c||"tomsguide").includes(".")?(c||"").startsWith("http")?c:`https://${c}`:`https://www.${c||"tomsguide"}.com`,b=(t.documentUrl||"").replace(/^\/+/,""),h=b.startsWith("http://")||b.startsWith("https://")?b:`${A}/${b}`,g=String(t.sourceArticleUrl||t.documentUrl||t.url||"").replace(/^\/+/,""),p=g.startsWith("http://")||g.startsWith("https://")?g:`${A}/${g}`,y=!!t.hasCommerceOffer;return(0,Ot.jsxs)("div",{className:"tg-df-card","data-brand":t.modelBrand||t.brand||void 0,"data-currency":t.isoCurrencyCode||s||void 0,"data-deal-id":t.externalProductId||t.id||void 0,"data-merchant":t.merchant||void 0,"data-merchant-id":t.merchantId||void 0,"data-model-id":t.modelId||void 0,"data-previous-price":t.rawMsrp||void 0,"data-price":t.rawPrice||void 0,"data-product-key":t.productKey||void 0,"data-product-name":t.productName||t.title||void 0,"data-review-product":t.isReviewProduct?"true":void 0,"data-source-article-url":t.isReviewProduct?p:void 0,children:[n&&(0,Ot.jsx)("input",{type:"checkbox",className:"tg-df-deal-checkbox",checked:i,onChange:C=>u(C.target.checked)}),(0,Ot.jsx)(d0,{couponStatus:e,deal:t,onOpenVouchers:o}),(0,Ot.jsxs)("div",{className:"tg-df-card-body",children:[(0,Ot.jsx)("h3",{className:"tg-df-card-title",title:m,children:(0,Ot.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":y?"":void 0,className:y?"hawk-affiliate-link-container":void 0,target:"_blank",rel:y?"sponsored nofollow noopener":"noopener",style:{textDecoration:"none",color:"inherit"},children:(0,Ot.jsx)("strong",{children:d})})}),(0,Ot.jsx)(f0,{label:t.isBuyingGuideProduct?"":`${v} rating:`,starRating:t.starRating,color:t.isReviewProduct?"var(--tg-df-blue)":void 0}),t.isBuyingGuideProduct||t.isReviewProduct?(0,Ot.jsx)(m0,{cons:t.cons,expanded:l,fullReviewUrl:t.isReviewProduct&&g?p:void 0,onToggle:r,pros:t.pros,subtitle:t.isReviewProduct?t.description:t.subtitle,truncateSubtitle:t.isReviewProduct}):t.description?(0,Ot.jsx)(h0,{text:t.description,expanded:l,onToggle:r}):null,(0,Ot.jsx)(s0,{authorUrl:h,deal:t,hideHawkPrices:a,msrpFormatted:f,sourceArticleUrl:p})]})]})}var ce=B(O(),1);function $w({activeDealTag:e,activeFreeformTags:t=[],query:n,selectedBrands:a=[]}){let l=o=>{let u=String(o||"").trim();return u&&u.toLowerCase()!=="everything"?u:""},r=(t.length>0?t:e?[e]:a.length>0?a:[n]).map(l).filter(Boolean).map(o=>o.replace(/\s+deals?$/i,"").trim()).filter((o,u,c)=>c.findIndex(s=>s.toLowerCase()===o.toLowerCase())===u);return r.length<=1?r[0]||"":`${r.slice(0,-1).join(", ")} or ${r.at(-1)}`}function e2(){return(0,ce.jsx)(ce.Fragment,{children:Array.from({length:6}).map((e,t)=>(0,ce.jsxs)("div",{className:"tg-df-card",children:[(0,ce.jsx)("div",{className:"tg-df-card-image-box tg-df-skeleton"}),(0,ce.jsxs)("div",{className:"tg-df-card-body",children:[(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short",style:{marginBottom:"24px"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title",style:{width:"80%"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short"}),(0,ce.jsx)("div",{className:"tg-df-card-cta tg-df-skeleton",style:{width:"100%",height:"40px",marginTop:"auto",border:"none"}})]})]},t))})}function t2(e,t){return{"@context":"https://schema.org","@type":"ItemList",itemListElement:e.slice(0,t).map((n,a)=>{let l="USD";return n.currency==="\xA3"?l="GBP":n.currency==="\u20AC"?l="EUR":n.currency==="A$"?l="AUD":n.currency==="CA$"&&(l="CAD"),{"@type":"ListItem",position:a+1,item:{"@type":"Product",name:n.title,image:n.image||"",description:n.description||"",brand:{"@type":"Brand",name:n.brand||""},offers:{"@type":"Offer",priceCurrency:l,price:n.rawPrice||0,url:n.url||"",seller:{"@type":"Organization",name:n.merchant||""}}}}}).filter(n=>n.item.name)}}function w0({activeDealTag:e,activeFreeformTags:t,couponMap:n,deals:a,displayCount:l,editorMode:i,error:r,expandedDealIds:o,hasMore:u,hideHawkPrices:c,loading:s,loadingMore:f,loadMoreStartCount:d,onDescriptionToggle:m,onLoadMore:v,onOpenVouchers:A,query:b,recentDealsOnly:h,selectedBrands:g,selectedDeals:p,setSelectedDeals:y,website:C}){let R=$w({activeDealTag:e,activeFreeformTags:t,query:b,selectedBrands:g}),T=f&&d!=null?d:l,M=!f&&d!=null&&d<T?d:null,w=D=>D.map(k=>(0,ce.jsx)(A0.default.Fragment,{children:(0,ce.jsx)(b0,{couponStatus:n[k.merchant],deal:k,editorMode:i,hideHawkPrices:c,isDescriptionExpanded:o.has(k.id),isSelected:p.has(k.id),onDescriptionToggle:()=>m(k.id),onOpenVouchers:A,onSelectionChange:se=>{let I=new Map(p);se?I.set(k.id,k):I.delete(k.id),y(I)},website:C})},k.id));return(0,ce.jsx)("div",{className:"tg-df-grid-wrapper",children:(0,ce.jsx)("div",{className:"tg-df-grid article-body tg-df-grid-auto",id:"tg-df-grid",children:s?(0,ce.jsx)(e2,{}):r?(0,ce.jsx)("div",{className:"tg-df-message",children:"Failed to load deals. Please try again."}):a.length===0?(0,ce.jsx)("div",{className:"tg-df-message",children:h?`No ${R?`${R} `:""}deals found from the last 30 days.`:!b||b.length<=2||b.toLowerCase()==="everything"?"No deals found for this author.":`No savings squad match your search for "${b}".`}):(0,ce.jsxs)(ce.Fragment,{children:[w(a.slice(0,M??T)),M!=null&&(0,ce.jsx)("div",{"aria-live":"polite",className:"tg-df-load-more-boundary",style:{alignItems:"center",color:"var(--tg-df-text-muted)",display:"flex",fontSize:"13px",fontWeight:600,gridColumn:"1 / -1",justifyContent:"center",marginTop:"16px",minHeight:"40px",overflowAnchor:"none"},children:"More products"}),M!=null&&w(a.slice(M,T)),u&&(0,ce.jsx)("div",{className:"tg-df-load-more-control",style:{width:"100%",display:"flex",justifyContent:"center",marginTop:"16px",gridColumn:"1 / -1",overflowAnchor:"none"},children:(0,ce.jsx)("button",{type:"button",className:"tg-df-tag-outline",style:{padding:"8px 24px",borderRadius:"100px",fontWeight:600,fontSize:"14px",cursor:"pointer"},"aria-busy":f,disabled:f,onClick:D=>{D.preventDefault(),D.stopPropagation(),v()},children:f?"Loading more products\u2026":"Load More"})}),a.length>0&&(0,ce.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(t2(a,T))}})]})})})}var S0=B(O(),1);var pn=B(ft(),1),nn=B(O(),1);function Pu({onScrollLeft:e,onScrollRight:t,showLeft:n,showRight:a}){return(0,nn.jsxs)(nn.Fragment,{children:[(0,nn.jsx)("button",{"aria-label":"Scroll left",className:"tg-df-scroll-btn left tg-df-desktop-only",onClick:e,style:{display:n?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,nn.jsx)("button",{"aria-label":"Scroll right",className:"tg-df-scroll-btn right tg-df-desktop-only",onClick:t,style:{display:a?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})}function qu(e){let t=(0,pn.useRef)(null),[n,a]=(0,pn.useState)(!1),[l,i]=(0,pn.useState)(!1),r=(0,pn.useCallback)(()=>{let u=t.current;u&&(a(u.scrollLeft>1),i(Math.ceil(u.scrollLeft+u.clientWidth)<u.scrollWidth-1))},[]);(0,pn.useLayoutEffect)(()=>{let u=t.current;if(!u)return;r();let c=requestAnimationFrame(r),s=typeof ResizeObserver>"u"?null:new ResizeObserver(r);return s?.observe(u),()=>{cancelAnimationFrame(c),s?.disconnect()}},[e,r]);let o=(0,pn.useCallback)(u=>{t.current?.scrollBy({left:u,behavior:"smooth"})},[]);return{onScroll:r,railRef:t,scrollLeft:()=>o(-240),scrollRight:()=>o(240),showLeft:n,showRight:l}}var jn=B(O(),1);function ui({containerClassName:e,itemClassName:t,items:n,loading:a,loadingKey:l,onItemClick:i,rowClassName:r,showCounters:o}){let u=qu(n.length);return n.length===0&&!a?null:(0,jn.jsxs)("div",{className:e,style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[n.length>0&&(0,jn.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,jn.jsx)("div",{className:r,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none"},onScroll:u.onScroll,children:n.length>0?n.map(c=>(0,jn.jsxs)("button",{className:t,onClick:()=>i(c.key),style:{border:"none",borderRight:"1px solid var(--tg-df-border)",padding:"12px 20px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"1px",cursor:"pointer",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:"6px",...t==="tg-df-brand-row-item"?{transition:"all 0.2s ease"}:{},background:c.selected?"var(--tg-df-bg-secondary)":"var(--tg-df-bg)",color:c.selected?"var(--tg-df-text-primary)":"var(--tg-df-text-muted)",fontWeight:c.selected?600:500},children:[c.label," ",l===c.key&&(0,jn.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading",style:{borderWidth:"2px",height:"12px",width:"12px"}}),o!==!1&&(0,jn.jsx)("span",{style:{color:"var(--tg-df-blue)",fontSize:"10px",...t==="tg-df-brand-row-item"?{fontWeight:400}:{}},children:c.count})]},c.key)):[1,2,3,4,5].map(c=>(0,jn.jsx)("div",{className:"tg-df-skeleton",style:{height:"36px",width:"80px",borderRadius:"18px",flexShrink:0,margin:"8px 12px"}},`${r}-skeleton-${c}`))})]})}var R0=B(O(),1);function C0({airedaleBrands:e,brands:t,loading:n,refreshing:a,onBrandToggle:l,selectedBrands:i,showAuthorCounters:r}){let o=e.length>0?e:t||[],u=o.slice(0,15).map(c=>({count:c.count||0,key:c.formatted_value,label:c.formatted_value,selected:i?.includes(c.formatted_value)||!1}));return(0,R0.jsx)(ui,{containerClassName:"tg-df-brands-row-container",itemClassName:"tg-df-brand-row-item",items:u,loading:n&&o.length===0,loadingKey:a?i?.[0]:null,onItemClick:c=>l?.(c),rowClassName:"tg-df-brands-row",showCounters:r})}var E0=B(O(),1);function T0({activeDealTag:e,airedaleTagCounts:t,airedaleTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>{let c=u.split(":::"),s=c[0];return{count:t[u]||0,key:s,label:c[1]||u,selected:e===s}});return(0,E0.jsx)(ui,{containerClassName:"tg-df-categories-row-container",itemClassName:"tg-df-category-row-item",items:o,loading:a&&n.length===0,loadingKey:l?e:null,onItemClick:i,rowClassName:"tg-df-categories-row",showCounters:r})}var x0=B(O(),1);function D0({activeFreeformTags:e,freeformTagCounts:t,freeformTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>({count:t[u.handle]||0,key:u.handle,label:u.label,selected:e.includes(u.handle)}));return(0,x0.jsx)(ui,{containerClassName:"tg-df-freeform-tags-row-container",itemClassName:"tg-df-freeform-tag-row-item",items:o,loading:a&&n.length===0,loadingKey:l&&e.at(-1)||null,onItemClick:i,rowClassName:"tg-df-freeform-tags-row",showCounters:r})}var _e=B(O(),1),n2=4;function M0({authors:e,clickedAuthorOverride:t,loading:n,refreshing:a,onAuthorClick:l,overriddenAuthorHandle:i,overriddenAuthorName:r,website:o}){let u=qu(e.length);return e.length===0&&!n?null:(0,_e.jsxs)("div",{className:"tg-df-authors-row-container",style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[e.length>0&&(0,_e.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,_e.jsx)("div",{className:"tg-df-authors-row tg-df-mobile-authors",onScroll:u.onScroll,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none",gap:"24px",padding:"4px 16px 2px 16px",alignItems:"flex-start"},children:e.length>0?e.map((c,s)=>{let f=Nr[c.brandKey]||Nr[o||"tomsguide"],d=t&&(i===c.handle||r===c.fullName);return(0,_e.jsxs)("div",{className:"tg-df-author-row-item",onClick:()=>l(c),style:{cursor:"pointer",display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px",opacity:t?d?1:.4:1},children:[(0,_e.jsxs)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px",borderRadius:"50%",boxShadow:d?"0 0 0 3px var(--tg-df-blue, #1F69FF)":"none"},children:[(0,_e.jsx)("img",{src:ri(c.image),alt:c.fullName,decoding:"async",loading:s<n2?"eager":"lazy",style:{width:"100%",height:"100%",borderRadius:"50%",objectFit:"cover",filter:t&&!d?"grayscale(100%)":"none"}}),d&&(0,_e.jsx)("span",{"aria-label":`Clear ${c.fullName} selection`,className:"tg-df-author-clear-badge",title:"Click again to clear selection",style:{alignItems:"center",backgroundColor:"#dc2626",border:"2px solid var(--tg-df-bg, #fff)",borderRadius:"50%",boxShadow:"0 1px 3px rgb(0 0 0 / 25%)",color:"#fff",display:"flex",fontSize:"15px",fontWeight:700,height:"20px",justifyContent:"center",lineHeight:1,position:"absolute",right:"-5px",top:"-5px",width:"20px",zIndex:1},children:(0,_e.jsx)("span",{"aria-hidden":"true",style:{display:"block",transform:"translateY(-1px)"},children:"\xD7"})}),f&&(0,_e.jsx)("img",{src:f,alt:"",className:"tg-df-author-brand-logo",decoding:"async",loading:"lazy",style:{position:"absolute",bottom:"-4px",right:"-4px",width:"24px",height:"24px",borderRadius:"50%",border:"2px solid var(--tg-df-bg, #fff)",backgroundColor:"#000",objectFit:"contain",filter:t&&!d?"grayscale(100%)":"none"}})]}),(0,_e.jsxs)("div",{style:{textAlign:"center"},children:[(0,_e.jsxs)("div",{className:"tg-df-author-row-name",style:{fontSize:"13px",fontWeight:700,color:"var(--tg-df-text)",lineHeight:"1.2"},children:[c.name,a&&d&&(0,_e.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading author products",style:{borderWidth:"2px",display:"inline-block",height:"11px",marginLeft:"4px",width:"11px"}})]}),c.role&&(0,_e.jsx)("div",{className:"tg-df-author-row-role",style:{fontSize:"11px",color:"var(--tg-df-text-muted)",lineHeight:"1.2",marginTop:"2px",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",wordBreak:"break-word"},children:c.role})]})]},c.handle)}):[1,2,3,4].map(c=>(0,_e.jsxs)("div",{className:"tg-df-author-row-item",style:{display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px"},children:[(0,_e.jsx)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px"},children:(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{width:"100%",height:"100%",borderRadius:"50%"}})}),(0,_e.jsxs)("div",{style:{textAlign:"center",width:"100%"},children:[(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"12px",width:"80%",margin:"0 auto 4px auto",borderRadius:"2px"}}),(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"10px",width:"60%",margin:"0 auto",borderRadius:"2px"}})]})]},`author-skeleton-${c}`))})]})}var Ja=B(O(),1);function _0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,freeformTagCounts:i,freeformTags:r,allAuthorsList:o,brands:u,clickedAuthorOverride:c,loading:s,refreshing:f,onAuthorClick:d,onBrandToggle:m,onTagClick:v,onFreeformTagClick:A,overriddenAuthorHandle:b,overriddenAuthorName:h,selectedBrands:g,showAuthorRail:p,showAuthorCounters:y,showBrandRail:C,showCategoryRail:R,showFreeformTagRail:T,website:M}){let w=R!==!1&&l.length>0||T!==!1&&r.length>0||C!==!1&&(n.length>0||!!u?.length)||p&&o.length>0;return!(p||R!==!1||T!==!1||C!==!1)||!w&&!s?null:(0,Ja.jsxs)("div",{id:"tg-df-spreadsheet-filters",style:{display:"block",marginBottom:"16px"},children:[p&&(0,Ja.jsx)(M0,{authors:o,clickedAuthorOverride:c,loading:s&&o.length===0,refreshing:f,onAuthorClick:d,overriddenAuthorHandle:b,overriddenAuthorName:h,website:M}),R!==!1&&(0,Ja.jsx)(T0,{activeDealTag:e,airedaleTagCounts:a,airedaleTags:l,loading:s,refreshing:f,onTagClick:v,showAuthorCounters:y}),T!==!1&&(0,Ja.jsx)(D0,{activeFreeformTags:t,freeformTagCounts:i,freeformTags:r,loading:s,refreshing:f,onTagClick:A,showAuthorCounters:y}),C!==!1&&(0,Ja.jsx)(C0,{airedaleBrands:n,brands:u,loading:s,refreshing:f,onBrandToggle:m,selectedBrands:g,showAuthorCounters:y})]})}var O0=B(ft(),1);var B0=[{value:"date_desc",label:"Most recent"},{value:"rating_desc",label:"Highest rating"},{value:"scored_first",label:"Scored products first"}];function Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}){return!!(a&&e!==!0&&t===!1&&n===!1)}function Fu({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a,lightweightReviewDelivery:l,showPriceDiscountFilters:i,showReviewSort:r}){return!!(l&&i===!1&&r===!1&&Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}))}function ju(e=!0){return e?B0:B0.filter(t=>t.value!=="scored_first")}function wa(e,t=!0){return!t&&e==="scored_first"?"date_desc":e||"date_desc"}var H=B(O(),1),N0=[{value:"all",label:"All Prices",shortLabel:""},{value:"under50",label:"Under $50",shortLabel:"< $50"},{value:"50_100",label:"$50 - $100",shortLabel:"$50-$100"},{value:"100_200",label:"$100 - $200",shortLabel:"$100-$200"},{value:"200_500",label:"$200 - $500",shortLabel:"$200-$500"},{value:"over500",label:"Over $500",shortLabel:"> $500"}],a2=[{value:"0",label:"Any discount"},...[5,10,15,20,25,30,40,50,60,70].map(e=>({value:String(e),label:`Min ${e}% off`}))];function l2({open:e}){return(0,H.jsx)("svg",{"aria-hidden":"true",className:e?"is-open":void 0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("path",{d:"m6 9 6 6 6-6"})})}function Yn(){return(0,H.jsx)("svg",{"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("polyline",{points:"20 6 9 17 4 12"})})}function k0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,brands:i,discountAmount:r,enabled:o,freeformTagCounts:u,freeformTags:c,includeScoredFirst:s,onBrandSelect:f,onBrandToggle:d,onDiscountAmountChange:m,onFreeformTagClear:v,onFreeformTagToggle:A,onPriceRangeChange:b,onReviewSortChange:h,onTagClear:g,onTagClick:p,priceRange:y,reviewSort:C,selectedBrands:R,showCounters:T,showBrandRail:M,showCategoryRail:w,showFreeformTagRail:D,showPriceDiscountFilters:k,showReviewSort:se}){let[I,j]=(0,O0.useState)(null);if(!o)return null;let He=l.map(x=>{let P=x.split(":::");return{count:a[x]||0,handle:P[0],label:P[1]||x}}),ze=n.length>0?n:i||[],St=He.find(x=>x.handle===e),Ie=y||"all",rn=!r||r==="all"?"0":r,Be=N0.find(x=>x.value===Ie),Je=k!==!1,nt=wa(C,s),X=ju(s),de=nt==="rating_desc"?"Highest rating":nt==="scored_first"?"Scored first":"Most recent",$e=x=>{j(P=>P===x?null:x)},Z=[];return w!==!1&&Z.push({active:!!e,label:`CATEGORIES${St?` (${St.label})`:""}`,menu:"categories"}),D!==!1&&Z.push({active:t.length>0,label:`KEYWORDS${t.length>0?` (${t.length})`:""}`,menu:"keywords"}),M!==!1&&Z.push({active:R.length>0,label:`BRANDS${R.length>0?` (${R.length})`:""}`,menu:"brands"}),Je&&Z.push({active:Ie!=="all",label:`PRICES${Be?.shortLabel?` (${Be.shortLabel})`:""}`,menu:"prices"}),(Je||se)&&Z.push({active:se?nt!=="date_desc":rn!=="0",label:se?`SORT REVIEWS (${de})`:`DISCOUNTS${rn!=="0"?` (${rn}%+)`:""}`,menu:se?"review-sort":"discounts"}),(0,H.jsxs)("div",{className:"tg-df-mobile-2x2-container",children:[(0,H.jsx)("div",{className:`tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--${Z.length%2===0?"even":"odd"}`,children:Z.map(x=>(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-grid-cell${x.active?" has-active-filter":""}${I===x.menu?" active":""}`,"aria-expanded":I===x.menu,onClick:()=>$e(x.menu),children:[(0,H.jsx)("span",{children:x.label}),(0,H.jsx)(l2,{open:I===x.menu})]},x.menu))}),w!==!1&&I==="categories"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${e?"":" selected"}`,onClick:()=>{g(),j(null)},children:[(0,H.jsx)("span",{children:"All Categories"}),!e&&(0,H.jsx)(Yn,{})]}),He.map(x=>{let P=e===x.handle;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{p(x.handle),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},x.handle)})]}),M!==!1&&I==="brands"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${R.length===0?" selected":""}`,onClick:()=>f?.([]),children:[(0,H.jsx)("span",{children:"All Brands"}),R.length===0&&(0,H.jsx)(Yn,{})]}),ze.map(x=>{let P=x.formatted_value,Q=R.includes(P);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${Q?" selected":""}`,onClick:()=>d?.(P),children:[(0,H.jsx)("span",{children:P}),Q?(0,H.jsx)(Yn,{}):T!==!1&&x.count?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},P)})]}),D!==!1&&I==="keywords"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${t.length===0?" selected":""}`,onClick:()=>{v(),j(null)},children:[(0,H.jsx)("span",{children:"All Keywords"}),t.length===0&&(0,H.jsx)(Yn,{})]}),c.map(x=>{let P=t.includes(x.handle);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>A(x.handle),children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1&&u[x.handle]?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:u[x.handle]}):null]},x.handle)})]}),I==="prices"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:N0.map(x=>{let P=Ie===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{b?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="discounts"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:a2.map(x=>{let P=rn===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{m?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="review-sort"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:X.map(x=>{let P=nt===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{h?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})})]})}var $a=B(ft(),1);var W=B(O(),1);function L0({airedaleBrands:e,airedaleTags:t,discountAmount:n,hidden:a,includeScoredFirst:l,onDiscountAmountChange:i,onPriceRangeChange:r,onReviewSortChange:o,priceRange:u,reviewSort:c,showReviewSort:s,showPriceDiscountFilters:f}){let d=(0,$a.useRef)(null),[m,v]=(0,$a.useState)(!1),[A,b]=(0,$a.useState)(!1),h=ju(l),g=wa(c,l),p=()=>{if(!d.current)return;let{scrollLeft:y,scrollWidth:C,clientWidth:R}=d.current;v(y>0),b(Math.ceil(y+R)<C-5)};return(0,$a.useEffect)(()=>(p(),window.addEventListener("resize",p),setTimeout(p,100),setTimeout(()=>{document.querySelector(".tg-df-categories-row")?.dispatchEvent(new Event("scroll")),document.querySelector(".tg-df-brands-row")?.dispatchEvent(new Event("scroll"))},150),()=>window.removeEventListener("resize",p)),[t,e]),(0,W.jsx)("div",{className:"tg-df-controls",id:"tg-df-controls",style:{display:a?"none":"flex",marginTop:"12px",marginBottom:"16px",justifyContent:"center"},children:(0,W.jsxs)("div",{className:"tg-df-filters-container",style:{position:"relative",width:"100%",maxWidth:"800px",margin:"0 auto"},children:[(0,W.jsx)("button",{className:"tg-df-scroll-btn left",style:{display:m?"flex":"none"},onClick:()=>d.current?.scrollBy({left:-200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,W.jsx)("button",{className:"tg-df-scroll-btn right",style:{display:A?"flex":"none"},onClick:()=>d.current?.scrollBy({left:200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M9 18l6-6-6-6"})})}),(0,W.jsxs)("div",{className:"tg-df-filters",ref:d,onScroll:p,children:[(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-legacy-price-wrapper",style:{display:f!==!1?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-price-filter","aria-label":"Filter Prices",value:u||"all",onChange:y=>r?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"All Prices"}),(0,W.jsx)("option",{value:"under50",children:"Under $50"}),(0,W.jsx)("option",{value:"50_100",children:"$50 - $100"}),(0,W.jsx)("option",{value:"100_200",children:"$100 - $200"}),(0,W.jsx)("option",{value:"200_500",children:"$200 - $500"}),(0,W.jsx)("option",{value:"over500",children:"Over $500"})]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-discount-filter-wrapper",style:{display:f!==!1&&!s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-discount-filter","aria-label":"Discount Amount",value:n||"all",onChange:y=>i?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"Any discount"}),[5,10,15,20,25,30,40,50,60,70].map(y=>(0,W.jsxs)("option",{value:y,children:["Min ",y,"%"]},y))]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-review-sort-wrapper",style:{display:s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M4 7h16M7 12h10m-7 5h4"})}),(0,W.jsx)("select",{className:"tg-df-filter-select",id:"tg-df-review-sort","aria-label":"Sort Reviews",value:g,onChange:y=>o?.(y.target.value),children:h.map(y=>(0,W.jsx)("option",{value:y.value,children:y.label},y.value))})]})]})]})})}var be=B(ft(),1);function kr(e,t){return e.filter(n=>{let a=n.handle.toLowerCase(),l=n.fullName.toLowerCase(),i=n.name.toLowerCase();return t.some(r=>{let o=r.articleauthorhandle||[],u=r.articleauthor||[],c=r.articleauthortext||[];return[...o,...u,...c].some(s=>{let f=String(s||"").toLowerCase();return f===a||f===l||f===i})})})}function Yu(e,t){return e.map((n,a)=>({index:a,profile:n,productCount:t[n.handle]||0})).sort((n,a)=>a.productCount-n.productCount||n.index-a.index).map(({profile:n})=>n)}function Vu(e,t){return e==="all-authors"||t==="all-authors"||t==="All authors"||!e&&!t}function Xu(e,t,n){let a=e;if((t||n)&&t!=="all-authors"&&n!=="all-authors"&&n!=="All authors"){if(t){let l=t.toLowerCase(),i=e.filter(r=>r.articleauthorhandle&&r.articleauthorhandle.some(o=>o.toLowerCase()===l));if(i.length>0)a=i;else if(n){let r=n.toLowerCase(),o=e.filter(u=>u.articleauthor&&u.articleauthor.some(c=>c.toLowerCase()===r));o.length>0&&(a=o)}}else if(n){let l=n.toLowerCase();a=e.filter(i=>i.articleauthor&&i.articleauthor.some(r=>r.toLowerCase()===l))}}return a}function sf(e,t,n){let a=0;if(t&&e.articleauthorhandle){let l=e.articleauthorhandle.findIndex(i=>i.toLowerCase()===t.toLowerCase());l>=0&&(a=l)}else if(n&&e.articleauthor){let l=e.articleauthor.findIndex(i=>i.toLowerCase()===n.toLowerCase());l>=0&&(a=l)}return a}function Qu(e,t,n){let a=sf(e,t,n),l=i=>typeof i=="string"?ee(i):i||"";return{authorName:e.articleauthortext?l(e.articleauthortext[a]):e.articleauthor?l(e.articleauthor[a]):"",authorRole:e.articleauthorrole?l(e.articleauthorrole[a]):"",authorImage:e.articleauthormedia?e.articleauthormedia[a]:""}}function Lr(e,t){let n=new Map;return e.forEach(a=>{if(!a.articleauthor)return;let l=t;if(a.documenturl)try{let f=new URL(a.documenturl).hostname.replace("www.","").split(".");f.length>0&&(l=f[0].toLowerCase())}catch{}let i=a.articleauthorhandle||[],r=a.articleauthor||[],o=a.articleauthortext||[],u=a.articleauthorrole||[],c=a.articleauthormedia||[];r.forEach((s,f)=>{if(!s||s==="null"||s.toLowerCase()==="all authors")return;let d=i[f]&&i[f]!=="null"?i[f]:s.toLowerCase().replace(/\s+/g,"-");if(!d||d==="null")return;let m=o[f]&&o[f]!=="null"?o[f]:s,v=u[f]&&u[f]!=="null"?u[f]:"",A=ee(String(m)),b=ee(String(v)),h=c[f]&&c[f]!=="null"?c[f]:"",g=A.split(" ")[0],p=_r(a,f,"short"),y=_r(a,f,"long"),C=Uu(a,f),R=n.get(d);!R&&A&&h?n.set(d,{...y?{bioLong:y}:{},...p?{bioShort:p}:{},name:g,fullName:A,handle:d,role:b,image:h,brandKey:l,...C.length>0?{socialNetworks:C}:{}}):R&&(!R.bioShort&&p&&(R.bioShort=p),!R.bioLong&&y&&(R.bioLong=y),!R.socialNetworks?.length&&C.length>0&&(R.socialNetworks=C))})}),Array.from(n.values())}var E=B(O(),1);function z0(e){let t=(0,be.useRef)(""),n=(0,be.useRef)(null),a=(0,be.useCallback)(()=>{n.current!==null&&(window.clearTimeout(n.current),n.current=null)},[]),l=(0,be.useCallback)(r=>{a(),t.current=r},[a]),i=(0,be.useCallback)((r,o,u=!1)=>{if(!e)return;if(r===t.current){a();return}let c=()=>{n.current=null,t.current=r,e(o)};a(),u?c():n.current=window.setTimeout(c,350)},[a,e]);return(0,be.useEffect)(()=>a,[a]),{save:i,synchronise:l}}function H0({contentKey:e,defaultText:t,kind:n,onChange:a,value:l}){let i=(0,be.useRef)(null),r=(0,be.useRef)(e),[o,u]=(0,be.useState)(!1),c=l??t,s=!!a,{save:f,synchronise:d}=z0(a);(0,be.useLayoutEffect)(()=>{let g=r.current!==e;i.current&&(g||document.activeElement!==i.current)&&(i.current.innerHTML!==c&&(i.current.innerHTML=c),d(c)),r.current=e},[e,d,c]);let m=(g=!1)=>{if(!i.current)return;let p=i.current.innerHTML;f(p,p===t?void 0:p,g)},v=(g,p)=>{document.execCommand(g,!1,p),m(!0)},A=n==="kicker"?{fontSize:"0.875rem",color:"#6B7280",fontStyle:"normal",margin:"0 0 0.25rem 0"}:{fontSize:"2.25rem",fontWeight:300,color:"#111827",margin:"0 0 0.25rem 0",lineHeight:1.1,letterSpacing:"-0.02em"},b=n==="kicker"?"tg-df-author-curated-by tg-df-author-kicker":"tg-df-author-name",h=()=>n==="kicker"?(0,E.jsx)("p",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}}):(0,E.jsx)("h2",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}});return s?(0,E.jsxs)("div",{className:"tg-df-author-header-text-shell",style:{position:"relative"},children:[o&&(0,E.jsxs)("div",{className:"tg-df-author-header-text-toolbar",role:"toolbar","aria-label":`${n==="kicker"?"Shop by text":"Site or author name"} formatting`,style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"0.25rem",margin:"0 auto 0.375rem",width:"fit-content",padding:"0.25rem 0.5rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",fontSize:"11px",zIndex:10},children:[(0,E.jsx)("span",{style:{color:"#64748b",padding:"2px 2px 2px 0"},children:"Editing"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("bold"),title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("italic"),title:"Italic",children:(0,E.jsx)("em",{children:"I"})}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{let g=prompt("Enter URL:");g&&v("createLink",g)},title:"Add link",children:"\u{1F517}"}),l!==void 0&&(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{i.current&&(i.current.innerHTML=t),d(t),a?.(void 0)},title:"Restore default",children:"Reset"})]}),h()]}):h()}function i2({contentKey:e,initialBio:t,defaultPlaceholder:n,onBioChange:a,stabilizeHeight:l=!1}){let r=(0,be.useRef)(null),o=(0,be.useRef)(e),u=(0,be.useRef)(n),c=(0,be.useRef)(!1),[s,f]=(0,be.useState)(!1),[d,m]=(0,be.useState)(!1),[v,A]=(0,be.useState)(!1),b=t||n,h=l&&b.replace(/<[^>]*>/g,"").trim().length>240,g=!!a,{save:p,synchronise:y}=z0(a);(0,be.useLayoutEffect)(()=>{let w=o.current!==e,D=u.current!==n;w&&(c.current=!1);let k=!t&&D&&!c.current;r.current&&(w||document.activeElement!==r.current||k)&&(r.current.innerHTML!==b&&(r.current.innerHTML=b),y(b)),o.current=e,u.current=n},[b,e,n,t,y]),(0,be.useLayoutEffect)(()=>{m(!1)},[e]),(0,be.useLayoutEffect)(()=>{if(!h||!r.current){A(!1);return}let w=r.current,D=()=>{A(w.scrollHeight>w.clientHeight+1)};if(D(),typeof ResizeObserver>"u")return;let k=new ResizeObserver(D);return k.observe(w),()=>k.disconnect()},[b,e,d,h]);let C=(w,D=null)=>{if(c.current=!0,document.execCommand(w,!1,D||void 0),r.current){let k=r.current.innerHTML;p(k,k===n?"":k,!0)}},R=(w=!1)=>{if(!r.current)return;let D=r.current.innerHTML;p(D,D===n?"":D,w)};return(0,E.jsxs)("div",{style:{position:"relative",maxWidth:"42rem",margin:"0 auto 0.5rem auto",padding:"0.25rem 0.5rem"},className:`tg-df-author-bio-shell${l?" tg-df-author-bio-shell--stable":""}`,children:[g&&s&&(0,E.jsxs)("div",{role:"toolbar","aria-label":"Introduction text formatting",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.375rem",marginBottom:"0.5rem",padding:"0.25rem 0.625rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",width:"fit-content",margin:"0 auto 0.5rem auto",fontSize:"12px",userSelect:"none",zIndex:10},children:[(0,E.jsx)("span",{style:{fontSize:"11px",color:"#64748b",fontWeight:500,marginRight:"2px"},children:"Editing \u2014 saves when you click away"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("bold"),style:{fontWeight:"bold",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("italic"),style:{fontStyle:"italic",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Italic",children:"I"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{let w=prompt("Enter URL:");w&&C("createLink",w)},style:{padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Add Link",children:"\u{1F517}"}),t&&(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:w=>{w.preventDefault(),w.stopPropagation(),r.current&&(r.current.innerHTML=n),c.current=!1,y(n),a&&a("")},style:{fontSize:"10px",padding:"2px 8px",borderRadius:"4px",background:"#fee2e2",color:"#991b1b",cursor:"pointer",border:"1px solid #fca5a5"},title:"Reset Bio",children:"Reset"})]}),(0,E.jsx)("div",{ref:r,contentEditable:g?!0:void 0,suppressContentEditableWarning:g,onFocus:g?()=>{f(!0)}:void 0,onBlur:g?()=>{f(!1),R(!0),c.current=!1}:void 0,onInput:g?()=>{c.current=!0}:void 0,className:`tg-df-author-bio ${g?"wysiwyg-bio-editable":"tg-df-author-bio--static"}${h?d?" tg-df-author-bio--expanded":" tg-df-author-bio--clamped":""}`,style:{color:"#4b5563",lineHeight:1.6,fontWeight:300,fontSize:"0.9375rem",textAlign:"center",outline:g&&s?"2px solid #3b82f6":"none",borderRadius:"6px",padding:"0.375rem 0.5rem",cursor:g?"text":"default",transition:"all 0.15s ease-in-out"}}),h?(0,E.jsx)("div",{className:"tg-df-author-bio-toggle-slot",children:(0,E.jsx)("button",{type:"button",className:"tg-df-author-bio-toggle","aria-expanded":d,onClick:()=>m(w=>!w),style:{visibility:v||d?"visible":"hidden"},children:d?"Show less":"Read more"})}):null]})}function r2(e){let t=(e||"").toLowerCase();return t==="linkedin"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.28 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.75M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z"})}):t==="twitter"||t==="x"?(0,E.jsx)("svg",{className:"icon-svg",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,E.jsx)("path",{fill:"currentColor",d:"M18 2h4l-8 9 9 11h-7l-5-7-6 7H2l7-9L1 2h7l5 6zm-1 18h2L7 4H5z"})}):t==="email"||t==="mail"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("rect",{width:"20",height:"16",x:"2",y:"4",rx:"2"}),(0,E.jsx)("path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"})]}):t==="instagram"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"12",cy:"12",r:"4.25",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"17.4",cy:"6.7",r:"1.25",fill:"currentColor"})]}):t==="steam"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("circle",{fill:"#0f1618",cx:"12",cy:"12",r:"12"}),(0,E.jsx)("path",{d:"m18.22 8.9a2.269 2.269 0 1 1 -2.27-2.265 2.267 2.267 0 0 1 2.27 2.265zm2.258.005a4.534 4.534 0 0 1 -4.533 4.526h-.1l-4.087 2.911v.161a3.4 3.4 0 0 1 -6.74.669l-4.549-1.879c-.032-.109-.057-.219-.085-.329a11.973 11.973 0 0 1 -.384-2.964c0-.214.02-.423.032-.635 0-.1.008-.206.016-.308l6.394 2.643a3.385 3.385 0 0 1 1.915-.591c.065 0 .127 0 .191.005l2.865-4.145v-.062a4.533 4.533 0 0 1 9.066 0zm-9.763 6.618a2.55 2.55 0 0 0 -3.262-1.411l1.525.63a1.877 1.877 0 1 1 -1.446 3.464l-1.475-.606a2.529 2.529 0 0 0 1.315 1.25 2.559 2.559 0 0 0 3.339-1.374 2.526 2.526 0 0 0 .004-1.951zm8.251-6.618a3.021 3.021 0 1 0 -3.021 3.015 3.022 3.022 0 0 0 3.021-3.013z",fill:"#fff"})]}):t==="youtube"?(0,E.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"})}):t==="twitch"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("path",{d:"m24 12a12 12 0 1 1 -12-12 12 12 0 0 1 12 12z",fill:"#111"}),(0,E.jsx)("path",{d:"m12.308 17.167-1.833 1.833h-1.818v-1.833h-3.357v-9.733l.925-2.434h12.475v8.517l-3.648 3.65zm5.175-10.95h-10.043v8.824h2.743v1.833l1.817-1.833h3.342l2.14-2.126zm-5.483 6.083v-3.65h-1.218v3.65zm3.342 0v-3.65h-1.216v3.65z",fill:"#fff"})]}):t==="facebook"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m13.079 19h-2.9v-7h-1.441v-2.408h1.442v-1.456c0-1.96.813-3.136 3.136-3.136h1.933v2.408h-1.2c-.91 0-.965.35-.965.966v1.218h2.183l-.257 2.408h-1.931z",fill:"currentColor"})}):t==="pinterest"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.336 5c-3.822 0-5.754 2.744-5.754 5.025a3.065 3.065 0 0 0 1.652 3.066.279.279 0 0 0 .407-.2l.154-.644a.373.373 0 0 0-.113-.448 2.341 2.341 0 0 1-.532-1.582 3.812 3.812 0 0 1 3.961-3.849 3.009 3.009 0 0 1 3.346 3.08c0 2.323-1.022 4.283-2.547 4.283a1.253 1.253 0 0 1-1.273-1.554 17.616 17.616 0 0 0 .713-2.856 1.081 1.081 0 0 0-1.092-1.2c-.854 0-1.553.881-1.553 2.071a2.954 2.954 0 0 0 .266 1.274l-1.038 4.383a9.389 9.389 0 0 0-.027 3.065.109.109 0 0 0 .2.042 8.737 8.737 0 0 0 1.457-2.631l.561-2.212a2.3 2.3 0 0 0 1.959 1.008c2.59 0 4.34-2.366 4.34-5.516a4.8 4.8 0 0 0-5.087-4.605z",fill:"currentColor"})}):t==="substack"?(0,E.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M22.539 8.242H1.46V5.406h21.08v2.836zM1.46 10.812V24L12 18.11 22.54 24V10.812H1.46zM22.54 0H1.46v2.836h21.08V0z"})}):t==="threads"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12.186 24h-.007c-3.582-.024-6.332-1.22-8.173-3.555C2.26 18.212 1.5 15.228 1.5 11.83 1.5 8.16 2.673 5.097 4.902 2.935 7.026.877 10.02 0 13.565 0c3.784 0 6.81 1.028 8.995 3.056 2.008 1.862 3.013 4.417 2.91 7.391-.122 3.518-1.57 6.136-4.304 7.781-1.892 1.138-4.103 1.62-6.57 1.433-.122.392-.266.769-.434 1.127-.514 1.096-1.18 1.96-1.982 2.569-.884.67-1.933 1.01-3.118 1.01-1.34 0-2.42-.42-3.21-1.248-.78-.82-1.17-1.89-1.17-3.18 0-1.512.52-2.73 1.545-3.62 1.018-.883 2.45-1.33 4.258-1.33.56 0 1.11.04 1.63.12-.04-.53-.13-1.02-.27-1.46-.26-.81-.71-1.45-1.34-1.92-.62-.47-1.42-.71-2.38-.71-1.09 0-2.02.29-2.77.87-.29.22-.68.17-.9-.12l-.76-1.03c-.22-.3-.16-.71.13-.93C7.43 5.37 8.95 4.9 10.8 4.9c1.64 0 2.99.41 4.02 1.22 1.04.81 1.73 1.93 2.06 3.33.15.65.25 1.42.3 2.31 1.68-.31 3.05-1.05 4.08-2.2 1.01-1.13 1.52-2.58 1.52-4.31 0-2.43-.84-4.32-2.5-5.62C18.63 1.32 16.32.5 13.56.5c-3.03 0-5.54.73-7.27 2.21C4.48 4.27 3.5 6.78 3.5 10c0 3.1.66 5.62 1.96 7.49 1.34 1.93 3.38 2.92 6.07 2.95 1.76.02 3.32-.34 4.64-1.07.28-.15.63-.05.78.22l.55.98c.15.28.05.63-.22.78-1.63.9-3.55 1.35-5.7 1.35z"})}):t==="tiktok"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.308 5.012c.763-.012 1.522 0 2.281-.012a3.636 3.636 0 0 0 1.02 2.434 4.12 4.12 0 0 0 2.473 1.043v2.349a6.177 6.177 0 0 1-2.449-.564 7.207 7.207 0 0 1-.947-.543c0 1.705.008 3.406-.01 5.105a4.442 4.442 0 0 1-.789 2.3 4.343 4.343 0 0 1-3.448 1.872 4.254 4.254 0 0 1-2.379-.6 4.393 4.393 0 0 1-2.127-3.331c-.014-.292-.019-.584-.007-.868a4.395 4.395 0 0 1 5.091-3.9c.013.864-.021 1.727-.021 2.591a2.007 2.007 0 0 0-2.558 1.237 2.316 2.316 0 0 0-.079.939 1.992 1.992 0 0 0 3.658.736 1.39 1.39 0 0 0 .239-.62c.057-1.043.034-2.082.041-3.126.006-2.351-.007-4.7.011-7.041z",fill:"currentColor"})}):t==="bluesky"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.879.139 2.588-.02 3.868.002 5.03c.08 4.201 1.84 10.024 3.931 12.397 2.091 2.373 4.545 1.573 5.467.927.817-.573 1.564-1.611 2.6-2.92 1.036 1.309 1.783 2.347 2.6 2.92.922.646 3.376 1.446 5.467-.927 2.091-2.373 3.851-8.196 3.931-12.397.022-1.162-.137-2.442-.9-3.151-.659-.613-1.664-.935-4.3-1.074C16.046 4.747 13.087 8.686 12 10.8z"})}):t==="github"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"})}):t==="rss"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("path",{d:"M4 11a9 9 0 0 1 9 9"}),(0,E.jsx)("path",{d:"M4 4a16 16 0 0 1 16 16"}),(0,E.jsx)("circle",{cx:"5",cy:"19",r:"1"})]}):(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,E.jsx)("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),(0,E.jsx)("path",{d:"M2 12h20"})]})}function U0({authorCount:e=0,authorArticlesList:t,authorBioLength:n,customBio:a,customHeaderKicker:l,customHeaderTitle:i,effectiveAuthorHandle:r,effectiveAuthorName:o,isReviewWidget:u=!1,onBioChange:c,onHeaderKickerChange:s,onHeaderTitleChange:f,selectedProfile:d,showAuthorBio:m=!0,showAuthorIdentity:v=!0,showSocialButtons:A=!0,stabilizeBio:b=!1,totalDealCount:h=0,website:g}){let p=Vu(r,o),y=g||"tomsguide",C=Gu[y]||y,R=Nr[y],T=r?.toLowerCase(),M=o?.toLowerCase(),w=t.find(Be=>T&&Be.articleauthorhandle?.some(Je=>Je?.toLowerCase()===T)||M&&Be.articleauthor?.some(Je=>Je?.toLowerCase()===M))||null,D=w?sf(w,r,o):0,k=d?.image||(w?c0(w,D):""),se=d?n==="short"?d.bioShort||"":d.bioLong||d.bioShort||"":w?_r(w,D,n):"",I=p?`Our team is dedicated to researching, reviewing and recommending the latest and best products in all the categories that matter to you. Below you can shop the latest ${h} ${u?"review ":""}recommendations from ${e} ${C} ${u?"editor tests":"editors"}.`:se||`Handpicked deals and recommendations curated by ${o||"our expert editorial team"}.`,j=d?.role||"",He=p?y0[y]||[]:d?.socialNetworks||[];!p&&w&&(j||(j=u0(w,D)),He.length===0&&(He=Uu(w,D)));let ze=d?.fullName||o||"Author Name",St=p?`site:${y}`:`author:${d?.handle||r||ze}`,Ie=A&&He.length>0,rn=!p&&!!j||Ie;return(0,E.jsxs)("div",{className:"tg-df-author-card",style:{textAlign:"center",padding:"1.75rem 1rem 0.25rem 1rem",margin:"0 auto",maxWidth:"48rem"},children:[v&&(p?(0,E.jsx)("div",{className:"tg-df-author-media-slot tg-df-author-image-container",style:{margin:"0 auto 0.75rem auto",textAlign:"center",minHeight:"180px",display:"flex",alignItems:"center",justifyContent:"center"},children:R?(0,E.jsx)("img",{src:R,alt:C,className:"tg-df-site-logo",style:{maxHeight:"150px",maxWidth:"520px",objectFit:"contain",margin:"0 auto",display:"block"}}):(0,E.jsx)("div",{style:{fontSize:"1.75rem",fontWeight:700,color:"#111827"},children:C})}):(0,E.jsx)("div",{className:"tg-df-author-media-slot",children:(0,E.jsxs)("div",{className:"tg-df-author-profile-image-wrapper",children:[k?(0,E.jsx)("img",{src:ri(k),alt:ze,className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",objectFit:"cover",display:"block"}}):(0,E.jsx)("div",{className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",background:"#e2e8f0",display:"block"}}),R?(0,E.jsx)("img",{src:R,alt:"",className:"tg-df-author-profile-brand-logo"}):null]})})),v&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(H0,{contentKey:`${St}:kicker`,defaultText:u?"Reviews shop by":"Shop by",kind:"kicker",onChange:s,value:l}),(0,E.jsx)(H0,{contentKey:`${St}:title`,defaultText:p?C:ze,kind:"title",onChange:f,value:i}),rn&&(0,E.jsxs)("div",{className:`tg-df-author-meta-slot${p?" tg-df-author-meta-slot--site":""}${Ie?"":" tg-df-author-meta-slot--no-social"}`,children:[!p&&j?(0,E.jsx)("div",{className:"tg-df-author-role",id:"tg-df-author-role-display",style:{fontSize:"0.9375rem",fontWeight:500,color:"var(--tg-df-blue, #1F69FF)",margin:"0 0 0.5rem 0",lineHeight:1.3},children:j}):null,Ie?(0,E.jsx)("div",{className:"tg-df-author-social-links",children:He.map(Be=>(0,E.jsx)("a",{href:Be.href,target:"_blank",rel:"noopener noreferrer",title:Be.label,"aria-label":Be.label,className:"tg-df-author-social-btn","data-social-key":Be.key.toLowerCase(),children:r2(Be.key)},Be.key))}):null]})]}),m&&(0,E.jsx)(i2,{contentKey:St,initialBio:a,defaultPlaceholder:I,onBioChange:c,stabilizeHeight:b})]})}var te=B(O(),1);function df(e){if(!e||typeof e!="object")return"";if(e.type==="voucher_code"&&e.display_value)return e.display_value;let t=Array.isArray(e)?e:Object.keys(e).filter(n=>Object.prototype.hasOwnProperty.call(e,n)).map(n=>e[n]);for(let n of t){let a=df(n);if(a)return a}return""}function o2({endTime:e}){if(!e)return null;let t=e;!isNaN(Number(t))&&String(t).length===10&&(t=Number(t)*1e3);let n=new Date(t),a=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"});return(0,te.jsxs)("span",{className:"tg-df-voucher-expiry",children:[(0,te.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginRight:"4px"},children:[(0,te.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,te.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),"Expires ",a.format(n)]})}function G0({error:e,loading:t,merchant:n,onClose:a,vouchers:l}){return(0,te.jsx)("div",{className:`tg-df-modal-backdrop ${n?"active":""}`,onClick:i=>{i.target===i.currentTarget&&a()},children:(0,te.jsxs)("div",{className:"tg-df-modal",children:[(0,te.jsxs)("div",{className:"tg-df-modal-header",children:[(0,te.jsx)("h3",{className:"tg-df-modal-title",children:n?`${n} Coupons & Deals`:"Available Coupons & Deals"}),(0,te.jsx)("button",{className:"tg-df-modal-close",onClick:a,children:(0,te.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,te.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,te.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),(0,te.jsx)("div",{className:"tg-df-modal-body",children:t?(0,te.jsx)("div",{className:"tg-df-message",children:(0,te.jsx)("div",{className:"tg-df-coupon-spinner",style:{width:"24px",height:"24px",borderColor:"#ccc",borderTopColor:"#3b82f6"}})}):e?(0,te.jsx)("div",{className:"tg-df-message",children:"Failed to load vouchers."}):l.length===0?(0,te.jsxs)("div",{className:"tg-df-message",children:["No active vouchers found for ",n,"."]}):l.map((i,r)=>{let o=i.offer?.name||i.offer?.title||i.name||i.title||i.model_name||"Voucher",u=i.offer?.link||i.offer?.url||i.link||i.url||"#",c=i.merchant,s=Array.isArray(c)?c[0]?.logo_url||"":c?.logo_url||"",f=df(i.offer)||df(i)||i.offer?.voucher_code||i.voucher_code||"",d=i.offer?.end_time||i.end_time||"";return(0,te.jsxs)("a",{href:u,target:"_blank",rel:"noopener nofollow",className:"tg-df-voucher-item",children:[s?(0,te.jsx)("img",{src:s,alt:"Logo",className:"tg-df-voucher-logo"}):(0,te.jsx)("div",{className:"tg-df-voucher-logo",style:{background:"#e2e8f0"}}),(0,te.jsxs)("div",{className:"tg-df-voucher-content",children:[(0,te.jsx)("h4",{className:"tg-df-voucher-title",children:o}),(0,te.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:"8px"},children:[f&&(0,te.jsxs)("span",{className:"tg-df-voucher-code",title:"Copy to clipboard",onClick:m=>{m.preventDefault(),m.stopPropagation();let v=m.currentTarget;navigator.clipboard.writeText(f).then(()=>{v.classList.add("copied");let A=v.querySelector(".tg-df-voucher-code-text"),b=v.querySelector(".tg-df-voucher-copy-icon"),h=A.innerText,g=b.innerHTML;A.innerText="Copied!",b.innerHTML='<polyline points="20 6 9 17 4 12"><\/polyline>',setTimeout(()=>{v.classList.remove("copied"),A&&(A.innerText=h),b&&(b.innerHTML=g)},2e3)})},children:[(0,te.jsx)("span",{className:"tg-df-voucher-code-text",children:f}),(0,te.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:"6px",flexShrink:0},className:"tg-df-voucher-copy-icon",children:[(0,te.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,te.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})]}),d&&(0,te.jsx)(o2,{endTime:d})]})]})]},r)})})]})})}var N=B(ft(),1);function ci(e){if(!e||!e.articlepage)return[];try{let t=e.articlepage;if(!Array.isArray(t))return typeof t=="string"?JSON.parse(t):t;if(t.length===0)return[];let n=t[0];return typeof n=="string"?JSON.parse(n):Array.isArray(n)?n:n&&typeof n=="object"&&"type"in n?t:n}catch{return[]}}function si(e,t=!1,{includeCollections:n=!0,includeDeals:a=!0}={}){let l=t?e.filter(r=>r.type==="buying-guide"):[];if(l.length>0)return l;let i=e.filter(r=>r.type==="deal"||r.type==="featured-product");return a&&!n&&!t?i.filter(r=>r.type==="deal"):i}function di(e,t){if(!t||t.length===0)return!0;let n=e&&(e.brand||e.retailer)||"";if(!n)return!1;let a=n.replace(/^\d+\.\s*/,"").trim().toLowerCase();return t.some(l=>{let i=l.trim().toLowerCase();return a===i||a.startsWith(`${i} `)||a.includes(i)||i.includes(a)})}function wt(e){return!e||e==="auto"?"US":e}function an(e){return e==="GB"||e==="UK"?"GBP":e==="AU"?"AUD":e==="CA"?"CAD":["DE","FR","IT","ES","NL"].includes(e)?"EUR":"USD"}function P0(e,t){if(e.isBuyingGuideProduct||e.isReviewProduct)return!0;if(t==="unavailable")return!1;let n=String(e.isoCurrency||e.currency||"").trim().toUpperCase();return({$:"USD",A$:"AUD",CA$:"CAD","\xA3":"GBP","\u20AC":"EUR"}[n]||n)===an(t)}function fi(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=a?n.currency||(n.price&&typeof n.price=="object"?n.price.currency:""):l.currency||(typeof l=="string"?l:"")||n.currency||"";!i&&n.variants&&n.variants.length>0&&(i=n.variants[0].currency||"");let r="$",o="USD",u=(i||"").toString().toUpperCase().trim();return u==="GBP"||u==="\xA3"||u.includes("POUND")||u.includes("163")?(r="\xA3",o="GBP"):u==="EUR"||u==="\u20AC"||u.includes("EURO")||u.includes("8364")?(r="\u20AC",o="EUR"):u==="AUD"||u==="A$"?(r="A$",o="AUD"):u==="CAD"||u==="CA$"?(r="CA$",o="CAD"):u==="USD"||u==="$"||u.includes("DOLLAR")||u.includes("36")?(r="$",o="USD"):(o=an(t),o==="GBP"?r="\xA3":o==="AUD"?r="A$":o==="CAD"?r="CA$":o==="EUR"&&(r="\u20AC")),{isoCurr:o,currencyStr:r}}function Ku(e){let t=e.data||{},n=e.type==="featured-product",a=t.price||{},l=0,i=0;return n?(l=typeof a=="number"?a:a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):t.msrp?parseFloat(t.msrp):0):(l=a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):0),{rawPrice:l,rawMsrp:i}}function Sa(e,t){if(!t||t==="all"||e<=0)return!0;if(t==="under50"&&e>=50||t==="over50"&&e<=50||t==="over30"&&e<=30||t==="over500"&&e<=500)return!1;if(t.includes("_")){let[n,a]=t.split("_").map(Number);if(n&&e<n||a&&e>a)return!1}return!0}function Ca(e,t,n){if(!n||n==="0"||n==="all")return!0;let a=parseInt(n);return!(!isNaN(a)&&a>0&&(!t||t<=e||Math.round((1-e/t)*100)<a))}var Zu=[0,50,100,150,200,250,300,350,400,450],ff={parameter:"articleControlTag",value:"type_buying_guide"},u2={includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"deals"},{parameter:"articleControlTag",value:"sig-product-collection"}]},c2={pcgamer:{includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"deals"},{parameter:"articleControlTag",value:"sig-product-collection"},{parameter:"articleControlTag",value:"type_deal",requiredArticleType:"news",requiredControlTags:["deals","type_deal","channel_gaming_hardware"]}],buyingGuideScopes:[ff]},homesandgardens:{includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"collection",inventoryKind:"collections"},{parameter:"articleControlTag",value:"sig-product-collection",inventoryKind:"collections"},{parameter:"articleControlTag",value:"van-hawk-collection-widget",inventoryKind:"collections"},{parameter:"articleControlTag",value:"shopping",requiredArticleType:"news",inventoryKind:"collections"},{parameter:"articleType",value:"deals",inventoryKind:"deals"},{parameter:"articleControlTag",value:"type_deal",requiredArticleType:"news",requiredControlTags:["shopping","type_deal"],inventoryKind:"deals"}],buyingGuideScopes:[{parameter:"articleType",value:"buying guide"},ff]},whowhatwear:{includeAllContent:!0,pageStarts:Zu,scopes:[{}]}};function Wu(e,{includeBuyingGuideProducts:t=!1,includeCollections:n=!0,includeDeals:a=!0}={}){let l=c2[e]||u2;if(l.includeAllContent)return l;let i=l.scopes.filter(r=>r.inventoryKind==="collections"?n:r.inventoryKind==="deals"?a:r.value==="sig-product-collection"?n:a);return t?{...l,scopes:[...i,...l.buyingGuideScopes||[ff]]}:{...l,scopes:i}}function gf(e){if(Array.isArray(e))return e;let t=e.data;return t&&Array.isArray(t)?t:[]}function q0(e){let t=new Set;return e.filter(n=>{let a=n.id||n.articleid||n.url;return!a||t.has(a)?!1:(t.add(a),!0)})}function Zt(e){return typeof e.articletype=="string"?e.articletype.toLowerCase():Array.isArray(e.articletype)&&e.articletype.length>0?e.articletype[0].toLowerCase():""}function Hr(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]/g,"")}function mf(e){return[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]].map(Hr)}function s2(e){return Zt(e)==="review"&&mf(e).some(t=>t.includes("channelgaminghardware"))}function F0(e,t,n){let a=Zt(e),l=mf(e),i=c=>l.some(s=>s.includes(c)),r=a==="news"&&i("shopping")&&i("deal")&&i("typedeal"),o=a==="deals"||r,u=a==="collection"||i("sigproductcollection")||i("vanhawkcollectionwidget")||a==="news"&&i("shopping")&&!r||a==="idea"&&i("shopping")&&(i("sigproductcollection")||i("vanhawkcollectionwidget"));return t&&o||n&&u}function el(e,t=!0,n=!0,a){if(a==="homesandgardens")return F0(e,t,n);let l=Zt(e),i=mf(e),r=l==="deals"||i.some(u=>u.includes("typedeal")),o=i.some(u=>u.includes("sigproductcollection"));return t&&r||n&&o}function j0(e,t,n=!1,a=!1,l=!0,i=!0){if(a&&Zt(e)==="review")return t!=="pcgamer"||s2(e);if(t==="homesandgardens")return Zt(e)==="buying guide"?n:F0(e,i,l);let r=Wu(t,{includeBuyingGuideProducts:n,includeCollections:l,includeDeals:i});if(r.includeAllContent)return i&&l?!0:n||el(e,i,l);let o=Zt(e),u=[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]],c=f=>!f.requiredArticleType||o===f.requiredArticleType.toLowerCase(),s=f=>!f.requiredControlTags||f.requiredControlTags.every(d=>u.some(m=>typeof m=="string"&&Hr(m).includes(Hr(d))));return r.scopes.some(f=>!c(f)||!s(f)?!1:f.parameter==="articleType"?o===f.value.toLowerCase():f.parameter==="articleControlTag"?u.some(d=>typeof d=="string"&&Hr(d).includes(Hr(f.value))):!1)}function hf(e,t){let n=e.map(a=>({...a}));return t.filter(a=>(a.isBuyingGuideProduct||a.isReviewProduct)&&a.brand).forEach(a=>{let l=String(a.brand).trim();if(!l)return;let i=n.find(r=>r.formatted_value.toLowerCase()===l.toLowerCase());i?i.count++:n.push({formatted_value:l,count:1})}),n.sort((a,l)=>l.count-a.count)}function Iu(e,t){let n={};return e.forEach(a=>{if(!a.articlepage)return;let l=ci(a),i=si(l,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});(t.includeDeals===!1||t.includeCollections===!1)&&!i.some(r=>r.type==="buying-guide")&&!el(a,t.includeDeals,t.includeCollections,t.website)||i.forEach(r=>{if(fi(r,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:o,rawMsrp:u}=Ku(r);if(!Sa(o,t.priceRange)||!Ca(o,u,t.discountAmount))return;let c=r.data||{},s=c.brand||c.retailer;if(!s)return;let f=s.replace(/^\d+\.\s*/,"").trim(),d=f.toLowerCase(),m=Object.keys(n).find(v=>v.toLowerCase()===d);m?n[m]++:(f===f.toLowerCase()&&(f=f.replace(/\b\w/g,v=>v.toUpperCase())),n[f]=1)})}),Object.keys(n).map(a=>({formatted_value:a,count:n[a]})).sort((a,l)=>l.count-a.count)}function d2(e){return String(e||"").trim().toLowerCase()}function Ju(e){return(Array.isArray(e)?e:[e]).map(d2).filter(Boolean)}function pf(e){let t=Ju(e.articletype),n=[...Ju(e.articlecontroltag),...Ju(e.articletagtypetaghandle)];return t.includes("deals")||n.some(a=>a.replace(/[\s-]+/g,"_")==="type_deal")}function V0(e){let t=Array.isArray(e)?e[0]:e,n=new Date(String(t||"")).getTime();return Number.isFinite(n)?n:null}function f2(e){for(let t of[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]){let n=V0(t);if(n!==null)return n}return null}function g2(e){for(let t of[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]){let n=V0(t);if(n!==null)return n}return null}function Y0(e){return Ju(e.articletype).includes("review")}function yf(e,t=new Date,n=0){let a=pf(e)?1:Y0(e)?36:n;if(a<=0)return!0;let l=Y0(e)?g2(e):f2(e);if(l===null)return!0;let i=new Date(t);return i.setMonth(i.getMonth()-a),l>=i.getTime()}function tl(e,t,n=0){return e.filter(a=>yf(a,t,n))}var m2=15;function Q0(e){return Array.isArray(e.articlemedia)?e.articlemedia[0]:""}function zr(e){return Array.isArray(e.documenturl)?e.documenturl[0]:e.documenturl||""}function h2(e){return kt(String(e||"").replace(/^\d+\.\s*/,"").trim())}function tt(e){return Array.isArray(e)?e.map(tt).find(Boolean)||"":typeof e=="string"||typeof e=="number"?String(e).trim():""}function vf(e,t=!1){return(t?[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]:[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]).map(tt).find(Boolean)||""}function p2(e,t,n){let a=tt(e).match(/^\s*(\d+)\s*[.)]\s*/)?.[1];return a||[t.rank,t.position,t.number,t.productNumber,t.product_number].map(tt).map(i=>i.match(/^\s*(\d+)\s*$/)?.[1]||"").find(Boolean)||String(n+1)}function y2(e){let t=tt(e);try{t=new URL(t).pathname}catch{}return t=t.split(/[?#]/)[0].split("/").filter(Boolean).at(-1)||"",t.split(/[-_]+/).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function v2(e){return tt(e.documenthandle)||tt(e.document_handle)||zr(e)||tt(e.documentname)||tt(e.documentnametext)}function b2(e,t){if(!t)return"";let n=t.length>m2?"Ranked":t;return`#${e} ${n}`}function A2(e){if(typeof e=="object"&&e)return String(e["data-model-name"]||"");try{return String(JSON.parse(String(e||""))["data-model-name"]||"")}catch{return""}}function w2(e){let t=e.brand||e.productBrand||e.manufacturer||e.maker||"";return typeof t=="string"?kt(t.replace(/^\d+\.\s*/,"").trim()):""}function S2(e){let t=e.price&&typeof e.price=="object"?e.price:{},n=Number(t.salePrice||t.price||e.salePrice||e.current_price||(typeof e.price=="number"?e.price:0)),a=Number(t.wasPrice||t.msrp||e.was_price||e.msrp||0),l=e.url||e.link?.url||e.link?.href||"";return{currency:t.currency||e.currency||"",rawMsrp:Number.isFinite(a)?a:0,rawPrice:Number.isFinite(n)?n:0,url:l}}function bf(e){let t=e?.review||{},n=t.rating??t.starRating??t.score??e?.rating??e?.starRating??e?.score,a=Number(n);if(!Number.isFinite(a)||a<=0)return null;let l=a>5?a/20:a;return Math.min(l,5)}function K0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,imageUrl:i}){let r=t.data||{},o=r.review||{},u=h2(r.title),c=p2(r.title,r,a),s=y2(v2(e)),f=zr(e),d=S2(r),m=!!d.url,v=m?d.url:o.url||f,A=i||Q0(e);return{id:`airedale-buying-guide-${n}-${a}`,url:v,image:A,fallbackImage:A,title:u,brand:w2(r),productName:u,merchant:"",rawPrice:d.rawPrice,rawMsrp:d.rawMsrp,price:d.rawPrice>0?String(d.rawPrice):"",msrp:d.rawMsrp>0?String(d.rawMsrp):"",currency:d.currency,isoCurrency:"",isCheckPrice:d.rawPrice<=0,savingLabel:"",savingType:"none",isPrime:!1,starRating:bf(r),description:"",text:"",subtitle:kt(r.subtitle||""),pros:Array.isArray(r.pros)?r.pros:[],cons:Array.isArray(r.cons)?r.cons:[],...l,documentUrl:zr(e),modifiedDate:vf(e),isFeatured:!1,isBuyingGuideProduct:!0,buyingGuideBadge:b2(c,s),hawkModelName:A2(r.hawk),hasCommerceOffer:m,sourceArticleUrl:f}}function C2(e){return gi(e)||tt(e.documentnametext)||tt(e.documentname)}function $u(e){if(Array.isArray(e))return e.map($u).find(Boolean)||"";if(e&&typeof e=="object"){let n=e,a=tt(n["data-widget-type"]||n.dataWidgetType||n.widgetType).toLowerCase(),l=tt(n["data-model-name"]||n.dataModelName||n.modelName);return a==="review"&&l?l:Object.values(n).map($u).find(Boolean)||""}if(typeof e!="string")return"";let t=[e,e.replace(/\\"/g,'"').replace(/\\u0022/gi,'"')];for(let n of t){try{let l=$u(JSON.parse(n));if(l)return l}catch{}let a=n.match(/["']data-widget-type["']\s*:\s*["']review["'][\s\S]{0,1500}?["']data-model-name["']\s*:\s*["']([^"']+)["']/i);if(a?.[1])return a[1].trim()}return""}function gi(e){let t=tt(e.articlehawkmodels);if(t)return t;for(let n of[e.articlepage,e.articlebodypageblock,e.articlepageblock,e.fepjson,e.articlebodyclean]){let a=$u(n);if(a)return a}return""}function X0(e){return(Array.isArray(e)?e:[e]).map(t=>kt(tt(t))).filter(Boolean)}function Z0({article:e,articleIdentity:t,authorProfile:n}){let a=kt(gi(e)),l=kt(C2(e)),i=zr(e),r=Q0(e),o=kt(tt(e.productverdict));return{id:`airedale-review-${t}`,url:i,image:r,fallbackImage:r,title:l,brand:"",productName:l,merchant:"",rawPrice:0,rawMsrp:0,price:"",msrp:"",currency:"",isoCurrency:"",isCheckPrice:!0,savingLabel:"",savingType:"none",isPrime:!1,starRating:bf({rating:e.productrating}),description:o,text:o,...n,documentUrl:i,modifiedDate:vf(e,!0),isFeatured:!1,isReviewProduct:!0,hawkModelName:a||l,hasCommerceOffer:!1,sourceArticleUrl:i,pros:X0(e.productpros),cons:X0(e.productcons)}}function kt(e){return typeof e=="string"?ee(e):e}function W0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,currencyString:i,isoCurrency:r,presentation:o,pricing:u}){let c=t.data||{},{isFeatured:s,externalUrl:f,summaryTitle:d,description:m,imageUrl:v,merchantName:A}=o,{rawPrice:b,rawMsrp:h,savingLabel:g}=u;return{id:`airedale-${n}-${a}`,url:f,image:v,fallbackImage:v,title:kt(d),brand:kt(c.brand||""),productName:kt(c.productName||""),merchant:kt(A),rawPrice:b,rawMsrp:h,price:b>0?b.toString():"",msrp:h>0?h.toString():"",currency:i,isoCurrency:r,isCheckPrice:!b,savingLabel:g,savingType:h>b?"amount":"none",isPrime:!1,starRating:bf(c),description:kt(m),text:kt(c.text||""),...l,documentUrl:zr(e),modifiedDate:vf(e),isFeatured:s,hasCommerceOffer:!!f}}function I0(e,t){let n=t.data||{},a=t.type==="featured-product",l=n.link||{},i=n.image||{};n.brand&&(n.brand=n.brand.replace(/^\d+\.\s*/,"").trim());let r=a?n.url:l.href||null,o=a?n.name||n.brand:n.productName||l.label||(Array.isArray(e.articlename)?e.articlename[0]:e.articlename),u=a?n.strapline||"":n.text||"";if(!a&&!n.productName&&n.text){let f=n.text.split(/<br\s*\/?>/i);if(f.length>1)o=f[0].replace(/<[^>]+>/g,"").trim(),u=f.slice(1).join(" ").replace(/<br\s*\/?>/gi," ").replace(/<\/?(p|div)[^>]*>/gi," ").replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();else{let d=n.text.match(/<strong>(.*?)<\/strong>/);d&&(o=d[1].replace(/<[^>]+>/g,"").trim(),o.endsWith(":")&&(o=o.slice(0,-1)))}}let c=a?i.mos:i.src||null;c?.startsWith("//")&&(c=`https:${c}`),u=u.replace(/<br\s*\/?>/gi," ").replace(/<\/?(p|div)[^>]*>/gi," ").replace(/<[^>]+>/g,"").replace(/\s+/g," ").replace(/View Deal$/i,"").trim();let s=n.retailer||"";if(!s&&r)try{s=new URL(r).hostname.replace("www.","").split(".")[0],s=s.charAt(0).toUpperCase()+s.slice(1)}catch{}return s||(s="Retailer"),{isFeatured:a,externalUrl:r,summaryTitle:o,description:u,imageUrl:c,merchantName:s}}function J0(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=0,r=0;a?(i=typeof n.salePrice=="number"&&n.salePrice>0?n.salePrice:typeof n.price=="number"?n.price:0,r=typeof n.salePrice=="number"&&typeof n.price=="number"&&n.price>n.salePrice?n.price:0):(i=l.amount?parseFloat(l.amount):0,r=l.amountWas?parseFloat(l.amountWas):0);let o=0,u="";return i>0&&r>i&&(o=parseFloat((r-i).toFixed(2)),u=`Save ${t}${o}`),{rawPrice:i,rawMsrp:r,savingLabel:u}}function R2(e,t){let n=e.indexOf(t);if(n<1)return"";let a=e[n-1]?.data||{},i=a.slides?.[0]?.image||a.image||a;return i?.src||i?.mos||""}function Ur(e,{activeRegionCode:t,targetIso:n,selectedBrands:a,priceRange:l,discountAmount:i,authorHandle:r,authorName:o,createFallbackIdentity:u=Math.random,includeBuyingGuideProducts:c=!1,includeCollections:s=!0,includeDeals:f=!0,includeReviewProducts:d=!1,website:m}){let v=[],A=new Set;return e.forEach(b=>{if(d&&Zt(b)==="review"){v.push(Z0({article:b,articleIdentity:b.id||u(),authorProfile:Qu(b,r,o)}));return}if(!b.articlepage)return;let h=ci(b),g=si(h,c,{includeCollections:s,includeDeals:f});(f===!1||s===!1)&&!g.some(p=>p.type==="buying-guide")&&!el(b,f,s,m)||g.forEach((p,y)=>{if(p.type==="buying-guide"){v.push(K0({article:b,block:p,articleIdentity:b.id||u(),blockIndex:y,authorProfile:Qu(b,r,o),imageUrl:R2(h,p)}));return}let{isoCurr:C,currencyStr:R}=fi(p,t);if(C!==n)return;let T=p.data||{},M=I0(b,p),{externalUrl:w}=M,D=J0(p,R),{rawPrice:k,rawMsrp:se}=D;if(!(a&&a.length>0&&!di(T,a))&&Sa(k,l)&&Ca(k,se,i)){if(w){if(A.has(w))return;A.add(w)}v.push(W0({article:b,block:p,articleIdentity:b.id||u(),blockIndex:y,authorProfile:Qu(b,r,o),currencyString:R,isoCurrency:C,presentation:M,pricing:D}))}})}),v}function mi(e,t){return Ur(e,{...t,selectedBrands:[],priceRange:"all",discountAmount:"0"})}function $0(e,t){return Ur(e,t)}function Gr(e){return(Array.isArray(e)?e:[e]).filter(n=>typeof n=="string").map(n=>n.trim())}function ec(e){return e?.trim().toLowerCase()==="freeform"}function Af(e){return!!e&&!/[^\p{L}\p{N}\s]/u.test(e)}function wf(e){let t=Gr(e.articletag),n=Gr(e.articletaghandle),a=Gr(e.articletagtype),l=new Map;t.forEach((o,u)=>{let c=n[u];!ec(a[u])||!c||!Af(o)||l.set(c.toLowerCase(),{handle:c,label:o,requestValue:o})});let i=Gr(e.articletagtypetag),r=Gr(e.articletagtypetaghandle);return i.forEach((o,u)=>{let[c,...s]=o.split("|"),[f,...d]=(r[u]||"").split("|"),m=s.join("|").trim(),v=d.join("|").trim();!ec(c)||!ec(f)||!v||!Af(m)||l.has(v.toLowerCase())||l.set(v.toLowerCase(),{handle:v,label:m,requestValue:m})}),r.forEach(o=>{let[u,...c]=o.split("|"),s=c.join("|").trim();!ec(u)||!s||!Af(s)||l.has(s.toLowerCase())||l.set(s.toLowerCase(),{handle:s,label:s})}),[...l.values()]}function ev(e,t){if(t)return e.find(n=>n.handle.toLowerCase()===t.toLowerCase())?.requestValue}function hi(e,t){let n=(Array.isArray(t)?t:[t]).filter(a=>typeof a=="string").map(a=>a.trim().toLowerCase()).filter(Boolean);return n.length===0?e:e.filter(a=>wf(a).some(l=>n.includes(l.handle.toLowerCase())))}function T2(e){let t=new Map;return Array.isArray(e.articlecategory)?(e.articlecategory.forEach(n=>{if(typeof n!="string")return;let a=n.trim();a===a.toLowerCase()&&(a=a.replace(/\b\w/g,l=>l.toUpperCase())),a&&!t.has(a.toLowerCase())&&t.set(a.toLowerCase(),{handle:a,label:a})}),[...t.values()]):[]}function tv(e,t,n){let a={},l={},i={};e.forEach(u=>{let c=[];if(t.includeReviewProducts&&Zt(u)==="review"&&c.push(u.id||u.documenturl||u.documenthandle||""),u.articlepage)try{let s=ci(u),f=si(s,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});if((t.includeDeals===!1||t.includeCollections===!1)&&!f.some(d=>d.type==="buying-guide")&&!el(u,t.includeDeals,t.includeCollections,t.website))return;f.forEach(d=>{if(d.type==="buying-guide"){c.push(d.id||JSON.stringify(d.data||{}));return}if(fi(d,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:m,rawMsrp:v}=Ku(d);if(!Sa(m,t.priceRange)||!Ca(m,v,t.discountAmount))return;let A=d.data||{};if(t.selectedBrands&&t.selectedBrands.length>0&&!di(A,t.selectedBrands))return;let h=d.type==="featured-product"?A.primaryLink:A.link,g=A.url||A.link&&A.link.url||h&&h.url;c.push(g||JSON.stringify(A))})}catch{}c.length!==0&&n(u).forEach(s=>{let f=s.handle.toLowerCase(),d=Object.keys(a).find(m=>m.toLowerCase()===f);d||(d=s.handle,a[d]=new Set,l[d]=s.label,i[d]=s.requestValue),c.forEach(m=>a[d].add(m))})});let r={};return Object.keys(a).forEach(u=>{r[u]=a[u].size}),{tags:Object.keys(r).map(u=>({handle:u,label:l[u]||u,requestValue:i[u]})).sort((u,c)=>r[c.handle]-r[u.handle]),tagCounts:r}}function tc(e,t){let{tags:n,tagCounts:a}=tv(e,t,T2);return{tags:n.map(l=>l.label),tagCounts:a}}function nc(e,t){let{tags:n,tagCounts:a}=tv(e,t,wf);return{tags:n,tagCounts:a}}function E2(e,t){return e.documentUrl||e.sourceArticleUrl||e.articleId||`deal-${t}`}function yn(e,t,n){if(t!=="mix"||n!=="date_desc")return e;let a=new Map;e.forEach((o,u)=>{let c=E2(o,u),s=a.get(c)||[];s.push(o),a.set(c,s)});let l=[],i=0,r=!0;for(;r;)r=!1,a.forEach(o=>{let u=o[i];u&&(l.push(u),r=!0)}),i+=1;return l}var nv="compact-v1",D2={brand:"",currency:"",hasCommerceOffer:!1,isoCurrency:"",isCheckPrice:!0,isFeatured:!1,isPrime:!1,merchant:"",merchantId:"",msrp:"",price:"",rawMsrp:0,rawPrice:0,savingLabel:"",savingType:"none"},x2={hasCommerceOffer:!0,hawkPricePending:!1,rawMsrp:0,rawPrice:0};function av(e){return e.map(t=>{if(!t.isReviewProduct)return t;let n=String(t.sourceArticleUrl||t.documentUrl||t.url||""),a=t.fallbackImage??t.image??"",l={...D2,...t,fallbackImage:a,image:t.image??a,sourceArticleUrl:n,documentUrl:t.documentUrl??n,url:t.url??n,title:t.title??t.productName??"",text:t.text??t.description??"",hawkPricePending:t.hawkPricePending??!!t.hawkModelName,pros:t.pros??[],cons:t.cons??[]};return t.hawkRegionalCommerce&&(l.hawkRegionalCommerce=Object.fromEntries(Object.entries(t.hawkRegionalCommerce).map(([i,r])=>{let o=r,u=o.productName??l.productName,c=o.rawPrice??0,s=o.rawMsrp??0;return[i,{...x2,...o,fallbackImage:o.fallbackImage??a,image:o.image??a,productName:u,title:o.title??u??l.title,price:o.price??(c?String(c):""),msrp:o.msrp??(s?String(s):"")}]}))),l})}function ac(e,t,n=100){let a=new Set(e.slice(0,t).map((i,r)=>i.id||`visible-${r}`)),l=e.slice(0,t).filter(i=>i.isReviewProduct).length;return e.filter((i,r)=>{let o=i.id||`visible-${r}`;return a.has(o)?!0:i.isReviewProduct?(l+=1,l<=n):!1})}function lv(e,t){let n=new Map(t.map((a,l)=>[a.id||`enriched-${l}`,a]));return e.map((a,l)=>n.get(a.id||`enriched-${l}`)||a)}var M2=new Set(["deal","featured-product","gallery","buying-guide","text","section"]);function lc(e){return!!e&&typeof e=="object"}function iv(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function rv(e){try{let t=iv(e);if(!Array.isArray(t)||!t[0])return;let n=t[0],a=typeof n=="string"?iv(n):Array.isArray(n)?n:lc(n)&&"type"in n?t:n;if(!Array.isArray(a))return;let l=a.filter(i=>lc(i)&&M2.has(i.type)).map(i=>i.type==="text"&&i.data?{type:"text",data:{paragraphs:Array.isArray(i.data.paragraphs)?i.data.paragraphs.slice(0,3):void 0,text:typeof i.data.text=="string"?i.data.text.slice(0,500):void 0}}:i.type==="section"&&i.data?{type:"section",data:{text:i.data.text,heading:i.data.heading,title:i.data.title}}:i);return l.length>0?[JSON.stringify(l)]:void 0}catch{return}}function ov(e){if(!Array.isArray(e))return[];let t=!1;return e.map(n=>{if(!lc(n))return n;let a=n.articlepage?rv(n.articlepage):void 0,l=!!(n.articleauthormedia||n.articleauthorrole),i=!!(!t&&(n.articleauthorbio||n.articleauthorlongbio||n.articleauthorsocialnetworks));return i&&(t=!0),{id:n.id,articlename:n.articlename,documentname:n.documentname,documentnametext:n.documentnametext,documenthandle:n.documenthandle,articlecategory:n.articlecategory,articletag:n.articletag,articletaghandle:n.articletaghandle,articletagtype:n.articletagtype,articletagtypetag:n.articletagtypetag,articletagtypetaghandle:n.articletagtypetaghandle,articlecontroltag:n.articlecontroltag,articletype:n.articletype,articleauthor:n.articleauthor,articleauthorhandle:n.articleauthorhandle,articleauthortext:n.articleauthortext,...l?{articleauthorrole:n.articleauthorrole,articleauthormedia:n.articleauthormedia}:{},articlestrapline:n.articlestrapline,articlesocialtitle:n.articlesocialtitle,documenturl:n.documenturl,articlemedia:n.articlemedia,articlehawkmodels:n.articlehawkmodels,productrating:n.productrating,productpros:n.productpros,productcons:n.productcons,productverdict:n.productverdict,contentmodifieddate:n.contentmodifieddate,modifieddate:n.modifieddate,createddate:n.createddate,datepublished:n.datepublished,publisheddate:n.publisheddate,...i?{articleauthorbio:n.articleauthorbio,articleauthorlongbio:n.articleauthorlongbio,articleauthorsocialnetworks:n.articleauthorsocialnetworks}:{},...a?{articlepage:a}:{}}})}function uv(e){return Array.isArray(e)?e.map(t=>{if(!lc(t))return t;let n=t.articlepage?rv(t.articlepage):void 0;return{id:t.id,articleid:t.articleid,articlename:t.articlename,documentname:t.documentname,documentnametext:t.documentnametext,documenthandle:t.documenthandle,articleauthor:t.articleauthor,articleauthorhandle:t.articleauthorhandle,articleauthortext:t.articleauthortext,articleauthorrole:t.articleauthorrole,articleauthormedia:t.articleauthormedia,articleauthorbio:t.articleauthorbio,articleauthorlongbio:t.articleauthorlongbio,articleauthorsocialnetworks:t.articleauthorsocialnetworks,articlecategory:t.articlecategory,articletag:t.articletag,articletaghandle:t.articletaghandle,articletagtype:t.articletagtype,articletagtypetag:t.articletagtypetag,articletagtypetaghandle:t.articletagtypetaghandle,articletype:t.articletype,articlestrapline:t.articlestrapline,articlesocialtitle:t.articlesocialtitle,documenturl:t.documenturl,articlemedia:t.articlemedia,articlehawkmodels:t.articlehawkmodels,productrating:t.productrating,productpros:t.productpros,productcons:t.productcons,productverdict:t.productverdict,url:t.url,contentmodifieddate:t.contentmodifieddate,modifieddate:t.modifieddate,createddate:t.createddate,datepublished:t.datepublished,publisheddate:t.publisheddate,content:t.content,dek:t.dek,image_thumbnail:t.image_thumbnail,intro:t.intro,paragraphs:t.paragraphs,strapline:t.strapline,subtitle:t.subtitle,title:t.title,...n?{articlepage:n}:{}}}):[]}function pi(e){if(!e?.modifiedDate)return 0;let t=Array.isArray(e.modifiedDate)?e.modifiedDate[0]:e.modifiedDate,n=new Date(t).getTime();return Number.isNaN(n)?0:n}function nl(e){return e?.hasCommerceOffer===!0?!0:e?.hasCommerceOffer===!1?!1:!!(!e?.isBuyingGuideProduct&&!e?.isReviewProduct&&e?.url)}function ln(e,t,n=!0){let a=!0;t==="date_desc"?e.sort((l,i)=>pi(i)-pi(l)):t==="price_asc"?e.sort((l,i)=>l.rawPrice-i.rawPrice):t==="price_desc"?e.sort((l,i)=>i.rawPrice-l.rawPrice):t==="discount_desc"?e.sort((l,i)=>{let r=l.rawMsrp>l.rawPrice?l.rawMsrp-l.rawPrice:0;return(i.rawMsrp>i.rawPrice?i.rawMsrp-i.rawPrice:0)-r}):t==="rating_desc"?e.sort((l,i)=>{let r=Number(l.starRating)||0;return(Number(i.starRating)||0)-r||pi(i)-pi(l)}):t==="scored_first"?e.sort((l,i)=>{let r=Number(l.starRating)>0?1:0;return(Number(i.starRating)>0?1:0)-r||pi(i)-pi(l)}):a=!1,a&&n&&e.sort((l,i)=>Number(nl(i))-Number(nl(l)))}function cv(e,t,n){let a=e;if(!a&&t){let l=n.find(i=>i.toLowerCase()===t?.toLowerCase());l&&(a=l)}return a}function Pr(e,t){if(!t)return e;let n=t.toLowerCase();return e.filter(a=>a.articlecategory&&Array.isArray(a.articlecategory)&&a.articlecategory.some(l=>{if(!l||typeof l!="string")return!1;let i=l.toLowerCase(),r=i.split(":::");return i===n||r[0]===n||i.includes(n)}))}function sv(e){let t=wt(e.region);return{activeRegionCode:t,targetIso:an(t)}}function al(e,t,{discountAmount:n,priceRange:a}={}){let l=!!(a&&a!=="all"),i=!!(n&&n!=="0"&&n!=="all");return!t?.length&&!l&&!i?e:e.filter(r=>!r.isBuyingGuideProduct&&!r.isReviewProduct?!0:t?.length&&!di({brand:r.brand},t)||l&&(!Number(r.rawPrice)||!Sa(Number(r.rawPrice),a))?!1:Ca(Number(r.rawPrice)||0,Number(r.rawMsrp)||0,n))}function _2(e,t){let n=e.articleauthorhandle||[],a=e.articleauthor||[],l=e.articleauthortext||[],i=new Set([t.handle.toLowerCase(),t.fullName.toLowerCase(),t.name.toLowerCase()]);return[...n,...a,...l].some(r=>i.has(String(r||"").toLowerCase()))}function Sf(e,t,n){let a=Object.fromEntries(e.map(l=>[l.handle,0]));return t.forEach(l=>{let i=mi([l],n).length;i!==0&&e.forEach(r=>{_2(l,r)&&(a[r.handle]+=i)})}),a}function Cf(e,t){let n=Xu(e,t.authorHandle,t.authorName),a=t.selectedArticleId?n.filter(A=>A.id===t.selectedArticleId):n,{activeRegionCode:l,targetIso:i}=sv(t),{tags:r,tagCounts:o}=tc(a,{activeRegionCode:l,targetIso:i,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),u=cv(t.activeDealTag,t.query,r),c=Pr(a,u),{tags:s,tagCounts:f}=nc(c,{activeRegionCode:l,targetIso:i,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),d=t.activeFreeformTags?.length?t.activeFreeformTags:t.activeFreeformTag?[t.activeFreeformTag]:[],m=d.flatMap(A=>{let b=s.find(h=>h.handle.toLowerCase()===A.toLowerCase());return b?[b.handle]:[]}),v=t.preserveFreeformTagSelection?d:m;return{activeDealTag:u,activeFreeformTag:v[0]||null,activeFreeformTags:v,activeRegionCode:l,authorArticles:n,freeformTagCounts:f,freeformTags:s,tagCounts:o,tags:r,targetArticles:hi(c,v),targetIso:i}}function ic(e,t,n,a){let l=Iu(e,{activeRegionCode:n,targetIso:a,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,website:t.website}),i=Ur(e,{activeRegionCode:n,targetIso:a,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website});ln(i,t.sort,t.prioritiseCommercialProducts);let r=yn(al(i,t.selectedBrands,{discountAmount:t.discountAmount,priceRange:t.priceRange}),t.productSelection,t.sort).map(o=>(o.isBuyingGuideProduct||o.isReviewProduct)&&o.hawkModelName?{...o,hawkPricePending:!0}:o);return{brands:l,displayedDeals:r,extractedDeals:i}}function dv(e,t){let{activeRegionCode:n,targetIso:a}=sv(t),l=Lr(e,t.website||"tomsguide"),i=e.filter(o=>mi([o],{activeRegionCode:n,targetIso:a,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}).length>0),r=al(Ur(e,{activeRegionCode:n,targetIso:a,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),t.selectedBrands,{discountAmount:t.discountAmount,priceRange:t.priceRange});return{authorCount:kr(l,i).length,deals:r}}function fv({allArticles:e,authorArticles:t,inventoryArticles:n,bakeReviewInventory:a,brands:l,couponMap:i,currentDealTag:r,currentFreeformTags:o,displayedDeals:u,options:c,resultCount:s,tagCounts:f,tags:d,freeformTagCounts:m,freeformTags:v,totalAuthorCount:A,totalDealCount:b}){let h=Lr(e,c.website||"tomsguide"),g=Sf(h,n,{activeRegionCode:wt(c.region),targetIso:an(wt(c.region)),selectedBrands:c.selectedBrands,priceRange:c.priceRange,discountAmount:c.discountAmount,includeBuyingGuideProducts:c.includeBuyingGuideProducts,includeCollections:c.includeCollections,includeDeals:c.includeDeals,includeReviewProducts:c.includeReviewProducts,website:c.website}),p=kr(h,e.filter(C=>mi([C],{activeRegionCode:wt(c.region),targetIso:an(wt(c.region)),includeBuyingGuideProducts:c.includeBuyingGuideProducts,includeCollections:c.includeCollections,includeDeals:c.includeDeals,includeReviewProducts:c.includeReviewProducts,website:c.website}).length>0)),y=Number(s)||12;return{activeDealTag:r,activeFreeformTag:o[0]||null,activeFreeformTags:o,allDeals:a?ac(u,y):u,authorArticles:ov(t),authors:Yu(p,g),brands:l,couponMap:i,deals:u.slice(0,y),reviewInventoryBaked:a,tagCounts:f,tags:d,freeformTagCounts:m,freeformTags:v,totalAuthorCount:A,totalDealCount:b}}function B2(e){return e&&e.widget&&e.widget.data&&Array.isArray(e.widget.data.offers)?e.widget.data.offers:e&&e.data&&Array.isArray(e.data.offers)?e.data.offers:Array.isArray(e)?e:e&&Array.isArray(e.offers)?e.offers:e&&e.offers&&Array.isArray(e.offers.offer)?e.offers.offer:e&&Array.isArray(e.data)?e.data:[]}function gv(e,t,n){let a={...n},l=new Set;return B2(e).forEach(r=>{let o="";r.merchant_name?o=r.merchant_name:r.merchant&&r.merchant[0]&&r.merchant[0].name?o=r.merchant[0].name:r.merchant&&r.merchant.name?o=r.merchant.name:r.retailer&&(o=r.retailer),o&&l.add(o.toLowerCase())}),t.forEach(r=>{a[r]=l.has(r.toLowerCase())?"has":"none"}),a}function mv(e){let t=[];return e?.widget?.data?.offers?t=e.widget.data.offers:e?.data?.offers?t=e.data.offers:Array.isArray(e)?t=e:e?.offers?.offer?t=Array.isArray(e.offers.offer)?e.offers.offer:[e.offers.offer]:e?.offers&&(t=Array.isArray(e.offers)?e.offers:[e.offers]),t}async function hv({couponMap:e,couponUrl:t,fetcher:n=fetch,merchants:a}){if(!t)return e;try{let l=await n(t.toString());return gv(await l.json(),a,e)}catch{let l={...e};return a.forEach(i=>{l[i]="none"}),l}}function pv({enrichingBuyingGuides:e,error:t,loading:n,loadingMore:a,refreshingFeed:l}){return t?"error":a?"loading_more":n?"loading_inventory":l?"refreshing_inventory":e?"enriching_visible_cards":"ready"}function yv(e,t){let n=Xu(tl(e),t.authorHandle,t.authorName),a=wt(t.region),l=an(a),{tags:i,tagCounts:r}=tc(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),o=Iu(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,website:t.website}),{tags:u,tagCounts:c}=nc(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),s=$0(n,{activeRegionCode:a,targetIso:l,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website});ln(s,t.sort,t.prioritiseCommercialProducts);let f=yn(s,t.productSelection,t.sort);return{authorArticles:n,brands:o,deals:f,tagCounts:r,tags:i,freeformTagCounts:c,freeformTags:u}}var N2="fc-author-commerce-widget",vn="airedale-feeds";var rc=null;function vv(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Rf(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function Tf(){return rc||(typeof window>"u"||typeof window.indexedDB>"u"?Promise.resolve(null):(rc=new Promise(e=>{let t=window.indexedDB.open(N2,14);t.onupgradeneeded=()=>{let n=t.result;n.objectStoreNames.contains(vn)||n.createObjectStore(vn,{keyPath:"key"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null)}),rc))}function bv({authorHandle:e,authorName:t,includeBuyingGuideProducts:n,includeCollections:a,includeDeals:l,includeReviewProducts:i,articleCategory:r,articleTag:o,pageStarts:u,reviewPageStarts:c,loadAllReviewPages:s,website:f}){return["v14",f||"tomsguide",e||"",t||"",n?"buying-guides":"",a===!1?"no-collections":"collections",l===!1?"no-deals":"deals",i?"reviews":"",r||"",o||"",u?.join(",")||"",c?.join(",")||"",s===!1?"review-pages-partial":""].map(d=>encodeURIComponent(d)).join("|")}async function O2(e){let t=await Tf();if(!t)return;let n=t.transaction(vn,"readwrite"),a=Rf(n);n.objectStore(vn).delete(e),await a}async function Av(e,t=Date.now()){try{let n=await Tf();if(!n)return null;let a=n.transaction(vn,"readonly"),l=await vv(a.objectStore(vn).get(e));if(!l||l.schemaVersion!==14||!Array.isArray(l.articles)||l.articles.length===0)return null;let i=Math.max(0,t-l.cachedAt);return i>864e5?(O2(e),null):{articles:l.articles,cachedAt:l.cachedAt,isFresh:i<=6e5}}catch{return null}}async function k2(e){let t=e.transaction(vn,"readwrite"),n=Rf(t),a=t.objectStore(vn);(await vv(a.getAll())).sort((i,r)=>r.cachedAt-i.cachedAt).slice(10).forEach(i=>a.delete(i.key)),await n}async function wv(e,t,n=Date.now()){if(t.length!==0)try{let a=await Tf();if(!a)return;let l=a.transaction(vn,"readwrite"),i=Rf(l);l.objectStore(vn).put({articles:t,cachedAt:n,key:e,schemaVersion:14}),await i,await k2(a)}catch{}}var Ef=[];var Mf=[],Df=0;function Sv(){for(;Df<4&&Mf.length>0;){let e=Mf.shift();if(!e)return;Df+=1,e.run().then(e.resolve,e.reject).finally(()=>{Df-=1,Sv()})}}function L2(e){return new Promise((t,n)=>{Mf.push({reject:n,resolve:t,run:e}),Sv()})}function xf(e){Ef.push(e),Ef.length>100&&Ef.shift()}async function oc(e,t,n=4){let a=new Array(e.length),l=0,i=Math.min(Math.max(1,n),e.length);return await Promise.all(Array.from({length:i},async()=>{for(;l<e.length;){let r=l;l+=1,a[r]=await t(e[r],r)}})),a}async function yi(e,t){return L2(async()=>{let n=t.fetcher||fetch,a=Date.now(),l=new AbortController,i=!1,r=()=>l.abort();if(t.signal?.aborted)return xf({durationMs:0,outcome:"aborted",source:t.source,startedAt:a}),{data:null,response:null};t.signal?.addEventListener("abort",r,{once:!0});let o=setTimeout(()=>{i=!0,l.abort()},8e3);try{let u=await n(e,{signal:l.signal}),c=u.ok?await u.json():null;return xf({durationMs:Date.now()-a,outcome:u.ok?"succeeded":"failed",source:t.source,startedAt:a}),{data:c,response:u}}catch{return xf({durationMs:Date.now()-a,outcome:i?"timed_out":t.signal?.aborted?"aborted":"failed",source:t.source,startedAt:a}),{data:null,response:null}}finally{clearTimeout(o),t.signal?.removeEventListener("abort",r)}})}var Bf="https://airedale.futurecdn.net/feeds/feed_1786707986217.json",H2="https://airedale.futurecdn.net/feeds/feed_1786702796175.json",z2="https://airedale.futurecdn.net/feeds/feed_1787582137748.json",U2=2,_f=new Map,Cv=new Map;function Rv(e){let t=new URL(e),n=String(t.searchParams.get("articleType")||"").trim().toLowerCase(),a=String(t.searchParams.get("articleControlTag")||"").replace(/[\s-]+/g,"_").toLowerCase();return n!=="deals"&&a!=="type_deal"?null:(t.searchParams.delete("start"),t.toString())}function G2(e){return!e.response?.ok||e.articles.length<50?!1:!e.articles.some(t=>pf(t)&&!yf(t))}function P2(e){return!e.parameter||!e.value?"":`&${e.parameter}=${encodeURIComponent(e.value)}`}function q2(e,t="",n=!1,a,l,{includeCollections:i=!0,includeDeals:r=!0}={},o){let u=Wu(e,{includeBuyingGuideProducts:n,includeCollections:i,includeDeals:r}),c=a?`&articleCategory=${encodeURIComponent(a)}`:"",s=o?`&articleTag=${encodeURIComponent(o)}`:"";return u.scopes.flatMap(f=>(l||u.pageStarts).map(d=>`${Bf}?site=${e}&limit=${50}&start=${d}${P2(f)}${t}${c}${s}`))}function Tv(e,t="",n,a=0,l){let i=e==="pcgamer"?"&articleControlTag=channel_gaming_hardware":"",r=n?`&articleCategory=${encodeURIComponent(n)}`:"",o=l?`&articleTag=${encodeURIComponent(l)}`:"";return`${H2}?site=${encodeURIComponent(e)}&articleType=review&limit=${50}&start=${a}${i}${t}${r}${o}`}function F2(e,t){return t!=="pcgamer"?e:e.map(n=>{let a=Array.isArray(n.articlecontroltag)?n.articlecontroltag:[];return a.some(l=>String(l).replace(/[^a-z0-9]/gi,"").toLowerCase()==="channelgaminghardware")?n:{...n,articlecontroltag:[...a,"channel_gaming_hardware"]}})}function j2(e,t){return`${z2}?site=${encodeURIComponent(e)}&documentHandle=${encodeURIComponent(t)}&limit=1`}async function Y2(e,t){let n=`${e}|${t}`,a=Cv.get(n);if(a)return a;let l=yi(j2(e,t),{source:"review-model-resolver"}).then(({data:i})=>i?gf(i)[0]:null).then(i=>i?gi(i):"").catch(()=>"");return Cv.set(n,l),l}async function Nf(e,t,n,a="date_desc"){let l=o=>{let u=[o.datepublished,o.publisheddate,o.createddate,o.contentmodifieddate,o.modifieddate].find(s=>s!=null&&String(s).trim()),c=new Date(Array.isArray(u)?u[0]:u).getTime();return Number.isFinite(c)?c:0},i=o=>{let u=Array.isArray(o.productrating)?o.productrating[0]:o.productrating;return Number(u)||0},r=e.filter(o=>Zt(o)==="review"&&!gi(o)&&typeof o.documenthandle=="string"&&o.documenthandle.trim()).sort((o,u)=>{let c=i(o),s=i(u);return a==="rating_desc"?s-c||l(u)-l(o):a==="scored_first"&&+(s>0)-+(c>0)||l(u)-l(o)}).slice(0,n);return await Promise.all(r.map(async o=>{let u=await Y2(t,o.documenthandle);u&&(o.articlehawkmodels=[u])})),e}function xv(e,t){let n=()=>{wv(e,uv(t))};if(typeof window<"u"&&typeof window.requestIdleCallback=="function"){window.requestIdleCallback(n,{timeout:2e3});return}setTimeout(n,0)}function V2(e,t){return e&&e!=="all-authors"?`&articleAuthorHandle=${encodeURIComponent(e)}`:t&&t!=="All authors"&&t!=="all-authors"?`&articleAuthor=${encodeURIComponent(t)}`:""}function X2({articleCategory:e,articleTag:t,authorParameter:n}){return!!(n&&!e&&!t)}async function Mv({authorHandle:e,authorName:t,fallbackAuthorName:n,includeBuyingGuideProducts:a,includeCollections:l,includeDeals:i,includeReviewProducts:r,onProgress:o,articleCategory:u,articleTag:c,pageStarts:s,reviewPageStarts:f,loadAllReviewPages:d,signal:m,throwOnFailure:v,website:A}){let b=A||"tomsguide",h=V2(e,t),g=[],p=!1,y=!0,C=w=>j0(w,b,a,r,l,i),R=()=>q0(g).map(w=>{let D=gi(w);return D&&!String(w.articlehawkmodels||"").trim()?{...w,articlehawkmodels:[D]}:w}).filter(C),T=()=>{let w=R();w.length>0&&o?.(w)};try{let w=q2(b,h,a,u,s,{includeCollections:l,includeDeals:i},c),D=[];r&&(f||[0]).forEach(X=>{let de=Tv(b,h,u,X,c);D.push(de),w.push(de)});let k=async(X,de=D.includes(X)?"review-feed":"author-feed")=>{let $e=await yi(X,{signal:m,source:de});for(let jr=0;jr<U2&&!$e.response?.ok&&!m?.aborted;jr+=1)$e=await yi(X,{signal:m,source:de});let{data:Z,response:x}=$e,P=Z?gf(Z):[],Q=b==="pcgamer"&&de.startsWith("review-feed")?F2(P,b):P,Vn={articles:Q,data:Z,isPcGamerHardwareReviewFeed:b==="pcgamer"&&de.startsWith("review-feed"),response:x,reviewTotalCount:D.includes(X)&&Number(x?.headers.get("x-total-count"))||null};return Q.length>0&&g.push(...Q),Vn},se=w.filter(X=>Number(new URL(X).searchParams.get("start")||0)===0),I=w.filter(X=>!se.includes(X)),j=await oc(se,X=>k(X));T();let He=new Map(se.flatMap((X,de)=>{let $e=Rv(X);return $e?[[$e,j[de]]]:[]})),ze=new Map,St=[];I.forEach(X=>{let de=Rv(X);if(!de){St.push(X);return}ze.set(de,[...ze.get(de)||[],X])});let[Ie,rn]=await Promise.all([oc(St,X=>k(X)),Promise.all([...ze.entries()].map(async([X,de])=>{let $e=[],Z=He.get(X);for(let x of de){if(!Z||!G2(Z))break;let P=await k(x);$e.push(P),Z=P}return $e}))]),Be=[...Ie,...rn.flat()],Je=[...j,...Be];p=Je.length>0&&Je.every(X=>!X.response?.ok);let nt=Je.find(X=>X.reviewTotalCount!==null)?.reviewTotalCount;if(d!==!1&&f&&nt&&nt>f.length*50){let X=new Set(f),de=[];for(let Z=0;Z<nt;Z+=50)X.has(Z)||de.push(Z);let $e=await oc(de,async Z=>await k(Tv(b,h,u,Z,c),"review-feed-page"));Je.push(...$e)}y=Je.every(X=>X.response?.ok)}catch(w){y=!1}if(v&&p)throw new Error("The author feed could not be loaded");let M=R();if(M.length===0&&X2({authorParameter:h,articleCategory:u,articleTag:c}))try{let w=await yi(`${Bf}?site=${b}&limit=150${h}`,{signal:m,source:"author-feed-fallback"});if(!w.response?.ok&&n&&(w=await yi(`${Bf}?site=${b}&limit=150&articleAuthor=${encodeURIComponent(n)}`,{signal:m,source:"author-feed-fallback"})),w.data){let D=w.data,k=Array.isArray(D)?D:D.data||[];k.length>0&&(M=k.slice(0,150))}}catch(w){}return{articles:M.filter(C),complete:!m?.aborted&&y}}function Ev(e,t){let n=_f.get(e);if(n)return n;let a=Mv(t).then(l=>(l.complete&&l.articles.length>0&&xv(e,l.articles),l)).finally(()=>{_f.delete(e)});return _f.set(e,a),a}async function Dv(e,t){let n=await Mv(t);return n.complete&&n.articles.length>0&&xv(e,n.articles),n}async function _v({onBackgroundRefresh:e,onProgress:t,...n}){let a=bv(n),l=await Av(a);return l?(t?.(l.articles),l.isFresh||(n.signal?Dv(a,n):Ev(a,n)).then(({articles:o,complete:u})=>{u&&o.length>0&&e?.(o)}),l.articles):(await(n.signal?Dv(a,{...n,onProgress:t}):Ev(a,{...n,onProgress:t}))).articles}function Of(e,t){let n=e.shipping?.prime===!0,a=e.merchant?.name||e.merchant_name||e.retailer||"Retailer";typeof e.merchant=="string"&&(a=e.merchant);let l=null,i=0,r=String(e.model_id||e.id||"");if(r&&t)if(t[r]&&t[r].score!=null)l=parseFloat(t[r].score);else{let o=Object.values(t).find(u=>String(u.model_id)===r||String(u.id)===r);o&&o.score!=null&&(l=parseFloat(o.score))}return l!=null&&(i=Math.round((l>10?l/20:l/2)*2)/2),{isPrime:n,merchant:a,starRating:i>0?i:null}}function kf(e){let t=String(e.price||e.current_price||"0"),n=String(e.was_price||e.msrp||e.original_price||"0"),a=parseFloat(t.replace(/[^0-9.]/g,""))||0,l=parseFloat(n.replace(/[^0-9.]/g,""))||0,i=a===0||t==="0.00"||t==="0",r=e.currency&&typeof e.currency=="string"?e.currency:e.currency_symbol&&typeof e.currency_symbol=="string"?e.currency_symbol:"$",o=ee(e.percentage_saving_label||"");!o&&l>a&&a>0&&(o=Math.round((l-a)/l*100)+"% OFF");let u=r;return u.includes("&")&&(u.includes("36")?u="$":u.includes("163")||u.includes("pound")?u="\xA3":(u.includes("8364")||u.includes("euro"))&&(u="\u20AC")),{rawPrice:a,rawMsrp:l,currency:u,isCheckPrice:i,savingLabel:o}}function Bv({query:e,region:t,retailer:n,selectedBrands:a,offerType:l,priceRange:i,discountAmount:r,resultCount:o}){let u=new URL("https://search-api.fie.future.net.uk/widget.php");if(u.searchParams.append("model_name",e),t&&t!=="auto"&&u.searchParams.append("area",t),n&&u.searchParams.append("filter_merchant_name",n),a&&a.length>0&&u.searchParams.append("filter_label[text_brand]",a.join(",")),l&&u.searchParams.append("offer",l),i&&i!=="all"){if(i==="under50")u.searchParams.append("filter_max_price","50");else if(i==="over50")u.searchParams.append("filter_min_price","50");else if(i==="over30")u.searchParams.append("filter_min_price","30");else if(i==="over500")u.searchParams.append("filter_min_price","500");else if(i.includes("_")){let[c,s]=i.split("_");c&&u.searchParams.append("filter_min_price",c),s&&u.searchParams.append("filter_max_price",s)}}if(r&&r!=="0"){let c=(100-parseInt(r))/100;u.searchParams.append("min_discount_ratio",c.toString())}return u.searchParams.append("filter_product_types","deals"),u.searchParams.append("rows",String(o||"12")),u}function Nv(e){return e?.widget?.data?.offers?e.widget.data.offers:e?.data?.offers?e.data.offers:Array.isArray(e)?e:e?.offers?.offer?Array.isArray(e.offers.offer)?e.offers.offer:[e.offers.offer]:e?.offers?Array.isArray(e.offers)?e.offers:[e.offers]:[]}function Ov(e){let t=[];return e.forEach(n=>{let a=[];Array.isArray(n.offers)?a=n.offers:Array.isArray(n.offer)?a=n.offer:n.offers&&typeof n.offers=="object"?a=[n.offers]:n.offer&&typeof n.offer=="object"&&(a=[n.offer]),a.length>0?a.forEach(l=>{t.push({...n,...l})}):t.push(n)}),t}function kv(e){return e?.widget?.data?.model_info?e.widget.data.model_info:e?.data?.model_info?e.data.model_info:{}}var Lf=new Map,Q2=3e3,K2=["GB","US"],Lv=6,Z2=["brand","currency","fallbackImage","hasCommerceOffer","hawkPricePending","hawkListings","image","isCheckPrice","merchant","merchantId","modelId","msrp","price","productKey","productName","rawMsrp","rawPrice","savingLabel","title","url"];function Hf(e){return String(e||"").trim().toLowerCase()}function Gv(e){return e==="UK"?"GB":e}function Pv(e,t){let n=String(t||"").trim().toUpperCase(),l={AU:["A$","AUD"],CA:["CA$","CAD"],DE:["\u20AC","EUR"],ES:["\u20AC","EUR"],FR:["\u20AC","EUR"],GB:["\xA3","GBP","GB\xA3"],IT:["\u20AC","EUR"],NL:["\u20AC","EUR"],US:["$","USD","US$"]}[e];return!l||l.includes(n)}function Hv(e,t){return String(e.id||`hawk-deal-${t}`)}function W2(e){return e.map(t=>({...t,hasCommerceOffer:!1,hawkPricePending:!!t.hawkModelName,hawkListings:[],image:t.fallbackImage||t.image||"",isCheckPrice:!0,merchant:"",merchantId:"",msrp:"",price:"",productKey:"",rawMsrp:0,rawPrice:0,savingLabel:"",url:t.sourceArticleUrl||t.documentUrl||t.url}))}function I2(e){return Z2.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{})}function qv(e){return!!((e.isBuyingGuideProduct||e.isReviewProduct)&&e.hawkModelName)}function J2(e){return e.model_image_url||e.model_image||e.product_image||e.image_url||e.image||""}function Fv(e){return e.link||e.url||e.offer_link||""}function $2(e,t){let n=String(t.model_id||t.id||"");return n&&e[n]?e[n]:Object.values(e).find(a=>String(a?.model_id||a?.id||"")===n)||{}}function eS(e,t,n){let a=e.map(i=>{let r=kf(i),o=Of(i,t),u=Fv(i),c=ee(String(o.merchant||"")).trim();return!u||!c||r.rawPrice<=0||!Pv(n,r.currency)?null:{merchant:c,merchantId:typeof i.merchant=="object"?String(i.merchant?.id||""):"",modelId:String(i.model_id||""),offer:i,productKey:String(i.product_key||""),rawPrice:r.rawPrice,url:u}}).filter(i=>i!==null).sort((i,r)=>i.rawPrice-r.rawPrice||i.merchant.localeCompare(r.merchant)),l=new Set;return a.filter(i=>{let r=i.merchant.toLocaleLowerCase();return l.has(r)?!1:(l.add(r),!0)}).slice(0,4)}async function zv(e,t,n){let a=`${t}|${Hf(e)}`;return Lf.has(a)||Lf.set(a,(async()=>{let l;try{let i=new AbortController;l=setTimeout(()=>i.abort(),Q2);let r=await n(Bv({query:e,region:t,resultCount:12}).toString(),{signal:i.signal});if(!r.ok)return null;let o=await r.json(),u=Ov(Nv(o)),c=Hf(e),s=u.filter(A=>Hf(A.model_name||A.model)===c),f=s.length?s:u,d=f[0]||null;if(!d)return null;let m=kv(o),v=$2(m,d);return{brand:String(v?.brand||d.brand||"").trim(),modelInfo:m,offer:d,offers:f}}catch{return null}finally{l&&clearTimeout(l)}})()),Lf.get(a)}function Uv(e,t,n){return e.map(a=>{let l=String(a.hawkModelName);if(!qv(a)||!t.has(l))return a;let i=t.get(l);if(!i)return{...a,hawkPricePending:!1};let{offer:r}=i.lookup,o=kf(r),u=Of(r,i.lookup.modelInfo),c=J2(r),s=Fv(r),f=ee(String(r.model_name||r.model||a.hawkModelName||a.productName||a.title||"").trim()),d=!!(i.region===n&&s&&Pv(n,o.currency)),m=i.region===n?eS(i.lookup.offers,i.lookup.modelInfo,n).map(({offer:v,...A})=>A):[];return d?{...a,brand:i.lookup.brand||r.brand||a.brand,currency:o.currency||a.currency,fallbackImage:c?a.image:a.fallbackImage,hasCommerceOffer:!0,hawkPricePending:!1,hawkListings:m,image:c||a.image,isCheckPrice:o.isCheckPrice,merchant:u.merchant||a.merchant,merchantId:typeof r.merchant=="object"&&r.merchant?.id||"",modelId:r.model_id||"",msrp:o.rawMsrp>0?String(o.rawMsrp):"",price:o.rawPrice>0?String(o.rawPrice):"",productKey:r.product_key||"",productName:f||a.productName,rawMsrp:o.rawMsrp,rawPrice:o.rawPrice,savingLabel:o.savingLabel,title:f||a.title,url:s||a.url}:{...a,brand:i.lookup.brand||a.brand,fallbackImage:c?a.image:a.fallbackImage,hawkPricePending:!1,image:c||a.image,productName:f||a.productName,title:f||a.title}})}async function vi(e,t,n=fetch,a,l=[],i){let r=Gv(t),o=new Map,u=e.filter(qv).map(f=>String(f.hawkModelName)),c=new Set(u),s=Array.from(new Set([...l.filter(f=>c.has(f)),...u])).slice(0,a);for(let f=0;f<s.length;f+=Lv)await Promise.all(s.slice(f,f+Lv).map(async d=>{let m=await zv(d,r,n),v=m||r==="GB"?null:await zv(d,"GB",n);o.set(d,m?{lookup:m,region:r}:v?{lookup:v,region:"GB"}:null),i?.(Uv(e,o,r))}));return Uv(e,o,r)}async function jv(e,t=fetch){let n=W2(e),a=await Promise.all(K2.map(async i=>[i,await vi(n,i,t)])),l=new Map;return a.forEach(([i,r])=>{r.forEach((o,u)=>{if(!o.hasCommerceOffer)return;let c=Hv(o,u),s=l.get(c)||{};s[i]=I2(o),l.set(c,s)})}),e.map((i,r)=>{let o=l.get(Hv(i,r));return o?{...i,hawkRegionalCommerce:o}:i})}function zf(e,t){let n=Gv(t);return e.map(a=>{let l=a.hawkRegionalCommerce?.[n];return l?{...a,...l,hawkPricePending:!1}:a})}function Yv(e,t){let n=Array.from(new Set(e.map(i=>i.merchant).filter(Boolean))),a={};if(n.forEach(i=>{a[i]="loading"}),n.length===0)return{merchants:n,couponMap:a,couponUrl:null};let l=new URL("https://search-api.fie.future.net.uk/widget.php");return l.searchParams.append("model_name","Everything"),l.searchParams.append("filter_merchant_name",n.join(",")),l.searchParams.append("filter_product_types","vouchers,offer_deals,newsletter"),l.searchParams.append("sort","voucher"),l.searchParams.append("rows","120"),l.searchParams.append("origin","widgets-clientside"),l.searchParams.append("combine_product_types","1"),l.searchParams.append("language","en-GB"),l.searchParams.append("all_filters","false"),l.searchParams.append("exclude_unlabelled","false"),l.searchParams.append("include_specs","false"),t&&t!=="auto"&&l.searchParams.append("area",t),{merchants:n,couponMap:a,couponUrl:l}}function Vv(e,t){let n=new URL("https://search-api.fie.future.net.uk/widget.php");return n.searchParams.append("model_name","Everything"),n.searchParams.append("language","en-GB"),t&&t!=="auto"&&n.searchParams.append("area",t),n.searchParams.append("combine_product_types","1"),n.searchParams.append("filter_merchant_name",e),n.searchParams.append("all_filters","false"),n.searchParams.append("exclude_unlabelled","false"),n.searchParams.append("include_specs","false"),n.searchParams.append("sort","voucher"),n.searchParams.append("distinct_merchants","natural"),n.searchParams.append("filter_product_types","vouchers,offer_deals,newsletter"),n.searchParams.append("rows","50"),n.searchParams.append("origin","widgets-clientside"),n}function Uf(e,t,n=!0){if(!e?.length)return e||[];if(t==="date_desc"&&!n)return e;let a=[...e];return ln(a,t,n),a}function uc(e,t,n,a=!0){if(n!=="date_desc"||!e?.length)return t;let l=(c,s)=>String(c.id||s),i=new Map(t.map((c,s)=>[l(c,s),c])),r=new Set,o=e.flatMap((c,s)=>{let f=l(c,s);r.add(f);let d=i.get(f);return d?[d]:[]}),u=t.filter((c,s)=>!r.has(l(c,s)));return a?[...o.filter(nl),...u.filter(nl),...o.filter(c=>!nl(c)),...u.filter(c=>!nl(c))]:[...o,...u]}function Xv({activeDealTag:e,activeFreeformTag:t,clickedAuthorOverride:n,compactEmbed:a,compactInventoryExplored:l,compactLoadRequested:i,initialActiveDealTag:r,initialActiveFreeformTag:o,reviewInventoryBaked:u}){return!!(a&&u&&!n&&!i&&!l&&(!e||e===r)&&(!t||t===o))}var Qv=[0,50,100,150,200,250,300,350,400,450],Gf=4;function Kv(e){return(Array.isArray(e)?e:[e]).reduce((n,a)=>{if(typeof a!="string"||!a.trim())return n;let l=a.trim();return n.some(i=>i.toLowerCase()===l.toLowerCase())?n:[...n,l]},[])}function nS(e,t){return e.length===t.length&&e.every((n,a)=>n===t[a])}function Pf(e){return e.map(t=>t.trim().toLowerCase()).sort().join("|")}function qf(e){let t=e.initialData,n=Fu(e),a=!!(e.preloadReviewInventory&&!n),l=!!(e.preloadReviewInventory&&e.includeReviewProducts&&!e.compactEmbed),i=n?Number(e.resultCount)||12:100,r=n?!1:e.prioritiseCommercialProducts,o=wt(e.region),u=zf(t?.allDeals||t?.deals||[],o).filter(_=>P0(_,o)),c=wa(n?"date_desc":e.sort,!Or(e)),s=!!(e.priceRange&&e.priceRange!=="all")||!!(e.discountAmount&&e.discountAmount!=="0"&&e.discountAmount!=="all"),f=tl(t?.authorArticles||[],void 0,Number(e.editorialMaxAgeMonths)||0),d=tl(t?.authorInteractionArticles||[],void 0,Number(e.editorialMaxAgeMonths)||0),[m,v]=(0,N.useState)(()=>Uf(u,c,r)),[A,b]=(0,N.useState)(t?.totalDealCount??t?.allDeals?.length??t?.deals?.length??0),[h,g]=(0,N.useState)(t?.totalAuthorCount??t?.authors?.length??0),[p,y]=(0,N.useState)(!t),[C,R]=(0,N.useState)(!1),[T,M]=(0,N.useState)(!1),[w,D]=(0,N.useState)(!1),[k,se]=(0,N.useState)(t?.couponMap||{}),[I,j]=(0,N.useState)(f),[He,ze]=(0,N.useState)(f),[St,Ie]=(0,N.useState)(t?.tags||[]),[rn,Be]=(0,N.useState)(t?.tagCounts||{}),[Je,nt]=(0,N.useState)(t?.freeformTags||[]),[X,de]=(0,N.useState)(t?.freeformTagCounts||{}),[$e,Z]=(0,N.useState)(t?.brands||[]),[x,P]=(0,N.useState)(()=>{let _=t?.activeDealTag||e.query;return _&&_.toLowerCase()!=="everything"?_:null}),[Q,Vn]=(0,N.useState)(()=>Kv(t?.activeFreeformTags||t?.activeFreeformTag)),[jr,bi]=(0,N.useState)(f),[sc,ll]=(0,N.useState)(null),[at,Yr]=(0,N.useState)(!1),[il,Vr]=(0,N.useState)(""),[rl,Xr]=(0,N.useState)(""),[f1,g1]=(0,N.useState)(0),[Wt,dc]=(0,N.useState)(e.resultCount?parseInt(e.resultCount):12),[Xf,fc]=(0,N.useState)(!1),[m1,Qr]=(0,N.useState)(null),[gc,h1]=(0,N.useState)(!1),[mc,p1]=(0,N.useState)([0]),Kr=(0,N.useRef)(t?`${e.website||"tomsguide"}|${e.authorHandle||""}|${e.authorName||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}`:""),hc=(0,N.useRef)(t?`${e.website||"tomsguide"}|${e.authorHandle||""}|${e.authorName||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}|age-${e.editorialMaxAgeMonths||"none"}`:""),y1=(0,N.useRef)(e.website||"tomsguide"),pc=(0,N.useRef)(e.website||"tomsguide"),Qf=(0,N.useRef)(u.length>0),Kf=(0,N.useRef)(null),ol=(0,N.useRef)(new Map),v1=(0,N.useRef)({activeDealTag:String(x||"").trim().toLowerCase(),freeformTags:Pf(Kv(t?.activeFreeformTags||t?.activeFreeformTag)),discountAmount:e.discountAmount,priceRange:e.priceRange}),Xn=(0,N.useRef)(!1),De=(0,N.useRef)(!1),Ai=(0,N.useRef)(!1),Zf=(_,oe,ne=at?il:e.authorHandle,we=at?rl:e.authorName)=>[e.website||"tomsguide",ne||"",we||"",wt(e.region),String(_||"").trim().toLowerCase(),Pf(oe),e.priceRange,e.discountAmount,e.includeBuyingGuideProducts?"guides":"",e.includeReviewProducts?"reviews":"",e.includeDeals===!1?"no-deals":"deals",e.includeCollections===!1?"no-collections":"collections"].join("|"),Wf=(_,oe)=>{let ne=v1.current;return!!(e.compactEmbed&&t?.brands?.length&&String(_||"").trim().toLowerCase()===ne.activeDealTag&&Pf(oe)===ne.freeformTags&&e.priceRange===ne.priceRange&&e.discountAmount===ne.discountAmount)},Zr=(_,oe)=>{let ne=ol.current.get(Zf(_,oe));if(ne){Z(ne);return}if(Wf(_,oe)){Z(t?.brands||[]);return}},ul=()=>Xn.current||n?void 0:e.productSelection;(0,N.useEffect)(()=>{ll(null)},[e.authorName,e.authorHandle]),(0,N.useLayoutEffect)(()=>{let _=e.website||"tomsguide";pc.current!==_&&(pc.current=_,v(()=>[]),j(()=>[]),ze(()=>[]),bi(()=>[]),Ie(()=>[]),Be({}),nt(()=>[]),de({}),Z(()=>[]),ol.current.clear(),se({}),Yr(!1),Vr(""),Xr(""),ll(null),P(null),Vn([]),g(0),b(0),M(!1),fc(!1),Qr(null),Ai.current=!1,R(!0),y(!0))},[e.website]),(0,N.useEffect)(()=>{e.compactEmbed||typeof document>"u"||setTimeout(()=>{document.dispatchEvent(new CustomEvent("processArticle"))},100)},[m,Wt,e.query,x,Q]),(0,N.useEffect)(()=>{e.resultCount&&(dc(parseInt(e.resultCount,10)||12),Qr(null))},[e.resultCount]),(0,N.useEffect)(()=>{Qr(null)},[x,Q,e.authorHandle,e.authorName,e.discountAmount,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.priceRange,e.region,e.selectedBrands,e.sort]),(0,N.useEffect)(()=>{if(!t||!e.includeBuyingGuideProducts&&!e.includeReviewProducts||e.compactEmbed&&(De.current||e.refreshDealsOnViewport))return;let _=wt(e.region),oe=zf(t.allDeals||t.deals||[],_);if(_==="unavailable"){let It=oe.map(on=>(on.isBuyingGuideProduct||on.isReviewProduct)&&on.hawkModelName?{...on,hawkPricePending:!1}:on);ln(It,c,r),v(yn(It,ul(),c));return}let ne=al(oe,e.selectedBrands),we=Number(e.resultCount)||12,Ta=typeof navigator>"u"?void 0:navigator.connection,Ea=!Ta?.saveData&&!Ta?.effectiveType?.includes("2g")&&(!e.compactEmbed||!!e.warmInventory),Si=s?ne:t.reviewInventoryBaked?ne.slice(0,Wt+(Ea?we:0)):oe;if(!Si.some(It=>(It.isBuyingGuideProduct||It.isReviewProduct)&&It.hawkModelName))return;let sl=!0;return M(!0),vi(Si,_).then(It=>{if(!sl)return;let on=t.reviewInventoryBaked?lv(oe,It):It,Ir=al(on,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange}).map(lt=>(lt.isBuyingGuideProduct||lt.isReviewProduct)&&lt.hawkModelName?{...lt,hawkPricePending:!1}:lt);ln(Ir,c,r),v(yn(Ir,ul(),c)),Z(lt=>t?.brands?.length?lt:hf(lt,It))}).finally(()=>{sl&&M(!1)}),()=>{sl=!1}},[t,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.region,e.selectedBrands,e.discountAmount,e.priceRange,c,e.productSelection,Wt,e.resultCount,e.compactEmbed,e.warmInventory,e.refreshDealsOnViewport,x,Q]),(0,N.useEffect)(()=>{let _=!0,oe=new AbortController,ne=Ai.current,we=!e.refreshDealsOnViewport&&Xv({activeDealTag:x,activeFreeformTag:Q[0]||null,clickedAuthorOverride:at,compactEmbed:e.compactEmbed,compactInventoryExplored:De.current,compactLoadRequested:gc,initialActiveDealTag:t?.activeDealTag,initialActiveFreeformTag:t?.activeFreeformTag,reviewInventoryBaked:t?.reviewInventoryBaked}),Ta=u.length>0,Ea=!!(n&&e.compactEmbed&&!De.current),Si=!!(Ea&&e.warmInventory&&I.length===0&&m.length>0),sl=!!(we||e.compactEmbed&&Ta&&I.length===0&&!at&&!gc&&!De.current&&!e.refreshDealsOnViewport&&(!n||!e.warmInventory));return!sl&&!ne&&!Si&&(R(!0),e.compactEmbed&&De.current&&v([])),(async()=>{D(!1),M(!1);let on=m.length>0||St.length>0||Je.length>0||$e.length>0,Ir=sl;try{if(!e.authorName&&!e.authorHandle){v([]),j([]),bi([]),Ie([]),nt([]),Z([]),ll(null),P(null),Vn([]),y(!0);return}let lt=at?il:e.authorHandle,Jr=at?rl:e.authorName,$r=`${e.website||"tomsguide"}|${lt||""}|${Jr||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}`,yc=`${$r}|${e.compactEmbed&&x||""}|${e.compactEmbed?Q.join(","):""}|${e.compactEmbed&&De.current?"expanded":e.refreshDealsOnViewport?"viewport-refresh":"initial"}|lightweight-pages-${Ea?mc.join(","):"all"}|age-${e.editorialMaxAgeMonths||"none"}`,Jt=I,$f=St,U1=ev(Je,Q.length===1?Q[0]:null),eg=()=>({activeDealTag:x,activeFreeformTag:Q[0]||null,activeFreeformTags:Q,preserveFreeformTagSelection:!!(e.compactEmbed&&Q.length),authorHandle:lt,authorName:Jr,discountAmount:e.discountAmount,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,priceRange:e.priceRange,prioritiseCommercialProducts:r,productSelection:ul(),query:e.query,region:e.region,selectedArticleId:sc,selectedBrands:e.selectedBrands,sort:c,website:e.website}),tg=hc.current!==yc||Jt.length===0,Da=[],vc=!1,ng=(me,zt=!1)=>{if(!_||zt&&vc)return;let bn=al(me,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange});ln(bn,c,r);let Di=yn(bn,ul(),c);v(uc(Da,Di,c,r))};if(Ir){y(!1),R(!1);return}if(tg){let me=Kr.current.split("|")[0],zt=e.website||"tomsguide",bn=!!(Kr.current&&me!==zt);!ne&&!Si&&R(!!e.compactEmbed||!on),bn&&(Jt=[],$f=[],v(()=>[]),j(()=>[]),ze(()=>[]),bi(()=>[]),Ie(()=>[]),Be({}),nt(()=>[]),de({}),Z(()=>[]),se({}),Yr(!1),Vr(""),Xr(""),y(!0));let Di=Qf.current&&Kr.current===$r&&Jt.length===0&&!De.current;Qf.current=!1,!Di&&!on&&y(!0);let lo=Ba=>{if(!_||Ba.length===0)return;let fe=eg(),it=Cf(Ba,fe),{displayedDeals:io}=ic(it.targetArticles,fe,it.activeRegionCode,it.targetIso);io.length!==0&&(Da=io,v(Da),y(!1),e.includeReviewProducts&&Nf(it.targetArticles,e.website||"tomsguide",Math.min(Wt,Gf),c).then(()=>{if(!_||vc)return;let An=ic(it.targetArticles,fe,it.activeRegionCode,it.targetIso);Da=An.displayedDeals,v(Da);let xi=An.displayedDeals.filter(dt=>dt.isReviewProduct&&dt.hawkModelName).slice(0,Gf).map(dt=>String(dt.hawkModelName));vi(An.extractedDeals,it.activeRegionCode,void 0,Gf,xi,dt=>ng(dt,!0))}))};if(Jt=await _v({authorHandle:lt,authorName:Jr,fallbackAuthorName:e.authorName,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,articleCategory:e.compactEmbed&&x||void 0,articleTag:e.compactEmbed?U1:void 0,pageStarts:e.compactEmbed&&!e.warmInventory&&!De.current?[0]:void 0,reviewPageStarts:e.includeReviewProducts?Ea?mc:!e.compactEmbed||De.current?Qv:void 0:void 0,loadAllReviewPages:!Ea,throwOnFailure:!!(e.compactEmbed&&De.current),onBackgroundRefresh:Ba=>{if(!_||hc.current!==yc)return;let fe=tl(Ba,void 0,Number(e.editorialMaxAgeMonths)||0);j(fe),at||ze(fe),g1(it=>it+1)},onProgress:lo,signal:oe.signal,website:e.website}),!_)return;if(Jt=tl(Jt,void 0,Number(e.editorialMaxAgeMonths)||0),Kr.current=$r,hc.current=yc,Di&&Jt.length===0){y(!1);return}_&&(j(Jt),at||ze(Jt),R(!1))}let eo=eg(),G1=Cf(Jt,eo),{activeDealTag:xa,activeRegionCode:Ci,authorArticles:ag,activeFreeformTags:Ma,freeformTagCounts:lg,freeformTags:to,tagCounts:ig,tags:Ri,targetArticles:_a,targetIso:P1}=G1,Ti=e.compactEmbed&&x&&!xa?x:xa,Ei=e.compactEmbed&&Q.length>0&&Ma.length===0?Q:Ma,q1=Ri.length>0?Ri:Ti?[Ti]:Ri,F1=to.length>0?to:Ei.length>0?t?.freeformTags?.filter(me=>Ei.includes(me.handle))||[]:to,j1={...ig,...Ti&&!xa?{[Ti]:0}:{}},Y1={...lg,...Object.fromEntries(Ma.length===0?Ei.map(me=>[me,0]):[])},no=Zf(xa,Ma,lt,Jr),rg=[$r,Ci,xa||"",Ma.join(","),e.selectedBrands.join(","),e.priceRange,e.discountAmount,e.includeBuyingGuideProducts?"guides":"",e.includeReviewProducts?"reviews":"",e.includeDeals===!1?"no-deals":"deals",e.includeCollections===!1?"no-collections":"collections"].join("|"),dl=null,fl=null;if(!at){let me=Kf.current;if(me?.key===rg&&me.articleCount===_a.length)dl=me.deals.length,fl=me.authorCount;else{let zt=dv(_a,eo);dl=zt.deals.length,fl=zt.authorCount,Kf.current={articleCount:_a.length,authorCount:fl,deals:zt.deals,key:rg}}}$f=Ri;let Ht;_&&(Ie(q1),Be(j1),nt(F1),de(Y1)),e.includeReviewProducts&&await Nf(_a,e.website||"tomsguide",l?Math.min(_a.length,i):Wt,c);let{brands:bc,displayedDeals:Ac,extractedDeals:ao}=ic(_a,eo,Ci,P1),{merchants:V1,couponMap:wc,couponUrl:X1}=Yv(Ac,e.region);_&&se(wc);let Q1=me=>{!_||!Ht||(Ht={...Ht,couponMap:me},window.__AUTHOR_PRELOAD_DATA__=Ht,e.onDataLoaded&&e.onDataLoaded(Ht))};if(hv({couponMap:wc,couponUrl:X1,merchants:V1}).then(me=>{_&&(se(me),Q1(me))}),_){tg&&P(Ti),nS(Q,Ei)||Vn(Ei),bi(ag);let me=uc(Da,Ac,c,r);if(vc=!0,v(me),dl!==null){let zt=t?.totalDealCount||0,bn=Ea&&zt>dl;b(bn?zt:dl),g(bn?Math.max(t?.totalAuthorCount||0,fl||0):fl||0)}!ol.current.has(no)&&Wf(xa,Ma)&&ol.current.set(no,t?.brands||[]),Z(ol.current.get(no)||bc),y(!1),Ht=fv({allArticles:Jt,authorArticles:ag,bakeReviewInventory:a&&!e.compactEmbed,brands:bc,couponMap:wc,currentDealTag:xa,currentFreeformTags:Ma,displayedDeals:me,inventoryArticles:_a,options:eo,resultCount:e.resultCount,tagCounts:ig,tags:Ri,freeformTagCounts:lg,freeformTags:to,totalAuthorCount:fl??h,totalDealCount:dl??A}),window.__AUTHOR_PRELOAD_DATA__=Ht,e.onDataLoaded&&e.onDataLoaded(Ht)}if((e.includeBuyingGuideProducts||e.includeReviewProducts)&&Ci!=="unavailable"){let me=Wt,zt=l?ao.filter(fe=>fe.isReviewProduct&&fe.hawkModelName).slice(0,i).map(fe=>String(fe.hawkModelName)):[],bn=Ac.filter(fe=>(fe.isBuyingGuideProduct||fe.isReviewProduct)&&fe.hawkModelName).map(fe=>String(fe.hawkModelName));ao.some(fe=>(fe.isBuyingGuideProduct||fe.isReviewProduct)&&fe.hawkModelName)&&M(!0);let lo=vi(ao,Ci,void 0,s?void 0:e.includeReviewProducts?l?i:me:void 0,[...zt,...bn],ng).then(async fe=>{if(!_)return;let it=al(fe,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange}).map(dt=>(dt.isBuyingGuideProduct||dt.isReviewProduct)&&dt.hawkModelName?{...dt,hawkPricePending:!1}:dt);ln(it,c,r);let io=yn(it,ul(),c),An=uc(Da,io,c,r),xi=hf(bc,fe);if(ol.current.set(no,xi),v(An),Z(xi),s&&b(it.length),Ht){let dt=a&&!e.compactEmbed,og=l,ug=dt?ac(An,Number(e.resultCount)||12):og?An.slice(0,i):An,K1=og?await jv(ug):ug;if(!_)return;let Sc={...Ht,allDeals:K1,deals:An.slice(0,me),brands:xi,totalDealCount:s?it.length:Ht.totalDealCount};Ht=Sc,window.__AUTHOR_PRELOAD_DATA__=Sc,e.onDataLoaded&&e.onDataLoaded(Sc)}}).finally(()=>{_&&M(!1)}),Ba=ao.slice(me,me+(Number(e.resultCount)||12));e.includeReviewProducts&&e.warmInventory&&!s&&!ne&&Ba.some(fe=>fe.hawkModelName)&&lo.then(()=>{_&&vi(Ba,Ci)}),ne&&await lo}}catch(lt){_&&D(!0)}finally{_&&(y(!1),R(!1),fc(!1),Ai.current=!1)}})(),()=>{_=!1,oe.abort()}},[e.query,e.region,e.selectedBrands,e.website,e.resultCount,Wt,c,e.priceRange,e.discountAmount,x,Q,e.authorName,e.authorHandle,e.website,e.authorBioLength,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,s,a,l,i,r,n,mc,e.productSelection,e.compactEmbed,e.warmInventory,e.refreshDealsOnViewport,e.editorialMaxAgeMonths,sc,at,il,rl,f1,gc]);let Wr=e.website||"tomsguide",st=pc.current!==Wr,Ra=(0,N.useMemo)(()=>st?[]:y1.current===Wr&&t?.authors?t.authors:Lr(He.length>0?He:I,Wr),[I,Wr,He,t?.authors,st]),b1=at?il:e.authorHandle,A1=at?rl:e.authorName,w1=Ra.find(_=>_.handle===b1||_.fullName===A1),cl=He.length>0?He:I,If=(0,N.useMemo)(()=>{if(cl.length===0)return Ra;let _=wt(e.region),oe=an(_),ne=hi(Pr(cl,x),Q),we=Sf(Ra,ne,{activeRegionCode:_,targetIso:oe,selectedBrands:e.selectedBrands,priceRange:e.priceRange,discountAmount:e.discountAmount,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,website:e.website});return Yu(Ra,we)},[x,Q,Ra,cl,e.discountAmount,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.priceRange,e.region,e.selectedBrands]),S1=(0,N.useMemo)(()=>{if(st)return[];if(cl.length===0&&t?.authors?.length||e.compactEmbed&&!x&&Q.length===0&&t?.authors?.length)return Ra;let _=wt(e.region),oe=an(_),ne=hi(Pr(cl,x),Q).filter(we=>mi([we],{activeRegionCode:_,targetIso:oe,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,website:e.website}).length>0);return kr(If,ne)},[x,Q,cl,st,at,t?.authors?.length,e.compactEmbed,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.region,If,e.website]),Jf=(_,oe)=>{let ne=He.length>0?He:I.length>0?I:d;if(ne.length===0)return;let we=yv(ne,{authorHandle:_,authorName:oe,discountAmount:e.discountAmount,priceRange:e.priceRange,region:e.region,selectedBrands:e.selectedBrands,sort:c,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,prioritiseCommercialProducts:r,website:e.website,productSelection:void 0});ll(null),P(null),Vn([]),bi(we.authorArticles),Ie(we.tags),Be(we.tagCounts),nt(we.freeformTags),de(we.freeformTagCounts),Z(we.brands),v(we.deals),y(!1)},C1=()=>{!e.compactEmbed||!t||(v(yn(Uf(t.deals||t.allDeals||[],c,r),ul(),c)),Ie(t.tags||[]),Be(t.tagCounts||{}),nt(t.freeformTags||[]),de(t.freeformTagCounts||{}),Z(t.brands||[]),se(t.couponMap||{}),g(t.totalAuthorCount??t.authors?.length??0),b(t.totalDealCount??t.deals?.length??t.allDeals?.length??0))},R1=_=>{Xn.current=!0,De.current=!0,R(!0),at&&(il===_.handle||rl===_.fullName)?(e.compactEmbed&&t?C1():Jf(e.authorHandle,e.authorName),Yr(!1),Vr(""),Xr("")):(Jf(_.handle,_.fullName),Yr(!0),Vr(_.handle),Xr(_.fullName)),e.onQueryChange?.("")},T1=_=>{Xn.current=!0,De.current=!0,R(!0);let oe=x===_?null:_;Zr(oe,Q),P(oe),e.onQueryChange?.("")},E1=()=>{Xn.current=!0,De.current=!0,R(!0)},D1=()=>{Xn.current=!0,De.current=!0,R(!0),Zr(null,Q),P(null),e.onQueryChange?.("")},x1=_=>{Xn.current=!0,De.current=!0,R(!0);let oe=Q.some(ne=>ne.toLowerCase()===_.toLowerCase())?Q.filter(ne=>ne.toLowerCase()!==_.toLowerCase()):[...Q,_];Zr(x,oe),Vn(oe)},M1=()=>{Xn.current=!0,De.current=!0,R(!0),Zr(x,[]),Vn([])},_1=_=>{Xn.current=!0,De.current=!0,R(!0),ll(_)},B1=()=>{if(Ai.current)return;Ai.current=!0,fc(!0);let _=Wt+(e.resultCount?parseInt(e.resultCount,10):12);!!(n&&e.compactEmbed&&!De.current)&&I.length>0&&m.length<_&&p1(we=>{let Ta=Qv[we.length];return Ta===void 0?we:[...we,Ta]}),dc(we=>(Qr(we),we+(e.resultCount?parseInt(e.resultCount,10):12)));let ne=!!(t?.reviewInventoryBaked&&m.length>Wt);e.compactEmbed&&I.length===0&&!ne&&(R(!0),h1(!0))},wi=e.compactEmbed&&!e.refreshDealsOnViewport,N1=wi&&t?.tags?.length?t.tags:St,O1=wi&&t?.tags?.length?t.tagCounts||{}:rn,k1=wi&&!De.current&&t?.brands?.length?t.brands:$e,L1=wi&&t?.freeformTags?.length&&(!De.current||Q.length===1)?t.freeformTags:Je,H1=wi&&t?.freeformTags?.length&&(!De.current||Q.length===1)?t.freeformTagCounts||{}:X,z1=pv({enrichingBuyingGuides:T,error:w,loading:p,loadingMore:Xf,refreshingFeed:C});return{activeDealTag:x,activeFreeformTags:Q,airedaleBrands:st?[]:k1,airedaleTagCounts:st?{}:O1,airedaleTags:st?[]:N1,airedaleFreeformTagCounts:st?{}:H1,airedaleFreeformTags:st?[]:L1,allAuthorsList:S1,authorArticlesList:st?[]:jr,clickedAuthorOverride:at,couponMap:k,deals:st?[]:m,displayCount:Wt,error:w,enrichingBuyingGuides:T,effectiveAuthorProfile:st?void 0:w1,loading:p,loadingMore:Xf,loadMoreStartCount:m1,markProductSelectionInteracted:E1,hasMore:m.length>Wt||!!e.compactEmbed&&A>m.length,loadMore:B1,refreshingFeed:C,overriddenAuthorHandle:il,overriddenAuthorName:rl,selectedArticleId:sc,setActiveDealTag:P,clearDealTag:D1,clearFreeformTags:M1,selectArticle:_1,setDisplayCount:dc,setSelectedArticleId:ll,status:z1,toggleAuthorOverride:R1,toggleDealTag:T1,toggleFreeformTag:x1,totalAuthorCount:st?0:h,totalDealCount:st?0:A}}var aS=B(ft(),1);var Fr=B(ft(),1);function Zv(e){let[t,n]=(0,Fr.useState)(null),[a,l]=(0,Fr.useState)([]),[i,r]=(0,Fr.useState)(!1),[o,u]=(0,Fr.useState)(!1);return{close:()=>n(null),error:o,loading:i,merchant:t,open:async f=>{n(f),r(!0),u(!1),l([]);try{let d=Vv(f,e),m=await fetch(d.toString());if(!m.ok)throw new Error("API Error");l(mv(await m.json()))}catch(d){u(!0)}finally{r(!1)}},vouchers:a}}var je=B(O(),1);function lS(e){return new Set(e.map(t=>Array.isArray(t.authorName)?t.authorName[0]:t.authorName).map(t=>String(t||"").trim().toLowerCase()).filter(Boolean)).size}var iS=new Map,rS=()=>{};function Iv({data:e,editorBar:t,editorMode:n=!1,props:a,selectedDeals:l=iS,setSelectedDeals:i=rS}){let r=Zv(a.region),[o,u]=(0,Wv.useState)(new Set),c=p0[a.website||""]||"#1F69FF",s=a.backgroundColor?a.backgroundColor==="white"?"#ffffff":a.backgroundColor==="transparent"?"transparent":a.backgroundColor==="light_blue"?"#E7F0FF":void 0:void 0,f=Vu(a.authorHandle,a.authorName),d=Or(a),m=Fu(a),v=wa(m?"date_desc":a.sort,!d),A=!!(a.showReviewSort&&a.includeReviewProducts),b=a.showPriceDiscountFilters!==!1||A,h=!a.authorFullBleed,g=!e.clickedAuthorOverride,p=e.totalDealCount||e.deals.length,y=e.totalAuthorCount||lS(e.deals),C=e.status==="loading_inventory"||e.status==="refreshing_inventory"||e.status==="enriching_visible_cards",R=e.status==="loading_inventory"||(e.status==="refreshing_inventory"||e.status==="enriching_visible_cards")&&e.deals.length===0,M=!!(a.showReviewSort&&a.includeReviewProducts&&(e.status==="refreshing_inventory"||e.status==="enriching_visible_cards"))?"Loading and sorting available review products":e.status==="enriching_visible_cards"?"Adding live product images and prices":e.status==="refreshing_inventory"?"Updating products":`Loading ${a.website||"site"} authors and products`,w=j=>{e.markProductSelectionInteracted(),a.onBrandToggle?.(j)},D=j=>{e.markProductSelectionInteracted(),a.onBrandSelect?.(j)},k=j=>{e.markProductSelectionInteracted(),a.onPriceRangeChange?.(j)},se=j=>{e.markProductSelectionInteracted(),a.onDiscountAmountChange?.(j)},I=j=>{e.markProductSelectionInteracted(),a.onSortChange?.(j)};return(0,je.jsx)("div",{className:"tg-df-widget-host",style:{"--tg-df-blue":c.toUpperCase()==="#FFFFFF"?"#000000":c},"data-vizualizer-embed":"true","data-tg-df-full-bleed":a.authorFullBleed?"true":"false","data-tg-df-mobile-dropdowns":a.mobileDropdowns?"true":"false","data-tg-df-sticky-mobile-filters":a.stickyMobileFilters===!1?"false":"true",children:(0,je.jsxs)("div",{className:"tg-df-container article-body",style:a.backgroundColor?{backgroundColor:s}:void 0,children:[(a.showAuthorIdentity!==!1||a.showAuthorBio!==!1)&&(0,je.jsx)("div",{className:"tg-df-author-embed",style:{width:"100%",fontFamily:"inherit"},children:(0,je.jsx)("div",{className:"tg-df-author-section",style:{display:"block",opacity:1,overflow:"visible",background:"transparent",border:"none"},children:(0,je.jsx)(U0,{authorArticlesList:e.authorArticlesList,authorBioLength:a.authorBioLength,customBio:g?a.customBio:void 0,customHeaderKicker:a.customHeaderKicker,customHeaderTitle:a.customHeaderTitle,effectiveAuthorHandle:e.clickedAuthorOverride?e.overriddenAuthorHandle:a.authorHandle,effectiveAuthorName:e.clickedAuthorOverride?e.overriddenAuthorName:a.authorName,isReviewWidget:d,onBioChange:g?a.onBioChange:void 0,onHeaderKickerChange:a.onHeaderKickerChange,onHeaderTitleChange:a.onHeaderTitleChange,selectedProfile:e.effectiveAuthorProfile,showAuthorBio:a.showAuthorBio,showAuthorIdentity:a.showAuthorIdentity,showSocialButtons:a.showSocialButtons,stabilizeBio:f,authorCount:y,totalDealCount:p,website:a.website})})}),t,a.showCollectionsDropdown&&(0,je.jsx)(r0,{articles:e.authorArticlesList,authorHandle:a.authorHandle,authorName:a.authorName||a.author,onChange:e.selectArticle,selectedArticleId:e.selectedArticleId,shortenedHeadlines:a.shortenedHeadlines}),C&&(0,je.jsxs)("div",{role:"status","aria-live":"polite","aria-label":M,style:{alignItems:"center",display:"flex",justifyContent:"center",marginBottom:"16px",minHeight:"72px"},children:[(0,je.jsx)("span",{className:"tg-df-coupon-spinner","aria-hidden":"true",style:{borderWidth:"3px",height:"24px",width:"24px"}}),(0,je.jsxs)("span",{style:{color:"#4B5563",fontSize:"14px",marginLeft:"10px"},children:[M,"\u2026"]})]}),(0,je.jsx)(_0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleBrands:e.airedaleBrands,airedaleTagCounts:e.airedaleTagCounts,airedaleTags:e.airedaleTags,freeformTagCounts:e.airedaleFreeformTagCounts,freeformTags:e.airedaleFreeformTags,allAuthorsList:e.allAuthorsList,brands:a.brands,clickedAuthorOverride:e.clickedAuthorOverride,loading:e.loading,refreshing:e.refreshingFeed,onAuthorClick:e.toggleAuthorOverride,onBrandToggle:w,onFreeformTagClick:e.toggleFreeformTag,onTagClick:e.toggleDealTag,overriddenAuthorHandle:e.overriddenAuthorHandle,overriddenAuthorName:e.overriddenAuthorName,selectedBrands:a.selectedBrands,showAuthorRail:f&&a.showAuthorRail!==!1,showAuthorCounters:a.showAuthorCounters,showBrandRail:a.showBrandRail,showCategoryRail:a.showCategoryRail,showFreeformTagRail:a.showFreeformTagRail,website:a.website}),(0,je.jsx)(k0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleBrands:e.airedaleBrands,airedaleTagCounts:e.airedaleTagCounts,airedaleTags:e.airedaleTags,brands:a.brands,discountAmount:a.discountAmount,enabled:a.mobileDropdowns||h,freeformTagCounts:e.airedaleFreeformTagCounts,freeformTags:e.airedaleFreeformTags,onBrandSelect:D,onBrandToggle:w,onDiscountAmountChange:se,onFreeformTagClear:e.clearFreeformTags,onFreeformTagToggle:e.toggleFreeformTag,onPriceRangeChange:k,onReviewSortChange:I,onTagClear:e.clearDealTag,onTagClick:e.toggleDealTag,priceRange:a.priceRange,reviewSort:v,selectedBrands:a.selectedBrands||[],showCounters:a.showAuthorCounters,showBrandRail:a.showBrandRail,showCategoryRail:a.showCategoryRail,showFreeformTagRail:a.showFreeformTagRail,showPriceDiscountFilters:a.showPriceDiscountFilters,showReviewSort:A,includeScoredFirst:!d}),b&&(0,je.jsx)(L0,{airedaleBrands:e.airedaleBrands,airedaleTags:e.airedaleTags,discountAmount:a.discountAmount,hidden:!!e.selectedArticleId,onDiscountAmountChange:se,onPriceRangeChange:k,onReviewSortChange:I,priceRange:a.priceRange,reviewSort:v,showPriceDiscountFilters:a.showPriceDiscountFilters,showReviewSort:A,includeScoredFirst:!d}),(0,je.jsx)(i0,{articles:e.authorArticlesList,selectedArticleId:e.selectedArticleId}),(a.showCategoryRail!==!1||a.showFreeformTagRail!==!1||a.showBrandRail!==!1)&&(0,je.jsx)(a0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleTags:e.airedaleTags,freeformTags:e.airedaleFreeformTags,discountAmount:a.discountAmount,onBrandSelect:D,onBrandToggle:w,onDiscountAmountChange:se,onPriceRangeChange:k,onTagClear:e.clearDealTag,onFreeformTagClear:e.clearFreeformTags,onFreeformTagToggle:e.toggleFreeformTag,priceRange:a.priceRange,selectedBrands:a.selectedBrands||[]}),(0,je.jsx)(w0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,couponMap:e.couponMap,deals:e.deals,displayCount:e.displayCount,editorMode:n,error:e.error,expandedDealIds:o,hasMore:e.hasMore,hideHawkPrices:a.hideHawkPrices,loading:R,loadingMore:e.loadingMore,loadMoreStartCount:e.loadMoreStartCount,onDescriptionToggle:j=>u(He=>{let ze=new Set(He);return ze.has(j)?ze.delete(j):ze.add(j),ze}),onLoadMore:e.loadMore,onOpenVouchers:r.open,query:a.query,recentDealsOnly:!!(a.includeDeals&&!a.includeCollections&&!a.includeBuyingGuideProducts&&!a.includeReviewProducts),selectedBrands:a.selectedBrands,selectedDeals:l,setSelectedDeals:i,website:a.website}),(0,je.jsx)(G0,{error:r.error,loading:r.loading,merchant:r.merchant,onClose:r.close,vouchers:r.vouchers})]})})}var $v=B(O(),1),Jv=e=>{let t={...e,editorMode:!1},n=qf(t);return(0,$v.jsx)(Iv,{data:n,props:t})};var U={authorBioLength:"short",authorFullBleed:!0,authorHandle:"all-authors",authorName:"All authors",backgroundColor:"transparent",customBio:"",customHeaderKicker:void 0,customHeaderTitle:void 0,discountAmount:"0",editorMode:!1,editorialMaxAgeMonths:"12",includeBuyingGuideProducts:!0,includeCollections:!0,includeDeals:!0,includeReviewProducts:!1,mobileDropdowns:!0,stickyMobileFilters:!0,offerType:"",preloadReviewInventory:!1,lightweightReviewDelivery:!1,hideHawkPrices:!1,prioritiseCommercialProducts:!0,priceRange:"all",productSelection:"latest",query:"Everything",region:"auto",resultCount:"12",retailer:"",selectedBrands:[],showAuthorBio:!0,showAuthorCounters:!0,showAuthorIdentity:!0,showAuthorRail:!0,showBrandRail:!0,showCategoryRail:!0,showCollectionsDropdown:!1,showPriceDiscountFilters:!0,showReviewSort:!1,showSocialButtons:!0,showCountdown:!1,showHeaderDetails:!0,showFreeformTagRail:!0,sort:"date_desc",viewMode:"author",website:"whowhatwear",widgetSubtitle:"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.",widgetTitle:"Top Deals Handpicked by Our Editors"};function We(e,t){return typeof e=="string"?e:t}function Ae(e,t){return typeof e=="boolean"?e:t}function e1(e){let t=e||{},n=t.authorBioLength==="long"?"long":"short",a=t.productSelection==="mix"?"mix":"latest";return{...U,...t,authorBioLength:n,authorFullBleed:Ae(t.authorFullBleed,U.authorFullBleed),authorHandle:We(t.authorHandle,U.authorHandle),authorName:We(t.authorName,U.authorName),backgroundColor:We(t.backgroundColor,U.backgroundColor),customBio:We(t.customBio,U.customBio),customHeaderKicker:typeof t.customHeaderKicker=="string"?t.customHeaderKicker:void 0,customHeaderTitle:typeof t.customHeaderTitle=="string"?t.customHeaderTitle:void 0,discountAmount:We(t.discountAmount,U.discountAmount),editorMode:Ae(t.editorMode,U.editorMode),editorialMaxAgeMonths:We(t.editorialMaxAgeMonths,U.editorialMaxAgeMonths),includeBuyingGuideProducts:Ae(t.includeBuyingGuideProducts,U.includeBuyingGuideProducts),includeCollections:Ae(t.includeCollections,U.includeCollections),includeDeals:Ae(t.includeDeals,U.includeDeals),includeReviewProducts:Ae(t.includeReviewProducts,U.includeReviewProducts),mobileDropdowns:Ae(t.mobileDropdowns,U.mobileDropdowns),stickyMobileFilters:Ae(t.stickyMobileFilters,U.stickyMobileFilters),offerType:We(t.offerType,U.offerType),preloadReviewInventory:Ae(t.preloadReviewInventory,U.preloadReviewInventory),lightweightReviewDelivery:Ae(t.lightweightReviewDelivery,U.lightweightReviewDelivery),hideHawkPrices:Ae(t.hideHawkPrices,U.hideHawkPrices),prioritiseCommercialProducts:Ae(t.prioritiseCommercialProducts,U.prioritiseCommercialProducts),priceRange:We(t.priceRange,U.priceRange),productSelection:a,query:We(t.query,U.query),region:We(t.region,U.region),resultCount:We(t.resultCount,U.resultCount),retailer:We(t.retailer,U.retailer),selectedBrands:Array.isArray(t.selectedBrands)?t.selectedBrands.filter(l=>typeof l=="string"):[],showAuthorBio:Ae(t.showAuthorBio,U.showAuthorBio),showAuthorCounters:Ae(t.showAuthorCounters,U.showAuthorCounters),showAuthorIdentity:Ae(t.showAuthorIdentity,U.showAuthorIdentity),showAuthorRail:Ae(t.showAuthorRail,U.showAuthorRail),showBrandRail:Ae(t.showBrandRail,U.showBrandRail),showCategoryRail:Ae(t.showCategoryRail,U.showCategoryRail),showCollectionsDropdown:Ae(t.showCollectionsDropdown,U.showCollectionsDropdown),showPriceDiscountFilters:Ae(t.showPriceDiscountFilters,U.showPriceDiscountFilters),showReviewSort:Ae(t.showReviewSort,U.showReviewSort),showSocialButtons:Ae(t.showSocialButtons,U.showSocialButtons),showCountdown:Ae(t.showCountdown,U.showCountdown),showHeaderDetails:Ae(t.showHeaderDetails,U.showHeaderDetails),showFreeformTagRail:Ae(t.showFreeformTagRail,U.showFreeformTagRail),sort:We(t.sort,U.sort),viewMode:We(t.viewMode,U.viewMode),website:We(t.website,U.website),widgetSubtitle:We(t.widgetSubtitle,U.widgetSubtitle),widgetTitle:We(t.widgetTitle,U.widgetTitle)}}function t1(e,t={}){return{...e,brands:t.brands,shortenedHeadlines:t.shortenedHeadlines}}function n1(e,t){try{window.hawk?.analytics?.freyr?.push({name:e,data:t}),window.dispatchEvent(new CustomEvent("hawk-analytics-update")),window.freyr?.cmd.push(()=>{window.freyr?.pushAndUpdate?.(e,t)})}catch{}}function a1(){window.dataLayer=window.dataLayer||[],window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.hawk=window.hawk||{},window.hawk.analytics=window.hawk.analytics||{},window.hawk.analytics.freyr=window.hawk.analytics.freyr||[],window.freyr=window.freyr||{cmd:[]},window.freyr.cmd=window.freyr.cmd||[];let e="https://freyr.futurecdn.net/freyr.js",t=window.location.hostname;if(!(window.navigator.webdriver||window.navigator.userAgent.includes("Headless"))&&!!t&&t!=="localhost"&&t!=="127.0.0.1"&&!t.includes("run.app")&&!document.querySelector(`script[src="${e}"]`)){let l=document.createElement("script");l.src=e,l.async=!0,document.head.appendChild(l)}}function oS(e){let t=Number.parseFloat(e.rawPrice||e.price)||null,n=Number.parseFloat(e.rawMsrp||e.msrp)||null;return{product:{primary:{id:e.externalProductId||e.id||e.matchId||null,name:e.productName||e.title||"",type:"deal",price:t,previousPrice:n,currency:e.isoCurrencyCode||e.currency||"USD",preorder:!1,labels:e.modelBrand||e.brand?[{type:"brand",value:e.modelBrand||e.brand}]:[],link:e.url||null,originalLink:e.originalLink||e.url||null,revenueId:e.revenueId||null,startTime:null,endTime:null,voucherCode:null,voucherAudience:null,voucherPercentageSaving:n&&t&&n>t?Math.round((1-t/n)*100):null,voucherMoneySaving:null,voucherType:null,offerExclusive:!1,offerScope:null,globalId:e.productKey||null,inStock:e.inStock!==!1,contractProvider:null,contractMinutes:null,contractTexts:null,contractData:null,contractLength:null,contractMonthlyPrice:null,contractCurrency:e.isoCurrencyCode||e.currency||"USD"}},merchant:{id:e.merchantId||null,name:e.merchant||"Retailer",url:e.merchantUrl||null,network:e.merchantNetwork||null},model:{id:e.modelId||null,brand:e.modelBrand||e.brand||null,name:e.productName||e.title||"",parent:e.modelParent||null}}}var uS=new Set(["subid1","ascsubtag","clickref","u1"]);function cS(e){return e.match(/(?:^|[-_])(\d{10,})(?=$|[-_])/)?.[1]||null}function sS(e){let t=new Set,n=a=>{if(!a||t.has(a))return null;t.add(a);let l;try{l=new URL(a)}catch{return null}for(let[i,r]of l.searchParams)if(uS.has(i.toLowerCase())){let o=cS(r);if(o)return o}for(let i of l.searchParams.values())if(/^https?:\/\//i.test(i)){let r=n(i);if(r)return r}return null};return n(e)}function l1({areaClicked:e,clickType:t,deals:n,index:a,queryName:l}){let i={event:"hawkEvent",category:"Affiliates",affiliate:{action:{type:t,id:"author-widget",event:t==="appeared"?"viewed":"Click from",timestamp:Date.now()},component:{flag:"Editor",product:"deals",category:"Signal Deal Finder Author widget",type:t==="appeared"?"review":"signal product",label:l||n[0]?.productName||n[0]?.title||"",index:a??-1,linkCount:n.length,blockLayout:"",areaClicked:e}},products:n.slice(0,20).map(oS),reviews:[],_clear:!0,"gtm.uniqueEventId":Date.now()%1e4};n1("hawkEvent",i)}function i1(e,t){e.length&&l1({areaClicked:"",clickType:"appeared",deals:e,index:null,queryName:t})}function r1(e,t){if(e?.deals?.length)return e.deals;let n=Number(t)||12;return e?.allDeals?.slice(0,n)||[]}function o1(e){e.addEventListener("click",t=>{let n=t.target;if(!(n instanceof Element))return;let a=n.closest("a[data-fcaw-affiliate-link][href], a.hawk-affiliate-link-deal-widget[href], a.hawk-affiliate-link-container[href], a.hawk-affiliate-link-deal-button[href]"),l=n.closest(".tg-df-card"),i=!!(!a?.dataset.fcawRevenueId&&(a?.hasAttribute("data-hl-processed")||a?.hasAttribute("data-fcaw-hawklinks-requested")));a&&l&&!i&&l1({areaClicked:"Signal Product Card",clickType:"retailer",deals:[{brand:l.dataset.brand,currency:l.dataset.currency,id:l.dataset.dealId,merchant:a.dataset.merchant||l.dataset.merchant,merchantId:a.dataset.merchantId||l.dataset.merchantId,modelId:a.dataset.modelId||l.dataset.modelId,productKey:a.dataset.productKey||l.dataset.productKey,rawMsrp:l.dataset.previousPrice,rawPrice:l.dataset.price,originalLink:a.dataset.fcawOriginalLink||a.href,revenueId:a.dataset.fcawRevenueId||sS(a.href),title:l.dataset.productName,url:a.href}],index:Array.from(e.querySelectorAll(".tg-df-card")).indexOf(l)});let r=n.closest('button, select, [role="button"]');r&&n1("elementInteraction",{element:{action:"click",id:r.id||void 0,class:r.className||void 0,name:r.getAttribute("name")||r.getAttribute("aria-label")||void 0,text:r.textContent?.trim()||void 0,label:r.getAttribute("aria-label")||void 0}})})}var Vf=B(O(),1),dS='fc-author-commerce-widget[data-fcaw-version="1"]',fS="(max-width: 599px)",gS=600,mS='[class*="membership-expandable-banner"]',hS=/^jump\s+to\b/i,jf="data-fcaw-jump-navigation-suppressed",pS=50,yS=1e4,vS=["[data-sticky-header]","[data-header-sticky]",'[role="banner"]',".navigation__container",".site-header",".main-header",".header__container",'[class*="membership-expandable-banner"] [class*="skinny-banner"]','[class*="membership-expandable-banner"] [id="skinnyBanner"]',"nav","header"].join(","),bS=`  :host {    display: block !important;    width: 100% !important;    min-width: 0 !important;    max-width: none !important;    isolation: isolate !important;    contain: style !important;  }  :host([data-fcaw-full-bleed="true"]) {    width: min(      1200px,      var(--fcaw-viewport-width, 100vw)    ) !important;    max-width: 1200px !important;    margin-left: var(      --fcaw-full-bleed-offset,      calc(50% - min(600px, 50vw))    ) !important;    margin-right: 0 !important;    position: relative !important;  }  :host([data-fcaw-full-bleed="true"]) #tg-df-spreadsheet-filters {    width: min(      1500px,      var(--fcaw-viewport-width, 100vw)    ) !important;    max-width: 1500px !important;    margin-left: calc(      (        100% -        min(1500px, var(--fcaw-viewport-width, 100vw))      ) / 2    ) !important;    margin-right: 0 !important;  }  :host, :host *, :host *::before, :host *::after {    box-sizing: border-box;  }`,Ff=new WeakMap;function AS(){if(document.querySelector("style[data-fcaw-jump-navigation-protection]"))return;let e=document.createElement("style");e.setAttribute("data-fcaw-jump-navigation-protection",""),e.textContent=`    [${jf}="true"] {      opacity: 0 !important;      pointer-events: none !important;      visibility: hidden !important;    }  `,document.head.appendChild(e)}function wS(){let e=Array.from(document.querySelectorAll("span, p, div, strong, b")).filter(n=>n.childElementCount===0&&hS.test(n.textContent?.trim()||"")),t=new Set;for(let n of e)for(let a=n.parentElement;a&&a!==document.body;a=a.parentElement)if(getComputedStyle(a).position==="sticky"){t.add(a);break}return[...t]}function SS(e,t,n){let a=Ff.get(e)||new Set;n?a.add(t):a.delete(t),a.size>0?(Ff.set(e,a),e.setAttribute(jf,"true")):(Ff.delete(e),e.removeAttribute(jf))}function CS(e){if(e.dataset.fcawFullBleed!=="true"||typeof IntersectionObserver>"u")return;let t=wS().filter(a=>!a.contains(e));if(t.length===0)return;AS(),new IntersectionObserver(([a])=>{t.forEach(l=>SS(l,e,a.isIntersecting))},{threshold:0}).observe(e)}function RS({host:e,initialData:t,initialProps:n}){let[a]=(0,Lt.useState)(d1),l=DS(t,a),[i,r]=(0,Lt.useState)(n.query),[o,u]=(0,Lt.useState)(n.selectedBrands),[c,s]=(0,Lt.useState)(n.priceRange),[f,d]=(0,Lt.useState)(n.discountAmount),[m,v]=(0,Lt.useState)(n.sort),[A,b]=(0,Lt.useState)(!1),h=!!(A&&n.compactEmbed&&n.includeDeals!==!1),g=(0,Lt.useRef)(!1);return(0,Lt.useEffect)(()=>{let p=()=>{g.current||(g.current=!0,i1(r1(l,n.resultCount),n.query))};if(typeof IntersectionObserver>"u"){p();return}let y=new IntersectionObserver(([C])=>{C?.isIntersecting&&(p(),y.disconnect())},{threshold:.1});return y.observe(e),()=>y.disconnect()},[e,l,n.query]),(0,Lt.useEffect)(()=>{if(typeof IntersectionObserver>"u"){b(!0);return}let p=new IntersectionObserver(([y])=>{y?.isIntersecting&&(b(!0),p.disconnect())},{rootMargin:"800px 0px"});return p.observe(e),()=>p.disconnect()},[e]),(0,Vf.jsx)(Jv,{...n,region:a||"unavailable",initialData:l,warmInventory:A,refreshDealsOnViewport:h,query:i,selectedBrands:o,priceRange:c,discountAmount:f,sort:m,editorMode:!1,onQueryChange:r,onBrandSelect:u,onBrandToggle:p=>u(y=>y.includes(p)?y.filter(C=>C!==p):[...y,p]),onPriceRangeChange:s,onDiscountAmountChange:d,onSortChange:v})}function TS(e){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${e}=([^;]*)`));return t?decodeURIComponent(t[1]):void 0}catch{return}}function cc(e){let n=String(e||"").trim().toUpperCase().replace("_","-").split("-").at(-1);return n==="UK"?"GB":["US","GB","AU","CA","DE","FR","IT","ES","NL"].includes(n||"")?n:void 0}function d1(){let e=new URLSearchParams(window.location.search).get("area");return cc(e)||cc(TS("FTR_Country_Code"))||cc(document.documentElement.getAttribute("data-locale"))||cc(window.navigator.language)}function u1(e,t){let n=e.querySelector(t);if(n?.textContent)try{return JSON.parse(n.textContent)}catch(a){console.warn("Author widget configuration could not be parsed.",a);return}}function ES(e){return e?.reviewInventoryFormat!==nv||!e.allDeals?e:{...e,allDeals:av(e.allDeals)}}function DS(e,t){let n=t?e?.regionalDealManifests?.[t]:void 0;if(!n)return e;let a=e?.regionalDealRailData?.[t];return{...e,allDeals:void 0,deals:n,...a}}function c1(e){e.querySelectorAll("a[href]").forEach(t=>{(t.hasAttribute("data-fcaw-affiliate-link")||t.classList.contains("hawk-affiliate-link-deal-widget")||t.classList.contains("hawk-affiliate-link-container")||t.classList.contains("hawk-affiliate-link-deal-button"))&&(t.rel="sponsored nofollow noopener")})}function xS(e){let t=e.closest(".tg-df-card"),n=t?.dataset.fcawRevenueId||e.dataset.fcawRevenueId;if(n)return n;let a=[window.location.href,t?.dataset.productName||"",t?.dataset.merchant||"",t?.dataset.modelId||"",new Date().toDateString(),"tomsguide"].join("|"),l=0;for(let r=0;r<a.length;r+=1)l=(l<<5)-l+a.charCodeAt(r),l|=0;let i=String(Math.abs(l));for(;i.length<19;)l=(l<<5)-l+i.length,l|=0,i+=String(Math.abs(l));return i=i.slice(0,19),t&&(t.dataset.fcawRevenueId=i),i}function MS(e){let t=e.dataset.fcawOriginalLink||e.href;if(!t.includes("hawk-custom-tracking"))return!1;let n=d1();if(!n)return!1;let a=xS(e);return e.dataset.fcawOriginalLink=t,e.dataset.fcawRevenueId=a,e.href=t.replaceAll("hawk-custom-tracking",`tomsguide-${n.toLowerCase()}-${a}`),e.setAttribute("data-fcaw-hawklinks-requested","true"),!0}function _S(){return!!window.hawklinks?.version}function BS(e){let t=!1,n,a,l=()=>Array.from(e.querySelectorAll(".article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-deal-widget[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested]), .article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-container[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested]), .article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-deal-button[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested])")),i=()=>{t=!1;let u=l();if(u.length===0)return;let c=u.filter(s=>!MS(s));if(c.length!==0){if(!_S()){let s=Date.now();a??=s,!n&&s-a<yS&&(n=window.setTimeout(()=>{n=void 0,r()},pS));return}a=void 0,c.forEach(s=>s.setAttribute("data-fcaw-hawklinks-requested","true")),document.dispatchEvent(new CustomEvent("processArticle",{detail:{element:e}}))}},r=()=>{t||(t=!0,window.setTimeout(i,0))},o=new MutationObserver(r);return o.observe(e,{attributes:!0,attributeFilter:["href"],childList:!0,subtree:!0}),r(),()=>{o.disconnect(),n&&window.clearTimeout(n)}}function NS(e){if(e.dataset.fcawFullBleed!=="true")return;let t=()=>{let n=document.documentElement.clientWidth||window.innerWidth,a=Math.min(1200,n),l=Math.max(0,(n-a)/2),i=e.parentElement?.getBoundingClientRect().left||0;e.style.setProperty("--fcaw-full-bleed-offset",`${l-i}px`),e.style.setProperty("--fcaw-viewport-width",`${n}px`)};t(),window.addEventListener("resize",t,{passive:!0}),typeof ResizeObserver<"u"&&e.parentElement&&new ResizeObserver(t).observe(e.parentElement)}function OS(e){let t=window.matchMedia(fS),n=!1,a=new Set,l=new Map,i,r=()=>t.matches||e.getBoundingClientRect().width<gS,o=()=>{n||(n=!0,window.requestAnimationFrame(s))},u=()=>{if(typeof MutationObserver>"u")return;let f=new Set(Array.from(document.querySelectorAll(mS)));l.forEach((d,m)=>{f.has(m)&&m.isConnected||(d.disconnect(),l.delete(m))}),f.forEach(d=>{if(l.has(d))return;let m=new MutationObserver(o);m.observe(d,{attributes:!0,attributeFilter:["class","style"],childList:!0,subtree:!0}),l.set(d,m)})},c=f=>{let d=new Set(f);a.forEach(m=>{d.has(m)||(i?.unobserve(m),m.removeEventListener("transitionend",o),a.delete(m))}),f.forEach(m=>{a.has(m)||(i?.observe(m),m.addEventListener("transitionend",o),a.add(m))})},s=()=>{if(n=!1,u(),!r()){c([]),e.style.removeProperty("--fcaw-mobile-sticky-offset");return}let f=Number.parseFloat(getComputedStyle(e).getPropertyValue("--fcaw-publisher-sticky-offset"));if(Number.isFinite(f)&&f>=0){c([]),e.style.setProperty("--fcaw-mobile-sticky-offset",`${f}px`);return}let d=Array.from(document.querySelectorAll(vS)).filter(v=>{if(v.contains(e))return!1;let A=getComputedStyle(v).position;return A==="fixed"||A==="sticky"});c(d);let m=d.reduce((v,A)=>{let b=A.getBoundingClientRect();return b.top>2||b.bottom<=0||b.height<=0||b.height>window.innerHeight*.5?v:Math.max(v,b.bottom)},0);e.style.setProperty("--fcaw-mobile-sticky-offset",`${Math.ceil(m)}px`)};return typeof ResizeObserver<"u"&&(i=new ResizeObserver(o),i.observe(e)),s(),window.addEventListener("scroll",o,{capture:!0,passive:!0}),window.addEventListener("resize",o,{passive:!0}),t.addEventListener?.("change",o),()=>{window.removeEventListener("scroll",o,!0),window.removeEventListener("resize",o),t.removeEventListener?.("change",o),i?.disconnect(),a.forEach(f=>f.removeEventListener("transitionend",o)),a.clear(),l.forEach(f=>f.disconnect()),l.clear()}}function kS(e){if(e.dataset.fcawEnhanced==="true")return;let t=u1(e,"script[data-fcaw-config]");if(!t)return;let n={...t1(e1(t),{brands:t.brands,shortenedHeadlines:t.shortenedHeadlines}),compactEmbed:t.compactEmbed,editorMode:!1,warmInventory:t.warmInventory},a=u1(e,"script[data-fcaw-preload]"),l=ES(a),i=e.querySelector("[data-fcaw-fallback]");if(!i)return;NS(e),CS(e),n.stickyMobileFilters!==!1&&OS(e),c1(i);let r=e.shadowRoot||e.attachShadow({mode:"open"}),o=e.querySelector(":scope > style[data-fcaw-host-protection]");if(o&&r.appendChild(o),!r.querySelector("style[data-fcaw-shadow-protection]")){let c=document.createElement("style");c.setAttribute("data-fcaw-shadow-protection",""),c.textContent=bS,r.appendChild(c)}i.querySelectorAll(":scope > style").forEach(c=>{r.appendChild(c)});let u=document.createElement("div");for(u.setAttribute("data-fcaw-mount","");i.firstChild;)u.appendChild(i.firstChild);i.remove(),r.appendChild(u),e.dataset.fcawEnhanced="true",a1(),e.dataset.fcawAnalyticsReady="true",o1(r),BS(r),(0,s1.createRoot)(u).render((0,Vf.jsx)(RS,{host:e,initialData:l,initialProps:n})),window.setTimeout(()=>c1(r),0)}function Yf(){document.querySelectorAll(dS).forEach(kS)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Yf,{once:!0}):Yf();new MutationObserver(Yf).observe(document.documentElement,{childList:!0,subtree:!0});})();/*! Bundled license information:react/cjs/react.production.js:  (**   * @license React   * react.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)scheduler/cjs/scheduler.production.js:  (**   * @license React   * scheduler.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react-dom/cjs/react-dom.production.js:  (**   * @license React   * react-dom.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react-dom/cjs/react-dom-client.production.js:  (**   * @license React   * react-dom-client.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react/cjs/react-jsx-runtime.production.js:  (**   * @license React   * react-jsx-runtime.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)*/</script></div><h2 class="article-body__section" id="section-black-friday-controller-deals-in-the-uk"><span>Black Friday controller deals in the UK</span></h2><h2 id="where-are-the-best-black-friday-controller-deals-in-the-uk">Where are the best Black Friday controller deals in the UK?</h2><ul><li><strong>Amazon: </strong><a href="https://www.amazon.co.uk/s?k=controllers&crid=60S1AC87VO31&sprefix=controller%2Caps%2C134&ref=nb_sb_noss_1" target="_blank">Big discounts on top-brand controllers</a></li><li><strong>Overclockers:</strong> <a href="https://www.overclockers.co.uk/peripherals/gamepads-game-controllers?q=controllers&_gl=1*hw2u4v*_up*MQ..*_ga*MTQ2NzEzNjg2OC4xNzkwNjgwODU3*_ga_123456*czE3OTA2ODA4NTckbzEkZzAkdDE3OTA2ODA4ODYkajMxJGwwJGgxODc0NzI0ODg.*_ga_7SS7XDNBS9*czE3OTA2ODA4NTckbzEkZzAkdDE3OTA2ODA4ODckajMwJGwwJGgw" target="_blank">A whole bunch of controllers to choose from</a></li><li><strong>Scan:</strong> <a href="https://www.scan.co.uk/shop/computer-hardware/game-controllers/all" target="_blank">Gamepads from just £15</a></li><li><strong>Box: </strong><a href="https://box.co.uk/xbox-controllers" target="_blank">Controllers for everyone</a></li><li><strong>Currys:</strong> <a href="https://www.currys.co.uk/gaming/controllers/controllers/pc-gaming-controllers" target="_blank">Controllers from as little as £20</a></li><li><strong>Argos: </strong><a href="https://www.argos.co.uk/search/controllers/?clickOrigin=searchbar:search:term:controllers" target="_blank">Good prices on budget to high-end controllers</a></li></ul><div class="product"><a data-dimension112="fac03a30-cdff-11f1-9bc9-bb463c98e37c" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="£18.99" href="https://www.amazon.co.uk/GameSir-Wireless-Controller-Bluetooth-Vibration-Nova-Lite-White/dp/B0CMCQ6WMC" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="soVwABeC6nbkWkMrnx2xcR" name="GameSir Nova Lite 2.4g Wireless Controller.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR-1920-80.jpg" mos="" align="middle" fullscreen="" width="200" height="200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/GameSir-Wireless-Controller-Bluetooth-Vibration-Nova-Lite-White/dp/B0CMCQ6WMC" target="_blank" rel="nofollow" data-dimension112="fac03a30-cdff-11f1-9bc9-bb463c98e37c" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="£18.99">Nova Lite: was £24.99 now £18.99</a></strong><br>This gaming controller remains our <a href="https://www.pcgamer.com/best-controller-for-pc-gaming/#section-the-best-budget-controller" target="_blank">top budget pick</a> for good reason. <a href="https://www.pcgamer.com/hardware/controllers/gamesir-nova-lite-controller-review/" target="_blank">In our review</a>, James was particularly impressed by just how much GameSir cram into such an affordable package, highlighting the controller's Hall Effect sticks and 2.4 GHz connectivity.</p><p><strong>Key specs: Hall effect thumb sticks | 2.4G wireless | 10 h battery</strong><a class="view-deal button" href="https://www.amazon.co.uk/GameSir-Wireless-Controller-Bluetooth-Vibration-Nova-Lite-White/dp/B0CMCQ6WMC" target="_blank" rel="nofollow" data-dimension112="fac03a30-cdff-11f1-9bc9-bb463c98e37c" data-action="Deal Block" data-label="Nova Lite" data-dimension48="Nova Lite" data-dimension25="£18.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03a8a-cdff-11f1-9c40-6dfbde122d72" data-action="Deal Block" data-label="Nova Lite 2" data-dimension48="Nova Lite 2" data-dimension25="£29.99" href="https://www.amazon.co.uk/GameSir-Lite-Controller-Joysticks-Remappable/dp/B0F3D25PD3/ref=sr_1_4" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1509px;"><p class="vanilla-image-block" style="padding-top:99.34%;"><img id="VGAcVx239apmX4EGiGsDnE" name="1781519450.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/VGAcVx239apmX4EGiGsDnE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1509" height="1499" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/GameSir-Lite-Controller-Joysticks-Remappable/dp/B0F3D25PD3/ref=sr_1_4" target="_blank" rel="nofollow" data-dimension112="fac03a8a-cdff-11f1-9c40-6dfbde122d72" data-action="Deal Block" data-label="Nova Lite 2" data-dimension48="Nova Lite 2" data-dimension25="£29.99">Nova Lite 2: £29.99</a></strong><br>An upgraded and improved version of the Nova Lite, this controller sets the standard for what you can score for a relatively slim amount of money. Hall effect everywhere and a mechanical D-pad.</p><p><strong>Key specs: Hall effect joysticks + triggers | 2.4G wireless | 1000 Hz polling</strong><a class="view-deal button" href="https://www.amazon.co.uk/GameSir-Lite-Controller-Joysticks-Remappable/dp/B0F3D25PD3/ref=sr_1_4" target="_blank" rel="nofollow" data-dimension112="fac03a8a-cdff-11f1-9c40-6dfbde122d72" data-action="Deal Block" data-label="Nova Lite 2" data-dimension48="Nova Lite 2" data-dimension25="£29.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03aee-cdff-11f1-a0c0-8de96454275f" data-action="Deal Block" data-label="Pro 3" data-dimension48="Pro 3" data-dimension25="£52.99" href="https://www.amazon.co.uk/8Bitdo-Pro-Bluetooth-Controller-Switch/dp/B0FFGQ6J35" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="PkKDcfAPjhcUAT2setQ2WW" name="8BitDo Pro 3 product image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/PkKDcfAPjhcUAT2setQ2WW-1920-80.png" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/8Bitdo-Pro-Bluetooth-Controller-Switch/dp/B0FFGQ6J35" target="_blank" rel="nofollow" data-dimension112="fac03aee-cdff-11f1-a0c0-8de96454275f" data-action="Deal Block" data-label="Pro 3" data-dimension48="Pro 3" data-dimension25="£52.99">Pro 3: was £59.99 now £52.99</a></strong><br>Though a little on the narrower side, this well-balanced controller remains comfortable to play through long sessions. A 20-hour battery life, plus the option to game while you charge (even without using the included dock), ensures this gamepad won't leave you high and dry when you need it most.</p><p><strong>Key specs: TMR sticks | Hall effect triggers | Swappable ABXY Buttons | Charging dock | 2.4 G wireless | 20h battery</strong><a class="view-deal button" href="https://www.amazon.co.uk/8Bitdo-Pro-Bluetooth-Controller-Switch/dp/B0FFGQ6J35" target="_blank" rel="nofollow" data-dimension112="fac03aee-cdff-11f1-a0c0-8de96454275f" data-action="Deal Block" data-label="Pro 3" data-dimension48="Pro 3" data-dimension25="£52.99">View Deal</a></p></div><div class="product"><a data-dimension112="fac03b48-cdff-11f1-8d3e-bdba0f629436" data-action="Deal Block" data-label="Wolverine V3 Pro" data-dimension48="Wolverine V3 Pro" data-dimension25="£158.98" href="https://www.amazon.co.uk/Razer-Wolverine-Pro-Controller-thumbsticks/dp/B0D7W5L9YY/ref=sr_1_1_sspa" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1508px;"><p class="vanilla-image-block" style="padding-top:99.34%;"><img id="bEho7QQ2jdCF6Vr3xoypw" name="1781520197.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/bEho7QQ2jdCF6Vr3xoypw-1920-80.jpg" mos="" align="middle" fullscreen="" width="1508" height="1498" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Razer-Wolverine-Pro-Controller-thumbsticks/dp/B0D7W5L9YY/ref=sr_1_1_sspa" target="_blank" rel="nofollow" data-dimension112="fac03b48-cdff-11f1-8d3e-bdba0f629436" data-action="Deal Block" data-label="Wolverine V3 Pro" data-dimension48="Wolverine V3 Pro" data-dimension25="£158.98">Wolverine V3 Pro: was £199.99 now £158.98</a></strong><br>A superb controller that's sufficiently endgame for most players. Every button and trigger offers excellent feedback and it features Hall effect sticks for improved stick drift resistance.</p><p><strong>Key specs: Hall effect joysticks | 2.4G wireless | mecha-tactile buttons</strong><a class="view-deal button" href="https://www.amazon.co.uk/Razer-Wolverine-Pro-Controller-thumbsticks/dp/B0D7W5L9YY/ref=sr_1_1_sspa" target="_blank" rel="nofollow" data-dimension112="fac03b48-cdff-11f1-8d3e-bdba0f629436" data-action="Deal Block" data-label="Wolverine V3 Pro" data-dimension48="Wolverine V3 Pro" data-dimension25="£158.98">View Deal</a></p></div><ul><li><a href="#main"><strong>Back to top ^</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Cooler Master HAF II 500 review ]]></title>
                                                                                                <dc:content><![CDATA[ <div data-widget-type="merchantlink" data-model-name="Cooler Master HAF II 500" data-widget-title=""></div><p>I first spotted the HAF II 500 at Cooler Master's HQ in Taiwan. It wasn't the case that first caught my eye then, it was the massive fan on a stand in front of it. A spinning goliath measuring a mighty 220 mm, of which there are not one, but two stuffed in the front of the HAF II 500. </p><p>If you want more airflow over your core components—you got it. The HAF II is more wind tunnel than computer chassis. Those large fans drive an immense amount of airflow over the motherboard, GPU, VRM and anything else caught in their backdraft. It reminds me of the <a href="https://www.pcgamer.com/hardware/pc-cases/havn-bf-360-pc-case-review/" target="_blank">Havn BF 360</a> in many ways—another PC case that focuses on airflow, albeit with 180 mm fans—right down to the scoop in the front to keep cool air flowing towards the graphics card. They're similarly wide, too.</p><p>The HAF II 500 is not just a big beast. It's got the brawn and the brains. There's a space-saving fan hub smartly integrated into the rear of the case, alongside ample cable management options. The front includes a couple ways to keep your build looking tidy, too, including a dual-GPU support bracket and sliding cable management cover.</p><p>At <a href="https://www.amazon.com/dp/B0H1P9L7QT" target="_blank">$200</a>/<a href="https://www.amazon.co.uk/dp/B0H1P9L7QT" target="_blank">£250</a>, these fans and extra features come at a high cost. That's one of few points against this case, but it's a big one. It's a prime choice for anyone worried about overheating components, but for most, a more affordable PC case will suffice nearly as well.</p><div class="card card--standard card--rows-1 card--align-center"><div class="card__content"><h3 class="card__title">Buy if…</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>✅ You want all the airflow: </strong>This thing is mighty for airflow, courtesy of three Mighty40 fans. Two 220 mm in the front, one 180 mm in the back.</p></div></div></div></div><div class="card card--standard card--rows-1 card--align-center"><div class="card__content"><h3 class="card__title">Don&#39;t buy if...</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>❌ You want something more exciting: </strong>Beyond the fans, this is a pretty traditional case with a pretty traditional layout. It's not oozing wow factor compared to some.</p></div></div></div></div><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-features"><span>Cooler Master HAF II 500 - Features</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="SWsg9Qp282bfVVknNdKFxJ" name="IMG_8151" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/SWsg9Qp282bfVVknNdKFxJ-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: Future)</span></figcaption></figure><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>Cooler Master HAF II 500</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>557 × 262 × 548 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Motherboard support</strong></p></td><td  ><p>Mini-ITX, Micro-ATX, ATX, E-ATX (up to 130 mm)</p></td></tr><tr><td class="firstcol " ><p><strong>Radiator support</strong></p></td><td  ><p>Top: Up to 360 mm / Front (with MasterRail and no fans) Up to 360 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Front I/O</strong></p></td><td  ><p>1x USB 3.2 Gen 2×2 Type-C, 2x USB 3.2 Gen 1 Type-A, 1x 3.5 mm, power, reset</p></td></tr><tr><td class="firstcol " ><p><strong>Max. GPU length</strong></p></td><td  ><p>430 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/dp/B0H1P9L7QT" target="_blank">$200</a>/<a href="https://www.amazon.co.uk/dp/B0H1P9L7QT" target="_blank">£250</a></p></td></tr></tbody></table></div><p>"Meticulously tuned for airflow." That's what Cooler Master claims for the HAF II 500 on its product page. The good news is that this case absolutely has the hardware to back that claim up.</p><p>In the front, two Mighty40 F220 fans. These are the largest (220 mm) and thickest (40 mm) consumer fans that Cooler Master could install into this case. The frame is made from PBT and the blade from liquid-crystal polymer (LCP)—that's the same as Noctua's NF-A14x25 G2 and is ideal for this application due to a high tensile strength and stability. Back at Cooler Master HQ, I snapped a pic of my hand in front of this goliath to give an idea of the size (see below).</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="ZFifDd4FW8rck73yZdDH2K" name="IMG_8205" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/ZFifDd4FW8rck73yZdDH2K-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: Future)</span></figcaption></figure><p>This fan size offers a clear advantage in terms of airflow. Cooler Master rates this fan to 203.8 CFM, which is a mighty figure for a fan that spins so slowly. Just 1,050 RPM at max speed. For reference, an Arctic P12 Pro is rated to 77 CFM at 3,000 RPM; an Arctic P14 Pro to 110 CFM at 2,500 RPM. </p><p>In the rear, one Mighty40 V180 fan. A little overshadowed by larger fans up front, this is a very capable unit in its own right, rated to 161.5 CFM at 1,370 RPM. Here, too, the blades are made from LCP.</p><p>As for the case itself, it's moderately tall and very wide. Like a tank in your driveway kinda wide. This roomy design has its benefits. It makes good use of all that volume, with support for E-ATX motherboards up to 310 mm and loads of room between the edge of the GPU and tempered glass side panel, which is a boon for big air coolers. It uses a traditional layout, which means you are likely to use the top mounting position for an all-in-one liquid cooler in most cases, but it supports up to 420 mm and a clever sliding mounting solution for a straightforward installation.</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="VQ69iJSEbNa7AH3BKomRyJ" name="IMG_8158" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/VQ69iJSEbNa7AH3BKomRyJ-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: Future)</span></figcaption></figure><p>There are three easy-access dust filters on the HAF II 500: front, top, and PSU. The panels on this case are held in place by non-captive thumbscrews, which feels like a weird choice these days, especially as each thumbscrew also has a tiny washer that is very easily misplaced (ask me how I know).</p><p>A traditional design in many ways, there are some unusual features to be found on the HAF II 500. </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="Xp5PNSsX6WzXT7byV3BJ6K" name="IMG_8187" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/Xp5PNSsX6WzXT7byV3BJ6K-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: Future)</span></figcaption></figure><p>The fan hub is one such feature. It comes pre-installed inside the case and runs the upper edge of the motherboard tray; tucked away neatly behind the edge of the frame. It has six PWM fan headers and six ARGB headers. The HAF's array of huge fans are hooked up out of the box, leaving only any additional fans, SATA power, and fan header to motherboard cables to connect upon installation.</p><p>The GPU support bracket is another such feature. These are becoming more and more common with modern PC cases, but Cooler Master is throwing a bone to anyone planning a workstation build here: this thing supports not one, but two graphics cards. It's a swivelling design, which is slightly to its detriment as it only really has one axis of movement and not a lot of leeway, but it's easy to remove if not required.</p><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-installation"><span>Cooler Master HAF II 500 - Installation</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="U8n7SkGDqRRgQdpaJhFozJ" name="IMG_8266" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/U8n7SkGDqRRgQdpaJhFozJ-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: Future)</span></figcaption></figure><p>With enough space to park a small family car in this thing, it's no surprise that the HAF II 500 is a very easy case to build in. That's in large part due to its capacious size. There are few compatibility issues to worry about here, with bountiful room above, below, behind, and besides the motherboard tray. Ample room for liquid cooling up top, or an air cooler of any size over the CPU. There's a lot of space under the power supply shroud—including for a couple HDDs or SSDs—and even the fans are preinstalled to make life easier. </p><p>You can more or less begin building right away, though I'd start by ripping out the storage bays behind the PSU shroud for an easier time 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="sxtcdZChXxW2MrCfbrUV6K" name="IMG_8191" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/sxtcdZChXxW2MrCfbrUV6K-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: Future)</span></figcaption></figure><p>It may have a pretty traditional layout, but the cable management in the HAF II 500 is anything but. It offers what I would call the 'set and forget' style of management, in that you don't have to put much effort in to actually run cables correctly and instead just cover up most of the eventual mess. </p><p>It uses a clamshell of metal cable covers: one on the back, one on the front. The rear one is on a hinge, but both can be removed completely. These essentially keep the cable run from the rear to the front in loose order and away from prying eyes. That allows you to be about as lazy as you like without worrying someone will see your horrendous cable management, let alone shame you on the internet about it (don't look too closely at my test 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="bqgQbgv9hieYXwpseP9y2K" name="IMG_8189" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/bqgQbgv9hieYXwpseP9y2K-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: Future)</span></figcaption></figure><p>What's neat is that the front cable cover slides left and right, along the same axis as the motherboard tray, which lets me push it nice and snug against the edge of my motherboard and cover up any messing cable protruding out. All except that damned USB 3.0 connector. God, I hate that thing.</p><p>My only major complaints with the HAF II 500 are its non-captive thumbscrews with tiny washers that are very easy to lose (I lost one but found it a week later). I'd also like to see a little more adjustability on the actual arm of the graphics card support, as it didn't quite work as I'd like it to with the Gigabyte card in my test build. Oh, and it puts all the screws in one bag together. Clear labels would be better for a newbie builder.</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="iFBv4NjoewE2DfeeUFZa3K" name="IMG_8172" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/iFBv4NjoewE2DfeeUFZa3K-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: Future)</span></figcaption></figure><p>Up top, Cooler Master has rolled out a rail system for varying sizes of radiators, nicknamed MasterRail. Loosen a few screws, move a few sliders, and you can fit anything from 3x 140 mm fans or a 420 mm radiator to twin 180 mm fans. This is also true of the front of the case, but only if you move the rails from the top spot. There's only one set of rails included.</p><p>Yes, so, the HAF II 500: plenty of room and cable management made easy.</p><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-aesthetics"><span>Cooler Master HAF II 500 - Aesthetics</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="ZJDHEuXiVfac8HKdT9R4wJ" name="IMG_8161" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/ZJDHEuXiVfac8HKdT9R4wJ-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: Future)</span></figcaption></figure><p>The front panel is the main attraction here. Appearing to be hewn from a single piece of metal, it's actually just polished plastic. I'm a fan of the design. It sounds a bit boring, as from the front it's a couple of straight lines arranged around Cooler Master's usual flattened hexagon, but little flourishes bring it all together. Like the HAF logo that sticks out from the tempered glass side panel. </p><p>Nevertheless, I think it'd be fair to say that Cooler Master isn't pushing the boat out too far in terms of appearance here.</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="L2qB9PgfR3ZENSBtHUdJ6K" name="IMG_8219" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/L2qB9PgfR3ZENSBtHUdJ6K-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: Future)</span></figcaption></figure><p>The cable management keeps any build in this case looking clean, and none more so than the cutout above the PSU shroud. That keeps any cable runs to the power connectors on a graphics card looking clean, which is surprisingly overlooked in many cases.</p><p>Finally, the plastic is a little rough around the edges. It looks clean and I guess that's what counts in the long-run, but if you take off some panels and feel around the edges, you can sometimes catch a sharp edge.</p><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-gallery"><span>Cooler Master HAF II 500 - Gallery</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/ZJDHEuXiVfac8HKdT9R4wJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/UpHSem6gh9Cq3TGzTLWuvJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zCDhvBjY4FquBpnBsv2KwJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/sxtcdZChXxW2MrCfbrUV6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/qXgH3XeKKZRsSGWgeBfU6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vnsB4nY7T6EAMsbwgdvJ6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Sqh6WwQYJKTrSoeUEwZL6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/f3iyquntsbSRerqeuSMM6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/6rj4KGMwmThf7kdFJqBF6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/FWsVxKw9UpACfVb4wvXH6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/L2qB9PgfR3ZENSBtHUdJ6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Xp5PNSsX6WzXT7byV3BJ6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ew7d3du2pk8S44kUHru76K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/sfaEnCfUyh2QmSFPQ7tq4K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/HPXFWZap9HY3RLLSp8Ln4K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/WJZVsUJfyQGBq68pe6de3K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/iFBv4NjoewE2DfeeUFZa3K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/bdnXLyrbU5tLfr5CPZoJ3K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/bqgQbgv9hieYXwpseP9y2K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ZFifDd4FW8rck73yZdDH2K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/U8n7SkGDqRRgQdpaJhFozJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/VQ69iJSEbNa7AH3BKomRyJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/yR7p4p24PXJi8NAPejcvxJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/SWsg9Qp282bfVVknNdKFxJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/oKhsd4mT5SUnfVcaA5BNxJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure></figure><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-thermals"><span>Cooler Master HAF II 500 - Thermals</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="zCDhvBjY4FquBpnBsv2KwJ" name="IMG_8210" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/zCDhvBjY4FquBpnBsv2KwJ-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: Future)</span></figcaption></figure><p>Make no mistake, the HAF II 500 makes no trouble of cooling. The twin 220 mm fans at the front make sure of that. Even holding my hand at the back of the case, below the 180 mm fan as an exhaust, and I can feel the airflow from the front fans—that's a good sign that the air is flowing <em>through </em>the case, and not straight out the top.</p><p>Its three fans reach a loud whirr at 100% speed—50 dB(A) from 50 cm away—but once I turned them down to a steady 70% in the BIOS, that figure dropped by a whopping 5 dB(A). The good news here is that I measured temps at both speeds and 70% was more than enough to keep my Intel Core i5 14600K and RTX 5070 Ti at near-enough the same temps as full whack.</p><p>While running 3DMark's Speedway benchmark on repeat, I measured the following in HWInfo:</p><p><strong>At 100%</strong></p><ul><li>GPU: 70 °C</li><li>CPU: 35 °C</li></ul><p><strong>At 70%</strong></p><ul><li>GPU: 71 °C</li><li>CPU: 35 °C</li></ul><p>I stuck my anemometer in the case to see if the dust filter and front panel have much affect on the airflow from those fans. Not out of any particular concern for airflow—this thing has plenty to spare—but I'm just curious. Here are the results:</p><ul><li>2.3 m/s with front panel/dust filter</li><li>2.8 m/s without front panel/with dust filter</li><li>2.6 m/s with front panel/without dust filter</li></ul><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-value"><span>Cooler Master HAF II 500 - Value</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="f3iyquntsbSRerqeuSMM6K" name="IMG_8164" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/f3iyquntsbSRerqeuSMM6K-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: Future)</span></figcaption></figure><p>It all comes down to cold, hard cash. The Cooler Master HAF II 500 should be a good investment simply for the huge amount of airflow delivered by those massive fans at the front. That cuts out any extra costs for cooling, and you can likely save some money with an air cooler and still see excellent performance. </p><p>Though there's no denying that <a href="https://www.amazon.com/dp/B0H1P9L7QT" target="_blank">$200</a>/<a href="https://www.amazon.co.uk/dp/B0H1P9L7QT" target="_blank">£250</a> is on the high side for a traditional PC case such as this. The HAF II 500 is also not the only option around for high airflow. The Havn BF 360, which I mentioned at the top of this review, comes with similarly large 180 mm fans for $180/£170. If you want something much more affordable, the <a href="https://www.pcgamer.com/hardware/pc-cases/phanteks-eclipse-g400a-review/" target="_blank">Phanteks Eclipse G400A</a> gets you four big fans for nearly half the price. Though compared to the <a href="https://www.pcgamer.com/hardware/pc-cases/antec-flux-pro-noctua-edition-review/" target="_blank">Antec Flux Pro Noctua Edition</a>, the HAF II 500 looks a much better deal.</p><p>There's definitely a case to be made for the Cooler Master, and the inclusion of three mighty fans and a fan hub help to justify the price tag.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/pc-cases/cooler-master-haf-ii-500-review/</link>
                                                                            <description>
                            <![CDATA[ Three mighty fans make for a mighty amount of airflow. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">m2AtWu5bYPzqteXEnNcHwR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/zCDhvBjY4FquBpnBsv2KwJ-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 08:48:50 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[PC Cases]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jacob Ridley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/2YNigoLXbckPdRPDe3stwA-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jacob earned his first byline writing for his own tech blog, before graduating to breaking things professionally at PCGamesN, where he was one half of a popular weekly YouTube show. Joining PC Gamer in 2020, Jacob is now managing editor of the hardware team, and you&#039;ll usually find him testing the latest components or building a gaming PC. He says he&#039;s determined to build a fort as big as a house out of case boxes. Jacob enjoys heading out of the office to report from floors, benches, and, if he&#039;s lucky, plush press rooms at the biggest tech shows, such as Computex and CES.&lt;br&gt;&lt;/p&gt;&lt;p&gt;When he&#039;s not writing about components, you&#039;ll find Jacob trying to get away from the modern world as fast as possible by bike and pitching up camp in murky woods.&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/zCDhvBjY4FquBpnBsv2KwJ-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A Cooler Master HAF II 500 case as I build a PC into it.]]></media:description>                                                            <media:text><![CDATA[A Cooler Master HAF II 500 case as I build a PC into it.]]></media:text>
                                <media:title type="plain"><![CDATA[A Cooler Master HAF II 500 case as I build a PC into it.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/zCDhvBjY4FquBpnBsv2KwJ-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div data-widget-type="merchantlink" data-model-name="Cooler Master HAF II 500" data-widget-title=""></div><p>I first spotted the HAF II 500 at Cooler Master's HQ in Taiwan. It wasn't the case that first caught my eye then, it was the massive fan on a stand in front of it. A spinning goliath measuring a mighty 220 mm, of which there are not one, but two stuffed in the front of the HAF II 500. </p><p>If you want more airflow over your core components—you got it. The HAF II is more wind tunnel than computer chassis. Those large fans drive an immense amount of airflow over the motherboard, GPU, VRM and anything else caught in their backdraft. It reminds me of the <a href="https://www.pcgamer.com/hardware/pc-cases/havn-bf-360-pc-case-review/" target="_blank">Havn BF 360</a> in many ways—another PC case that focuses on airflow, albeit with 180 mm fans—right down to the scoop in the front to keep cool air flowing towards the graphics card. They're similarly wide, too.</p><p>The HAF II 500 is not just a big beast. It's got the brawn and the brains. There's a space-saving fan hub smartly integrated into the rear of the case, alongside ample cable management options. The front includes a couple ways to keep your build looking tidy, too, including a dual-GPU support bracket and sliding cable management cover.</p><p>At <a href="https://www.amazon.com/dp/B0H1P9L7QT" target="_blank">$200</a>/<a href="https://www.amazon.co.uk/dp/B0H1P9L7QT" target="_blank">£250</a>, these fans and extra features come at a high cost. That's one of few points against this case, but it's a big one. It's a prime choice for anyone worried about overheating components, but for most, a more affordable PC case will suffice nearly as well.</p><div class="card card--standard card--rows-1 card--align-center"><div class="card__content"><h3 class="card__title">Buy if…</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>✅ You want all the airflow: </strong>This thing is mighty for airflow, courtesy of three Mighty40 fans. Two 220 mm in the front, one 180 mm in the back.</p></div></div></div></div><div class="card card--standard card--rows-1 card--align-center"><div class="card__content"><h3 class="card__title">Don&#39;t buy if...</h3><div class="card__description-wrapper"><div class="card__description"><p><strong>❌ You want something more exciting: </strong>Beyond the fans, this is a pretty traditional case with a pretty traditional layout. It's not oozing wow factor compared to some.</p></div></div></div></div><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-features"><span>Cooler Master HAF II 500 - Features</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="SWsg9Qp282bfVVknNdKFxJ" name="IMG_8151" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/SWsg9Qp282bfVVknNdKFxJ-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: Future)</span></figcaption></figure><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>Cooler Master HAF II 500</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>557 × 262 × 548 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Motherboard support</strong></p></td><td  ><p>Mini-ITX, Micro-ATX, ATX, E-ATX (up to 130 mm)</p></td></tr><tr><td class="firstcol " ><p><strong>Radiator support</strong></p></td><td  ><p>Top: Up to 360 mm / Front (with MasterRail and no fans) Up to 360 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Front I/O</strong></p></td><td  ><p>1x USB 3.2 Gen 2×2 Type-C, 2x USB 3.2 Gen 1 Type-A, 1x 3.5 mm, power, reset</p></td></tr><tr><td class="firstcol " ><p><strong>Max. GPU length</strong></p></td><td  ><p>430 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p><a href="https://www.amazon.com/dp/B0H1P9L7QT" target="_blank">$200</a>/<a href="https://www.amazon.co.uk/dp/B0H1P9L7QT" target="_blank">£250</a></p></td></tr></tbody></table></div><p>"Meticulously tuned for airflow." That's what Cooler Master claims for the HAF II 500 on its product page. The good news is that this case absolutely has the hardware to back that claim up.</p><p>In the front, two Mighty40 F220 fans. These are the largest (220 mm) and thickest (40 mm) consumer fans that Cooler Master could install into this case. The frame is made from PBT and the blade from liquid-crystal polymer (LCP)—that's the same as Noctua's NF-A14x25 G2 and is ideal for this application due to a high tensile strength and stability. Back at Cooler Master HQ, I snapped a pic of my hand in front of this goliath to give an idea of the size (see below).</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="ZFifDd4FW8rck73yZdDH2K" name="IMG_8205" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/ZFifDd4FW8rck73yZdDH2K-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: Future)</span></figcaption></figure><p>This fan size offers a clear advantage in terms of airflow. Cooler Master rates this fan to 203.8 CFM, which is a mighty figure for a fan that spins so slowly. Just 1,050 RPM at max speed. For reference, an Arctic P12 Pro is rated to 77 CFM at 3,000 RPM; an Arctic P14 Pro to 110 CFM at 2,500 RPM. </p><p>In the rear, one Mighty40 V180 fan. A little overshadowed by larger fans up front, this is a very capable unit in its own right, rated to 161.5 CFM at 1,370 RPM. Here, too, the blades are made from LCP.</p><p>As for the case itself, it's moderately tall and very wide. Like a tank in your driveway kinda wide. This roomy design has its benefits. It makes good use of all that volume, with support for E-ATX motherboards up to 310 mm and loads of room between the edge of the GPU and tempered glass side panel, which is a boon for big air coolers. It uses a traditional layout, which means you are likely to use the top mounting position for an all-in-one liquid cooler in most cases, but it supports up to 420 mm and a clever sliding mounting solution for a straightforward installation.</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="VQ69iJSEbNa7AH3BKomRyJ" name="IMG_8158" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/VQ69iJSEbNa7AH3BKomRyJ-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: Future)</span></figcaption></figure><p>There are three easy-access dust filters on the HAF II 500: front, top, and PSU. The panels on this case are held in place by non-captive thumbscrews, which feels like a weird choice these days, especially as each thumbscrew also has a tiny washer that is very easily misplaced (ask me how I know).</p><p>A traditional design in many ways, there are some unusual features to be found on the HAF II 500. </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="Xp5PNSsX6WzXT7byV3BJ6K" name="IMG_8187" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/Xp5PNSsX6WzXT7byV3BJ6K-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: Future)</span></figcaption></figure><p>The fan hub is one such feature. It comes pre-installed inside the case and runs the upper edge of the motherboard tray; tucked away neatly behind the edge of the frame. It has six PWM fan headers and six ARGB headers. The HAF's array of huge fans are hooked up out of the box, leaving only any additional fans, SATA power, and fan header to motherboard cables to connect upon installation.</p><p>The GPU support bracket is another such feature. These are becoming more and more common with modern PC cases, but Cooler Master is throwing a bone to anyone planning a workstation build here: this thing supports not one, but two graphics cards. It's a swivelling design, which is slightly to its detriment as it only really has one axis of movement and not a lot of leeway, but it's easy to remove if not required.</p><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-installation"><span>Cooler Master HAF II 500 - Installation</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="U8n7SkGDqRRgQdpaJhFozJ" name="IMG_8266" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/U8n7SkGDqRRgQdpaJhFozJ-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: Future)</span></figcaption></figure><p>With enough space to park a small family car in this thing, it's no surprise that the HAF II 500 is a very easy case to build in. That's in large part due to its capacious size. There are few compatibility issues to worry about here, with bountiful room above, below, behind, and besides the motherboard tray. Ample room for liquid cooling up top, or an air cooler of any size over the CPU. There's a lot of space under the power supply shroud—including for a couple HDDs or SSDs—and even the fans are preinstalled to make life easier. </p><p>You can more or less begin building right away, though I'd start by ripping out the storage bays behind the PSU shroud for an easier time 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="sxtcdZChXxW2MrCfbrUV6K" name="IMG_8191" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/sxtcdZChXxW2MrCfbrUV6K-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: Future)</span></figcaption></figure><p>It may have a pretty traditional layout, but the cable management in the HAF II 500 is anything but. It offers what I would call the 'set and forget' style of management, in that you don't have to put much effort in to actually run cables correctly and instead just cover up most of the eventual mess. </p><p>It uses a clamshell of metal cable covers: one on the back, one on the front. The rear one is on a hinge, but both can be removed completely. These essentially keep the cable run from the rear to the front in loose order and away from prying eyes. That allows you to be about as lazy as you like without worrying someone will see your horrendous cable management, let alone shame you on the internet about it (don't look too closely at my test 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="bqgQbgv9hieYXwpseP9y2K" name="IMG_8189" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/bqgQbgv9hieYXwpseP9y2K-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: Future)</span></figcaption></figure><p>What's neat is that the front cable cover slides left and right, along the same axis as the motherboard tray, which lets me push it nice and snug against the edge of my motherboard and cover up any messing cable protruding out. All except that damned USB 3.0 connector. God, I hate that thing.</p><p>My only major complaints with the HAF II 500 are its non-captive thumbscrews with tiny washers that are very easy to lose (I lost one but found it a week later). I'd also like to see a little more adjustability on the actual arm of the graphics card support, as it didn't quite work as I'd like it to with the Gigabyte card in my test build. Oh, and it puts all the screws in one bag together. Clear labels would be better for a newbie builder.</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="iFBv4NjoewE2DfeeUFZa3K" name="IMG_8172" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/iFBv4NjoewE2DfeeUFZa3K-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: Future)</span></figcaption></figure><p>Up top, Cooler Master has rolled out a rail system for varying sizes of radiators, nicknamed MasterRail. Loosen a few screws, move a few sliders, and you can fit anything from 3x 140 mm fans or a 420 mm radiator to twin 180 mm fans. This is also true of the front of the case, but only if you move the rails from the top spot. There's only one set of rails included.</p><p>Yes, so, the HAF II 500: plenty of room and cable management made easy.</p><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-aesthetics"><span>Cooler Master HAF II 500 - Aesthetics</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="ZJDHEuXiVfac8HKdT9R4wJ" name="IMG_8161" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/ZJDHEuXiVfac8HKdT9R4wJ-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: Future)</span></figcaption></figure><p>The front panel is the main attraction here. Appearing to be hewn from a single piece of metal, it's actually just polished plastic. I'm a fan of the design. It sounds a bit boring, as from the front it's a couple of straight lines arranged around Cooler Master's usual flattened hexagon, but little flourishes bring it all together. Like the HAF logo that sticks out from the tempered glass side panel. </p><p>Nevertheless, I think it'd be fair to say that Cooler Master isn't pushing the boat out too far in terms of appearance here.</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="L2qB9PgfR3ZENSBtHUdJ6K" name="IMG_8219" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/L2qB9PgfR3ZENSBtHUdJ6K-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: Future)</span></figcaption></figure><p>The cable management keeps any build in this case looking clean, and none more so than the cutout above the PSU shroud. That keeps any cable runs to the power connectors on a graphics card looking clean, which is surprisingly overlooked in many cases.</p><p>Finally, the plastic is a little rough around the edges. It looks clean and I guess that's what counts in the long-run, but if you take off some panels and feel around the edges, you can sometimes catch a sharp edge.</p><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-gallery"><span>Cooler Master HAF II 500 - Gallery</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/ZJDHEuXiVfac8HKdT9R4wJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/UpHSem6gh9Cq3TGzTLWuvJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zCDhvBjY4FquBpnBsv2KwJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/sxtcdZChXxW2MrCfbrUV6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/qXgH3XeKKZRsSGWgeBfU6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/vnsB4nY7T6EAMsbwgdvJ6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Sqh6WwQYJKTrSoeUEwZL6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/f3iyquntsbSRerqeuSMM6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/6rj4KGMwmThf7kdFJqBF6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/FWsVxKw9UpACfVb4wvXH6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/L2qB9PgfR3ZENSBtHUdJ6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Xp5PNSsX6WzXT7byV3BJ6K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ew7d3du2pk8S44kUHru76K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/sfaEnCfUyh2QmSFPQ7tq4K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/HPXFWZap9HY3RLLSp8Ln4K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/WJZVsUJfyQGBq68pe6de3K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/iFBv4NjoewE2DfeeUFZa3K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/bdnXLyrbU5tLfr5CPZoJ3K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/bqgQbgv9hieYXwpseP9y2K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ZFifDd4FW8rck73yZdDH2K-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/U8n7SkGDqRRgQdpaJhFozJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/VQ69iJSEbNa7AH3BKomRyJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/yR7p4p24PXJi8NAPejcvxJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/SWsg9Qp282bfVVknNdKFxJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/oKhsd4mT5SUnfVcaA5BNxJ-1920-80.jpg" alt="A Cooler Master HAF II 500 case as I build a PC into it." /><figcaption><small role="credit">Future</small></figcaption></figure></figure><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-thermals"><span>Cooler Master HAF II 500 - Thermals</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="zCDhvBjY4FquBpnBsv2KwJ" name="IMG_8210" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/zCDhvBjY4FquBpnBsv2KwJ-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: Future)</span></figcaption></figure><p>Make no mistake, the HAF II 500 makes no trouble of cooling. The twin 220 mm fans at the front make sure of that. Even holding my hand at the back of the case, below the 180 mm fan as an exhaust, and I can feel the airflow from the front fans—that's a good sign that the air is flowing <em>through </em>the case, and not straight out the top.</p><p>Its three fans reach a loud whirr at 100% speed—50 dB(A) from 50 cm away—but once I turned them down to a steady 70% in the BIOS, that figure dropped by a whopping 5 dB(A). The good news here is that I measured temps at both speeds and 70% was more than enough to keep my Intel Core i5 14600K and RTX 5070 Ti at near-enough the same temps as full whack.</p><p>While running 3DMark's Speedway benchmark on repeat, I measured the following in HWInfo:</p><p><strong>At 100%</strong></p><ul><li>GPU: 70 °C</li><li>CPU: 35 °C</li></ul><p><strong>At 70%</strong></p><ul><li>GPU: 71 °C</li><li>CPU: 35 °C</li></ul><p>I stuck my anemometer in the case to see if the dust filter and front panel have much affect on the airflow from those fans. Not out of any particular concern for airflow—this thing has plenty to spare—but I'm just curious. Here are the results:</p><ul><li>2.3 m/s with front panel/dust filter</li><li>2.8 m/s without front panel/with dust filter</li><li>2.6 m/s with front panel/without dust filter</li></ul><h2 class="article-body__section" id="section-cooler-master-haf-ii-500-value"><span>Cooler Master HAF II 500 - Value</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="f3iyquntsbSRerqeuSMM6K" name="IMG_8164" alt="A Cooler Master HAF II 500 case as I build a PC into it." src="https://cdn.mos.cms.futurecdn.net/f3iyquntsbSRerqeuSMM6K-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: Future)</span></figcaption></figure><p>It all comes down to cold, hard cash. The Cooler Master HAF II 500 should be a good investment simply for the huge amount of airflow delivered by those massive fans at the front. That cuts out any extra costs for cooling, and you can likely save some money with an air cooler and still see excellent performance. </p><p>Though there's no denying that <a href="https://www.amazon.com/dp/B0H1P9L7QT" target="_blank">$200</a>/<a href="https://www.amazon.co.uk/dp/B0H1P9L7QT" target="_blank">£250</a> is on the high side for a traditional PC case such as this. The HAF II 500 is also not the only option around for high airflow. The Havn BF 360, which I mentioned at the top of this review, comes with similarly large 180 mm fans for $180/£170. If you want something much more affordable, the <a href="https://www.pcgamer.com/hardware/pc-cases/phanteks-eclipse-g400a-review/" target="_blank">Phanteks Eclipse G400A</a> gets you four big fans for nearly half the price. Though compared to the <a href="https://www.pcgamer.com/hardware/pc-cases/antec-flux-pro-noctua-edition-review/" target="_blank">Antec Flux Pro Noctua Edition</a>, the HAF II 500 looks a much better deal.</p><p>There's definitely a case to be made for the Cooler Master, and the inclusion of three mighty fans and a fan hub help to justify the price tag.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The next Mass Effect would have had 'a level of autonomy and choice that no other game has been able to match', according to BioWare veteran ]]></title>
                                                                                                <dc:content><![CDATA[ <p>A developer working on Mass Effect 5 has spoken up about BioWare's plans for the now-canceled RPG. Tony de Waal was cinematic supervisor at the now shuttered studio. He joined the team "29+ years ago", left for a spell shortly after the launch of Mass Effect 2, and then returned in 2021 to work on Dragon Age: The Veilguard. According to de Waal, there were "50-ish" people working on Mass Effect 5 before the studio closure.</p><p>"I was one of the lucky ones who stayed with BioWare to start on the next Mass Effect [after The Veilguard], where I believe we were making something special: a level of autonomy and choice that no other game has been able to match," de Waal wrote on LinkedIn. </p><p>"We saw what Larian and CD Projekt were bringing to the table with their latest offerings, and started down a path to bring Mass Effect to the next level while remaining true to the Trilogy."</p><p>De Waal also described some of the challenges BioWare faced during the development of The Veilguard, which was the studio's second project made using EA and DICE's Frostbite engine. "It was a herculean effort that tested the limits of even my workaholic mindset, and I'm proud of the level of polish we were able to pull off in the Frostbite engine. </p><p>"Seriously, you have no idea the craziness going on under the hood of that game to make a variable player character work across 3+ hours of cinematics, and the number of conditions to account for in the scenes towards the end of the game."</p><p><a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">BioWare's closure</a> comes as part of a big restructuring at EA following its acquisition by Saudi Arabia's PIF (and two other investment firms with tiny stakes). Over 400 people have been laid off as the publisher <a href="https://www.pcgamer.com/gaming-industry/with-bioware-dead-ea-lays-out-its-next-chapter-and-its-pretty-much-as-predicted-guns-and-football-are-fine-and-everything-else-is-under-the-microscope/">pivots</a> to live service shooters and sports.</p><p>"I'm sad you won't ever get to see what we were cooking, and sad for the small, talented group of devs who were all punching above their weight to make something special," de Waal wrote. "Please consider those who stayed with BioWare until the very end. They are truly some of the most talented people I've had the pleasure of working with throughout my career."</p><p>For de Waal, as for thousands in the games industry, a hunt for work will ensue. "With that, if you need someone who knows cinematic production, blending gameplay with cinematics, the tools, the tech, and has the know-how to realize complicated narratives—a true production expert with nearly three decades of experience who isn't afraid to roll up their sleeves and create content—please think of me."</p><p>You can read de Waal's full post on <a href="https://www.linkedin.com/feed/update/urn:li:activity:7518813499410563072/">LinkedIn</a>.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/mass-effect/the-next-mass-effect-would-have-had-a-level-of-autonomy-and-choice-that-no-other-game-has-been-able-to-match-according-to-bioware-veteran/</link>
                                                                            <description>
                            <![CDATA[ BioWare had paid attention to Larian and CD Projekt. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">otQuNg3cfpDjnKvPNLDPET</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/yYFhk42HeexHNWqBH5hkhQ-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 01:14:40 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 13:29:03 +0000</updated>
                                                                                                                                            <category><![CDATA[Mass Effect]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[Action]]></category>
                                                                                                <author><![CDATA[ shaun.prescott@futurenet.com (Shaun Prescott) ]]></author>                    <dc:creator><![CDATA[ Shaun Prescott ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC-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/yYFhk42HeexHNWqBH5hkhQ-1920-80.jpg">
                                                            <media:credit><![CDATA[BioWare]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Mass Effect 3]]></media:description>                                                            <media:text><![CDATA[Mass Effect 3]]></media:text>
                                <media:title type="plain"><![CDATA[Mass Effect 3]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/yYFhk42HeexHNWqBH5hkhQ-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>A developer working on Mass Effect 5 has spoken up about BioWare's plans for the now-canceled RPG. Tony de Waal was cinematic supervisor at the now shuttered studio. He joined the team "29+ years ago", left for a spell shortly after the launch of Mass Effect 2, and then returned in 2021 to work on Dragon Age: The Veilguard. According to de Waal, there were "50-ish" people working on Mass Effect 5 before the studio closure.</p><p>"I was one of the lucky ones who stayed with BioWare to start on the next Mass Effect [after The Veilguard], where I believe we were making something special: a level of autonomy and choice that no other game has been able to match," de Waal wrote on LinkedIn. </p><p>"We saw what Larian and CD Projekt were bringing to the table with their latest offerings, and started down a path to bring Mass Effect to the next level while remaining true to the Trilogy."</p><p>De Waal also described some of the challenges BioWare faced during the development of The Veilguard, which was the studio's second project made using EA and DICE's Frostbite engine. "It was a herculean effort that tested the limits of even my workaholic mindset, and I'm proud of the level of polish we were able to pull off in the Frostbite engine. </p><p>"Seriously, you have no idea the craziness going on under the hood of that game to make a variable player character work across 3+ hours of cinematics, and the number of conditions to account for in the scenes towards the end of the game."</p><p><a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/">BioWare's closure</a> comes as part of a big restructuring at EA following its acquisition by Saudi Arabia's PIF (and two other investment firms with tiny stakes). Over 400 people have been laid off as the publisher <a href="https://www.pcgamer.com/gaming-industry/with-bioware-dead-ea-lays-out-its-next-chapter-and-its-pretty-much-as-predicted-guns-and-football-are-fine-and-everything-else-is-under-the-microscope/">pivots</a> to live service shooters and sports.</p><p>"I'm sad you won't ever get to see what we were cooking, and sad for the small, talented group of devs who were all punching above their weight to make something special," de Waal wrote. "Please consider those who stayed with BioWare until the very end. They are truly some of the most talented people I've had the pleasure of working with throughout my career."</p><p>For de Waal, as for thousands in the games industry, a hunt for work will ensue. "With that, if you need someone who knows cinematic production, blending gameplay with cinematics, the tools, the tech, and has the know-how to realize complicated narratives—a true production expert with nearly three decades of experience who isn't afraid to roll up their sleeves and create content—please think of me."</p><p>You can read de Waal's full post on <a href="https://www.linkedin.com/feed/update/urn:li:activity:7518813499410563072/">LinkedIn</a>.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Can you identify the horror game by its horrors? ]]></title>
                                                                                                <dc:content><![CDATA[ <p>You'd think someone who still screams at the sight of the Tomb Raider T-Rex wouldn't be so into horror games, but I can't help myself; I love 'em. I'm always down for a good inhuman gurgle or unnatural skitter across the floor. Creature with too many eyeballs? Sign me up. Inordinate number of hands? I'm on my way.</p><div  class="fancy-box"><div class="fancy_box-title">More quizzes!</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="XHdkj6AKzQwnn4rGxre4K4" name="logo_quiz" caption="" alt="The PC Gamer Quiz logo in green" src="https://cdn.mos.cms.futurecdn.net/XHdkj6AKzQwnn4rGxre4K4-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">Want to keep testing your knowledge of gaming trivia? We've got loads more <a data-analytics-id="inline-link" href="https://www.pcgamer.com/games/think-you-know-gaming-test-your-knowledge-with-pc-gamers-fiendish-quizzes/" target="_blank">PC Gamer quizzes</a>, on everything from healthbars to weird currencies to absurd patch notes.</p></div></div><p>That enthusiasm for terror is why I have the nervous system of a small woodland creature, but also why I can rattle off a list of favorite ghosts and ghouls like they're important historical figures. It's the perfect special interest for a PC Gamer quiz, so today I'm asking: How many horror games can you identify from a screenshot of one of their resident monstrosities?</p><p><strong>You've got 12 minutes to face your fears and name as many games as you can from a glimpse of their ghosts, ghouls, and other unspeakable horrors.</strong> Let us know how you did in the comments, and then tell us about some of your favorite nightmare encounters. </p><div style="min-height: 640px;">                                <div class="kwizly-quiz kwizly-eP9o0W"></div>                            </div>                            <script src="https://kwizly.com/embed/eP9o0W.js" async></script><div class="product"><a data-dimension112="2997daf2-cdb5-11f1-adb9-b9d567d0ba99" 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="2997daf2-cdb5-11f1-adb9-b9d567d0ba99" 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/can-you-identify-the-horror-game-by-its-horrors/</link>
                                                                            <description>
                            <![CDATA[ Put a name to the nightmare. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3UeTAqtXRr7mSTALbj3uQ9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WqTtWUVFSZDsa3PBmb4qG8-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 01:09:04 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Games]]></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/WqTtWUVFSZDsa3PBmb4qG8-1920-80.jpg">
                                                            <media:credit><![CDATA[Konami]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Pyramid Head standing in an open door while it&#039;s raining. The PC Gamer quiz logo is in the top right.]]></media:description>                                                            <media:text><![CDATA[Pyramid Head standing in an open door while it&#039;s raining. The PC Gamer quiz logo is in the top right.]]></media:text>
                                <media:title type="plain"><![CDATA[Pyramid Head standing in an open door while it&#039;s raining. The PC Gamer quiz logo is in the top right.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WqTtWUVFSZDsa3PBmb4qG8-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>You'd think someone who still screams at the sight of the Tomb Raider T-Rex wouldn't be so into horror games, but I can't help myself; I love 'em. I'm always down for a good inhuman gurgle or unnatural skitter across the floor. Creature with too many eyeballs? Sign me up. Inordinate number of hands? I'm on my way.</p><div  class="fancy-box"><div class="fancy_box-title">More quizzes!</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="XHdkj6AKzQwnn4rGxre4K4" name="logo_quiz" caption="" alt="The PC Gamer Quiz logo in green" src="https://cdn.mos.cms.futurecdn.net/XHdkj6AKzQwnn4rGxre4K4-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">Want to keep testing your knowledge of gaming trivia? We've got loads more <a data-analytics-id="inline-link" href="https://www.pcgamer.com/games/think-you-know-gaming-test-your-knowledge-with-pc-gamers-fiendish-quizzes/" target="_blank">PC Gamer quizzes</a>, on everything from healthbars to weird currencies to absurd patch notes.</p></div></div><p>That enthusiasm for terror is why I have the nervous system of a small woodland creature, but also why I can rattle off a list of favorite ghosts and ghouls like they're important historical figures. It's the perfect special interest for a PC Gamer quiz, so today I'm asking: How many horror games can you identify from a screenshot of one of their resident monstrosities?</p><p><strong>You've got 12 minutes to face your fears and name as many games as you can from a glimpse of their ghosts, ghouls, and other unspeakable horrors.</strong> Let us know how you did in the comments, and then tell us about some of your favorite nightmare encounters. </p><div style="min-height: 640px;">                                <div class="kwizly-quiz kwizly-eP9o0W"></div>                            </div>                            <script src="https://kwizly.com/embed/eP9o0W.js" async></script><div class="product"><a data-dimension112="2997daf2-cdb5-11f1-adb9-b9d567d0ba99" 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="2997daf2-cdb5-11f1-adb9-b9d567d0ba99" 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[ Holy crap, they're making Serious Sam: The Third Encounter ]]></title>
                                                                                                <dc:content><![CDATA[ <p>It took almost 25 years to happen, but <a href="https://store.steampowered.com/app/459920/Serious_Sam_The_Third_Encounter/" target="_blank">Serious Sam: The Third Encounter</a> is finally, actually happening. Croteam and Devolver Digital revealed today that a proper new game in the Serious Sam series is now in the early stages of development.</p><p>Serious Sam: The Third Encounter will actually be the seventh mainline game in the series, thanks to its oddball naming scheme and twisted timeline. Here's how the whole thing breaks down:</p><ul><li><strong>Serious Sam: The First Encounter (2001)</strong></li><li><strong>Serious Sam: The Second Encounter (2002)</strong></li><li><strong>Serious Sam 2 (2005)</strong></li><li><strong>Serious Sam 3: BFE (2011)</strong></li><li><strong>Serious Sam 4 (2020)</strong></li><li><strong>Serious Sam: Siberian Mayhem (2022)</strong></li></ul><p>I won't pretend to understand this messy continuity, except that each game is sort of a chapter in the story of Serious Sam, which honestly isn't so much a 'story' as it is an excuse to shoot friggin' <em>huge </em>numbers of guys and make the occasional phone call to an all-conquering intergalactic menace named Mental. </p><p>That said, Croteam wants everyone to know that The Third Encounter picks up where The Second Encounter left off, so I hope you were paying attention to how it wrapped up 24 years ago: "Not a side story. A true continuation. This time Sam is going to strike Mental's Horde at its heart, and he’s deadly serious about it."</p><p>What matters, though, is that this is seriously Serious Sam: "The only thing standing between you and thousands of enemies is your weapon, and the only thing that matters is who pulls the trigger first." That's what I'm here for, baby.</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/YLaTMaSX4ZE" allowfullscreen></iframe></div></div><p>I can't help wondering if that emphasis on old school Sam doesn't arise at least in part from <a href="https://www.pcgamer.com/games/roguelike/serious-sam-shatterverse-brings-together-25-years-of-sam-in-an-absurd-bloodsoaked-roguelite/" target="_blank">Serious Sam: Shatterverse</a>, the recently-released co-op roguelite shooter developed by Behaviour Interactive. I played some of it in pre-release and quite frankly, it wasn't very good. (Yes, yes, <a href="https://www.pcgamer.com/games/fps/serious-sam-is-being-turned-into-a-run-based-roguelite-multiplayer-shooter-later-this-year-and-seriously-this-one-might-not-suck/" target="_blank">I was wrong</a>. It happens.) Bugs were a serious issue at launch but the underlying gameplay is a bigger problem: levels are small and constrained, enemy numbers are underwhelming, and the weapons, limited by the game's progression system, are just boring.</p><p>Serious Sam 4 didn't really knock my socks off either, to be honest (I never got over them dropping the <a href="https://www.pcgamer.com/serious-sam-4-planet-badass-has-a-teaser-trailer/" target="_blank">Planet Badass</a> subtitle), so I'm really looking forward to getting back to the old ways with a new game—one that's just me, a bunch of stupid guns, and zillions of dudes to point them at, as God intended.</p><p>Ah, but it's going to be a while before I get to pull that Looney Tunes-style cannon out of my pocket and blast giant lizardmen into sticky bits with it: Croteam noted, with emphasis, that Serious Sam: The Third Encounter is in "early development," so don't expect it to show up anytime soon. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="b8a89d62-cdab-11f1-adab-2db903167077" 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="b8a89d62-cdab-11f1-adab-2db903167077" 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/fps/holy-crap-theyre-making-serious-sam-the-third-encounter/</link>
                                                                            <description>
                            <![CDATA[ I've been waiting a quarter-century for this. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DQR9GFgcHnEJms3EAB7pra</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/tkfnHjrqia3q7vTGtgBdz4-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 00:12:03 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[FPS]]></category>
                                                    <category><![CDATA[Games]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/tkfnHjrqia3q7vTGtgBdz4-1920-80.jpg">
                                                            <media:credit><![CDATA[Croteam]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Serious Sam]]></media:description>                                                            <media:text><![CDATA[Serious Sam]]></media:text>
                                <media:title type="plain"><![CDATA[Serious Sam]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/tkfnHjrqia3q7vTGtgBdz4-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It took almost 25 years to happen, but <a href="https://store.steampowered.com/app/459920/Serious_Sam_The_Third_Encounter/" target="_blank">Serious Sam: The Third Encounter</a> is finally, actually happening. Croteam and Devolver Digital revealed today that a proper new game in the Serious Sam series is now in the early stages of development.</p><p>Serious Sam: The Third Encounter will actually be the seventh mainline game in the series, thanks to its oddball naming scheme and twisted timeline. Here's how the whole thing breaks down:</p><ul><li><strong>Serious Sam: The First Encounter (2001)</strong></li><li><strong>Serious Sam: The Second Encounter (2002)</strong></li><li><strong>Serious Sam 2 (2005)</strong></li><li><strong>Serious Sam 3: BFE (2011)</strong></li><li><strong>Serious Sam 4 (2020)</strong></li><li><strong>Serious Sam: Siberian Mayhem (2022)</strong></li></ul><p>I won't pretend to understand this messy continuity, except that each game is sort of a chapter in the story of Serious Sam, which honestly isn't so much a 'story' as it is an excuse to shoot friggin' <em>huge </em>numbers of guys and make the occasional phone call to an all-conquering intergalactic menace named Mental. </p><p>That said, Croteam wants everyone to know that The Third Encounter picks up where The Second Encounter left off, so I hope you were paying attention to how it wrapped up 24 years ago: "Not a side story. A true continuation. This time Sam is going to strike Mental's Horde at its heart, and he’s deadly serious about it."</p><p>What matters, though, is that this is seriously Serious Sam: "The only thing standing between you and thousands of enemies is your weapon, and the only thing that matters is who pulls the trigger first." That's what I'm here for, baby.</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/YLaTMaSX4ZE" allowfullscreen></iframe></div></div><p>I can't help wondering if that emphasis on old school Sam doesn't arise at least in part from <a href="https://www.pcgamer.com/games/roguelike/serious-sam-shatterverse-brings-together-25-years-of-sam-in-an-absurd-bloodsoaked-roguelite/" target="_blank">Serious Sam: Shatterverse</a>, the recently-released co-op roguelite shooter developed by Behaviour Interactive. I played some of it in pre-release and quite frankly, it wasn't very good. (Yes, yes, <a href="https://www.pcgamer.com/games/fps/serious-sam-is-being-turned-into-a-run-based-roguelite-multiplayer-shooter-later-this-year-and-seriously-this-one-might-not-suck/" target="_blank">I was wrong</a>. It happens.) Bugs were a serious issue at launch but the underlying gameplay is a bigger problem: levels are small and constrained, enemy numbers are underwhelming, and the weapons, limited by the game's progression system, are just boring.</p><p>Serious Sam 4 didn't really knock my socks off either, to be honest (I never got over them dropping the <a href="https://www.pcgamer.com/serious-sam-4-planet-badass-has-a-teaser-trailer/" target="_blank">Planet Badass</a> subtitle), so I'm really looking forward to getting back to the old ways with a new game—one that's just me, a bunch of stupid guns, and zillions of dudes to point them at, as God intended.</p><p>Ah, but it's going to be a while before I get to pull that Looney Tunes-style cannon out of my pocket and blast giant lizardmen into sticky bits with it: Croteam noted, with emphasis, that Serious Sam: The Third Encounter is in "early development," so don't expect it to show up anytime soon. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="b8a89d62-cdab-11f1-adab-2db903167077" 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="b8a89d62-cdab-11f1-adab-2db903167077" 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[ Machinarium AI tribute cops a flogging from studio: 'This looks disgusting and has nothing to do with us or our craft' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>On October 20, the CEO for "AI storytelling" company Nura Studios posted a now-deleted tribute to Amanita Design's 2009 cult classic Machinarium. I saw a glimpse of the video while it was still live and it was undeniably AI generated, but that probably goes without saying given its provenance. </p><p>It wasn't good, but then: Amanita Design is one of the most visually distinctive studios in the world. The Czech-based team is also among the most assertive, if its response to Nura Studios' video is anything to go by.</p><p>"The audacity to feed Machinarium assets to AI, make AI slop animations, and call it a love letter…," the studio <a href="https://x.com/Amanita_Design/status/2112517893774840044">tweeted</a> of the AI tribute. "Love letters are supposed to be handwritten. This looks disgusting and has nothing to do with us or our craft."</p><p>Ouch. Under these circumstances a studio would normally politely ignore the clumsy advances of a mob like Nura Studios, whose mission is "to empower creators with a human-led AI platform to bring high-quality stories to life", and whose website looks 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:57.15%;"><img id="fnYAu3QZaHxVQvx45ofhNA" name="Screenshot 2026-10-22 at 9.10.34 am" alt="A screenshot from the Nura Studios website showing a clearly AI-generated elven character" src="https://cdn.mos.cms.futurecdn.net/fnYAu3QZaHxVQvx45ofhNA-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1463" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nura Studios)</span></figcaption></figure><p>So it's gratifying to see Amanita push back. </p><p>Nura Studios CEO Sylvio Drouin did <a href="https://x.com/SylvioD/status/2112941200411967991">show</a> remorse. "We are so sorry for the post we did," Drouin tweeted. "We thought it was an homage to your amazing work and I already deleted the posts, again please accept our sincere apologies."</p><p>Amanita Design has yet to publicly accept the apology. Its next game, <a href="https://store.steampowered.com/app/1619280/Machinarium_2/">Machinarium 2</a>, was announced earlier this month.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/gaming-industry/machinarium-ai-tribute-cops-a-flogging-from-studio-this-looks-disgusting-and-has-nothing-to-do-with-us-or-our-craft/</link>
                                                                            <description>
                            <![CDATA[ Three cheers for the slop intolerant. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">qYsFqma4oEdq33B2qnNdUC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/QovyvgnTDavqyf4mSEdhu6-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 22:26:41 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Industry]]></category>
                                                                                                <author><![CDATA[ shaun.prescott@futurenet.com (Shaun Prescott) ]]></author>                    <dc:creator><![CDATA[ Shaun Prescott ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC-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/QovyvgnTDavqyf4mSEdhu6-1920-80.jpg">
                                                            <media:credit><![CDATA[Amanita Design]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Josef and Berta in Machinarium 2]]></media:description>                                                            <media:text><![CDATA[Josef and Berta in Machinarium 2]]></media:text>
                                <media:title type="plain"><![CDATA[Josef and Berta in Machinarium 2]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/QovyvgnTDavqyf4mSEdhu6-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>On October 20, the CEO for "AI storytelling" company Nura Studios posted a now-deleted tribute to Amanita Design's 2009 cult classic Machinarium. I saw a glimpse of the video while it was still live and it was undeniably AI generated, but that probably goes without saying given its provenance. </p><p>It wasn't good, but then: Amanita Design is one of the most visually distinctive studios in the world. The Czech-based team is also among the most assertive, if its response to Nura Studios' video is anything to go by.</p><p>"The audacity to feed Machinarium assets to AI, make AI slop animations, and call it a love letter…," the studio <a href="https://x.com/Amanita_Design/status/2112517893774840044">tweeted</a> of the AI tribute. "Love letters are supposed to be handwritten. This looks disgusting and has nothing to do with us or our craft."</p><p>Ouch. Under these circumstances a studio would normally politely ignore the clumsy advances of a mob like Nura Studios, whose mission is "to empower creators with a human-led AI platform to bring high-quality stories to life", and whose website looks 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:57.15%;"><img id="fnYAu3QZaHxVQvx45ofhNA" name="Screenshot 2026-10-22 at 9.10.34 am" alt="A screenshot from the Nura Studios website showing a clearly AI-generated elven character" src="https://cdn.mos.cms.futurecdn.net/fnYAu3QZaHxVQvx45ofhNA-1920-80.png" mos="" align="middle" fullscreen="" width="2560" height="1463" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nura Studios)</span></figcaption></figure><p>So it's gratifying to see Amanita push back. </p><p>Nura Studios CEO Sylvio Drouin did <a href="https://x.com/SylvioD/status/2112941200411967991">show</a> remorse. "We are so sorry for the post we did," Drouin tweeted. "We thought it was an homage to your amazing work and I already deleted the posts, again please accept our sincere apologies."</p><p>Amanita Design has yet to publicly accept the apology. Its next game, <a href="https://store.steampowered.com/app/1619280/Machinarium_2/">Machinarium 2</a>, was announced earlier this month.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ CD Projekt boss pays tribute to BioWare for helping bring The Witcher to life 20 years ago: 'BioWare has been a massive part of CDPR history' ]]></title>
                                                                                                <dc:content><![CDATA[ <p>BioWare was a legendary studio, and its shocking <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">closure today</a> has inspired numerous tributes from fans and fellow game developers alike. One of the most notable came from CD Projekt joint CEO Michał Nowakowski, who credited the studio for the big role it played in bringing The Witcher to life.</p><p>It's hard to overstate the impact BioWare had on computer RPGs, from effectively resurrecting the genre in the 1990s with Baldur's Gate through the creation of Neverwinter Nights, Knights of the Old Republic, Dragon Age, and Mass Effect. But less well known, outside of RPG fan circles at least, is that its influence goes far beyond that. CD Projekt, which is arguably the contemporary equivalent of BioWare, literally got started with BioWare games.</p><p>The relationship began when CD Projekt approached BioWare and Interplay about localizing Baldur's Gate for Poland; it got the gig, and the Polish release became a major hit. A subsequent deal to localize Baldur's Gate: Dark Alliance fell apart when Interplay did, but CD Projekt's relationship with BioWare held firm.</p><p>"Bioware has been a massive part of CDPR history," Nowakowski wrote on X. "We befriended them when localizing and selling Baldur’s Gate games in Poland, Czech, and Slovakia. And later they were great help when lending us their engine for Witcher 1, sharing their wisdom and even giving us a spot at their booth at E3."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112961440730448315"><p lang="en" dir="ltr">Bioware has been a massive part of CDPR history. We befriended them when localizing and selling Baldur’s Gate games in Poland, Czech, and Slovakia. And later they were great help when lending us their engine for Witcher 1, sharing their wisdom and even giving us a spot at their booth at E3. I had a pleasure to visit them a few times in Edmonton and also host them in our Warsaw office. Very sad for the people affected, but also sad to see a legendary brand go down. Not a great day in the games industry.<a href="https://twitter.com/cantworkitout/status/2112961440730448315">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>That was the Aurora Engine, BioWare's followup to the Infinity Engine, and was used for Neverwinter Nights, Knights of the Old Republic, Jade Empire, and as Nowakowski said, The Witcher, the RPG that introduced CD Projekt to the world and market the beginning of its journey to game industry powerhouse. In a 2014 interview with <a href="https://www.polygon.com/features/2014/7/16/5884227/cd-projekt-the-witcher-3/" target="_blank">Polygon</a>, CD Projekt co-founder Marcin Iwinski talked about the studio's early days working with BioWare and Interplay, and how it moved quickly to work on The Witcher after that Baldur's Gate: Dark Alliance fell through: "It all started, in a way, with Baldur's Gate."</p><p>And BioWare did in fact share space with CD Projekt at E3, giving the studio a chance to show its new RPG to the world: Ryszard Chojnowski, a translator and localizer whose credits include both The Witcher and Baldur's Gate 2, shared a pair of photos showing CD Projekt's corner of BioWare's booth at E3 2004:</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112988501633356172"><p lang="en" dir="ltr">A tu jeszcze jedno wspomnienie.m z BioWare. Rok 2004 i po raz pierwszy pokazujemy Wiedźmina na ich stoisku. Mamy oddzielone kotarą miejsce z komputerem, na którym działa jako tako demo na silniku Aurora https://t.co/SH8FKQF9zu<a href="https://twitter.com/cantworkitout/status/2112988501633356172">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Nowakowski concluded, "I had a pleasure to visit them a few times in Edmonton and also host them in our Warsaw office. Very sad for the people affected, but also sad to see a legendary brand go down. Not a great day in the games industry."</p><p>Not a great day indeed.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="da9826ac-cd94-11f1-b643-3f6eae1a0e35" 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="da9826ac-cd94-11f1-b643-3f6eae1a0e35" 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/gaming-industry/cd-projekt-boss-pays-tribute-to-bioware-for-helping-bring-the-witcher-to-life-20-years-ago-bioware-has-been-a-massive-part-of-cdpr-history/</link>
                                                                            <description>
                            <![CDATA[ BioWare let CD Projekt use the Aurora Engine for its breakout RPG, and then helped them show it off at E3. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">QUBsYGNXYzqE5rvDr6wDfM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/dDWXVeXZKJVY5ViFMpjQX-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 21:43:06 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Industry]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/dDWXVeXZKJVY5ViFMpjQX-1920-80.jpg">
                                                            <media:credit><![CDATA[BioWare/CD Projekt]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Commander Shepard and Geralt]]></media:description>                                                            <media:text><![CDATA[Commander Shepard and Geralt]]></media:text>
                                <media:title type="plain"><![CDATA[Commander Shepard and Geralt]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/dDWXVeXZKJVY5ViFMpjQX-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>BioWare was a legendary studio, and its shocking <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">closure today</a> has inspired numerous tributes from fans and fellow game developers alike. One of the most notable came from CD Projekt joint CEO Michał Nowakowski, who credited the studio for the big role it played in bringing The Witcher to life.</p><p>It's hard to overstate the impact BioWare had on computer RPGs, from effectively resurrecting the genre in the 1990s with Baldur's Gate through the creation of Neverwinter Nights, Knights of the Old Republic, Dragon Age, and Mass Effect. But less well known, outside of RPG fan circles at least, is that its influence goes far beyond that. CD Projekt, which is arguably the contemporary equivalent of BioWare, literally got started with BioWare games.</p><p>The relationship began when CD Projekt approached BioWare and Interplay about localizing Baldur's Gate for Poland; it got the gig, and the Polish release became a major hit. A subsequent deal to localize Baldur's Gate: Dark Alliance fell apart when Interplay did, but CD Projekt's relationship with BioWare held firm.</p><p>"Bioware has been a massive part of CDPR history," Nowakowski wrote on X. "We befriended them when localizing and selling Baldur’s Gate games in Poland, Czech, and Slovakia. And later they were great help when lending us their engine for Witcher 1, sharing their wisdom and even giving us a spot at their booth at E3."</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112961440730448315"><p lang="en" dir="ltr">Bioware has been a massive part of CDPR history. We befriended them when localizing and selling Baldur’s Gate games in Poland, Czech, and Slovakia. And later they were great help when lending us their engine for Witcher 1, sharing their wisdom and even giving us a spot at their booth at E3. I had a pleasure to visit them a few times in Edmonton and also host them in our Warsaw office. Very sad for the people affected, but also sad to see a legendary brand go down. Not a great day in the games industry.<a href="https://twitter.com/cantworkitout/status/2112961440730448315">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>That was the Aurora Engine, BioWare's followup to the Infinity Engine, and was used for Neverwinter Nights, Knights of the Old Republic, Jade Empire, and as Nowakowski said, The Witcher, the RPG that introduced CD Projekt to the world and market the beginning of its journey to game industry powerhouse. In a 2014 interview with <a href="https://www.polygon.com/features/2014/7/16/5884227/cd-projekt-the-witcher-3/" target="_blank">Polygon</a>, CD Projekt co-founder Marcin Iwinski talked about the studio's early days working with BioWare and Interplay, and how it moved quickly to work on The Witcher after that Baldur's Gate: Dark Alliance fell through: "It all started, in a way, with Baldur's Gate."</p><p>And BioWare did in fact share space with CD Projekt at E3, giving the studio a chance to show its new RPG to the world: Ryszard Chojnowski, a translator and localizer whose credits include both The Witcher and Baldur's Gate 2, shared a pair of photos showing CD Projekt's corner of BioWare's booth at E3 2004:</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112988501633356172"><p lang="en" dir="ltr">A tu jeszcze jedno wspomnienie.m z BioWare. Rok 2004 i po raz pierwszy pokazujemy Wiedźmina na ich stoisku. Mamy oddzielone kotarą miejsce z komputerem, na którym działa jako tako demo na silniku Aurora https://t.co/SH8FKQF9zu<a href="https://twitter.com/cantworkitout/status/2112988501633356172">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Nowakowski concluded, "I had a pleasure to visit them a few times in Edmonton and also host them in our Warsaw office. Very sad for the people affected, but also sad to see a legendary brand go down. Not a great day in the games industry."</p><p>Not a great day indeed.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="da9826ac-cd94-11f1-b643-3f6eae1a0e35" 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="da9826ac-cd94-11f1-b643-3f6eae1a0e35" 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 & 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 & 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[ It gives me great nerdly joy that the Next Fest demo on Steam's 100 most-played games list is a shopkeeping sim ]]></title>
                                                                                                <dc:content><![CDATA[ <p>As the sicko cartoon goes: "YES… HA HA HA… <u><em><strong>YES!</strong></em></u>" That's how I feel while peering at Steam's 100 most-played games list and spotting the Next Fest demo for shopkeeping sim Probably Stolen. </p><p>A singleplayer game about sitting behind a desk and managing inventory doing that well among the other 8,000+ demos that have arrived for Next Fest? So well it's actually charting with 34,230 concurrent players?</p><p><u><em><strong>YES!</strong></em></u></p><p>I played the demo back in September and loved it because it made me feel like I was <a href="https://www.pcgamer.com/games/sim/i-feel-like-im-running-a-corner-store-in-dredd-or-cyberpunk-2077/">running a corner store in Dredd or Cyberpunk 2077</a>. You sit behind the counter of a grimy little shop on a space station and sell everything from food and beverages to weapons and cybernetic implants to a collection of interesting, unusual, and occasionally suspicious customers.</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/8Ef6Pkrsu04" allowfullscreen></iframe></div></div><p>There's a bit of Fallout to it, as well: at night you can go and scavenge scrap and junk from trashpiles in hopes of adding something valuable to your inventory. You can do some crafting, too, smelting metals into ingots once you've got the gear for it, and this is the grim future so you can also start a rat farm and sell off the meat. </p><p>You can shop at other specialty vendors to acquire hard-to-find items to use or sell yourself, and there's even a bit of Papers, Please with the moral dilemmas you'll face: there's an underground movement fighting against the cyber-dystopia you can help or hinder, depending on if you want to turn a revolutionary in for a tidy bounty or keep your mouth shut if you spot someone on the cops' most-wanted list.</p><p>And don't worry, you don't need to be a huge sim geek to enjoy running the shop in Probably Stolen. The sim does go enjoyably deep, though: you can use a magnifying glass (Strange Horticulture style) to examine items for signs of counterfeiting, and even sell those counterfeit goods yourself to rich dummies who wouldn't know a legitimate cyber implant from a fake.</p><p>In other words, I'm pumped to see Probably Stolen getting so many players during Steam Next Fest, and you should <a href="https://store.steampowered.com/app/4348910/Probably_Stolen_Cyberpunk_Shopkeeper_Sim/">become one of those players</a> if you aren't already. There's not much longer to wait for the full game, either: Probably Stolen launches next week on October 28.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/sim/it-gives-me-great-nerdly-joy-that-the-next-fest-demo-on-steams-100-most-played-games-list-is-a-shopkeeping-sim/</link>
                                                                            <description>
                            <![CDATA[ (Don't worry, you don't need to be a sim geek to dig it.) ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">D8D9avr9rsEgMzHFywKsLV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/b6AjivCDopGFgjMiSjx5e7-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 20:06:33 +0000</pubDate>                                                                                                                                <updated>Wed, 21 Oct 2026 20:39:07 +0000</updated>
                                                                                                                                            <category><![CDATA[Sim]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                                                                <author><![CDATA[ clivingston@pcgamer.com (Christopher Livingston) ]]></author>                    <dc:creator><![CDATA[ Christopher Livingston ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/vMPWcamtj9aoVBYFtt2Hp7-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/b6AjivCDopGFgjMiSjx5e7-1920-80.jpg">
                                                            <media:credit><![CDATA[tinyBuild / Global Tetrahedron]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Image from a shopkeeping sim with the Onion sickos guy leering at it through a window saying Yes ha ha ha Yes!]]></media:description>                                                            <media:text><![CDATA[Image from a shopkeeping sim with the Onion sickos guy leering at it through a window saying Yes ha ha ha Yes!]]></media:text>
                                <media:title type="plain"><![CDATA[Image from a shopkeeping sim with the Onion sickos guy leering at it through a window saying Yes ha ha ha Yes!]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/b6AjivCDopGFgjMiSjx5e7-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>As the sicko cartoon goes: "YES… HA HA HA… <u><em><strong>YES!</strong></em></u>" That's how I feel while peering at Steam's 100 most-played games list and spotting the Next Fest demo for shopkeeping sim Probably Stolen. </p><p>A singleplayer game about sitting behind a desk and managing inventory doing that well among the other 8,000+ demos that have arrived for Next Fest? So well it's actually charting with 34,230 concurrent players?</p><p><u><em><strong>YES!</strong></em></u></p><p>I played the demo back in September and loved it because it made me feel like I was <a href="https://www.pcgamer.com/games/sim/i-feel-like-im-running-a-corner-store-in-dredd-or-cyberpunk-2077/">running a corner store in Dredd or Cyberpunk 2077</a>. You sit behind the counter of a grimy little shop on a space station and sell everything from food and beverages to weapons and cybernetic implants to a collection of interesting, unusual, and occasionally suspicious customers.</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/8Ef6Pkrsu04" allowfullscreen></iframe></div></div><p>There's a bit of Fallout to it, as well: at night you can go and scavenge scrap and junk from trashpiles in hopes of adding something valuable to your inventory. You can do some crafting, too, smelting metals into ingots once you've got the gear for it, and this is the grim future so you can also start a rat farm and sell off the meat. </p><p>You can shop at other specialty vendors to acquire hard-to-find items to use or sell yourself, and there's even a bit of Papers, Please with the moral dilemmas you'll face: there's an underground movement fighting against the cyber-dystopia you can help or hinder, depending on if you want to turn a revolutionary in for a tidy bounty or keep your mouth shut if you spot someone on the cops' most-wanted list.</p><p>And don't worry, you don't need to be a huge sim geek to enjoy running the shop in Probably Stolen. The sim does go enjoyably deep, though: you can use a magnifying glass (Strange Horticulture style) to examine items for signs of counterfeiting, and even sell those counterfeit goods yourself to rich dummies who wouldn't know a legitimate cyber implant from a fake.</p><p>In other words, I'm pumped to see Probably Stolen getting so many players during Steam Next Fest, and you should <a href="https://store.steampowered.com/app/4348910/Probably_Stolen_Cyberpunk_Shopkeeper_Sim/">become one of those players</a> if you aren't already. There's not much longer to wait for the full game, either: Probably Stolen launches next week on October 28.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Everyone gets a free ticket to World of Warcraft: Forever today as Blizzard stress tests the servers ahead of launch day ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In anticipation of the full launch of World of Warcraft: Forever next month, Blizzard is throwing the gates wide open on the throwback MMO to stress test the servers.</p><p>Anyone with a World of Warcraft account will be able to play the 'WoW: Forever - Stress Test" client in the Battle.net launcher later today. You don't need an active subscription, nor do you need to have purchased any of the WoW: Forever special editions. All you need is some patience for what could be a bumpy few hours as people pile in.</p><p>The regular beta servers will be offline until the stress test is over, which means anyone who can't go that long without a hit of WoW: Forever will likely show up. I wouldn't be surprised if some Blizzard folks drop in with some surprises of their own, like spawning world bosses or something in the last hour or so (this happened during a recent PvP tournament).</p><p>Everyone will start fresh on the stress test server, so you won't have time to do much but the first couple of leveling zones. You <em>will </em>get a taste of what to expect on launch day: Crowds of players wandering around like ants, and quest enemies dying before you can even click on them. Get ready to fight for your XP.</p><p>Here are all the times for the WoW: Forever stress test:</p><ul><li><strong>West Coast US:</strong> 2 pm - 6 pm PDT</li><li><strong>East Coast US:</strong> 5 pm - 9 pm EDT</li><li><strong>UK:</strong> 6 pm - 2 am BST</li><li><strong>Europe:</strong> 7 pm - 3 am CEST</li><li><strong>Australia:</strong> 8 am - 12 pm AEDT</li><li><strong>New Zealand:</strong> 10 am - 2 pm NZDT</li></ul><p>Once everything wraps up, Blizzard is going to flip the switch back on for the regular beta servers until Friday.</p><p>I'm crossing my fingers that this stress test actually helps with stability on launch day. There will almost certainly be long queue times, but having to start and stop as servers go haywire will ruin any chance of actually enjoying the game that day. We already witnessed this with <a href="https://www.pcgamer.com/games/world-of-warcraft/world-of-warcraft-forever-players-are-reliving-2004-with-hour-long-queue-times-to-get-into-the-highly-anticipated-beta/">the launch of the beta</a>, and that was only the people who paid for the game. On November 4, when WoW: Forever properly goes live, anyone out there with a subscription will be lining up.</p><div class="product"><a data-dimension112="9fdf6cd8-cd89-11f1-ba37-cf631d274b4b" 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="9fdf6cd8-cd89-11f1-ba37-cf631d274b4b" 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/world-of-warcraft/everyone-gets-a-free-ticket-to-world-of-warcraft-forever-today-as-blizzard-stress-tests-the-servers-ahead-of-launch-day/</link>
                                                                            <description>
                            <![CDATA[ Get a taste of what it's like to compete with hundreds of other players to finish a quest. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rNtk5McJ4acXvUVLTRURTW</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/F2Vr74L9EDyrQyczqYRoie-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 19:58:36 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[World of Warcraft]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[MMO]]></category>
                                                                                                                    <dc:creator><![CDATA[ Tyler Colp ]]></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/png" url="https://cdn.mos.cms.futurecdn.net/F2Vr74L9EDyrQyczqYRoie-1920-80.png">
                                                            <media:credit><![CDATA[Blizzard]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[WoW Forever trailer image of blue elf lady with gold eyes]]></media:description>                                                            <media:text><![CDATA[WoW Forever trailer image of blue elf lady with gold eyes]]></media:text>
                                <media:title type="plain"><![CDATA[WoW Forever trailer image of blue elf lady with gold eyes]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/F2Vr74L9EDyrQyczqYRoie-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In anticipation of the full launch of World of Warcraft: Forever next month, Blizzard is throwing the gates wide open on the throwback MMO to stress test the servers.</p><p>Anyone with a World of Warcraft account will be able to play the 'WoW: Forever - Stress Test" client in the Battle.net launcher later today. You don't need an active subscription, nor do you need to have purchased any of the WoW: Forever special editions. All you need is some patience for what could be a bumpy few hours as people pile in.</p><p>The regular beta servers will be offline until the stress test is over, which means anyone who can't go that long without a hit of WoW: Forever will likely show up. I wouldn't be surprised if some Blizzard folks drop in with some surprises of their own, like spawning world bosses or something in the last hour or so (this happened during a recent PvP tournament).</p><p>Everyone will start fresh on the stress test server, so you won't have time to do much but the first couple of leveling zones. You <em>will </em>get a taste of what to expect on launch day: Crowds of players wandering around like ants, and quest enemies dying before you can even click on them. Get ready to fight for your XP.</p><p>Here are all the times for the WoW: Forever stress test:</p><ul><li><strong>West Coast US:</strong> 2 pm - 6 pm PDT</li><li><strong>East Coast US:</strong> 5 pm - 9 pm EDT</li><li><strong>UK:</strong> 6 pm - 2 am BST</li><li><strong>Europe:</strong> 7 pm - 3 am CEST</li><li><strong>Australia:</strong> 8 am - 12 pm AEDT</li><li><strong>New Zealand:</strong> 10 am - 2 pm NZDT</li></ul><p>Once everything wraps up, Blizzard is going to flip the switch back on for the regular beta servers until Friday.</p><p>I'm crossing my fingers that this stress test actually helps with stability on launch day. There will almost certainly be long queue times, but having to start and stop as servers go haywire will ruin any chance of actually enjoying the game that day. We already witnessed this with <a href="https://www.pcgamer.com/games/world-of-warcraft/world-of-warcraft-forever-players-are-reliving-2004-with-hour-long-queue-times-to-get-into-the-highly-anticipated-beta/">the launch of the beta</a>, and that was only the people who paid for the game. On November 4, when WoW: Forever properly goes live, anyone out there with a subscription will be lining up.</p><div class="product"><a data-dimension112="9fdf6cd8-cd89-11f1-ba37-cf631d274b4b" 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="9fdf6cd8-cd89-11f1-ba37-cf631d274b4b" 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[ With BioWare dead, EA lays out its 'next chapter,' and it's pretty much as predicted: Guns and football are fine, and everything else is under the microscope ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Following the shocking <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">closure of legendary RPG studio BioWare</a>, Electronic Arts has posted a lengthy missive laying out its plans for "<a href="https://www.ea.com/news/building-eas-next-chapter" target="_blank">EA's next chapter</a>," which sounds very much like cuts almost across the board.</p><p>I'll spare you the corporate gobbledygook about <em>challenging assumptions, confronting assumptions</em>, and <em>imagining new possibilities</em>, and cut straight to the chase: The plan is to do fewer things with fewer people focusing on its biggest franchises. What that works out to practically:</p><ul><li><strong>Shooters</strong>: More <a href="https://www.pcgamer.com/battlefield-6/" target="_blank">Battlefield</a>, more <a href="https://www.pcgamer.com/apex-legends/" target="_blank">Apex Legends</a>, and "bringing together our Respawn and DICE studios to collaborate on a future project."</li><li><strong>Action-adventure</strong>: <a href="https://www.pcgamer.com/games/action/well-that-didnt-go-as-planned-says-ea-as-it-footage-of-its-iron-man-game-leaks-online/" target="_blank">Marvel's Iron Man</a> and the third <a href="https://www.pcgamer.com/games/action/ea-says-its-got-a-3rd-and-final-star-wars-jedi-game-cooking-in-speech-to-imperial-senate-of-investorsoh-and-its-made-dollar5-billion-off-the-first-2-already/" target="_blank">Star Wars Jedi</a> game are still happening, but "beyond that, we will concentrate our efforts on fewer simultaneous, large-scale projects."</li><li><strong>EA Sports</strong>: Full commitment to <a href="https://www.pcgamer.com/gaming-industry/ea-sports-fc-27-gets-a-pegi-16-rating-in-europe-because-of-loot-boxes/" target="_blank">EA Sports FC</a>, plus a new American football game creatively codenamed "Project Gridiron," and Fight Night is coming back.</li><li><strong>Lifestyle</strong>: <a href="https://www.pcgamer.com/games/life-sim/the-sims/" target="_blank">The Sims</a> will continue but "Project Lotus," originally presumed to be a sort of precursor to The Sims 5, has been paused. The Skate dev team, meanwhile, is being cut to "build a healthier and more sustainable business."</li></ul><p>Of course, there's also a gross little nod to BioWare and the end of Mass Effect: <em>"As we focus on these larger opportunities, we've had a small team at BioWare working on early-development for Mass Effect. We've made the decision not to move forward with this development, which means we’re closing the studio and our Edmonton workspace. BioWare is a legendary studio that helped define the role-playing genre, and we do not take this decision lightly."</em></p><p>The message doesn't specifically reference the layoff of around 400 employees at Electronic Arts reported by <a href="https://www.bloomberg.com/news/articles/2026-10-21/electronic-arts-to-cut-400-jobs-shut-down-bioware?accessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb3VyY2UiOiJTdWJzY3JpYmVyR2lmdGVkQXJ0aWNsZSIsImlhdCI6MTc5MjYwMjI4MCwiZXhwIjoxNzkzMjA3MDgwLCJhcnRpY2xlSWQiOiJUTjlPUkZLSVVQU08wMCIsImJjb25uZWN0SWQiOiJCMUVBQkI5NjQ2QUM0REZFQTJBRkI4MjI1MzgyQTJFQSJ9.BPLdBqixyN47DHZvtrfHyRsF_Np3UKIKzGi_WqMA-I4&leadSource=article-gifting" target="_blank">Bloomberg</a>, but it does say some of the changes announced today "are difficult, especially for the people and teams across the company who are directly affected," which is the sort of mealy-mouthed guffola put out by C-suites when they don't want to say with clarity that they just hacked out a significant chunk of their workforce.</p><p>One other thing I find interesting about this announcement: It's attributed to Cam and David, who I assume are <a href="https://www.pcgamer.com/gaming-industry/the-guy-in-charge-of-ea-sports-is-now-in-charge-of-ea-everything/" target="_blank">Cam Weber and David Tinson</a>, recently installed near the top of EA as president and chief studios officer, and president and chief operating officer. The name of Andrew Wilson, Electronic Arts CEO, is rather notably absent. Make of that what you will—but for the record, EA confirmed that Wilson is still the chief executive.</p><p>The post is short on detail, but the broad gist of the whole thing—cuts and concentration—aren't entirely surprising given the company's recent acquisition by Saudi Arabia, which saddled it with <a href="https://www.pcgamer.com/gaming-industry/eas-usd55-billion-acquisition-is-the-biggest-leveraged-buyout-in-private-equity-history-heres-why-it-has-everyone-terrified/" target="_blank">$20 billion in debt</a> and owners not known for their <a href="https://www.pcgamer.com/gaming-industry/ea-employees-brace-for-the-worst-under-saudi-ownership-hard-to-feel-good-about-being-bought-out-by-a-regime-thats-very-much-at-odds-with-progressive-society/" target="_blank">liberal mindset</a>. Plans for <a href="https://www.pcgamer.com/gaming-industry/saudi-acquired-ea-is-reportedly-planning-to-make-massive-cuts-after-taking-usd18-billion-of-debt-and-we-all-know-what-that-means/" target="_blank">massive cuts</a> were reported in early August, and a possible merger with Saudi-owned Savvy Games Group has also <a href="https://www.pcgamer.com/gaming-industry/saudi-arabia-reportedly-looking-at-merging-electronic-arts-with-savvy-games-group/" target="_blank">been rumored</a>. But former BioWare lead writer Patrick Weekes made the call more than a year ago, when the EA acquisition first happened, predicting that <a href="https://www.pcgamer.com/gaming-industry/former-bioware-lead-writer-reads-the-runes-on-ea-saudi-deal-and-speculates-that-guns-and-football-are-in-gay-stuff-is-out-and-the-venerable-rpg-studio-may-be-for-the-chop/" target="_blank">"guns and football" games would be fine</a>, but "gay stuff" would be out.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="adc3d132-cd7e-11f1-8e65-4ba2f6bc06e3" 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="adc3d132-cd7e-11f1-8e65-4ba2f6bc06e3" 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/gaming-industry/with-bioware-dead-ea-lays-out-its-next-chapter-and-its-pretty-much-as-predicted-guns-and-football-are-fine-and-everything-else-is-under-the-microscope/</link>
                                                                            <description>
                            <![CDATA[ The changes predicted when Saudi Arabia's PIF bought Electronic Arts are coming true. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">29nBUutEDzpiNeMAZey5Gh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/o9tP4wjvnzfaShCeWxMMZH-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 18:41:11 +0000</pubDate>                                                                                                                                <updated>Wed, 21 Oct 2026 20:39:07 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Industry]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/o9tP4wjvnzfaShCeWxMMZH-1920-80.jpg">
                                                            <media:credit><![CDATA[Patrick T. Fallon/Bloomberg via Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Andrew Wilson, chief executive officer of Electronic Arts Inc. (EA), speaks during the company&#039;s EA Play event ahead of the E3 Electronic Entertainment Expo in Los Angeles, California, U.S., on Saturday, June 9, 2018. EA announced that it is introducing a higher-end version of its subscription game-playing service that will include new titles such as Battlefield V and the Madden NFL 19 football game. Photographer: Patrick T. Fallon/Bloomberg via Getty Images]]></media:description>                                                            <media:text><![CDATA[Andrew Wilson, chief executive officer of Electronic Arts Inc. (EA), speaks during the company&#039;s EA Play event ahead of the E3 Electronic Entertainment Expo in Los Angeles, California, U.S., on Saturday, June 9, 2018. EA announced that it is introducing a higher-end version of its subscription game-playing service that will include new titles such as Battlefield V and the Madden NFL 19 football game. Photographer: Patrick T. Fallon/Bloomberg via Getty Images]]></media:text>
                                <media:title type="plain"><![CDATA[Andrew Wilson, chief executive officer of Electronic Arts Inc. (EA), speaks during the company&#039;s EA Play event ahead of the E3 Electronic Entertainment Expo in Los Angeles, California, U.S., on Saturday, June 9, 2018. EA announced that it is introducing a higher-end version of its subscription game-playing service that will include new titles such as Battlefield V and the Madden NFL 19 football game. Photographer: Patrick T. Fallon/Bloomberg via Getty Images]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/o9tP4wjvnzfaShCeWxMMZH-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Following the shocking <a href="https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/" target="_blank">closure of legendary RPG studio BioWare</a>, Electronic Arts has posted a lengthy missive laying out its plans for "<a href="https://www.ea.com/news/building-eas-next-chapter" target="_blank">EA's next chapter</a>," which sounds very much like cuts almost across the board.</p><p>I'll spare you the corporate gobbledygook about <em>challenging assumptions, confronting assumptions</em>, and <em>imagining new possibilities</em>, and cut straight to the chase: The plan is to do fewer things with fewer people focusing on its biggest franchises. What that works out to practically:</p><ul><li><strong>Shooters</strong>: More <a href="https://www.pcgamer.com/battlefield-6/" target="_blank">Battlefield</a>, more <a href="https://www.pcgamer.com/apex-legends/" target="_blank">Apex Legends</a>, and "bringing together our Respawn and DICE studios to collaborate on a future project."</li><li><strong>Action-adventure</strong>: <a href="https://www.pcgamer.com/games/action/well-that-didnt-go-as-planned-says-ea-as-it-footage-of-its-iron-man-game-leaks-online/" target="_blank">Marvel's Iron Man</a> and the third <a href="https://www.pcgamer.com/games/action/ea-says-its-got-a-3rd-and-final-star-wars-jedi-game-cooking-in-speech-to-imperial-senate-of-investorsoh-and-its-made-dollar5-billion-off-the-first-2-already/" target="_blank">Star Wars Jedi</a> game are still happening, but "beyond that, we will concentrate our efforts on fewer simultaneous, large-scale projects."</li><li><strong>EA Sports</strong>: Full commitment to <a href="https://www.pcgamer.com/gaming-industry/ea-sports-fc-27-gets-a-pegi-16-rating-in-europe-because-of-loot-boxes/" target="_blank">EA Sports FC</a>, plus a new American football game creatively codenamed "Project Gridiron," and Fight Night is coming back.</li><li><strong>Lifestyle</strong>: <a href="https://www.pcgamer.com/games/life-sim/the-sims/" target="_blank">The Sims</a> will continue but "Project Lotus," originally presumed to be a sort of precursor to The Sims 5, has been paused. The Skate dev team, meanwhile, is being cut to "build a healthier and more sustainable business."</li></ul><p>Of course, there's also a gross little nod to BioWare and the end of Mass Effect: <em>"As we focus on these larger opportunities, we've had a small team at BioWare working on early-development for Mass Effect. We've made the decision not to move forward with this development, which means we’re closing the studio and our Edmonton workspace. BioWare is a legendary studio that helped define the role-playing genre, and we do not take this decision lightly."</em></p><p>The message doesn't specifically reference the layoff of around 400 employees at Electronic Arts reported by <a href="https://www.bloomberg.com/news/articles/2026-10-21/electronic-arts-to-cut-400-jobs-shut-down-bioware?accessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb3VyY2UiOiJTdWJzY3JpYmVyR2lmdGVkQXJ0aWNsZSIsImlhdCI6MTc5MjYwMjI4MCwiZXhwIjoxNzkzMjA3MDgwLCJhcnRpY2xlSWQiOiJUTjlPUkZLSVVQU08wMCIsImJjb25uZWN0SWQiOiJCMUVBQkI5NjQ2QUM0REZFQTJBRkI4MjI1MzgyQTJFQSJ9.BPLdBqixyN47DHZvtrfHyRsF_Np3UKIKzGi_WqMA-I4&leadSource=article-gifting" target="_blank">Bloomberg</a>, but it does say some of the changes announced today "are difficult, especially for the people and teams across the company who are directly affected," which is the sort of mealy-mouthed guffola put out by C-suites when they don't want to say with clarity that they just hacked out a significant chunk of their workforce.</p><p>One other thing I find interesting about this announcement: It's attributed to Cam and David, who I assume are <a href="https://www.pcgamer.com/gaming-industry/the-guy-in-charge-of-ea-sports-is-now-in-charge-of-ea-everything/" target="_blank">Cam Weber and David Tinson</a>, recently installed near the top of EA as president and chief studios officer, and president and chief operating officer. The name of Andrew Wilson, Electronic Arts CEO, is rather notably absent. Make of that what you will—but for the record, EA confirmed that Wilson is still the chief executive.</p><p>The post is short on detail, but the broad gist of the whole thing—cuts and concentration—aren't entirely surprising given the company's recent acquisition by Saudi Arabia, which saddled it with <a href="https://www.pcgamer.com/gaming-industry/eas-usd55-billion-acquisition-is-the-biggest-leveraged-buyout-in-private-equity-history-heres-why-it-has-everyone-terrified/" target="_blank">$20 billion in debt</a> and owners not known for their <a href="https://www.pcgamer.com/gaming-industry/ea-employees-brace-for-the-worst-under-saudi-ownership-hard-to-feel-good-about-being-bought-out-by-a-regime-thats-very-much-at-odds-with-progressive-society/" target="_blank">liberal mindset</a>. Plans for <a href="https://www.pcgamer.com/gaming-industry/saudi-acquired-ea-is-reportedly-planning-to-make-massive-cuts-after-taking-usd18-billion-of-debt-and-we-all-know-what-that-means/" target="_blank">massive cuts</a> were reported in early August, and a possible merger with Saudi-owned Savvy Games Group has also <a href="https://www.pcgamer.com/gaming-industry/saudi-arabia-reportedly-looking-at-merging-electronic-arts-with-savvy-games-group/" target="_blank">been rumored</a>. But former BioWare lead writer Patrick Weekes made the call more than a year ago, when the EA acquisition first happened, predicting that <a href="https://www.pcgamer.com/gaming-industry/former-bioware-lead-writer-reads-the-runes-on-ea-saudi-deal-and-speculates-that-guns-and-football-are-in-gay-stuff-is-out-and-the-venerable-rpg-studio-may-be-for-the-chop/" target="_blank">"guns and football" games would be fine</a>, but "gay stuff" would be out.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product"><a data-dimension112="adc3d132-cd7e-11f1-8e65-4ba2f6bc06e3" 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="adc3d132-cd7e-11f1-8e65-4ba2f6bc06e3" 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[ RIP BioWare: EA has shut down the legendary RPG developer ]]></title>
                                                                                                <dc:content><![CDATA[ <p>BioWare is closing, and the next Mass Effect game is cancelled. </p><p>The legendary RPG studio was founded in 1995 by doctors Ray Muzyka, Greg Zeschuk and Augustine Yip, and was responsible for a number of classics, including the <a href="https://www.pcgamer.com/the-history-of-baldurs-gate/">original Baldur's Gate games</a>, Neverwinter Nights, Jade Empire, Star Wars: Knights of the Old Republic, and more recently, the Dragon Age and Mass Effect series.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112953618093535510"><p lang="en" dir="ltr">https://t.co/TicSujMWps<a href="https://twitter.com/cantworkitout/status/2112953618093535510">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"What generations of BioWare built together is something to celebrate and remember," said the studio in a statement published on social media. "These games became so much more because you played them, debated your choices, fell in love with the characters, and made these worlds your own."</p><p>After establishing itself in the PC gaming canon in the '90s and early 2000s, BioWare was acquired by Electronic Arts in 2007, and became a mainstream RPG powerhouse with the release of the Mass Effect trilogy and first Dragon Age games. </p><p>A 2017 follow-up to the Mass Effect trilogy, Andromeda, wasn't as well-received as the originals, and the studio's 2019 detour into live service shooters, Anthem, failed to catch on. Anthem is widely considered one of the great management blunders of the live service gold rush, and its servers were finally <a href="https://www.pcgamer.com/games/third-person-shooter/anthem-is-finally-officially-dead/" target="_blank">shut down for good</a> earlier this year. </p><p>BioWare's most recent game, 2024's <a href="https://www.pcgamer.com/games/dragon-age/dragon-age-the-veilguard-review/">Dragon Age: The Veilguard</a>, also "underperformed," according to EA.</p><p>Last year, it was announced that EA would be acquired by a consortium made up of Saudi Arabia's Public Investment Fund and investment firms Silver Lake and Affinity Partners, the latter of which is owned by Jared Kushner, son-in-law of US president Donald Trump. The acquisition was <a href="https://www.pcgamer.com/gaming-industry/the-deal-is-done-electronic-arts-is-now-officially-owned-by-saudi-arabia/">finalized this August.</a></p><p>When the deal was announced, some employees and outside observers were not confident that BioWare would have a future following the acquisition, with one employee <a href="https://www.pcgamer.com/gaming-industry/biowares-just-waiting-for-the-axe-to-fall-after-eas-usd55-billion-buyout-say-anonymous-staff/">saying last year</a> that it felt like "a matter of time" before the axe fell.</p><p>The next Mass Effect game was first teased in 2020, and was expected to bring back characters from the original trilogy. In 2025, BioWare said that "a core team at BioWare" was working on the game after layoffs at the studio.</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/Lg-Ctg6k_Ao" allowfullscreen></iframe></div></div><p>Alongside the BioWare closure, EA is laying off around 400 people across the company, <a href="https://www.bloomberg.com/news/articles/2026-10-21/electronic-arts-to-cut-400-jobs-shut-down-bioware" target="_blank">according to Bloomberg</a>.</p><p>In <a href="https://www.ea.com/news/building-eas-next-chapter" target="_blank">a letter</a> shared with employees and published on EA's website, the company said that "saying no to some things we're passionate about allows us to focus our teams and resources so we give our biggest opportunities everything they need to succeed."</p><p>The letter was signed by EA chief studios officer Cam Weber, who <a href="https://www.pcgamer.com/gaming-industry/the-guy-in-charge-of-ea-sports-is-now-in-charge-of-ea-everything/">until recently</a> headed up EA Sports, and EA COO David Tinson.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/gaming-industry/rip-bioware-ea-has-shut-down-the-legendary-rpg-developer/</link>
                                                                            <description>
                            <![CDATA[ Bloomberg also reports that EA is cutting "around 400 jobs" across the company. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">cJ8QUferpDCqNycB6cLNUQ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/vj466ettjps3vrm8mMDeQe-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 17:16:53 +0000</pubDate>                                                                                                                                <updated>Wed, 21 Oct 2026 22:37:04 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Industry]]></category>
                                                                                                <author><![CDATA[ tyler@pcgamer.com (Tyler Wilde) ]]></author>                    <dc:creator><![CDATA[ Tyler Wilde ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/rGvfSUkSBEPzBAVS3jRh9E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Tyler grew up in Silicon Valley during the &#039;80s and &#039;90s, playing games like Zork and Arkanoid on early PCs. He was later captivated by Myst, SimCity, Civilization, Command &amp; Conquer, all the shooters they call &quot;boomer shooters&quot; now, and PS1 classic Bushido Blade (that&#039;s right: he had Bleem!). Tyler joined PC Gamer in 2011, and today he&#039;s focused on the site&#039;s news coverage. His hobbies include amateur boxing and adding to his 1,200-plus hours in Rocket League.&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/vj466ettjps3vrm8mMDeQe-1920-80.jpg">
                                                            <media:credit><![CDATA[BioWare]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Characters from classic BioWare games]]></media:description>                                                            <media:text><![CDATA[Characters from classic BioWare games]]></media:text>
                                <media:title type="plain"><![CDATA[Characters from classic BioWare games]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/vj466ettjps3vrm8mMDeQe-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>BioWare is closing, and the next Mass Effect game is cancelled. </p><p>The legendary RPG studio was founded in 1995 by doctors Ray Muzyka, Greg Zeschuk and Augustine Yip, and was responsible for a number of classics, including the <a href="https://www.pcgamer.com/the-history-of-baldurs-gate/">original Baldur's Gate games</a>, Neverwinter Nights, Jade Empire, Star Wars: Knights of the Old Republic, and more recently, the Dragon Age and Mass Effect series.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112953618093535510"><p lang="en" dir="ltr">https://t.co/TicSujMWps<a href="https://twitter.com/cantworkitout/status/2112953618093535510">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>"What generations of BioWare built together is something to celebrate and remember," said the studio in a statement published on social media. "These games became so much more because you played them, debated your choices, fell in love with the characters, and made these worlds your own."</p><p>After establishing itself in the PC gaming canon in the '90s and early 2000s, BioWare was acquired by Electronic Arts in 2007, and became a mainstream RPG powerhouse with the release of the Mass Effect trilogy and first Dragon Age games. </p><p>A 2017 follow-up to the Mass Effect trilogy, Andromeda, wasn't as well-received as the originals, and the studio's 2019 detour into live service shooters, Anthem, failed to catch on. Anthem is widely considered one of the great management blunders of the live service gold rush, and its servers were finally <a href="https://www.pcgamer.com/games/third-person-shooter/anthem-is-finally-officially-dead/" target="_blank">shut down for good</a> earlier this year. </p><p>BioWare's most recent game, 2024's <a href="https://www.pcgamer.com/games/dragon-age/dragon-age-the-veilguard-review/">Dragon Age: The Veilguard</a>, also "underperformed," according to EA.</p><p>Last year, it was announced that EA would be acquired by a consortium made up of Saudi Arabia's Public Investment Fund and investment firms Silver Lake and Affinity Partners, the latter of which is owned by Jared Kushner, son-in-law of US president Donald Trump. The acquisition was <a href="https://www.pcgamer.com/gaming-industry/the-deal-is-done-electronic-arts-is-now-officially-owned-by-saudi-arabia/">finalized this August.</a></p><p>When the deal was announced, some employees and outside observers were not confident that BioWare would have a future following the acquisition, with one employee <a href="https://www.pcgamer.com/gaming-industry/biowares-just-waiting-for-the-axe-to-fall-after-eas-usd55-billion-buyout-say-anonymous-staff/">saying last year</a> that it felt like "a matter of time" before the axe fell.</p><p>The next Mass Effect game was first teased in 2020, and was expected to bring back characters from the original trilogy. In 2025, BioWare said that "a core team at BioWare" was working on the game after layoffs at the studio.</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/Lg-Ctg6k_Ao" allowfullscreen></iframe></div></div><p>Alongside the BioWare closure, EA is laying off around 400 people across the company, <a href="https://www.bloomberg.com/news/articles/2026-10-21/electronic-arts-to-cut-400-jobs-shut-down-bioware" target="_blank">according to Bloomberg</a>.</p><p>In <a href="https://www.ea.com/news/building-eas-next-chapter" target="_blank">a letter</a> shared with employees and published on EA's website, the company said that "saying no to some things we're passionate about allows us to focus our teams and resources so we give our biggest opportunities everything they need to succeed."</p><p>The letter was signed by EA chief studios officer Cam Weber, who <a href="https://www.pcgamer.com/gaming-industry/the-guy-in-charge-of-ea-sports-is-now-in-charge-of-ea-everything/">until recently</a> headed up EA Sports, and EA COO David Tinson.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Nearly $1 million worth of PSA-graded Pokémon and other trading cards have been stolen right outside PSA's headquarters ]]></title>
                                                                                                <dc:content><![CDATA[ <p>I don't send my Pokémon cards off to PSA to get graded. I'm too emotionally attached to my cards to ever sell them, so paying the hefty fee for grading doesn't really make sense for me, plus I'm a naturally anxious person. So when I heard the latest news of almost $1 million worth of TCG being stolen right outside PSA's headquarters my position was cemented. </p><p>Police in Santa Ana, California have confirmed the theft of an estimated $963,000 worth of TCG after several card collectors were notified that a truck carrying their collections had been burglarised in mid-October. </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="YfbrLzatbVa8eehzF9cDDN" name="Prismatic Evolutions Pokemon TCG" alt="Prismatic Evolutions Pokemon TCG" src="https://cdn.mos.cms.futurecdn.net/YfbrLzatbVa8eehzF9cDDN-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Pokémon Company)</span></figcaption></figure><p>"The pallets contained various trading cards, including, but not limited to, sports cards and Pokémon cards," the SAPD explained to <a href="https://www.nytimes.com/athletic/7705932/2026/10/19/psa-cards-fedex-robbery-sports-pokemon/?unlocked_article_code=1.KFE.mOWy.Q9hTXlXivilL&source=athletic_user_shared_gift_article_copylink&smid=url-share-ta" target="_blank">The Athletic</a>. "The exact value of the stolen items has not yet been determined, pending further investigation. The investigation remains ongoing. Anyone with information regarding this incident is encouraged to contact the Santa Ana Police Department." </p><p>According to reports, a FedEx driver left their truck unattended outside of the Santa Ana office of PSA, a collectibles grading company, for around 60 to 90 minutes. This left enough time for the thieves to break off the lock to the truck and make away with all the packages. </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="Q9gwogWHYq9tmbEBJiL6fN" name="Prismatic Evolutions Pokemon TCG" alt="Prismatic Evolutions Pokemon TCG" src="https://cdn.mos.cms.futurecdn.net/Q9gwogWHYq9tmbEBJiL6fN-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Pokémon Company)</span></figcaption></figure><p>FedEx released a <a href="https://abc7.com/post/1-million-worth-rare-pokemon-sports-cards-stolen-fedex-truck-orange-county-heist-police-say/19960858/" target="_blank">statement to ABC7</a> reassuring customers that "the security of our customers' shipments is a top priority, and we are working with local law enforcement in their investigation." </p><p>PSA has also confirmed in a <a href="https://www.ign.com/articles/police-confirm-nearly-1-million-worth-of-trading-cards-stolen-in-psa-fedex-truck-heist" target="_blank">statement to IGN</a> that it has promised to refund customers affected. It will hand them out "based on fair market value up to the maximum insured value" of the cards and has deactivated the certificates of all the stolen goods. </p><p>This is another sad incident in an increasingly long line of TCG thievery. Just a few months ago two men <a href="https://www.pcgamer.com/games/card-games/two-men-plead-guilty-to-stealing-over-gbp71-000-worth-of-pokemon-tcg-in-a-string-of-burglaries-targeting-small-card-stores/">pleaded guilty to stealing over £71,000</a> worth of Pokémon TCG, and TCG shops have seen an increase in burglaries over the past few years as card prices go up. With no sign of it getting better I feel as if the only fix is for The Pokémon Company to flood the market, devaluing cards, and thereby removing the incentive to resell. Because let's be honest, a piece of cardboard shouldn't be selling for $70,000. </p><div class="product"><a data-dimension112="20cfd6b4-cd6e-11f1-953f-afcf67dc9621" 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="20cfd6b4-cd6e-11f1-953f-afcf67dc9621" 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/gaming-industry/nearly-usd1-million-worth-of-psa-graded-pokemon-and-other-tcg-have-been-stolen-right-outside-psas-headquarters/</link>
                                                                            <description>
                            <![CDATA[ Refunds will be issued to affected parties. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rAQn6VMRyVZmbRNJeQsuq7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/T2hE4VLdRKyxeomMjRTG4Z-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 16:41:42 +0000</pubDate>                                                                                                                                <updated>Wed, 21 Oct 2026 20:40:21 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Industry]]></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/png" url="https://cdn.mos.cms.futurecdn.net/T2hE4VLdRKyxeomMjRTG4Z-1920-80.png">
                                                            <media:credit><![CDATA[The Pokémon Company]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Pokémon TCG Mega Dream expansion]]></media:description>                                                            <media:text><![CDATA[Pokémon TCG Mega Dream expansion]]></media:text>
                                <media:title type="plain"><![CDATA[Pokémon TCG Mega Dream expansion]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/T2hE4VLdRKyxeomMjRTG4Z-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I don't send my Pokémon cards off to PSA to get graded. I'm too emotionally attached to my cards to ever sell them, so paying the hefty fee for grading doesn't really make sense for me, plus I'm a naturally anxious person. So when I heard the latest news of almost $1 million worth of TCG being stolen right outside PSA's headquarters my position was cemented. </p><p>Police in Santa Ana, California have confirmed the theft of an estimated $963,000 worth of TCG after several card collectors were notified that a truck carrying their collections had been burglarised in mid-October. </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="YfbrLzatbVa8eehzF9cDDN" name="Prismatic Evolutions Pokemon TCG" alt="Prismatic Evolutions Pokemon TCG" src="https://cdn.mos.cms.futurecdn.net/YfbrLzatbVa8eehzF9cDDN-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Pokémon Company)</span></figcaption></figure><p>"The pallets contained various trading cards, including, but not limited to, sports cards and Pokémon cards," the SAPD explained to <a href="https://www.nytimes.com/athletic/7705932/2026/10/19/psa-cards-fedex-robbery-sports-pokemon/?unlocked_article_code=1.KFE.mOWy.Q9hTXlXivilL&source=athletic_user_shared_gift_article_copylink&smid=url-share-ta" target="_blank">The Athletic</a>. "The exact value of the stolen items has not yet been determined, pending further investigation. The investigation remains ongoing. Anyone with information regarding this incident is encouraged to contact the Santa Ana Police Department." </p><p>According to reports, a FedEx driver left their truck unattended outside of the Santa Ana office of PSA, a collectibles grading company, for around 60 to 90 minutes. This left enough time for the thieves to break off the lock to the truck and make away with all the packages. </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="Q9gwogWHYq9tmbEBJiL6fN" name="Prismatic Evolutions Pokemon TCG" alt="Prismatic Evolutions Pokemon TCG" src="https://cdn.mos.cms.futurecdn.net/Q9gwogWHYq9tmbEBJiL6fN-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Pokémon Company)</span></figcaption></figure><p>FedEx released a <a href="https://abc7.com/post/1-million-worth-rare-pokemon-sports-cards-stolen-fedex-truck-orange-county-heist-police-say/19960858/" target="_blank">statement to ABC7</a> reassuring customers that "the security of our customers' shipments is a top priority, and we are working with local law enforcement in their investigation." </p><p>PSA has also confirmed in a <a href="https://www.ign.com/articles/police-confirm-nearly-1-million-worth-of-trading-cards-stolen-in-psa-fedex-truck-heist" target="_blank">statement to IGN</a> that it has promised to refund customers affected. It will hand them out "based on fair market value up to the maximum insured value" of the cards and has deactivated the certificates of all the stolen goods. </p><p>This is another sad incident in an increasingly long line of TCG thievery. Just a few months ago two men <a href="https://www.pcgamer.com/games/card-games/two-men-plead-guilty-to-stealing-over-gbp71-000-worth-of-pokemon-tcg-in-a-string-of-burglaries-targeting-small-card-stores/">pleaded guilty to stealing over £71,000</a> worth of Pokémon TCG, and TCG shops have seen an increase in burglaries over the past few years as card prices go up. With no sign of it getting better I feel as if the only fix is for The Pokémon Company to flood the market, devaluing cards, and thereby removing the incentive to resell. Because let's be honest, a piece of cardboard shouldn't be selling for $70,000. </p><div class="product"><a data-dimension112="20cfd6b4-cd6e-11f1-953f-afcf67dc9621" 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="20cfd6b4-cd6e-11f1-953f-afcf67dc9621" 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[ GOG taken offline for maintenance in wake of PHP security emergency ]]></title>
                                                                                                <dc:content><![CDATA[ <blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:pd6p72ucaxbmnnpu2ltjonrp/app.bsky.feed.post/3myfu5fpgn32k" data-bluesky-cid="bafyreifuy5r6t4wqdgorrhivbdiw5lmyyj4ztmyg57s5e3gnk2ilsxkhxm" cite="https://bsky.app/profile/gog.com/post/3myfu5fpgn32k"><p lang="en">We're back online. Thanks for your patience! Your DRM-free library is right where you left it 💜 </p>— @gog.com (<a href="https://bsky.app/profile/did:plc:pd6p72ucaxbmnnpu2ltjonrp?ref_src=embed">@gog.com.bsky.social</a>) <a href="https://bsky.app/profile/gog.com/post/3myfu5fpgn32k">2026-10-21T19:28:09.139Z</a></blockquote><p><strong>Original story:</strong></p><p>The reveal of <a href="https://www.pcgamer.com/software/security/we-expect-mass-attacks-to-start-within-15-minutes-of-the-release-web-admins-braced-for-emergency-php-updates-to-plug-leaked-high-severity-holes/">critical vulnerabilities</a> affecting the PHP scripting language used in web development have led a number of major websites and services to go offline today as a precaution while they apply security fixes.</p><p>DRM-free game store GOG announced at 8 am Pacific that its site and launcher, GOG Galaxy, would be offline for "a couple of hours" for maintenance. The company did not say the cause, but it is not hard to speculate.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112924299212226619"><p lang="en" dir="ltr">We’re temporarily taking GOG offline for maintenance for a couple of hours. GOG GALAXY will also be offline during this time. We apologize for the inconvenience and appreciate your patience!<a href="https://twitter.com/cantworkitout/status/2112924299212226619">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Numerous other outages are being reported this morning as security teams scramble to protect their websites and services. The government of Finland took down websites as a precaution, for instance, and (perhaps less importantly) we're hearing from players that Final Fantasy 14 login servers are down.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/software/security/gog-taken-offline-for-maintenance-in-wake-of-php-security-emergency/</link>
                                                                            <description>
                            <![CDATA[ GOG and GOG Galaxy were taken offline following news of critical web vulnerabilities. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">bpGUaCoYuyrhZGS55DHLWN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/M94SPZyBgjgWeUgfavg5b4-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 16:20:08 +0000</pubDate>                                                                                                                                <updated>Wed, 21 Oct 2026 19:29:12 +0000</updated>
                                                                                                                                            <category><![CDATA[Security]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                                                                <author><![CDATA[ tyler@pcgamer.com (Tyler Wilde) ]]></author>                    <dc:creator><![CDATA[ Tyler Wilde ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/rGvfSUkSBEPzBAVS3jRh9E-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Tyler grew up in Silicon Valley during the &#039;80s and &#039;90s, playing games like Zork and Arkanoid on early PCs. He was later captivated by Myst, SimCity, Civilization, Command &amp; Conquer, all the shooters they call &quot;boomer shooters&quot; now, and PS1 classic Bushido Blade (that&#039;s right: he had Bleem!). Tyler joined PC Gamer in 2011, and today he&#039;s focused on the site&#039;s news coverage. His hobbies include amateur boxing and adding to his 1,200-plus hours in Rocket League.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/M94SPZyBgjgWeUgfavg5b4-1920-80.png">
                                                            <media:credit><![CDATA[GOG]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[GOG maintenance notice ]]></media:description>                                                            <media:text><![CDATA[GOG maintenance notice ]]></media:text>
                                <media:title type="plain"><![CDATA[GOG maintenance notice ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/M94SPZyBgjgWeUgfavg5b4-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:pd6p72ucaxbmnnpu2ltjonrp/app.bsky.feed.post/3myfu5fpgn32k" data-bluesky-cid="bafyreifuy5r6t4wqdgorrhivbdiw5lmyyj4ztmyg57s5e3gnk2ilsxkhxm" cite="https://bsky.app/profile/gog.com/post/3myfu5fpgn32k"><p lang="en">We're back online. Thanks for your patience! Your DRM-free library is right where you left it 💜 </p>— @gog.com (<a href="https://bsky.app/profile/did:plc:pd6p72ucaxbmnnpu2ltjonrp?ref_src=embed">@gog.com.bsky.social</a>) <a href="https://bsky.app/profile/gog.com/post/3myfu5fpgn32k">2026-10-21T19:28:09.139Z</a></blockquote><p><strong>Original story:</strong></p><p>The reveal of <a href="https://www.pcgamer.com/software/security/we-expect-mass-attacks-to-start-within-15-minutes-of-the-release-web-admins-braced-for-emergency-php-updates-to-plug-leaked-high-severity-holes/">critical vulnerabilities</a> affecting the PHP scripting language used in web development have led a number of major websites and services to go offline today as a precaution while they apply security fixes.</p><p>DRM-free game store GOG announced at 8 am Pacific that its site and launcher, GOG Galaxy, would be offline for "a couple of hours" for maintenance. The company did not say the cause, but it is not hard to speculate.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112924299212226619"><p lang="en" dir="ltr">We’re temporarily taking GOG offline for maintenance for a couple of hours. GOG GALAXY will also be offline during this time. We apologize for the inconvenience and appreciate your patience!<a href="https://twitter.com/cantworkitout/status/2112924299212226619">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Numerous other outages are being reported this morning as security teams scramble to protect their websites and services. The government of Finland took down websites as a precaution, for instance, and (perhaps less importantly) we're hearing from players that Final Fantasy 14 login servers are down.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ US government leaks the best GTA 6 promo yet: Pißwasser is real ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Now this is a marketing campaign I can get behind: It looks very much like Rockstar is teaming up with Florida-based brewery Tripping Animals Brewing to bring a trio of <a href="https://www.pcgamer.com/grand-theft-auto-6/" target="_blank">Grand Theft Auto 6</a>-themed beers into the real world. That's right—<em>Pißwasser </em>is finally real.</p><p>The discovery was made by Grand Theft Auto site <a href="https://www.gtavice.net/news/exclusive-gta-6-beer-labels-for-piwasser-patriot-and-no-mames-vice-city-discovered-in-official-us-database" target="_blank">GTAVice.net</a>, which found labels for Pißwasser, Patriot, and No Mames Vice City—a re-branding of Tripping Animals' No Mames Lager—in the US Alcohol and Tobacco Tax and Trade Bureau <a href="https://www.ttbonline.gov/colasonline/publicSearchColasBasic.do" target="_blank">database</a>. </p><p>Sure enough, they're in there, although I had to use <a href="https://hopgrail.com/brewery/tripping-animals-brewing" target="_blank">Hopgrail</a> to dig up the labels: The No Mames Vice City label was approved on October 9, while the Pißwasser and Patriot labels followed on October 15.</p><p>So what's in the cans?</p><h2 id="no-mames-vice-city">NO MAMES VICE CITY</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:1420px;"><p class="vanilla-image-block" style="padding-top:57.54%;"><img id="i5n2Xb7YXeckQ9ahaKb29P" name="gta beer no mames" alt="No Mames Vice City beer label" src="https://cdn.mos.cms.futurecdn.net/i5n2Xb7YXeckQ9ahaKb29P-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1420" height="817" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/i5n2Xb7YXeckQ9ahaKb29P-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: Rockstar/Tripping Animals Brewing)</span></figcaption></figure><h4 id="6-abv-american-lager">6% ABV American lager</h4><p>This looks to be a re-brand of Tripping Animals' No Mames beer, so here's what the brewery's <a href="https://trippinganimals.com/beer/no-mames/" target="_blank">website</a> has to say about it: "Bright gold and effortlessly crisp, No Mames blends flaked corn and traditional malts for a smooth, dry lager with subtle floral hops and a hint of sweetness. Clean, crushable, and brewed for easy drinking, anytime."</p><p>Patriot and Pißwasser are not yet on the Tripping Animals site, so for those we will go with what we can pull from the TTB database, which frankly isn't much:</p><h2 id="patriot-beer">PATRIOT BEER</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:1420px;"><p class="vanilla-image-block" style="padding-top:45.35%;"><img id="BmP3T33T5BJMPnDLnuoj5P" name="gta beer patriot" alt="Patriot Beer label" src="https://cdn.mos.cms.futurecdn.net/BmP3T33T5BJMPnDLnuoj5P-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1420" height="644" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/BmP3T33T5BJMPnDLnuoj5P-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: Rockstar/Tripping Animals Brewing)</span></figcaption></figure><h2 id="4-2-abv-american-lager">4.2% ABV American lager</h2><p><em>A very</em> American lager, the <a href="https://gta.fandom.com/wiki/Patriot_Beer" target="_blank">GTA Fandom Wiki</a> says Patriot Beer is possibly inspired by Sam Adams, although it notes that the color scheme of the label is more akin to PBR. Personally I think it's more likely a prescient take on <a href="https://www.therealamerican.com/">Real American Beer</a>, which is basically a GTA-style parody beer, except it's real. Real <em>American</em>.</p><h2 id="pisswasser">PIßWASSER</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:1420px;"><p class="vanilla-image-block" style="padding-top:45.35%;"><img id="pDrMBtgVB8bB9ewUF53LCP" name="gta beer pisswasser" alt="Pisswasser beer label" src="https://cdn.mos.cms.futurecdn.net/pDrMBtgVB8bB9ewUF53LCP-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1420" height="644" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/pDrMBtgVB8bB9ewUF53LCP-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: Rockstar/Tripping Animals Brewing)</span></figcaption></figure><h2 id="4-2-abv-lager">4.2% ABV lager</h2><p>The king of GTA beers, Pißwasser is of course a pilsner, it says so right on the label. Now, your local beer nerd is probably leaning forward in his chair to tell you that pilsner is a type of lager, but my local beer nerd, who is me, says that yes, that is <em>technically </em>correct, but it's important to be specific about these things. Otherwise you get people telling you that Rolling Rock and Warsteiner are basically the same, and next thing you know you're in a fistfight with Bill from your grade 10 geography class and then somebody calls the cops and you end up running through people's back yards and tripping over shit and ripping your pants, and nobody gets <em>any </em>beer. Who needs that kind of chaos?</p><p>Anyway, none of these brews are confirmed as actually happening at this point, although given their appearances in the TTB database, not to mention Rockstar's largesse with its rental of basically <a href="https://www.pcgamer.com/games/grand-theft-auto/with-grand-theft-auto-6-poised-to-take-over-the-world-i-reached-out-to-jack-thompson-and-it-did-not-go-well/" target="_blank">the entire state of Florida</a> to promote GTA 6, it's all but certainly real. It's also an obvious fit, particularly given the meta-popularity of GTA's in-game beer brands. </p><p>The bigger question for me is, <em>how do I get some?</em> Promo beers tend not to be great, but No Mames holds a very respectable 85 rating on <a href="https://www.beeradvocate.com/beer/profile/55035/439815/" target="_blank">Beeradvocate</a>, and Tripping Animals seems quite well regarded overall. And let's not forget the all-important bottom line here: it's <em>beer</em>.</p><p>Sadly for me (and anyone else not living in Florida who'd like to score a few cans) Tripping Animals distribution appears quite limited: The brewery's <a href="https://find.trippinganimals.com/" target="_blank">website</a> indicates its beers are only available in and around—you guessed it—Miami. Ah well.</p><p>Grand Theft Auto 6 is set to launch on consoles on November 19. I would expect the GTA beers to show up by then too. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product star-deal"><a data-dimension112="d5707e8a-cd68-11f1-817a-23215af2c457" data-action="Star Deal Block" data-label="GTA 6 guide" data-dimension48="GTA 6 guide" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1238px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ZF5ZJsyvbhJRVSDmd9H3jA" name="gta 6 cover art square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZF5ZJsyvbhJRVSDmd9H3jA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1238" height="1238" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><div><span class="product__star-deal-label">Grand Theft Auto 6</span><p><a href="https://www.pcgamer.com/grand-theft-auto/gta-6-guide/" data-dimension112="d5707e8a-cd68-11f1-817a-23215af2c457" data-action="Star Deal Block" data-label="GTA 6 guide" data-dimension48="GTA 6 guide" data-dimension25=""><strong>GTA 6 guide</strong></a>: Everything we know<br><strong></strong><a href="https://www.pcgamer.com/gta-6-cars-list/" target="_blank"><strong>GTA 6 cars</strong></a>: The garage lineup<br><strong></strong><a href="https://www.pcgamer.com/games/action/grand-theft-auto/gta6-characters/"><strong>GTA 6 characters</strong></a>: Your anti-hero cast<br><strong></strong><a href="https://www.pcgamer.com/games/grand-theft-auto/gta6-map/" target="_blank"><strong>GTA 6 map</strong>:</a> Confirmed Vice City locales<br><a href="https://www.pcgamer.com/games/grand-theft-auto/gta-6-pc-release-date/"><strong>GTA 6 PC release</strong></a>: When's it going to happen?</p></div></div> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/games/grand-theft-auto/us-government-leaks-the-best-gta-6-promo-yet-pisswasser-is-real/</link>
                                                                            <description>
                            <![CDATA[ Rockstar appears to be teaming up with a Florida brewery to bring two of GTA's most famous beer brands to life. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rxpt9xPyn8Pw8Ad5rb7GUG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/oz85eeLcE2EoKHoTkF7c5a-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 16:12:33 +0000</pubDate>                                                                                                                                <updated>Wed, 21 Oct 2026 19:42:08 +0000</updated>
                                                                                                                                            <category><![CDATA[Grand Theft Auto]]></category>
                                                    <category><![CDATA[Games]]></category>
                                                    <category><![CDATA[Action]]></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/hkTeZoDeGrvhQZtrNGPkbB-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/oz85eeLcE2EoKHoTkF7c5a-1920-80.jpg">
                                                            <media:credit><![CDATA[Rockstar/Tripping Animals Brewing]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Drunken chihuahua wearing pink sunglasses]]></media:description>                                                            <media:text><![CDATA[Drunken chihuahua wearing pink sunglasses]]></media:text>
                                <media:title type="plain"><![CDATA[Drunken chihuahua wearing pink sunglasses]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/oz85eeLcE2EoKHoTkF7c5a-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Now this is a marketing campaign I can get behind: It looks very much like Rockstar is teaming up with Florida-based brewery Tripping Animals Brewing to bring a trio of <a href="https://www.pcgamer.com/grand-theft-auto-6/" target="_blank">Grand Theft Auto 6</a>-themed beers into the real world. That's right—<em>Pißwasser </em>is finally real.</p><p>The discovery was made by Grand Theft Auto site <a href="https://www.gtavice.net/news/exclusive-gta-6-beer-labels-for-piwasser-patriot-and-no-mames-vice-city-discovered-in-official-us-database" target="_blank">GTAVice.net</a>, which found labels for Pißwasser, Patriot, and No Mames Vice City—a re-branding of Tripping Animals' No Mames Lager—in the US Alcohol and Tobacco Tax and Trade Bureau <a href="https://www.ttbonline.gov/colasonline/publicSearchColasBasic.do" target="_blank">database</a>. </p><p>Sure enough, they're in there, although I had to use <a href="https://hopgrail.com/brewery/tripping-animals-brewing" target="_blank">Hopgrail</a> to dig up the labels: The No Mames Vice City label was approved on October 9, while the Pißwasser and Patriot labels followed on October 15.</p><p>So what's in the cans?</p><h2 id="no-mames-vice-city">NO MAMES VICE CITY</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:1420px;"><p class="vanilla-image-block" style="padding-top:57.54%;"><img id="i5n2Xb7YXeckQ9ahaKb29P" name="gta beer no mames" alt="No Mames Vice City beer label" src="https://cdn.mos.cms.futurecdn.net/i5n2Xb7YXeckQ9ahaKb29P-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1420" height="817" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/i5n2Xb7YXeckQ9ahaKb29P-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: Rockstar/Tripping Animals Brewing)</span></figcaption></figure><h4 id="6-abv-american-lager">6% ABV American lager</h4><p>This looks to be a re-brand of Tripping Animals' No Mames beer, so here's what the brewery's <a href="https://trippinganimals.com/beer/no-mames/" target="_blank">website</a> has to say about it: "Bright gold and effortlessly crisp, No Mames blends flaked corn and traditional malts for a smooth, dry lager with subtle floral hops and a hint of sweetness. Clean, crushable, and brewed for easy drinking, anytime."</p><p>Patriot and Pißwasser are not yet on the Tripping Animals site, so for those we will go with what we can pull from the TTB database, which frankly isn't much:</p><h2 id="patriot-beer">PATRIOT BEER</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:1420px;"><p class="vanilla-image-block" style="padding-top:45.35%;"><img id="BmP3T33T5BJMPnDLnuoj5P" name="gta beer patriot" alt="Patriot Beer label" src="https://cdn.mos.cms.futurecdn.net/BmP3T33T5BJMPnDLnuoj5P-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1420" height="644" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/BmP3T33T5BJMPnDLnuoj5P-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: Rockstar/Tripping Animals Brewing)</span></figcaption></figure><h2 id="4-2-abv-american-lager">4.2% ABV American lager</h2><p><em>A very</em> American lager, the <a href="https://gta.fandom.com/wiki/Patriot_Beer" target="_blank">GTA Fandom Wiki</a> says Patriot Beer is possibly inspired by Sam Adams, although it notes that the color scheme of the label is more akin to PBR. Personally I think it's more likely a prescient take on <a href="https://www.therealamerican.com/">Real American Beer</a>, which is basically a GTA-style parody beer, except it's real. Real <em>American</em>.</p><h2 id="pisswasser">PIßWASSER</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:1420px;"><p class="vanilla-image-block" style="padding-top:45.35%;"><img id="pDrMBtgVB8bB9ewUF53LCP" name="gta beer pisswasser" alt="Pisswasser beer label" src="https://cdn.mos.cms.futurecdn.net/pDrMBtgVB8bB9ewUF53LCP-1920-80.jpg" mos="" align="middle" fullscreen="1" width="1420" height="644" attribution="" endorsement="" class="inline expandable"><a href='https://cdn.mos.cms.futurecdn.net/pDrMBtgVB8bB9ewUF53LCP-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: Rockstar/Tripping Animals Brewing)</span></figcaption></figure><h2 id="4-2-abv-lager">4.2% ABV lager</h2><p>The king of GTA beers, Pißwasser is of course a pilsner, it says so right on the label. Now, your local beer nerd is probably leaning forward in his chair to tell you that pilsner is a type of lager, but my local beer nerd, who is me, says that yes, that is <em>technically </em>correct, but it's important to be specific about these things. Otherwise you get people telling you that Rolling Rock and Warsteiner are basically the same, and next thing you know you're in a fistfight with Bill from your grade 10 geography class and then somebody calls the cops and you end up running through people's back yards and tripping over shit and ripping your pants, and nobody gets <em>any </em>beer. Who needs that kind of chaos?</p><p>Anyway, none of these brews are confirmed as actually happening at this point, although given their appearances in the TTB database, not to mention Rockstar's largesse with its rental of basically <a href="https://www.pcgamer.com/games/grand-theft-auto/with-grand-theft-auto-6-poised-to-take-over-the-world-i-reached-out-to-jack-thompson-and-it-did-not-go-well/" target="_blank">the entire state of Florida</a> to promote GTA 6, it's all but certainly real. It's also an obvious fit, particularly given the meta-popularity of GTA's in-game beer brands. </p><p>The bigger question for me is, <em>how do I get some?</em> Promo beers tend not to be great, but No Mames holds a very respectable 85 rating on <a href="https://www.beeradvocate.com/beer/profile/55035/439815/" target="_blank">Beeradvocate</a>, and Tripping Animals seems quite well regarded overall. And let's not forget the all-important bottom line here: it's <em>beer</em>.</p><p>Sadly for me (and anyone else not living in Florida who'd like to score a few cans) Tripping Animals distribution appears quite limited: The brewery's <a href="https://find.trippinganimals.com/" target="_blank">website</a> indicates its beers are only available in and around—you guessed it—Miami. Ah well.</p><p>Grand Theft Auto 6 is set to launch on consoles on November 19. I would expect the GTA beers to show up by then too. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ON92mW"></div>                            </div>                            <script src="https://kwizly.com/embed/ON92mW.js" async></script><div class="product star-deal"><a data-dimension112="d5707e8a-cd68-11f1-817a-23215af2c457" data-action="Star Deal Block" data-label="GTA 6 guide" data-dimension48="GTA 6 guide" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1238px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ZF5ZJsyvbhJRVSDmd9H3jA" name="gta 6 cover art square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZF5ZJsyvbhJRVSDmd9H3jA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1238" height="1238" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><div><span class="product__star-deal-label">Grand Theft Auto 6</span><p><a href="https://www.pcgamer.com/grand-theft-auto/gta-6-guide/" data-dimension112="d5707e8a-cd68-11f1-817a-23215af2c457" data-action="Star Deal Block" data-label="GTA 6 guide" data-dimension48="GTA 6 guide" data-dimension25=""><strong>GTA 6 guide</strong></a>: Everything we know<br><strong></strong><a href="https://www.pcgamer.com/gta-6-cars-list/" target="_blank"><strong>GTA 6 cars</strong></a>: The garage lineup<br><strong></strong><a href="https://www.pcgamer.com/games/action/grand-theft-auto/gta6-characters/"><strong>GTA 6 characters</strong></a>: Your anti-hero cast<br><strong></strong><a href="https://www.pcgamer.com/games/grand-theft-auto/gta6-map/" target="_blank"><strong>GTA 6 map</strong>:</a> Confirmed Vice City locales<br><a href="https://www.pcgamer.com/games/grand-theft-auto/gta-6-pc-release-date/"><strong>GTA 6 PC release</strong></a>: When's it going to happen?</p></div></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Black Friday gaming mouse deals ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Black Friday is on its way and, while I wouldn't expect to see graphics cards dropping below MSRP or memory suddenly becoming a sensibly priced, I am feeling rather more positive about the posibility of genuine Black Friday gaming mouse deals cropping up. We've had a slew of new mice over the past year, and that means last years still-excellent rodents may well be on sale for a song over the November period. Here's hoping.</p><p><strong>👉</strong><a href="https://www.pcgamer.com/black-friday-pc-gaming-deals/" target="_blank"><strong>All our favorite Black Friday PC gaming deals</strong></a><strong>👈</strong></p><p>We're PC gamers, so the <a href="https://www.pcgamer.com/the-best-gaming-mouse/" target="_blank">best gaming mice</a> are our bread and butter. We spend a lot of time through the year testing the latest mice and the latest tech, so check out our guide to get an idea of what might be the right one for you. In the meantime, though, there are lots of tempting options below.</p><h2 id="where-to-find-the-best-black-friday-gaming-mice-deals">Where to find the best Black Friday gaming mice deals</h2><ul><li><strong>Amazon: </strong><a href="https://www.amazon.com/s?k=gaming+mice&crid=2J6G5VPFKFEZ6&sprefix=gaming+mice%2Caps%2C210&ref=nb_sb_noss_1" target="_blank"><strong>All the gaming mice you could ever want</strong></a></li><li><strong>Walmart:</strong> <a href="https://www.walmart.com/search?q=gaming+mice" target="_blank">Speedy gaming mice, superb savings</a></li><li><strong>Best Buy:</strong> <a href="https://www.bestbuy.com/site/searchpage.jsp?id=pcat17071&st=gaming%20mice" target="_blank">Big name meeces with big value discounts</a></li><li><strong>Newegg:</strong> <a href="https://www.newegg.com/Gaming-Mouse/SubCategory/ID-3527?cm_sp=Cat_Keyboard-Mice_3-_-VisNav-_-Gaming-Mice" target="_blank">Big savings on big brand gaming mice</a></li></ul><div class="vizualizer-embed"><iframe   srcdoc="<!DOCTYPE html><html><head>  <style>    #widget-1bec2uw *:not(svg):not(path) { box-sizing: border-box; }    #widget-1bec2uw h1, #widget-1bec2uw p, #widget-1bec2uw h3 { margin: 0; line-height: normal; }    body { margin: 0; background: transparent; font-family: ui-sans-serif, system-ui, sans-serif; }  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {  *, ::before, ::after, ::backdrop { --tw-translate-x: 0; --tw-translate-y: 0; --tw-translate-z: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scale-z: 1; --tw-rotate-x: initial; --tw-rotate-y: initial; --tw-rotate-z: initial; --tw-skew-x: initial; --tw-skew-y: initial; --tw-scroll-snap-strictness: proximity; --tw-space-y-reverse: 0; --tw-space-x-reverse: 0; --tw-divide-y-reverse: 0; --tw-border-style: solid; --tw-gradient-position: initial; --tw-gradient-from: #0000; --tw-gradient-via: #0000; --tw-gradient-to: #0000; --tw-gradient-stops: initial; --tw-gradient-via-stops: initial; --tw-gradient-from-position: 0%; --tw-gradient-via-position: 50%; --tw-gradient-to-position: 100%; --tw-leading: initial; --tw-font-weight: initial; --tw-tracking: initial; --tw-ordinal: initial; --tw-slashed-zero: initial; --tw-numeric-figure: initial; --tw-numeric-spacing: initial; --tw-numeric-fraction: initial; --tw-shadow: 0 0 #0000; --tw-shadow-color: initial; --tw-shadow-alpha: 100%; --tw-inset-shadow: 0 0 #0000; --tw-inset-shadow-color: initial; --tw-inset-shadow-alpha: 100%; --tw-ring-color: initial; --tw-ring-shadow: 0 0 #0000; --tw-inset-ring-color: initial; --tw-inset-ring-shadow: 0 0 #0000; --tw-ring-inset: initial; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-outline-style: solid; --tw-blur: initial; --tw-brightness: initial; --tw-contrast: initial; --tw-grayscale: initial; --tw-hue-rotate: initial; --tw-invert: initial; --tw-opacity: initial; --tw-saturate: initial; --tw-sepia: initial; --tw-drop-shadow: initial; --tw-drop-shadow-color: initial; --tw-drop-shadow-alpha: 100%; --tw-drop-shadow-size: initial; --tw-backdrop-blur: initial; --tw-backdrop-brightness: initial; --tw-backdrop-contrast: initial; --tw-backdrop-grayscale: initial; --tw-backdrop-hue-rotate: initial; --tw-backdrop-invert: initial; --tw-backdrop-opacity: initial; --tw-backdrop-saturate: initial; --tw-backdrop-sepia: initial; --tw-duration: initial; --tw-ease: initial; }}#widget-1bec2uw, :host { --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-50: oklch(97.1% .013 17.38); --color-red-100: oklch(93.6% .032 17.717); --color-red-400: oklch(70.4% .191 22.216); --color-red-500: oklch(63.7% .237 25.331); --color-red-600: oklch(57.7% .245 27.325); --color-red-700: oklch(50.5% .213 27.518); --color-orange-50: oklch(98% .016 73.684); --color-orange-600: oklch(64.6% .222 41.116); --color-orange-700: oklch(55.3% .195 38.402); --color-amber-50: oklch(98.7% .022 95.277); --color-amber-600: oklch(66.6% .179 58.318); --color-amber-700: oklch(55.5% .163 48.998); --color-yellow-50: oklch(98.7% .026 102.212); --color-yellow-300: oklch(90.5% .182 98.111); --color-yellow-500: oklch(79.5% .184 86.047); --color-yellow-600: oklch(68.1% .162 75.834); --color-yellow-700: oklch(55.4% .135 66.442); --color-yellow-800: oklch(47.6% .114 61.907); --color-lime-700: oklch(53.2% .157 131.589); --color-green-50: oklch(98.2% .018 155.826); --color-green-100: oklch(96.2% .044 156.743); --color-green-400: oklch(79.2% .209 151.711); --color-green-500: oklch(72.3% .219 149.579); --color-green-600: oklch(62.7% .194 149.214); --color-green-700: oklch(52.7% .154 150.069); --color-teal-50: oklch(98.4% .014 180.72); --color-teal-600: oklch(60% .118 184.704); --color-teal-700: oklch(51.1% .096 186.391); --color-blue-50: oklch(97% .014 254.604); --color-blue-500: oklch(62.3% .214 259.815); --color-blue-600: oklch(54.6% .245 262.881); --color-blue-700: oklch(48.8% .243 264.376); --color-indigo-50: oklch(96.2% .018 272.314); --color-indigo-600: oklch(51.1% .262 276.966); --color-purple-50: oklch(97.7% .014 308.299); --color-purple-400: oklch(71.4% .203 305.504); --color-purple-600: oklch(55.8% .288 302.321); --color-purple-700: oklch(49.6% .265 301.924); --color-pink-600: oklch(59.2% .249 .584); --color-rose-50: oklch(96.9% .015 12.422); --color-rose-100: oklch(94.1% .03 12.58); --color-rose-500: oklch(64.5% .246 16.439); --color-rose-600: oklch(58.6% .253 17.585); --color-slate-50: oklch(98.4% .003 247.858); --color-slate-400: oklch(70.4% .04 256.788); --color-slate-500: oklch(55.4% .046 257.417); --color-slate-600: oklch(44.6% .043 257.281); --color-slate-900: oklch(20.8% .042 265.755); --color-gray-50: oklch(98.5% .002 247.839); --color-gray-100: oklch(96.7% .003 264.542); --color-gray-200: oklch(92.8% .006 264.531); --color-gray-300: oklch(87.2% .01 258.338); --color-gray-400: oklch(70.7% .022 261.325); --color-gray-500: oklch(55.1% .027 264.364); --color-gray-600: oklch(44.6% .03 256.802); --color-gray-700: oklch(37.3% .034 259.733); --color-gray-800: oklch(27.8% .033 256.848); --color-gray-900: oklch(21% .034 264.665); --color-gray-950: oklch(13% .028 261.692); --color-zinc-300: oklch(87.1% .006 286.286); --color-zinc-800: oklch(27.4% .006 286.033); --color-zinc-900: oklch(21% .006 285.885); --color-neutral-50: oklch(98.5% 0 0); --color-neutral-100: oklch(97% 0 0); --color-neutral-200: oklch(92.2% 0 0); --color-neutral-300: oklch(87% 0 0); --color-neutral-400: oklch(70.8% 0 0); --color-neutral-500: oklch(55.6% 0 0); --color-neutral-600: oklch(43.9% 0 0); --color-neutral-700: oklch(37.1% 0 0); --color-neutral-800: oklch(26.9% 0 0); --color-neutral-900: oklch(20.5% 0 0); --color-neutral-950: oklch(14.5% 0 0); --color-black: #000; --color-white: #fff; --spacing: 4px; --breakpoint-xl: 1280px; --container-sm: 384px; --container-md: 448px; --container-lg: 512px; --container-xl: 576px; --container-2xl: 672px; --container-4xl: 896px; --container-6xl: 1152px; --container-7xl: 1280px; --text-xs: 12px; --text-xs--line-height: calc(1 / .75); --text-sm: 14px; --text-sm--line-height: calc(1.25 / .875); --text-base: 16px; --text-base--line-height: 1.5; --text-lg: 18px; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 20px; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 24px; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 30px; --text-3xl--line-height: 1.2; --text-4xl: 36px; --text-4xl--line-height: calc(2.5 / 2.25); --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; --font-weight-black: 900; --tracking-tight: -.025em; --tracking-normal: 0em; --tracking-wide: .025em; --tracking-wider: .05em; --tracking-widest: .1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --radius-xs: 2px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 12px; --radius-2xl: 16px; --radius-3xl: 24px; --radius-4xl: 32px; --ease-in: cubic-bezier(.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, .2, 1); --ease-in-out: cubic-bezier(.4, 0, .2, 1); --animate-spin: spin 1s linear infinite; --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; --blur-sm: 8px; --default-transition-duration: .15s; --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1); --default-font-family: var(--font-sans); --default-mono-font-family: var(--font-mono); }*, ::after, ::before, ::backdrop { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }::file-selector-button { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }html, :host { text-size-adjust: 100%; tab-size: 4; line-height: 1.5; font-family: var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); font-feature-settings: var(--default-font-feature-settings,normal); font-variation-settings: var(--default-font-variation-settings,normal); -webkit-tap-highlight-color: transparent; }hr { height: 0px; color: inherit; border-top-width: 1px; }abbr:where([title]) { text-decoration: underline dotted; }h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }a { color: inherit; text-decoration: inherit; }b, strong { font-weight: bolder; }code, kbd, samp, pre { font-family: var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); font-feature-settings: var(--default-mono-font-feature-settings,normal); font-variation-settings: var(--default-mono-font-variation-settings,normal); font-size: 1em; }small { font-size: 80%; }sub, sup { vertical-align: baseline; font-size: 75%; line-height: 0; position: relative; }sub { bottom: -0.25em; }sup { top: -0.5em; }table { text-indent: 0px; border-color: inherit; border-collapse: collapse; }progress { vertical-align: baseline; }summary { display: list-item; }ol, ul, menu { list-style: none; }img, svg, video, canvas, audio, iframe, embed, object { vertical-align: middle; display: block; }img, video { max-width: 100%; height: auto; }button, input, select, optgroup, textarea { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }::file-selector-button { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }:where(select:is([multiple], [size])) optgroup { font-weight: bolder; }:where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; }::file-selector-button { margin-inline-end: 4px; }::placeholder { opacity: 1; }@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {  ::placeholder { color: currentcolor; }  @supports (color:color-mix(in lab,red,red)) {  ::placeholder { color: color-mix(currentcolor, transparent); }}}textarea { resize: vertical; }::-webkit-search-decoration { appearance: none; }::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; }::-webkit-datetime-edit { display: inline-flex; }::-webkit-datetime-edit-fields-wrapper { padding: 0px; }::-webkit-datetime-edit { padding-block: 0px; }::-webkit-datetime-edit-year-field { padding-block: 0px; }::-webkit-datetime-edit-month-field { padding-block: 0px; }::-webkit-datetime-edit-day-field { padding-block: 0px; }::-webkit-datetime-edit-hour-field { padding-block: 0px; }::-webkit-datetime-edit-minute-field { padding-block: 0px; }::-webkit-datetime-edit-second-field { padding-block: 0px; }::-webkit-datetime-edit-millisecond-field { padding-block: 0px; }::-webkit-datetime-edit-meridiem-field { padding-block: 0px; }::-webkit-calendar-picker-indicator { line-height: 1; }button, input:where([type="button"], [type="reset"], [type="submit"]) { appearance: button; }::file-selector-button { appearance: button; }::-webkit-inner-spin-button { height: auto; }::-webkit-outer-spin-button { height: auto; }[hidden]:where(:not([hidden="until-found"])) { display: none !important; }@layer components;.\@container { container-type: inline-size; }.pointer-events-auto { pointer-events: auto; }.pointer-events-none { pointer-events: none; }.collapse { visibility: collapse; }.invisible { visibility: hidden; }.visible { visibility: visible; }.sr-only { clip-path: inset(50%); white-space: nowrap; border-width: 0px; width: 1px; height: 1px; margin: -1px; padding: 0px; position: absolute; overflow: hidden; }.absolute { position: absolute; }.fixed { position: fixed; }.relative { position: relative; }.static { position: static; }.sticky { position: sticky; }.inset-0 { inset: calc(var(--spacing) * 0); }.top-0 { top: calc(var(--spacing) * 0); }.top-1 { top: calc(var(--spacing) * 1); }.top-1\/2 { top: 50%; }.top-3 { top: calc(var(--spacing) * 3); }.top-4 { top: calc(var(--spacing) * 4); }.top-\[76px\] { top: 76px; }.top-\[80px\] { top: 80px; }.top-auto { top: auto; }.top-full { top: 100%; }.-right-0, .right-0 { right: calc(var(--spacing) * 0); }.right-1 { right: calc(var(--spacing) * 1); }.right-2 { right: calc(var(--spacing) * 2); }.right-3 { right: calc(var(--spacing) * 3); }.right-4 { right: calc(var(--spacing) * 4); }.right-full { right: 100%; }.-bottom-0, .bottom-0 { bottom: calc(var(--spacing) * 0); }.bottom-3 { bottom: calc(var(--spacing) * 3); }.bottom-4 { bottom: calc(var(--spacing) * 4); }.bottom-full { bottom: 100%; }.-left-2 { left: calc(var(--spacing) * -2); }.left-0 { left: calc(var(--spacing) * 0); }.left-1 { left: calc(var(--spacing) * 1); }.left-1\/2 { left: 50%; }.left-2 { left: calc(var(--spacing) * 2); }.left-3 { left: calc(var(--spacing) * 3); }.left-4 { left: calc(var(--spacing) * 4); }.left-auto { left: auto; }.left-full { left: 100%; }.isolate { isolation: isolate; }.z-10 { z-index: 10; }.z-20 { z-index: 20; }.z-50 { z-index: 50; }.z-\[60\] { z-index: 60; }.z-\[99\] { z-index: 99; }.z-\[100\] { z-index: 100; }.z-\[9999\] { z-index: 9999; }.z-\[10000\] { z-index: 10000; }.z-\[10001\] { z-index: 10001; }.z-\[var\(--burger-btn-z-index\,1\)\] { z-index: var(--burger-btn-z-index,1); }.order-first { order: -9999; }.col-span-2 { grid-column: span 2 / span 2; }.col-span-3 { grid-column: span 3 / span 3; }.col-span-7 { grid-column: span 7 / span 7; }.col-span-10 { grid-column: span 10 / span 10; }.row-3 { grid-row: 3; }.row-4 { grid-row: 4; }.float-end { float: inline-end; }.float-left { float: left; }.float-start { float: inline-start; }.clear-both { clear: both; }.clear-left { clear: left; }.container { width: 100%; }@media (min-width: 640px) {  .container { max-width: 640px; }}@media (min-width: 768px) {  .container { max-width: 768px; }}@media (min-width: 1024px) {  .container { max-width: 1024px; }}@media (min-width: 1280px) {  .container { max-width: 1280px; }}@media (min-width: 1536px) {  .container { max-width: 1536px; }}.m-0 { margin: calc(var(--spacing) * 0); }.m-1 { margin: calc(var(--spacing) * 1); }.m-4 { margin: calc(var(--spacing) * 4); }.m-auto { margin: auto; }.-mx-4 { margin-inline: calc(var(--spacing) * -4); }.mx-0 { margin-inline: calc(var(--spacing) * 0); }.mx-1 { margin-inline: calc(var(--spacing) * 1); }.mx-2 { margin-inline: calc(var(--spacing) * 2); }.mx-4 { margin-inline: calc(var(--spacing) * 4); }.mx-auto { margin-inline: auto; }.-my-2 { margin-block: calc(var(--spacing) * -2); }.my-0 { margin-block: calc(var(--spacing) * 0); }.my-1 { margin-block: calc(var(--spacing) * 1); }.my-2 { margin-block: calc(var(--spacing) * 2); }.my-3 { margin-block: calc(var(--spacing) * 3); }.my-4 { margin-block: calc(var(--spacing) * 4); }.my-5 { margin-block: calc(var(--spacing) * 5); }.my-6 { margin-block: calc(var(--spacing) * 6); }.my-7 { margin-block: calc(var(--spacing) * 7); }.my-8 { margin-block: calc(var(--spacing) * 8); }.my-10 { margin-block: calc(var(--spacing) * 10); }.my-auto { margin-block: auto; }.ms-4 { margin-inline-start: calc(var(--spacing) * 4); }.me-2 { margin-inline-end: calc(var(--spacing) * 2); }.prose { color: var(--tw-prose-#widget-1bec2uw); max-width: 65ch; }.prose :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }.prose :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-lead); margin-top: 1.2em; margin-bottom: 1.2em; font-size: 1.25em; line-height: 1.6; }.prose :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-links); font-weight: 500; text-decoration: underline; }.prose :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600; }.prose :where(a strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(blockquote strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(thead th strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; list-style-type: decimal; }.prose :where(ol[type="A"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where(ol[type="a"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-alpha; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-alpha; }.prose :where(ol[type="I"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-roman; }.prose :where(ol[type="i"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-roman; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-roman; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-roman; }.prose :where(ol[type="1"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: decimal; }.prose :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; list-style-type: disc; }.prose :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { color: var(--tw-prose-counters); font-weight: 400; }.prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { color: var(--tw-prose-bullets); }.prose :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.25em; font-weight: 600; }.prose :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-top: 3em; margin-bottom: 3em; }.prose :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-quotes); border-inline-start-width: 4px; border-inline-start-color: var(--tw-prose-quote-borders); quotes: "“" "”" "‘" "’"; margin-top: 1.6em; margin-bottom: 1.6em; padding-inline-start: 1em; font-style: italic; font-weight: 500; }.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::before { content: open-quote; }.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: close-quote; }.prose :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 0px; margin-bottom: 0.888889em; font-size: 2.25em; font-weight: 800; line-height: 1.11111; }.prose :where(h1 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 900; }.prose :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 2em; margin-bottom: 1em; font-size: 1.5em; font-weight: 700; line-height: 1.33333; }.prose :where(h2 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 800; }.prose :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.6em; margin-bottom: 0.6em; font-size: 1.25em; font-weight: 600; line-height: 1.6; }.prose :where(h3 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 700; }.prose :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.5em; margin-bottom: 0.5em; font-weight: 600; line-height: 1.5; }.prose :where(h4 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 700; }.prose :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; display: block; }.prose :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-kbd); box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows); padding-top: 0.1875em; padding-inline: 0.375em; padding-bottom: 0.1875em; border-radius: 5px; font-family: inherit; font-size: 0.875em; font-weight: 500; }.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-code); font-size: 0.875em; font-weight: 600; }.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: "`"; }.prose :where(a code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h1 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-size: 0.875em; }.prose :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-size: 0.9em; }.prose :where(h4 code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(blockquote code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(thead th code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-pre-code); background-color: var(--tw-prose-pre-bg); padding-top: 0.857143em; padding-inline: 1.14286em; padding-bottom: 0.857143em; border-radius: 6px; margin-top: 1.71429em; margin-bottom: 1.71429em; font-size: 0.875em; font-weight: 400; line-height: 1.71429; overflow-x: auto; }.prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit; background-color: rgba(0, 0, 0, 0); border-width: 0px; border-radius: 0px; padding: 0px; }.prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: none; }.prose :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { table-layout: auto; width: 100%; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.71429; }.prose :where(thead):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders); }.prose :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); vertical-align: bottom; padding-inline: 0.571429em; padding-bottom: 0.571429em; font-weight: 600; }.prose :where(t#widget-1bec2uw tr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); }.prose :where(t#widget-1bec2uw tr:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 0px; }.prose :where(t#widget-1bec2uw td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { vertical-align: baseline; }.prose :where(tfoot):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-top-width: 1px; border-top-color: var(--tw-prose-th-borders); }.prose :where(tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { vertical-align: top; }.prose :where(th, td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { text-align: start; }.prose :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-captions); margin-top: 0.857143em; font-size: 0.875em; line-height: 1.42857; }.prose { --tw-prose-#widget-1bec2uw: oklch(37.3% .034 259.733); --tw-prose-headings: oklch(21% .034 264.665); --tw-prose-lead: oklch(44.6% .03 256.802); --tw-prose-links: oklch(21% .034 264.665); --tw-prose-bold: oklch(21% .034 264.665); --tw-prose-counters: oklch(55.1% .027 264.364); --tw-prose-bullets: oklch(87.2% .01 258.338); --tw-prose-hr: oklch(92.8% .006 264.531); --tw-prose-quotes: oklch(21% .034 264.665); --tw-prose-quote-borders: oklch(92.8% .006 264.531); --tw-prose-captions: oklch(55.1% .027 264.364); --tw-prose-kbd: oklch(21% .034 264.665); --tw-prose-kbd-shadows: oklab(21% -.00316127 -.0338527/.1); --tw-prose-code: oklch(21% .034 264.665); --tw-prose-pre-code: oklch(92.8% .006 264.531); --tw-prose-pre-bg: oklch(27.8% .033 256.848); --tw-prose-th-borders: oklch(87.2% .01 258.338); --tw-prose-td-borders: oklch(92.8% .006 264.531); --tw-prose-invert-#widget-1bec2uw: oklch(87.2% .01 258.338); --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: oklch(70.7% .022 261.325); --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: oklch(70.7% .022 261.325); --tw-prose-invert-bullets: oklch(44.6% .03 256.802); --tw-prose-invert-hr: oklch(37.3% .034 259.733); --tw-prose-invert-quotes: oklch(96.7% .003 264.542); --tw-prose-invert-quote-borders: oklch(37.3% .034 259.733); --tw-prose-invert-captions: oklch(70.7% .022 261.325); --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: #ffffff1a; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: oklch(87.2% .01 258.338); --tw-prose-invert-pre-bg: #00000080; --tw-prose-invert-th-borders: oklch(44.6% .03 256.802); --tw-prose-invert-td-borders: oklch(37.3% .034 259.733); font-size: 16px; line-height: 1.75; }.prose :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; }.prose :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0.375em; }.prose :where(.prose > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; }.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; }.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }.prose :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }.prose :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.5em; padding-inline-start: 1.625em; }.prose :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose :where(t#widget-1bec2uw td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.571429em; padding-inline: 0.571429em; padding-bottom: 0.571429em; }.prose :where(t#widget-1bec2uw td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose :where(t#widget-1bec2uw td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose :where(.prose > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 0px; }.prose-lg { font-size: 18px; line-height: 1.77778; }.prose-lg :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }.prose-lg :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.09091em; margin-bottom: 1.09091em; font-size: 1.22222em; line-height: 1.45455; }.prose-lg :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 1.66667em; padding-inline-start: 1em; }.prose-lg :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0.833333em; font-size: 2.66667em; line-height: 1; }.prose-lg :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.86667em; margin-bottom: 1.06667em; font-size: 1.66667em; line-height: 1.33333; }.prose-lg :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 0.666667em; font-size: 1.33333em; line-height: 1.5; }.prose-lg :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 0.444444em; line-height: 1.55556; }.prose-lg :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose-lg :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.222222em; padding-inline: 0.444444em; padding-bottom: 0.222222em; border-radius: 5px; font-size: 0.888889em; }.prose-lg :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.888889em; }.prose-lg :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.866667em; }.prose-lg :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.875em; }.prose-lg :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 1em; padding-inline: 1.5em; padding-bottom: 1em; border-radius: 6px; margin-top: 2em; margin-bottom: 2em; font-size: 0.888889em; line-height: 1.75; }.prose-lg :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; padding-inline-start: 1.55556em; }.prose-lg :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.666667em; margin-bottom: 0.666667em; }.prose-lg :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0.444444em; }.prose-lg :where(.prose-lg > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }.prose-lg :where(.prose-lg > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(.prose-lg > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.33333em; }.prose-lg :where(.prose-lg > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(.prose-lg > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.33333em; }.prose-lg :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }.prose-lg :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }.prose-lg :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.666667em; padding-inline-start: 1.55556em; }.prose-lg :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 3.11111em; margin-bottom: 3.11111em; }.prose-lg :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose-lg :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.888889em; line-height: 1.5; }.prose-lg :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline: 0.75em; padding-bottom: 0.75em; }.prose-lg :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose-lg :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose-lg :where(t#widget-1bec2uw td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.75em; padding-inline: 0.75em; padding-bottom: 0.75em; }.prose-lg :where(t#widget-1bec2uw td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose-lg :where(t#widget-1bec2uw td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose-lg :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose-lg :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1em; font-size: 0.888889em; line-height: 1.5; }.prose-lg :where(.prose-lg > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose-lg :where(.prose-lg > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 0px; }.mt-0 { margin-top: calc(var(--spacing) * 0); }.mt-1 { margin-top: calc(var(--spacing) * 1); }.mt-2 { margin-top: calc(var(--spacing) * 2); }.mt-3 { margin-top: calc(var(--spacing) * 3); }.mt-4 { margin-top: calc(var(--spacing) * 4); }.mt-5 { margin-top: calc(var(--spacing) * 5); }.mt-6 { margin-top: calc(var(--spacing) * 6); }.mt-7 { margin-top: calc(var(--spacing) * 7); }.mt-8 { margin-top: calc(var(--spacing) * 8); }.mt-10 { margin-top: calc(var(--spacing) * 10); }.mt-auto { margin-top: auto; }.-mr-1 { margin-right: calc(var(--spacing) * -1); }.mr-0 { margin-right: calc(var(--spacing) * 0); }.mr-1 { margin-right: calc(var(--spacing) * 1); }.mr-1\.5 { margin-right: calc(var(--spacing) * 1.5); }.mr-2 { margin-right: calc(var(--spacing) * 2); }.mr-3 { margin-right: calc(var(--spacing) * 3); }.mr-4 { margin-right: calc(var(--spacing) * 4); }.mr-5 { margin-right: calc(var(--spacing) * 5); }.mr-8 { margin-right: calc(var(--spacing) * 8); }.mr-auto { margin-right: auto; }.mb-0 { margin-bottom: calc(var(--spacing) * 0); }.mb-1 { margin-bottom: calc(var(--spacing) * 1); }.mb-2 { margin-bottom: calc(var(--spacing) * 2); }.mb-3 { margin-bottom: calc(var(--spacing) * 3); }.mb-4 { margin-bottom: calc(var(--spacing) * 4); }.mb-5 { margin-bottom: calc(var(--spacing) * 5); }.mb-6 { margin-bottom: calc(var(--spacing) * 6); }.mb-7 { margin-bottom: calc(var(--spacing) * 7); }.mb-8 { margin-bottom: calc(var(--spacing) * 8); }.mb-10 { margin-bottom: calc(var(--spacing) * 10); }.-ml-1 { margin-left: calc(var(--spacing) * -1); }.-ml-2 { margin-left: calc(var(--spacing) * -2); }.-ml-5 { margin-left: calc(var(--spacing) * -5); }.ml-0 { margin-left: calc(var(--spacing) * 0); }.ml-0\.5 { margin-left: calc(var(--spacing) * .5); }.ml-1 { margin-left: calc(var(--spacing) * 1); }.ml-2 { margin-left: calc(var(--spacing) * 2); }.ml-3 { margin-left: calc(var(--spacing) * 3); }.ml-4 { margin-left: calc(var(--spacing) * 4); }.ml-6 { margin-left: calc(var(--spacing) * 6); }.ml-8 { margin-left: calc(var(--spacing) * 8); }.ml-auto { margin-left: auto; }.box-border { box-sizing: border-box; }.line-clamp-2 { -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }.line-clamp-3 { -webkit-line-clamp: 3; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }.block { display: block; }.contents { display: contents; }.flex { display: flex; }.flow-root { display: flow-root; }.grid { display: grid; }.hidden { display: none; }.inline { display: inline; }.inline-block { display: inline-block; }.inline-flex { display: inline-flex; }.table { display: table; }.table-row { display: table-row; }.aspect-square { aspect-ratio: 1 / 1; }.size-1 { width: calc(var(--spacing) * 1); height: calc(var(--spacing) * 1); }.size-1\.5 { width: calc(var(--spacing) * 1.5); height: calc(var(--spacing) * 1.5); }.size-2 { width: calc(var(--spacing) * 2); height: calc(var(--spacing) * 2); }.size-3 { width: calc(var(--spacing) * 3); height: calc(var(--spacing) * 3); }.size-4 { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); }.size-5 { width: calc(var(--spacing) * 5); height: calc(var(--spacing) * 5); }.size-6 { width: calc(var(--spacing) * 6); height: calc(var(--spacing) * 6); }.size-7 { width: calc(var(--spacing) * 7); height: calc(var(--spacing) * 7); }.size-8 { width: calc(var(--spacing) * 8); height: calc(var(--spacing) * 8); }.size-9 { width: calc(var(--spacing) * 9); height: calc(var(--spacing) * 9); }.size-10 { width: calc(var(--spacing) * 10); height: calc(var(--spacing) * 10); }.size-12 { width: calc(var(--spacing) * 12); height: calc(var(--spacing) * 12); }.size-16 { width: calc(var(--spacing) * 16); height: calc(var(--spacing) * 16); }.size-20 { width: calc(var(--spacing) * 20); height: calc(var(--spacing) * 20); }.size-40 { width: calc(var(--spacing) * 40); height: calc(var(--spacing) * 40); }.size-full { width: 100%; height: 100%; }.h-1 { height: calc(var(--spacing) * 1); }.h-1\.5 { height: calc(var(--spacing) * 1.5); }.h-2 { height: calc(var(--spacing) * 2); }.h-3 { height: calc(var(--spacing) * 3); }.h-4 { height: calc(var(--spacing) * 4); }.h-5 { height: calc(var(--spacing) * 5); }.h-6 { height: calc(var(--spacing) * 6); }.h-7 { height: calc(var(--spacing) * 7); }.h-8 { height: calc(var(--spacing) * 8); }.h-9 { height: calc(var(--spacing) * 9); }.h-10 { height: calc(var(--spacing) * 10); }.h-12 { height: calc(var(--spacing) * 12); }.h-14 { height: calc(var(--spacing) * 14); }.h-16 { height: calc(var(--spacing) * 16); }.h-20 { height: calc(var(--spacing) * 20); }.h-24 { height: calc(var(--spacing) * 24); }.h-28 { height: calc(var(--spacing) * 28); }.h-64 { height: calc(var(--spacing) * 64); }.h-\[30px\] { height: 30px; }.h-\[40px\] { height: 40px; }.h-\[44px\] { height: 44px; }.h-\[76px\] { height: 76px; }.h-\[600px\] { height: 600px; }.h-\[var\(--logo-height-mobile\,25px\)\] { height: var(--logo-height-mobile,25px); }.h-\[var\(--site-header-height\,60px\)\] { height: var(--site-header-height,60px); }.h-auto { height: auto; }.h-fit { height: fit-content; }.h-full { height: 100%; }.h-min { height: min-content; }.h-px { height: 1px; }.h-screen { height: 100vh; }.max-h-0 { max-height: calc(var(--spacing) * 0); }.max-h-6 { max-height: calc(var(--spacing) * 6); }.max-h-12 { max-height: calc(var(--spacing) * 12); }.max-h-32 { max-height: calc(var(--spacing) * 32); }.max-h-80 { max-height: calc(var(--spacing) * 80); }.max-h-\[90vh\] { max-height: 90vh; }.max-h-\[var\(--logo-height-mobile\,25px\)\] { max-height: var(--logo-height-mobile,25px); }.min-h-8 { min-height: calc(var(--spacing) * 8); }.min-h-10 { min-height: calc(var(--spacing) * 10); }.min-h-\[400px\] { min-height: 400px; }.min-h-full { min-height: 100%; }.min-h-screen { min-height: 100vh; }.w-0 { width: calc(var(--spacing) * 0); }.w-1 { width: calc(var(--spacing) * 1); }.w-1\.5 { width: calc(var(--spacing) * 1.5); }.w-1\/3 { width: 33.3333%; }.w-1\/4 { width: 25%; }.w-2 { width: calc(var(--spacing) * 2); }.w-3 { width: calc(var(--spacing) * 3); }.w-4 { width: calc(var(--spacing) * 4); }.w-5 { width: calc(var(--spacing) * 5); }.w-6 { width: calc(var(--spacing) * 6); }.w-8 { width: calc(var(--spacing) * 8); }.w-9 { width: calc(var(--spacing) * 9); }.w-10 { width: calc(var(--spacing) * 10); }.w-12 { width: calc(var(--spacing) * 12); }.w-16 { width: calc(var(--spacing) * 16); }.w-20 { width: calc(var(--spacing) * 20); }.w-24 { width: calc(var(--spacing) * 24); }.w-28 { width: calc(var(--spacing) * 28); }.w-32 { width: calc(var(--spacing) * 32); }.w-36 { width: calc(var(--spacing) * 36); }.w-40 { width: calc(var(--spacing) * 40); }.w-44 { width: calc(var(--spacing) * 44); }.w-48 { width: calc(var(--spacing) * 48); }.w-56 { width: calc(var(--spacing) * 56); }.w-64 { width: calc(var(--spacing) * 64); }.w-\[140px\] { width: 140px; }.w-auto { width: auto; }.w-fit { width: fit-content; }.w-full { width: 100%; }.w-max { width: max-content; }.w-px { width: 1px; }.w-screen { width: 100vw; }.max-w-2xl { max-width: var(--container-2xl); }.max-w-4xl { max-width: var(--container-4xl); }.max-w-6xl { max-width: var(--container-6xl); }.max-w-7xl { max-width: var(--container-7xl); }.max-w-32 { max-width: calc(var(--spacing) * 32); }.max-w-40 { max-width: calc(var(--spacing) * 40); }.max-w-64 { max-width: calc(var(--spacing) * 64); }.max-w-\[960px\] { max-width: 960px; }.max-w-\[65ch\] { max-width: 65ch; }.max-w-\[1200px\] { max-width: 1200px; }.max-w-\[min\(var\(--site-header-max-width\,970px\)\,98dvw\)\] { max-width: min(var(--site-header-max-width,970px),98dvw); }.max-w-full { max-width: 100%; }.max-w-lg { max-width: var(--container-lg); }.max-w-md { max-width: var(--container-md); }.max-w-none { max-width: none; }.max-w-screen-xl { max-width: var(--breakpoint-xl); }.max-w-sm { max-width: var(--container-sm); }.max-w-xl { max-width: var(--container-xl); }.min-w-0 { min-width: calc(var(--spacing) * 0); }.min-w-8 { min-width: calc(var(--spacing) * 8); }.min-w-10 { min-width: calc(var(--spacing) * 10); }.min-w-16 { min-width: calc(var(--spacing) * 16); }.min-w-20 { min-width: calc(var(--spacing) * 20); }.min-w-36 { min-width: calc(var(--spacing) * 36); }.min-w-40 { min-width: calc(var(--spacing) * 40); }.min-w-52 { min-width: calc(var(--spacing) * 52); }.min-w-\[800px\] { min-width: 800px; }.min-w-\[var\(--tray-bell-min-width\,40px\)\] { min-width: var(--tray-bell-min-width,40px); }.min-w-full { min-width: 100%; }.flex-0 { flex: 0 1 0%; }.flex-1 { flex: 1 1 0%; }.flex-none { flex: 0 0 auto; }.flex-shrink { flex-shrink: 1; }.flex-shrink-0 { flex-shrink: 0; }.shrink { flex-shrink: 1; }.shrink-0 { flex-shrink: 0; }.flex-grow, .grow { flex-grow: 1; }.grow-0 { flex-grow: 0; }.basis-1 { flex-basis: calc(var(--spacing) * 1); }.basis-2 { flex-basis: calc(var(--spacing) * 2); }.basis-3 { flex-basis: calc(var(--spacing) * 3); }.basis-11 { flex-basis: calc(var(--spacing) * 11); }.basis-13 { flex-basis: calc(var(--spacing) * 13); }.basis-auto { flex-basis: auto; }.basis-full { flex-basis: 100%; }.border-collapse { border-collapse: collapse; }.origin-center { transform-origin: 50% center; }.origin-top-right { transform-origin: 100% 0px; }.-translate-x-1 { --tw-translate-x: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-x-1\/2 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-x-2 { --tw-translate-x: calc(var(--spacing) * -2); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-x-0 { --tw-translate-x: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-x-4 { --tw-translate-x: calc(var(--spacing) * 4); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-1 { --tw-translate-y: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-1\/2 { --tw-translate-y: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-full { --tw-translate-y: -100%; translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-0 { --tw-translate-y: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-4 { --tw-translate-y: calc(var(--spacing) * 4); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-full { --tw-translate-y: 100%; translate: var(--tw-translate-x) var(--tw-translate-y); }.scale-95 { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); }.scale-100 { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); }.-rotate-90 { rotate: -90deg; }.rotate-90 { rotate: 90deg; }.rotate-180 { rotate: 180deg; }.transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); }.animate-pulse { animation: var(--animate-pulse); }.animate-spin { animation: var(--animate-spin); }.cursor-default { cursor: default; }.cursor-not-allowed { cursor: not-allowed; }.cursor-pointer { cursor: pointer; }.resize { resize: both; }.resize-y { resize: vertical; }.snap-x { scroll-snap-type: x var(--tw-scroll-snap-strictness); }.snap-mandatory { --tw-scroll-snap-strictness: mandatory; }.snap-start { scroll-snap-align: start; }.list-outside { list-style-position: outside; }.list-disc { list-style-type: disc; }.list-none { list-style-type: none; }.appearance-none { appearance: none; }.grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }.grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }.grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }.grid-rows-2 { grid-template-rows: repeat(2, minmax(0px, 1fr)); }.flex-col { flex-direction: column; }.flex-row { flex-direction: row; }.flex-row-reverse { flex-direction: row-reverse; }.flex-nowrap { flex-wrap: nowrap; }.flex-wrap { flex-wrap: wrap; }.place-items-center { place-items: center; }.content-around { align-content: space-around; }.content-center { align-content: center; }.content-stretch { align-content: stretch; }.items-baseline { align-items: baseline; }.items-center { align-items: center; }.items-end { align-items: flex-end; }.items-start { align-items: flex-start; }.items-stretch { align-items: stretch; }.justify-between { justify-content: space-between; }.justify-center { justify-content: center; }.justify-end { justify-content: flex-end; }.justify-start { justify-content: flex-start; }.gap-0 { gap: calc(var(--spacing) * 0); }.gap-1 { gap: calc(var(--spacing) * 1); }.gap-1\.5 { gap: calc(var(--spacing) * 1.5); }.gap-2 { gap: calc(var(--spacing) * 2); }.gap-2\.5 { gap: calc(var(--spacing) * 2.5); }.gap-3 { gap: calc(var(--spacing) * 3); }.gap-4 { gap: calc(var(--spacing) * 4); }.gap-5 { gap: calc(var(--spacing) * 5); }.gap-6 { gap: calc(var(--spacing) * 6); }.gap-8 { gap: calc(var(--spacing) * 8); }.gap-\[var\(--site-header-gap\,0\10.4px\)\] { gap: var(--site-header-gap,10.4px); }.gap-px { gap: 1px; }:where(.space-y-1 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))); }.gap-x-1 { column-gap: calc(var(--spacing) * 1); }.gap-x-3 { column-gap: calc(var(--spacing) * 3); }.gap-x-4 { column-gap: calc(var(--spacing) * 4); }.gap-x-5 { column-gap: calc(var(--spacing) * 5); }.gap-x-8 { column-gap: calc(var(--spacing) * 8); }.gap-x-10 { column-gap: calc(var(--spacing) * 10); }:where(.space-x-3 > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse))); }.gap-y-1 { row-gap: calc(var(--spacing) * 1); }.gap-y-2 { row-gap: calc(var(--spacing) * 2); }.gap-y-3 { row-gap: calc(var(--spacing) * 3); }.gap-y-4 { row-gap: calc(var(--spacing) * 4); }.gap-y-6 { row-gap: calc(var(--spacing) * 6); }.gap-y-12 { row-gap: calc(var(--spacing) * 12); }:where(.divide-y > :not(:last-child)) { --tw-divide-y-reverse: 0; border-bottom-style: var(--tw-border-style); border-top-style: var(--tw-border-style); border-top-width: calc(1px * var(--tw-divide-y-reverse)); border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); }:where(.divide-neutral-100 > :not(:last-child)) { border-color: var(--color-neutral-100); }:where(.divide-white > :not(:last-child)) { border-color: var(--color-white); }.self-center { align-self: center; }.self-start { align-self: flex-start; }.truncate { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }.overflow-auto { overflow: auto; }.overflow-hidden { overflow: hidden; }.overflow-visible { overflow: visible; }.overflow-x-auto { overflow-x: auto; }.overflow-x-hidden { overflow-x: hidden; }.overflow-x-scroll { overflow-x: scroll; }.overflow-y-auto { overflow-y: auto; }.overflow-y-clip { overflow-y: clip; }.overflow-y-hidden { overflow-y: hidden; }.overflow-y-visible { overflow-y: visible; }.overscroll-x-contain { overscroll-behavior-x: contain; }.scroll-smooth { scroll-behavior: smooth; }.rounded { border-radius: 4px; }.rounded-2xl { border-radius: var(--radius-2xl); }.rounded-3xl { border-radius: var(--radius-3xl); }.rounded-4xl { border-radius: var(--radius-4xl); }.rounded-\[50\%\] { border-radius: 50%; }.rounded-\[var\(--image--border-radius\,0\)\] { border-radius: var(--image--border-radius,0); }.rounded-full { border-radius: 3.40282e+38px; }.rounded-lg { border-radius: var(--radius-lg); }.rounded-md { border-radius: var(--radius-md); }.rounded-none { border-radius: 0px; }.rounded-sm { border-radius: var(--radius-sm); }.rounded-xl { border-radius: var(--radius-xl); }.rounded-xs { border-radius: var(--radius-xs); }.rounded-t-2xl { border-top-left-radius: var(--radius-2xl); border-top-right-radius: var(--radius-2xl); }.rounded-l-full { border-top-left-radius: 3.40282e+38px; border-bottom-left-radius: 3.40282e+38px; }.rounded-tl-lg { border-top-left-radius: var(--radius-lg); }.rounded-r-full { border-top-right-radius: 3.40282e+38px; border-bottom-right-radius: 3.40282e+38px; }.rounded-tr-lg { border-top-right-radius: var(--radius-lg); }.rounded-b-none { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; }.rounded-br-lg { border-bottom-right-radius: var(--radius-lg); }.rounded-bl-lg { border-bottom-left-radius: var(--radius-lg); }.border { border-style: var(--tw-border-style); border-width: 1px; }.border-0 { border-style: var(--tw-border-style); border-width: 0px; }.border-1 { border-style: var(--tw-border-style); border-width: 1px; }.border-2 { border-style: var(--tw-border-style); border-width: 2px; }.border-8 { border-style: var(--tw-border-style); border-width: 8px; }.border-x-0 { border-inline-style: var(--tw-border-style); border-inline-width: 0px; }.border-y { border-block-style: var(--tw-border-style); border-block-width: 1px; }.border-y-0 { border-block-style: var(--tw-border-style); border-block-width: 0px; }.border-y-2 { border-block-style: var(--tw-border-style); border-block-width: 2px; }.border-t { border-top-style: var(--tw-border-style); border-top-width: 1px; }.border-t-2 { border-top-style: var(--tw-border-style); border-top-width: 2px; }.border-r { border-right-style: var(--tw-border-style); border-right-width: 1px; }.border-r-0 { border-right-style: var(--tw-border-style); border-right-width: 0px; }.border-b { border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; }.border-b-0 { border-bottom-style: var(--tw-border-style); border-bottom-width: 0px; }.border-b-2 { border-bottom-style: var(--tw-border-style); border-bottom-width: 2px; }.border-l { border-left-style: var(--tw-border-style); border-left-width: 1px; }.border-dashed { --tw-border-style: dashed; border-style: dashed; }.border-none { --tw-border-style: none; border-style: none; }.border-solid { --tw-border-style: solid; border-style: solid; }.border-\(--footer-nav-border-color\) { border-color: var(--footer-nav-border-color); }.border-\[\#DC1F26\] { border-color: rgb(220, 31, 38); }.border-black { border-color: var(--color-black); }.border-gray-100 { border-color: var(--color-gray-100); }.border-gray-200 { border-color: var(--color-gray-200); }.border-gray-300 { border-color: var(--color-gray-300); }.border-gray-400 { border-color: var(--color-gray-400); }.border-gray-500 { border-color: var(--color-gray-500); }.border-gray-600 { border-color: var(--color-gray-600); }.border-gray-700 { border-color: var(--color-gray-700); }.border-gray-800 { border-color: var(--color-gray-800); }.border-green-600 { border-color: var(--color-green-600); }.border-neutral-100 { border-color: var(--color-neutral-100); }.border-neutral-200 { border-color: var(--color-neutral-200); }.border-neutral-300 { border-color: var(--color-neutral-300); }.border-red-600 { border-color: var(--color-red-600); }.border-rose-100 { border-color: var(--color-rose-100); }.border-slate-600 { border-color: var(--color-slate-600); }.border-transparent { border-color: rgba(0, 0, 0, 0); }.border-white { border-color: var(--color-white); }.border-yellow-300 { border-color: var(--color-yellow-300); }.border-yellow-500 { border-color: var(--color-yellow-500); }.border-t-black { border-top-color: var(--color-black); }.border-t-neutral-500 { border-top-color: var(--color-neutral-500); }.border-r-neutral-100 { border-right-color: var(--color-neutral-100); }.border-r-neutral-200 { border-right-color: var(--color-neutral-200); }.border-b-black { border-bottom-color: var(--color-black); }.border-b-neutral-200 { border-bottom-color: var(--color-neutral-200); }.border-b-neutral-300 { border-bottom-color: var(--color-neutral-300); }.border-l-neutral-200 { border-left-color: var(--color-neutral-200); }.bg-\(--footer-bg-color\) { background-color: var(--footer-bg-color); }.bg-\[\#33333370\] { background-color: rgba(51, 51, 51, 0.44); }.bg-\[\#DC1F26\] { background-color: rgb(220, 31, 38); }.bg-\[\#ededed\] { background-color: rgb(237, 237, 237); }.bg-\[var\(--region-redirect-banner-background\,var\(--brand-color-1\)\)\] { background-color: var(--region-redirect-banner-background,var(--brand-color-1)); }.bg-\[var\(--site-header-background-color\,white\)\] { background-color: var(--site-header-background-color,white); }.bg-amber-50 { background-color: var(--color-amber-50); }.bg-black { background-color: var(--color-black); }.bg-blue-50 { background-color: var(--color-blue-50); }.bg-gray-50 { background-color: var(--color-gray-50); }.bg-gray-100 { background-color: var(--color-gray-100); }.bg-gray-200 { background-color: var(--color-gray-200); }.bg-gray-300 { background-color: var(--color-gray-300); }.bg-gray-500 { background-color: var(--color-gray-500); }.bg-gray-500\/75 { background-color: rgba(106, 114, 130, 0.75); }@supports (color:color-mix(in lab,red,red)) {  .bg-gray-500\/75 { background-color: color-mix(in oklab,var(--color-gray-500) 75%,transparent); }}.bg-gray-800 { background-color: var(--color-gray-800); }.bg-gray-900 { background-color: var(--color-gray-900); }.bg-gray-950 { background-color: var(--color-gray-950); }.bg-green-50 { background-color: var(--color-green-50); }.bg-green-100 { background-color: var(--color-green-100); }.bg-green-500 { background-color: var(--color-green-500); }.bg-green-600 { background-color: var(--color-green-600); }.bg-inherit { background-color: inherit; }.bg-neutral-50 { background-color: var(--color-neutral-50); }.bg-neutral-50\/50 { background-color: rgba(250, 250, 250, 0.5); }@supports (color:color-mix(in lab,red,red)) {  .bg-neutral-50\/50 { background-color: color-mix(in oklab,var(--color-neutral-50) 50%,transparent); }}.bg-neutral-100 { background-color: var(--color-neutral-100); }.bg-neutral-200 { background-color: var(--color-neutral-200); }.bg-neutral-300 { background-color: var(--color-neutral-300); }.bg-neutral-500 { background-color: var(--color-neutral-500); }.bg-neutral-600 { background-color: var(--color-neutral-600); }.bg-neutral-800 { background-color: var(--color-neutral-800); }.bg-neutral-900 { background-color: var(--color-neutral-900); }.bg-neutral-900\/40 { background-color: rgba(23, 23, 23, 0.4); }@supports (color:color-mix(in lab,red,red)) {  .bg-neutral-900\/40 { background-color: color-mix(in oklab,var(--color-neutral-900) 40%,transparent); }}.bg-neutral-950 { background-color: var(--color-neutral-950); }.bg-orange-50 { background-color: var(--color-orange-50); }.bg-purple-50 { background-color: var(--color-purple-50); }.bg-red-50 { background-color: var(--color-red-50); }.bg-red-100 { background-color: var(--color-red-100); }.bg-red-500 { background-color: var(--color-red-500); }.bg-red-600 { background-color: var(--color-red-600); }.bg-rose-50 { background-color: var(--color-rose-50); }.bg-rose-500 { background-color: var(--color-rose-500); }.bg-slate-50 { background-color: var(--color-slate-50); }.bg-slate-500 { background-color: var(--color-slate-500); }.bg-slate-900 { background-color: var(--color-slate-900); }.bg-teal-50 { background-color: var(--color-teal-50); }.bg-transparent { background-color: rgba(0, 0, 0, 0); }.bg-white { background-color: var(--color-white); }.bg-yellow-50 { background-color: var(--color-yellow-50); }.bg-yellow-500 { background-color: var(--color-yellow-500); }.bg-zinc-300 { background-color: var(--color-zinc-300); }.bg-zinc-800 { background-color: var(--color-zinc-800); }.bg-zinc-900 { background-color: var(--color-zinc-900); }.bg-gradient-to-l { --tw-gradient-position: to left in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }.bg-gradient-to-t { --tw-gradient-position: to top in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }.bg-none { background-image: none; }.from-gray-100 { --tw-gradient-from: var(--color-gray-100); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.from-gray-950 { --tw-gradient-from: var(--color-gray-950); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.from-white { --tw-gradient-from: var(--color-white); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-gray-200 { --tw-gradient-to: var(--color-gray-200); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-gray-800 { --tw-gradient-to: var(--color-gray-800); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-transparent { --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.bg-cover { background-size: cover; }.bg-center { background-position: 50% center; }.bg-repeat { background-repeat: repeat; }.fill-gray-500 { fill: var(--color-gray-500); }.fill-white { fill: var(--color-white); }.object-contain { object-fit: contain; }.object-cover { object-fit: cover; }.object-center { object-position: center center; }.p-0 { padding: calc(var(--spacing) * 0); }.p-1 { padding: calc(var(--spacing) * 1); }.p-1\.5 { padding: calc(var(--spacing) * 1.5); }.p-2 { padding: calc(var(--spacing) * 2); }.p-3 { padding: calc(var(--spacing) * 3); }.p-4 { padding: calc(var(--spacing) * 4); }.p-5 { padding: calc(var(--spacing) * 5); }.p-6 { padding: calc(var(--spacing) * 6); }.p-8 { padding: calc(var(--spacing) * 8); }.px-0 { padding-inline: calc(var(--spacing) * 0); }.px-1 { padding-inline: calc(var(--spacing) * 1); }.px-2 { padding-inline: calc(var(--spacing) * 2); }.px-2\.5 { padding-inline: calc(var(--spacing) * 2.5); }.px-3 { padding-inline: calc(var(--spacing) * 3); }.px-4 { padding-inline: calc(var(--spacing) * 4); }.px-5 { padding-inline: calc(var(--spacing) * 5); }.px-6 { padding-inline: calc(var(--spacing) * 6); }.px-8 { padding-inline: calc(var(--spacing) * 8); }.px-12 { padding-inline: calc(var(--spacing) * 12); }.py-0 { padding-block: calc(var(--spacing) * 0); }.py-0\.5 { padding-block: calc(var(--spacing) * .5); }.py-1 { padding-block: calc(var(--spacing) * 1); }.py-1\.5 { padding-block: calc(var(--spacing) * 1.5); }.py-2 { padding-block: calc(var(--spacing) * 2); }.py-2\.5 { padding-block: calc(var(--spacing) * 2.5); }.py-3 { padding-block: calc(var(--spacing) * 3); }.py-4 { padding-block: calc(var(--spacing) * 4); }.py-5 { padding-block: calc(var(--spacing) * 5); }.py-6 { padding-block: calc(var(--spacing) * 6); }.py-7 { padding-block: calc(var(--spacing) * 7); }.py-8 { padding-block: calc(var(--spacing) * 8); }.py-10 { padding-block: calc(var(--spacing) * 10); }.py-12 { padding-block: calc(var(--spacing) * 12); }.py-24 { padding-block: calc(var(--spacing) * 24); }.pt-1 { padding-top: calc(var(--spacing) * 1); }.pt-2 { padding-top: calc(var(--spacing) * 2); }.pt-3 { padding-top: calc(var(--spacing) * 3); }.pt-4 { padding-top: calc(var(--spacing) * 4); }.pt-5 { padding-top: calc(var(--spacing) * 5); }.pt-6 { padding-top: calc(var(--spacing) * 6); }.pt-7 { padding-top: calc(var(--spacing) * 7); }.pt-8 { padding-top: calc(var(--spacing) * 8); }.pr-0 { padding-right: calc(var(--spacing) * 0); }.pr-1 { padding-right: calc(var(--spacing) * 1); }.pr-2 { padding-right: calc(var(--spacing) * 2); }.pr-3 { padding-right: calc(var(--spacing) * 3); }.pr-4 { padding-right: calc(var(--spacing) * 4); }.pr-5 { padding-right: calc(var(--spacing) * 5); }.pr-6 { padding-right: calc(var(--spacing) * 6); }.pr-8 { padding-right: calc(var(--spacing) * 8); }.pr-10 { padding-right: calc(var(--spacing) * 10); }.pr-12 { padding-right: calc(var(--spacing) * 12); }.pb-0 { padding-bottom: calc(var(--spacing) * 0); }.pb-1 { padding-bottom: calc(var(--spacing) * 1); }.pb-2 { padding-bottom: calc(var(--spacing) * 2); }.pb-3 { padding-bottom: calc(var(--spacing) * 3); }.pb-4 { padding-bottom: calc(var(--spacing) * 4); }.pb-5 { padding-bottom: calc(var(--spacing) * 5); }.pb-6 { padding-bottom: calc(var(--spacing) * 6); }.pb-8 { padding-bottom: calc(var(--spacing) * 8); }.pb-12 { padding-bottom: calc(var(--spacing) * 12); }.pb-\[var\(--strapline-padding-bottom\,12px\)\] { padding-bottom: var(--strapline-padding-bottom,12px); }.pl-0 { padding-left: calc(var(--spacing) * 0); }.pl-1 { padding-left: calc(var(--spacing) * 1); }.pl-1\.5 { padding-left: calc(var(--spacing) * 1.5); }.pl-2 { padding-left: calc(var(--spacing) * 2); }.pl-3 { padding-left: calc(var(--spacing) * 3); }.pl-4 { padding-left: calc(var(--spacing) * 4); }.pl-8 { padding-left: calc(var(--spacing) * 8); }.pl-9 { padding-left: calc(var(--spacing) * 9); }.pl-12 { padding-left: calc(var(--spacing) * 12); }.text-center { text-align: center; }.text-left { text-align: left; }.text-right { text-align: right; }.-indent-0 { text-indent: calc(var(--spacing) * 0); }.align-middle { vertical-align: middle; }.align-text-top { vertical-align: text-top; }.align-top { vertical-align: top; }.font-mono { font-family: var(--font-mono); }.font-sans { font-family: var(--font-sans); }.font-serif { font-family: var(--font-serif); }.text-2xl { font-size: var(--text-2xl); line-height: var(--tw-leading,var(--text-2xl--line-height)); }.text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }.text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }.text-base { font-size: var(--text-base); line-height: var(--tw-leading,var(--text-base--line-height)); }.text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }.text-sm { font-size: var(--text-sm); line-height: var(--tw-leading,var(--text-sm--line-height)); }.text-xl { font-size: var(--text-xl); line-height: var(--tw-leading,var(--text-xl--line-height)); }.text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }.text-\[10px\] { font-size: 10px; }.text-\[11px\] { font-size: 11px; }.text-\[length\:var\(--strapline-font-size\,13px\)\] { font-size: var(--strapline-font-size,13px); }.leading-2 { --tw-leading: calc(var(--spacing) * 2); line-height: calc(var(--spacing) * 2); }.leading-3 { --tw-leading: calc(var(--spacing) * 3); line-height: calc(var(--spacing) * 3); }.leading-4 { --tw-leading: calc(var(--spacing) * 4); line-height: calc(var(--spacing) * 4); }.leading-5 { --tw-leading: calc(var(--spacing) * 5); line-height: calc(var(--spacing) * 5); }.leading-6 { --tw-leading: calc(var(--spacing) * 6); line-height: calc(var(--spacing) * 6); }.leading-7 { --tw-leading: calc(var(--spacing) * 7); line-height: calc(var(--spacing) * 7); }.leading-8 { --tw-leading: calc(var(--spacing) * 8); line-height: calc(var(--spacing) * 8); }.leading-10 { --tw-leading: calc(var(--spacing) * 10); line-height: calc(var(--spacing) * 10); }.leading-none { --tw-leading: 1; line-height: 1; }.leading-normal { --tw-leading: var(--leading-normal); line-height: var(--leading-normal); }.leading-relaxed { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }.leading-snug { --tw-leading: var(--leading-snug); line-height: var(--leading-snug); }.leading-tight { --tw-leading: var(--leading-tight); line-height: var(--leading-tight); }.font-black { --tw-font-weight: var(--font-weight-black); font-weight: var(--font-weight-black); }.font-bold { --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); }.font-extrabold { --tw-font-weight: var(--font-weight-extrabold); font-weight: var(--font-weight-extrabold); }.font-medium { --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); }.font-normal { --tw-font-weight: var(--font-weight-normal); font-weight: var(--font-weight-normal); }.font-semibold { --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); }.tracking-normal { --tw-tracking: var(--tracking-normal); letter-spacing: var(--tracking-normal); }.tracking-tight { --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); }.tracking-wide { --tw-tracking: var(--tracking-wide); letter-spacing: var(--tracking-wide); }.tracking-wider { --tw-tracking: var(--tracking-wider); letter-spacing: var(--tracking-wider); }.tracking-widest { --tw-tracking: var(--tracking-widest); letter-spacing: var(--tracking-widest); }.text-nowrap { text-wrap: nowrap; }.text-wrap { text-wrap: wrap; }.break-words { overflow-wrap: break-word; }.text-ellipsis { text-overflow: ellipsis; }.whitespace-break-spaces { white-space: break-spaces; }.whitespace-normal { white-space: normal; }.whitespace-nowrap { white-space: nowrap; }.whitespace-pre { white-space: pre; }.text-\(--footer-text-color\) { color: var(--footer-text-color); }.text-\[\#DC1F26\] { color: rgb(220, 31, 38); }.text-\[var\(--site-header-text-color\,\#333\)\] { color: var(--site-header-text-color,#333); }.text-amber-700 { color: var(--color-amber-700); }.text-black { color: var(--color-black); }.text-blue-500 { color: var(--color-blue-500); }.text-blue-700 { color: var(--color-blue-700); }.text-current { color: currentcolor; }.text-gray-50 { color: var(--color-gray-50); }.text-gray-100 { color: var(--color-gray-100); }.text-gray-200 { color: var(--color-gray-200); }.text-gray-300 { color: var(--color-gray-300); }.text-gray-400 { color: var(--color-gray-400); }.text-gray-500 { color: var(--color-gray-500); }.text-gray-600 { color: var(--color-gray-600); }.text-gray-700 { color: var(--color-gray-700); }.text-gray-800 { color: var(--color-gray-800); }.text-gray-900 { color: var(--color-gray-900); }.text-green-50 { color: var(--color-green-50); }.text-green-400 { color: var(--color-green-400); }.text-green-500 { color: var(--color-green-500); }.text-green-600 { color: var(--color-green-600); }.text-green-700 { color: var(--color-green-700); }.text-inherit { color: inherit; }.text-lime-700 { color: var(--color-lime-700); }.text-neutral-100 { color: var(--color-neutral-100); }.text-neutral-200 { color: var(--color-neutral-200); }.text-neutral-300 { color: var(--color-neutral-300); }.text-neutral-400 { color: var(--color-neutral-400); }.text-neutral-500 { color: var(--color-neutral-500); }.text-neutral-600 { color: var(--color-neutral-600); }.text-neutral-700 { color: var(--color-neutral-700); }.text-neutral-800 { color: var(--color-neutral-800); }.text-neutral-900 { color: var(--color-neutral-900); }.text-orange-700 { color: var(--color-orange-700); }.text-pink-600 { color: var(--color-pink-600); }.text-purple-700 { color: var(--color-purple-700); }.text-red-50 { color: var(--color-red-50); }.text-red-500 { color: var(--color-red-500); }.text-red-600 { color: var(--color-red-600); }.text-red-700 { color: var(--color-red-700); }.text-rose-600 { color: var(--color-rose-600); }.text-slate-50 { color: var(--color-slate-50); }.text-slate-500 { color: var(--color-slate-500); }.text-teal-700 { color: var(--color-teal-700); }.text-white { color: var(--color-white); }.text-yellow-700 { color: var(--color-yellow-700); }.text-yellow-800 { color: var(--color-yellow-800); }.\[text-transform\:var\(--strapline-text-transform\,uppercase\)\] { text-transform: var(--strapline-text-transform,uppercase); }.capitalize { text-transform: capitalize; }.lowercase { text-transform: lowercase; }.normal-case { text-transform: none; }.uppercase { text-transform: uppercase; }.italic { font-style: italic; }.ordinal { --tw-ordinal: ordinal; font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); }.line-through { text-decoration-line: line-through; }.no-underline { text-decoration-line: none; }.underline { text-decoration-line: underline; }.decoration-current { text-decoration-color: currentcolor; }.decoration-transparent { text-decoration-color: rgba(0, 0, 0, 0); }.decoration-solid { text-decoration-style: solid; }.underline-offset-2 { text-underline-offset: 2px; }.placeholder-neutral-500::placeholder { color: var(--color-neutral-500); }.opacity-0 { opacity: 0; }.opacity-30 { opacity: 0.3; }.opacity-40 { opacity: 0.4; }.opacity-50 { opacity: 0.5; }.opacity-80 { opacity: 0.8; }.opacity-100 { opacity: 1; }.shadow { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-2xl { --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color,#00000040); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.4\)\] { --tw-shadow: 0 20px 60px -15px var(--tw-shadow-color,#0006); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-inner { --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-lg { --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-md { --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-none { --tw-shadow: 0 0 #0000; box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-sm { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-xl { --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-xs { --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color,#0000000d); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-0 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-1 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-4 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-amber-600 { --tw-ring-color: var(--color-amber-600); }.ring-black { --tw-ring-color: var(--color-black); }.ring-blue-600 { --tw-ring-color: var(--color-blue-600); }.ring-gray-300 { --tw-ring-color: var(--color-gray-300); }.ring-green-600 { --tw-ring-color: var(--color-green-600); }.ring-orange-600 { --tw-ring-color: var(--color-orange-600); }.ring-purple-400 { --tw-ring-color: var(--color-purple-400); }.ring-purple-600 { --tw-ring-color: var(--color-purple-600); }.ring-red-600 { --tw-ring-color: var(--color-red-600); }.ring-slate-600 { --tw-ring-color: var(--color-slate-600); }.ring-teal-600 { --tw-ring-color: var(--color-teal-600); }.ring-white { --tw-ring-color: var(--color-white); }.ring-yellow-600 { --tw-ring-color: var(--color-yellow-600); }.outline-hidden { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .outline-hidden { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.outline, .outline-1 { outline-style: var(--tw-outline-style); outline-width: 1px; }.outline-transparent { outline-color: rgba(0, 0, 0, 0); }.blur { --tw-blur: blur(8px); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.brightness-0 { --tw-brightness: brightness(0%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.contrast-100 { --tw-contrast: contrast(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.grayscale { --tw-grayscale: grayscale(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.invert { --tw-invert: invert(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.filter { filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.backdrop-blur-sm { --tw-backdrop-blur: blur(var(--blur-sm)); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }.backdrop-filter { backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }.transition { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-all { transition-property: all; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-colors { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-opacity { transition-property: opacity; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-shadow { transition-property: box-shadow; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-transform { transition-property: transform, translate, scale, rotate; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.duration-75 { --tw-duration: 75ms; transition-duration: 75ms; }.duration-100 { --tw-duration: .1s; transition-duration: 0.1s; }.duration-150 { --tw-duration: .15s; transition-duration: 0.15s; }.duration-200 { --tw-duration: .2s; transition-duration: 0.2s; }.duration-300 { --tw-duration: .3s; transition-duration: 0.3s; }.duration-500 { --tw-duration: .5s; transition-duration: 0.5s; }.ease-in { --tw-ease: var(--ease-in); transition-timing-function: var(--ease-in); }.ease-in-out { --tw-ease: var(--ease-in-out); transition-timing-function: var(--ease-in-out); }.ease-out { --tw-ease: var(--ease-out); transition-timing-function: var(--ease-out); }.prose-neutral { --tw-prose-#widget-1bec2uw: oklch(37.1% 0 0); --tw-prose-headings: oklch(20.5% 0 0); --tw-prose-lead: oklch(43.9% 0 0); --tw-prose-links: oklch(20.5% 0 0); --tw-prose-bold: oklch(20.5% 0 0); --tw-prose-counters: oklch(55.6% 0 0); --tw-prose-bullets: oklch(87% 0 0); --tw-prose-hr: oklch(92.2% 0 0); --tw-prose-quotes: oklch(20.5% 0 0); --tw-prose-quote-borders: oklch(92.2% 0 0); --tw-prose-captions: oklch(55.6% 0 0); --tw-prose-kbd: oklch(20.5% 0 0); --tw-prose-kbd-shadows: oklab(20.5% 0 0/.1); --tw-prose-code: oklch(20.5% 0 0); --tw-prose-pre-code: oklch(92.2% 0 0); --tw-prose-pre-bg: oklch(26.9% 0 0); --tw-prose-th-borders: oklch(87% 0 0); --tw-prose-td-borders: oklch(92.2% 0 0); --tw-prose-invert-#widget-1bec2uw: oklch(87% 0 0); --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: oklch(70.8% 0 0); --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: oklch(70.8% 0 0); --tw-prose-invert-bullets: oklch(43.9% 0 0); --tw-prose-invert-hr: oklch(37.1% 0 0); --tw-prose-invert-quotes: oklch(97% 0 0); --tw-prose-invert-quote-borders: oklch(37.1% 0 0); --tw-prose-invert-captions: oklch(70.8% 0 0); --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: #ffffff1a; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: oklch(87% 0 0); --tw-prose-invert-pre-bg: #00000080; --tw-prose-invert-th-borders: oklch(43.9% 0 0); --tw-prose-invert-td-borders: oklch(37.1% 0 0); }.outline-none { --tw-outline-style: none; outline-style: none; }.select-none { user-select: none; }.ring-inset { --tw-ring-inset: inset; }:is(.\*\:pointer-events-auto > *) { pointer-events: auto; }@media (hover: hover) {  .group-hover\:text-\[\#DC1F26\]:is(:where(.group):hover *) { color: rgb(220, 31, 38); }  .group-hover\:opacity-100:is(:where(.group):hover *) { opacity: 1; }}.visited\:text-inherit:visited { color: inherit; }.empty\:border-none:empty { --tw-border-style: none; border-style: none; }@media (hover: hover) {  .hover\:border-black:hover { border-color: var(--color-black); }  .hover\:border-neutral-300:hover { border-color: var(--color-neutral-300); }  .hover\:bg-\[\#b8181e\]:hover { background-color: rgb(184, 24, 30); }  .hover\:bg-black:hover { background-color: var(--color-black); }  .hover\:bg-blue-50:hover { background-color: var(--color-blue-50); }  .hover\:bg-green-50:hover { background-color: var(--color-green-50); }  .hover\:bg-green-700:hover { background-color: var(--color-green-700); }  .hover\:bg-indigo-50:hover { background-color: var(--color-indigo-50); }  .hover\:bg-neutral-50:hover { background-color: var(--color-neutral-50); }  .hover\:bg-neutral-100:hover { background-color: var(--color-neutral-100); }  .hover\:bg-neutral-200:hover { background-color: var(--color-neutral-200); }  .hover\:bg-neutral-800:hover { background-color: var(--color-neutral-800); }  .hover\:bg-red-50:hover { background-color: var(--color-red-50); }  .hover\:bg-red-700:hover { background-color: var(--color-red-700); }  .hover\:text-\[\#DC1F26\]:hover { color: rgb(220, 31, 38); }  .hover\:text-blue-600:hover { color: var(--color-blue-600); }  .hover\:text-gray-500:hover { color: var(--color-gray-500); }  .hover\:text-indigo-600:hover { color: var(--color-indigo-600); }  .hover\:text-inherit:hover { color: inherit; }  .hover\:text-neutral-700:hover { color: var(--color-neutral-700); }  .hover\:text-neutral-900:hover { color: var(--color-neutral-900); }  .hover\:text-red-600:hover { color: var(--color-red-600); }  .hover\:no-underline:hover { text-decoration-line: none; }  .hover\:underline:hover { text-decoration-line: underline; }  .hover\:decoration-transparent:hover { text-decoration-color: rgba(0, 0, 0, 0); }  .hover\:underline-offset-2:hover { text-underline-offset: 2px; }}.focus\:border-rose-500:focus { border-color: var(--color-rose-500); }.focus\:text-inherit:focus { color: inherit; }.focus\:decoration-transparent:focus { text-decoration-color: rgba(0, 0, 0, 0); }.focus\:ring-1:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-2:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-4:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-\[\#DC1F26\]:focus { --tw-ring-color: #dc1f26; }.focus\:ring-\[\#DC1F26\]\/20:focus { --tw-ring-color: oklab(57.3239% .195826 .0976754/.2); }.focus\:ring-rose-500:focus { --tw-ring-color: var(--color-rose-500); }.focus\:ring-offset-1:focus { --tw-ring-offset-width: 1px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); }.focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); }.focus\:outline-hidden:focus { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .focus\:outline-hidden:focus { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.focus\:outline-1:focus { outline-style: var(--tw-outline-style); outline-width: 1px; }.focus\:outline-none:focus { --tw-outline-style: none; outline-style: none; }.focus\:\[outline-style\:auto\]:focus { outline-style: auto; }.focus-visible\:ring-2:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus-visible\:ring-gray-900:focus-visible { --tw-ring-color: var(--color-gray-900); }.focus-visible\:outline-hidden:focus-visible { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .focus-visible\:outline-hidden:focus-visible { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.active\:text-inherit:active { color: inherit; }@media not all and (min-width: 640px) {  .max-sm\:top-full { top: 100%; }  .max-sm\:left-2\/4 { left: 50%; }  .max-sm\:hidden { display: none; }  .max-sm\:min-w-\[300px\] { min-width: 300px; }  .max-sm\:-translate-x-2\/4 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }}@media (min-width: 640px) {  .sm\:visible { visibility: visible; }  .sm\:relative { position: relative; }  .sm\:top-4 { top: calc(var(--spacing) * 4); }  .sm\:top-\[88px\] { top: 88px; }  .sm\:top-\[92px\] { top: 92px; }  .sm\:right-3 { right: calc(var(--spacing) * 3); }  .sm\:right-4 { right: calc(var(--spacing) * 4); }  .sm\:left-3 { left: calc(var(--spacing) * 3); }  .sm\:order-3 { order: 3; }  .sm\:mx-auto { margin-inline: auto; }  .sm\:my-8 { margin-block: calc(var(--spacing) * 8); }  .sm\:mt-5 { margin-top: calc(var(--spacing) * 5); }  .sm\:mt-6 { margin-top: calc(var(--spacing) * 6); }  .sm\:mb-6 { margin-bottom: calc(var(--spacing) * 6); }  .sm\:mb-8 { margin-bottom: calc(var(--spacing) * 8); }  .sm\:block { display: block; }  .sm\:flex { display: flex; }  .sm\:hidden { display: none; }  .sm\:inline { display: inline; }  .sm\:h-6 { height: calc(var(--spacing) * 6); }  .sm\:h-12 { height: calc(var(--spacing) * 12); }  .sm\:h-\[50px\] { height: 50px; }  .sm\:h-\[var\(--logo-height-desktop\,auto\)\] { height: var(--logo-height-desktop,auto); }  .sm\:max-h-full { max-height: 100%; }  .sm\:w-6 { width: calc(var(--spacing) * 6); }  .sm\:w-12 { width: calc(var(--spacing) * 12); }  .sm\:w-64 { width: calc(var(--spacing) * 64); }  .sm\:w-\[480px\] { width: 480px; }  .sm\:max-w-full { max-width: 100%; }  .sm\:max-w-sm { max-width: var(--container-sm); }  .sm\:min-w-auto { min-width: auto; }  .sm\:translate-y-0 { --tw-translate-y: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }  .sm\:scale-95 { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); }  .sm\:scale-100 { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); }  .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }  .sm\:flex-row { flex-direction: row; }  .sm\:items-center { align-items: center; }  .sm\:border-r { border-right-style: var(--tw-border-style); border-right-width: 1px; }  .sm\:border-solid { --tw-border-style: solid; border-style: solid; }  .sm\:border-gray-300 { border-color: var(--color-gray-300); }  .sm\:p-0 { padding: calc(var(--spacing) * 0); }  .sm\:p-3 { padding: calc(var(--spacing) * 3); }  .sm\:p-6 { padding: calc(var(--spacing) * 6); }  .sm\:p-8 { padding: calc(var(--spacing) * 8); }  .sm\:px-0 { padding-inline: calc(var(--spacing) * 0); }  .sm\:px-4 { padding-inline: calc(var(--spacing) * 4); }  .sm\:py-4 { padding-block: calc(var(--spacing) * 4); }  .sm\:pl-14 { padding-left: calc(var(--spacing) * 14); }  .sm\:text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }  .sm\:text-base { font-size: var(--text-base); line-height: var(--tw-leading,var(--text-base--line-height)); }}@media (min-width: 768px) {  .md\:visible { visibility: visible; }  .md\:inline { display: inline; }  .md\:h-screen { height: 100vh; }  .md\:w-80 { width: calc(var(--spacing) * 80); }  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }  .md\:flex-row { flex-direction: row; }  .md\:overflow-hidden { overflow: hidden; }  .md\:overflow-y-auto { overflow-y: auto; }  .md\:p-12 { padding: calc(var(--spacing) * 12); }  .md\:text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }  .md\:text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }  .md\:text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }}.prose-headings\:font-serif :where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-p\:font-serif :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-family: var(--font-serif); }.prose-p\:leading-relaxed :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }.prose-p\:text-neutral-700 :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--color-neutral-700); }@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-rotate-x { syntax: "*"; inherits: false; }@property --tw-rotate-y { syntax: "*"; inherits: false; }@property --tw-rotate-z { syntax: "*"; inherits: false; }@property --tw-skew-x { syntax: "*"; inherits: false; }@property --tw-skew-y { syntax: "*"; inherits: false; }@property --tw-scroll-snap-strictness { syntax: "*"; inherits: false; initial-value: proximity; }@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-space-x-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-divide-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }@property --tw-gradient-position { syntax: "*"; inherits: false; }@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-stops { syntax: "*"; inherits: false; }@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }@property --tw-leading { syntax: "*"; inherits: false; }@property --tw-font-weight { syntax: "*"; inherits: false; }@property --tw-tracking { syntax: "*"; inherits: false; }@property --tw-ordinal { syntax: "*"; inherits: false; }@property --tw-slashed-zero { syntax: "*"; inherits: false; }@property --tw-numeric-figure { syntax: "*"; inherits: false; }@property --tw-numeric-spacing { syntax: "*"; inherits: false; }@property --tw-numeric-fraction { syntax: "*"; inherits: false; }@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-shadow-color { syntax: "*"; inherits: false; }@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-ring-color { syntax: "*"; inherits: false; }@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-inset-ring-color { syntax: "*"; inherits: false; }@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-ring-inset { syntax: "*"; inherits: false; }@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0; }@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-outline-style { syntax: "*"; inherits: false; initial-value: solid; }@property --tw-blur { syntax: "*"; inherits: false; }@property --tw-brightness { syntax: "*"; inherits: false; }@property --tw-contrast { syntax: "*"; inherits: false; }@property --tw-grayscale { syntax: "*"; inherits: false; }@property --tw-hue-rotate { syntax: "*"; inherits: false; }@property --tw-invert { syntax: "*"; inherits: false; }@property --tw-opacity { syntax: "*"; inherits: false; }@property --tw-saturate { syntax: "*"; inherits: false; }@property --tw-sepia { syntax: "*"; inherits: false; }@property --tw-drop-shadow { syntax: "*"; inherits: false; }@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }@property --tw-backdrop-blur { syntax: "*"; inherits: false; }@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }@property --tw-backdrop-invert { syntax: "*"; inherits: false; }@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }@property --tw-duration { syntax: "*"; inherits: false; }@property --tw-ease { syntax: "*"; inherits: false; }@keyframes spin {   100% { transform: rotate(360deg); }}@keyframes pulse {   50% { opacity: 0.5; }}      .pcg-results-list { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }      .pcg-result-item { margin: 0; padding: 0; list-style: none; }      .pcg-result-btn { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 1rem; border: none; background: transparent; cursor: pointer; text-align: left; transition: background 0.2s; height: 76px; }      .pcg-result-btn.hovered { background-color: #f9fafb; }      .pcg-result-border { border-bottom: 1px solid #f5f5f5; }      .pcg-result-content { display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding-right: 1rem; flex: 1; }      .pcg-result-meta-row { display: flex; align-items: center; gap: 0.5rem; overflow: hidden; }      .pcg-result-title { color: #000000; font-weight: bold; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }      .pcg-meta-date { color: #737373; font-size: 0.75rem; text-transform: uppercase; letter-spacing: -0.025em; flex-shrink: 0; }      .pcg-result-summary { color: #737373; font-size: 0.75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 0.25rem; }      .pcg-result-actions { display: flex; align-items: center; gap: 1rem; flex: none; }      .pcg-score { color: #DC1F26; font-weight: 900; font-size: 1.25rem; font-style: italic; }      .pcg-result-arrow { color: #d4d4d4; transition: color 0.2s; }      .pcg-reader-msg { text-align: center; padding: 2rem; color: #737373; }      .pcg-reader-loading { display: flex; justify-content: center; align-items: center; height: 100%; min-height: 400px; }      .pcg-reader-loading p { color: #DC1F26; }      .pcg-prose-content { max-width: 65ch; margin: 0 auto; padding: 0 0.5rem; }      .pcg-reader-header { margin-bottom: 2rem; }      .pcg-reader-title { font-size: 1.75rem; font-weight: bold; line-height: 1.2; margin-bottom: 1rem; }      .pcg-reader-meta { display: flex; gap: 0.75rem; align-items: center; font-size: 0.875rem; font-weight: 500; color: #52525b; text-transform: uppercase; letter-spacing: 0.05em; }      .pcg-reader-meta-divider { color: #d4d4d8; }      .pcg-reader-body { line-height: 1.6; color: #262626; font-size: 1.125rem; }      .pcg-prose-content img { width: 100%; height: auto; margin: 1.5rem 0; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); border-radius: 0.5rem; }       .pcg-prose-content a { color: #e11d48; text-decoration: none; font-weight: 500; }       .pcg-prose-content a:hover { text-decoration: underline; }       .pcg-prose-content p { margin-bottom: 1.5em !important; display: block !important; }    </style></head><body style="margin:0; padding:0; background:transparent;">  <div style="position: relative;">    <div class="w-full max-w-2xl mx-auto flex justify-center" id="widget-1bec2uw"><div class="w-full max-w-2xl mx-auto font-sans relative"><div id="pcg-search-container" class="bg-[#ededed] p-2 sm:p-3 rounded-full shadow-sm relative z-20 flex items-center"><div class="relative w-full text-sm sm:text-base md:text-lg"><div class="absolute left-4 top-1/2 -translate-y-1/2 text-[#DC1F26]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search w-5 h-5 sm:w-6 sm:h-6" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></div><input id="pcg-search" placeholder="Search our 104 gaming mouse reviews" class="w-full bg-white border-2 border-[#DC1F26] rounded-full py-3 sm:py-4 pl-12 sm:pl-14 pr-10 outline-none text-black placeholder-neutral-500 shadow-inner focus:ring-4 focus:ring-[#DC1F26]/20 transition-all font-medium text-ellipsis overflow-hidden" type="text" value=""></div></div><div id="pcg-footer-stats" class="mt-4 text-center text-sm sm:text-base font-semibold text-neutral-600 px-4">PC Gamer has reviewed <span id="pcg-total-reviews">1336</span> PC gaming goodies since 2020</div></div>      <section id="pcg-dropdown-container" class="absolute top-[76px] sm:top-[88px] left-2 right-2 sm:left-3 sm:right-3 z-50 bg-white border-2 border-[#DC1F26] rounded-2xl shadow-xl flex-col overflow-hidden" style="display: none; max-height: 380px;">        <header style="display: flex; align-items: center; justify-content: space-between; background: #fafafa; padding: 0.75rem 1rem; border-bottom: 1px solid #f5f5f5;">          <h3 id="pcg-dropdown-title" style="font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #737373; margin: 0;">Latest Reviews</h3>          <div style="display: flex; align-items: center;">            <span style="font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #737373; margin-right: 1.25rem; user-select: none;">Score</span>            <button id="pcg-close-btn" aria-label="Close" style="color: #a3a3a3; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;">               <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="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>            </button>          </div>        </header>        <nav aria-label="Search Results" id="pcg-results" style="overflow-y: auto;">        </nav>      </section>            <article id="pcg-reader-container" class="absolute top-[80px] sm:top-[92px] left-2 right-2 sm:left-3 sm:right-3 z-[100] bg-white border-2 border-[#DC1F26] rounded-2xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.4)] flex-col overflow-hidden" style="display: none; height: 600px;">        <header style="display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid #f5f5f5; flex: none; background: white; position: relative;">          <div style="flex: 1;">            <span style="font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #a3a3a3;">Reader view</span>          </div>                    <div style="position: absolute; left: 50%; transform: translateX(-50%); text-align: center;" id="pcg-reader-link-container">          </div>          <div style="flex: 1; display: flex; justify-content: flex-end;">            <button id="pcg-reader-close" aria-label="Close Reader" style="color: #a3a3a3; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;">              <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="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>            </button>          </div>        </header>        <div id="pcg-reader-content" style="flex: 1; padding: 1rem 1rem 3rem; overflow-y: auto; background: white; font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;">        </div>      </article>    </div>  </div>        <script>        const API_BASE = "https://airedale-version-review-widget-builder.ai.studio";        const CATEGORY = "Gaming Mice";        const INITIALLY_OPEN = false;        // Embedded complete category data        let LOCAL_REVIEWS = JSON.parse(decodeURIComponent("%5B%7B%22id%22%3A%22WMXAonUQQtoWEioUkjrHQ9%22%2C%22title%22%3A%22AngryMiao%20AM%20Infinity.97%20mouse%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fangrymiao-am-infinity-97-mouse-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-19T12%3A20%3A28Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FJFKjNACJuiQRvtSxGHrSRo.jpg%22%2C%22strapline%22%3A%22Flagship%20speed%2C%20boutique%20flair.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22gaming%20mouse%22%2C%22Asus%22%5D%2C%22score%22%3A88%2C%22summary%22%3A%22Flagship%20speed%2C%20boutique%20flair.%22%7D%2C%7B%22id%22%3A%22VoC7Nefyvxfz8vx7DkQY6G%22%2C%22title%22%3A%22Razer%20Naga%20V3%20Pro%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Frazer-naga-v3-pro-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-18T09%3A18%3A44Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FbxiLAwj2yKPCob3YQrKmwP.jpg%22%2C%22strapline%22%3A%22An%20upgrade%20in%20pretty%20much%20every%20way%20(if%20you%20ignore%20the%20audible%20ping%20of%20the%20switches).%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22gaming%20mouse%22%2C%22Asus%22%5D%2C%22score%22%3A84%2C%22summary%22%3A%22An%20upgrade%20in%20pretty%20much%20every%20way%20(if%20you%20ignore%20the%20audible%20ping%20of%20the%20switches).%22%7D%2C%7B%22id%22%3A%229rH2aY9tFgUwQt6sayPTuA%22%2C%22title%22%3A%22Asus%20ROG%20Harpe%20II%20Extreme%20Edition%2020%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fasus-rog-harpe-ii-extreme-edition-20-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-14T12%3A04%3A08Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2F5Z5HG6hDyVtLXotzVznxzd.jpg%22%2C%22strapline%22%3A%22The%20most%20luxurious%20gaming%20mouse%20I've%20managed%20to%20get%20grubby.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22gaming%20mouse%22%2C%22Asus%22%2C%22Asus%20ROG%20Harpe%20II%20Extreme%20Edition%2020%22%5D%2C%22score%22%3A72%2C%22summary%22%3A%22The%20most%20luxurious%20gaming%20mouse%20I've%20managed%20to%20get%20grubby.%22%7D%2C%7B%22id%22%3A%227Ck8uEtqvvSPUEMBEB3WBL%22%2C%22title%22%3A%22Pulsar%20Feinmann%20F01%20Noctua%20Edition%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fpulsar-feinmann-f01-noctua-edition-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-11T14%3A22%3A21Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FVwUWxAQNqmnvcuJzK3zznH.jpg%22%2C%22strapline%22%3A%22Breezy%20and%20comfortable%2C%20but%20I'm%20not%20a%20fan%20of%20its%20price%20and%20battery.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22budget%20gaming%20mice%22%2C%22gaming%20mouse%22%2C%22budget%20gaming%20mouse%22%2C%22Noctua%22%5D%2C%22score%22%3A73%2C%22summary%22%3A%22Breezy%20and%20comfortable%2C%20but%20I'm%20not%20a%20fan%20of%20its%20price%20and%20battery.%22%7D%2C%7B%22id%22%3A%22oFURMEnCZ5FiByvBsJjKtG%22%2C%22title%22%3A%22Mchose%20K7%20V2%20Ultra%2B%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fmchose-k7-v2-ultra-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-07-31T11%3A12%3A44Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FJPWDDosBpyPGimW3CEGTPg.jpg%22%2C%22strapline%22%3A%22Great%20specs%20with%20a%20Viper%20V3%2FV4%20Pro's%20shape%2C%20for%20less.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22gaming%20mice%22%2C%22MCHOSE%22%2C%22Mchose%20K7%20V2%20Ultra%2B%22%2C%22Razer%20Viper%20V4%20Pro%22%5D%2C%22score%22%3A89%2C%22summary%22%3A%22Great%20specs%20with%20a%20Viper%20V3%2FV4%20Pro's%20shape%2C%20for%20less.%22%7D%2C%7B%22id%22%3A%2274wWM4f8JebSDZj7RERSUU%22%2C%22title%22%3A%22Asus%20ProArt%20Mouse%20MD301%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fasus-proart-mouse-md301%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-07-08T16%3A12%3A04Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FCDsLPYCyTeZscFLF2sjGHQ.jpg%22%2C%22strapline%22%3A%22A%20professional%20design%2C%20but%20with%20enough%20quirks%20to%20give%20me%20pause.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Asus%22%2C%22ergonomic%20mouse%22%2C%22Logitech%20MX%20Master%204%22%2C%22mouse%22%2C%22polling%20rate%22%2C%22mouse%20sensor%22%2C%22Asus%20ProArt%20Mouse%20MD301%22%5D%2C%22score%22%3A71%2C%22summary%22%3A%22A%20professional%20design%2C%20but%20with%20enough%20quirks%20to%20give%20me%20pause.%22%7D%2C%7B%22id%22%3A%22K53srydpKdGNFuLaqCTAra%22%2C%22title%22%3A%22Logitech%20Mobi%20Fold%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Flogitech-mobi-fold-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-07-07T11%3A41%3A33Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FFgQTQfXDfPekUFgZ9dwEZ7.jpg%22%2C%22strapline%22%3A%22Is%20that%20a%20mouse%20in%20your%20pocket%20or%20do%20you%20need%20to%20see%20a%20doctor%3F%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22gaming%20mouse%22%2C%22travel%20mouse%22%2C%22Logitech%22%2C%22Mobi%20Fold%22%5D%2C%22score%22%3A65%2C%22summary%22%3A%22Is%20that%20a%20mouse%20in%20your%20pocket%20or%20do%20you%20need%20to%20see%20a%20doctor%3F%22%7D%2C%7B%22id%22%3A%22CpybdgtNoaxnCfqj8qUD36%22%2C%22title%22%3A%22Logitech%20G305%20X%20Superlight%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Flogitech-g305-x-superlight-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-06-19T15%3A37%3A08Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FpTZdszAGGB42CfodWGhPqb.jpg%22%2C%22strapline%22%3A%22A%20solid%20and%20fairly%20plain%20upgrade%20on%20the%20original%2C%20but%20not%20wholly%20better%20either.%20%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22budget%20gaming%20mice%22%2C%22gaming%20mouse%22%2C%22budget%20gaming%20mouse%22%5D%2C%22score%22%3A70%2C%22summary%22%3A%22A%20solid%20and%20fairly%20plain%20upgrade%20on%20the%20original%2C%20but%20not%20wholly%20better%20either.%20%22%7D%2C%7B%22id%22%3A%229yFaBcP8M4acKy3vvNHd3S%22%2C%22title%22%3A%22MSI%20Versa%20300%20Wireless%208K%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fmsi-versa-300-wireless-8k-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-06-15T15%3A35%3A37Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FJBmtjZP3tFxWBytcBD26Jb.jpg%22%2C%22strapline%22%3A%22Surprisingly%20potent.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22MSI%22%2C%22gaming%20mouse%22%2C%228K%22%2C%22mouse%22%2C%22gaming%20mice%22%5D%2C%22score%22%3A72%2C%22summary%22%3A%22Surprisingly%20potent.%22%7D%2C%7B%22id%22%3A%22PnfkWCANTGjwi9CK2iZQBN%22%2C%22title%22%3A%22ProtoArc%20EM25%20ergonomic%20mouse%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fprotoarc-em25-ergonomic-mouse-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-06-12T16%3A31%3A51Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FZwZJejJtPeZcajbcwMNWfX.jpg%22%2C%22strapline%22%3A%22Rough%20around%20the%20edges.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22ergonomic%20mouse%22%2C%22ProtoArc%22%2C%22ProtoArc%20EM25%22%2C%22RF%202.4%20GHz%22%2C%22Bluetooth%22%2C%22wireless%20mouse%22%5D%2C%22score%22%3A40%2C%22summary%22%3A%22Rough%20around%20the%20edges.%22%7D%5D"));                const searchInput = document.getElementById("pcg-search");        const resultsContainer = document.getElementById("pcg-results");        const dropdownContainer = document.getElementById("pcg-dropdown-container");        const closeBtn = document.getElementById("pcg-close-btn");        const titleSpan = document.getElementById("pcg-dropdown-title");                const readerContainer = document.getElementById("pcg-reader-container");        const readerContent = document.getElementById("pcg-reader-content");        const readerCloseBtn = document.getElementById("pcg-reader-close");                let debounceTimer;                function updateIframeHeight(isDropdownOpen, isReaderOpen = false) {          let newHeight = '140px';          if (isReaderOpen) {            newHeight = '720px';          } else if (isDropdownOpen) {            newHeight = '500px';          }                    let resizedSuccessfully = false;          try {            if (window.frameElement) {              window.frameElement.style.height = newHeight;              resizedSuccessfully = true;            }          } catch (e) {            // Ignore cross-origin error when accessing frameElement          }                    if (!resizedSuccessfully && window.parent && window.parent !== window) {            try {              // Send message to parent only for cross-origin resizing               // using '*' to avoid target origin mismatch errors              window.parent.postMessage({ type: 'pcg-widget-resize', height: newHeight }, '*');            } catch (e) {}          }        }        function closeReader() {          readerContainer.style.display = 'none';          readerContent.innerHTML = '';          updateIframeHeight(dropdownContainer.style.display === 'flex', false);        }        if (readerCloseBtn) readerCloseBtn.addEventListener('click', closeReader);                function closeDropdown() {          dropdownContainer.style.display = 'none';          updateIframeHeight(false, readerContainer.style.display === 'flex');        }                function openDropdown() {          dropdownContainer.style.display = 'flex';          closeReader();          updateIframeHeight(true, false);        }                if (closeBtn) closeBtn.addEventListener("click", closeDropdown);                document.addEventListener("click", (e) => {           if (!searchInput.contains(e.target) && !dropdownContainer.contains(e.target) && !readerContainer.contains(e.target)) {               closeDropdown();           }        });                const TOTAL_COUNT = 1336;        const CATEGORY_COUNT = 76;        function initializeStats() {           const totalSpan = document.getElementById("pcg-total-reviews");           if (totalSpan) totalSpan.textContent = TOTAL_COUNT;                      if (searchInput && CATEGORY_COUNT > 0) {             function formatCat(cat) {               if (cat === "PC gaming hardware") return "PC gaming hardware";               if (cat === "Handheld Gaming PCs") return "handheld gaming PC";                if (cat === "Gaming PCs") return "gaming PC";               if (cat === "Gaming Mice") return "gaming mouse";               if (cat === "Memory" || cat === "Cooling" || cat === "Lighting" || cat === "Hardware") return cat.toLowerCase();               if (cat === "Earbuds & Headphones") return "earbud & headphone";               return cat.replace(/s$/i, '').toLowerCase();             }             const formattedCat = formatCat(CATEGORY);             searchInput.placeholder = CATEGORY_COUNT > 50 ? "Search our " + CATEGORY_COUNT + " " + formattedCat + " reviews" : "Search our " + formattedCat + " reviews";           }        }                initializeStats();        function fetchResults(q) {          if (q) {             titleSpan.textContent = "Search Results";          } else {             titleSpan.textContent = "Latest " + (CATEGORY === "PC gaming hardware" ? "PC gaming hardware" : CATEGORY) + " Reviews";          }                     if (!q) {            renderResults(LOCAL_REVIEWS);            return;          }                    resultsContainer.innerHTML = '<p style="padding:2rem;text-align:center;color:#737373;">Loading...</p>';                    fetch(API_BASE + "/api/reviews?category=" + encodeURIComponent(CATEGORY) + "&q=" + encodeURIComponent(q) + "&limit=20")            .then(res => res.json())            .then(data => {               renderResults(data.results || []);            })            .catch(err => {               console.error("Search failed:", err);               resultsContainer.innerHTML = '<p style="padding:2rem;text-align:center;color:#DC1F26;">Error searching reviews.</p>';            });        }                function renderResults(results) {          if(!results || results.length === 0) {            resultsContainer.innerHTML = '<p class="pcg-reader-msg">No results found.</p>';            return;          }          let html = '<ul class="pcg-results-list">';          results.forEach((res, i) => {            let scoreHtml = res.score ? '<div class="pcg-score" aria-label="Score: ' + res.score + '">' + res.score + '</div>' : '';                        // Format URL properly            let targetUrl = res.url.startsWith("http") ? res.url : "https://www.pcgamer.com" + res.url;                        let borderClass = i < results.length - 1 ? 'pcg-result-border' : '';                        let dateHtml = '';            if (res.publishDate) {              try {                let dateStr = new Date(res.publishDate).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });                dateHtml = '<span class="pcg-meta-date">' + dateStr + '</span>';              } catch(e) {}            }                        let subHtml = '<span class="pcg-result-summary">' + (res.summary || "") + '</span>';                        html += '<li class="pcg-result-item"><button aria-label="Read ' + (res.title || "Review").replace(/"/g, '&quot;') + '" onclick="openReaderInPage(\'' + targetUrl + '\')" class="pcg-result-btn ' + borderClass + '" onmouseover="this.classList.add(\'hovered\')" onmouseout="this.classList.remove(\'hovered\')" >' +                  '<div class="pcg-result-content">' +                    '<div class="pcg-result-meta-row">' +                       '<span class="pcg-result-title">' + (res.title || "Review") + '</span>' +                      dateHtml +                     '</div>' +                    subHtml +                  '</div>' +                  '<div class="pcg-result-actions">' +                    scoreHtml +                    '<span class="pcg-result-arrow" aria-hidden="true">→</span>' +                  '</div>' +              '</button></li>';          });          html += '</ul>';          resultsContainer.innerHTML = html;                    updateJSONLD(results);        }        function updateJSONLD(results) {          let ldScript = document.getElementById('pcg-json-ld');          if (!ldScript) {            ldScript = document.createElement('script');            ldScript.type = 'application/ld+json';            ldScript.id = 'pcg-json-ld';            document.head.appendChild(ldScript);          }                    const itemListElements = results.slice(0, 50).map((res, index) => {            let targetUrl = res.url.startsWith("http") ? res.url : "https://www.pcgamer.com" + res.url;            let itemName = (res.title || "Product").replace(/\s+review$/i, '');            let schemaItem = {              "@type": "Product",              "name": itemName,              "image": res.image || targetUrl,              "review": {                "@type": "Review",                "url": targetUrl,                "name": res.title || "Review",                "datePublished": res.publishDate || new Date().toISOString().split('T')[0],                "author": {                  "@type": "Organization",                  "name": "PC Gamer"                },                "publisher": {                  "@type": "Organization",                  "name": "PC Gamer"                }              }            };            if (res.score) {              schemaItem.review.reviewRating = {                "@type": "Rating",                "ratingValue": res.score,                "bestRating": "100",                "worstRating": "1"              };            }            return {              "@type": "ListItem",              "position": index + 1,              "item": schemaItem            };          });          const schema = {            "@context": "https://schema.org",            "@type": "ItemList",            "itemListElement": itemListElements          };          ldScript.textContent = JSON.stringify(schema);        }        function openReaderInPage(targetUrl) {          closeDropdown();          readerContainer.style.display = 'flex';          updateIframeHeight(false, true);          const readerLinkContainer = document.getElementById("pcg-reader-link-container");          if (readerLinkContainer) {            readerLinkContainer.innerHTML = '<a href="' + targetUrl + '" target="_blank" rel="noopener noreferrer" class="bg-[#DC1F26] text-white px-3 py-1.5 rounded-full font-sans text-[11px] md:text-xs font-bold hover:bg-black transition-colors border-2 border-[#DC1F26] hover:border-black shadow-sm inline-block" style="text-decoration: none;">Read full review</a>';          }          readerContent.innerHTML = '<div class="pcg-reader-loading"><p>Loading article...</p></div>';          fetch(API_BASE + "/api/content?q=" + btoa(targetUrl))            .then(res => res.json())            .then(data => {               if(!data || !data.content) {                 readerContent.innerHTML = '<div class="pcg-reader-msg">Could not load article content.</div>';                 return;               }               let html = '<div class="pcg-prose-content">';               html += '<header class="pcg-reader-header">';               html += '<h1 class="pcg-reader-title">' + (data.title || '') + '</h1>';                              if (data.byline || data.date) {                 html += '<div class="pcg-reader-meta">';                 if (data.byline) {                   html += '<span>BY ' + data.byline + '</span>';                 }                 if (data.byline && data.date) {                   html += '<span class="pcg-reader-meta-divider">|</span>';                 }                 if (data.date) {                   html += '<span>PUBLISHED ' + data.date + '</span>';                 }                 html += '</div>';               }               html += '</header>';                              html += '<div class="pcg-reader-body">';               html += data.content;               html += '</div></div>';                              readerContent.innerHTML = html;            })            .catch(err => {               console.error(err);               readerContent.innerHTML = '<div class="pcg-reader-msg">An error occurred loading the article.</div>';            });        }        const searchBoxContainer = document.getElementById("pcg-search-container");        if (searchBoxContainer) {           searchBoxContainer.addEventListener("click", () => {              openDropdown();           });        }                if (searchInput) {          searchInput.addEventListener("focus", () => {             openDropdown();          });          searchInput.addEventListener("click", () => {             openDropdown();          });          searchInput.addEventListener("input", (e) => {            openDropdown();            clearTimeout(debounceTimer);            debounceTimer = setTimeout(() => fetchResults(e.target.value), 500);          });                    // Initial render with embedded cache          fetchResults("");                    if (INITIALLY_OPEN) {            openDropdown();          }                    // Background revalidate          fetch(API_BASE + "/api/reviews?category=" + encodeURIComponent(CATEGORY) + "&limit=10")            .then(res => res.json())            .then(data => {               if (data && data.results && data.results.length > 0) {                 LOCAL_REVIEWS = data.results;                 // If the user hasn't typed anything yet, refresh the UI silently                 if (!searchInput.value) {                   fetchResults("");                 }               }            })            .catch(err => console.error("Background refresh failed:", err));        }      </script>    </body></html>"   width="100%"   height="140"   style="border: none; width: 100%; max-width: 1024px; margin: 0 auto; display: block; background: transparent; transition: height 0.3s ease-out;"   title="PC Gamer Gaming Mice Widget"></iframe></div><h2 class="article-body__section" id="section-black-friday-gaming-mouse-deals"><span>Black Friday gaming mouse deals</span></h2><div class="product"><a data-dimension112="a8b4aa14-cd64-11f1-a53e-2fb60877bcff" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="$26.99" href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1401px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="qgFqUinn2HCKHEThJ47QpC" name="1636734797.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC-1920-80.jpg" mos="" align="middle" fullscreen="" width="1401" height="1401" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" target="_blank" rel="nofollow" data-dimension112="a8b4aa14-cd64-11f1-a53e-2fb60877bcff" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="$26.99">G203 | Wired: was $34.99 now $26.99</a></strong><br>This rodent is perfect as a starter or low-budget option, with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software. This mouse proves that you don't need to go fancy to get a great gaming peripheral.</p><p><strong>Key specs: Wired | 8,000 DPI | Right-handed</strong></p><p><strong>Price check:</strong> <a href="https://www.bestbuy.com/site/logitech-g203-lightsync-wired-optical-gaming-mouse-with-8000-dpi-sensor-white/6409362.p?skuId=6409362" target="_blank">Best Buy $29.95</a><a class="view-deal button" href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" target="_blank" rel="nofollow" data-dimension112="a8b4aa14-cd64-11f1-a53e-2fb60877bcff" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="$26.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4aa78-cd64-11f1-aee3-4961995ae782" data-action="Deal Block" data-label="G305 Lightspeed | Wireless" data-dimension48="G305 Lightspeed | Wireless" data-dimension25="$29.99" href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:212px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="krHdzSvvW5EskC6Keg74P9" name="1700740513.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9-1920-80.jpg" mos="" align="middle" fullscreen="" width="212" height="212" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4aa78-cd64-11f1-aee3-4961995ae782" data-action="Deal Block" data-label="G305 Lightspeed | Wireless" data-dimension48="G305 Lightspeed | Wireless" data-dimension25="$29.99">G305 Lightspeed | Wireless: was $49.99 now $29.99</a></strong><br>The Logitech G305 Lightspeed is our<a href="https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse" target="_blank"> favorite budget wireless mouse</a>—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily <em>that </em>out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills.</p><p><strong>Key specs: Wireless | 12,000 DPI | Right-handed</strong></p><p><strong>Price check: </strong><a href="https://www.bestbuy.com/product/logitech-g305-lightspeed-wireless-optical-6-programmable-button-gaming-mouse-with-12000-dpi-hero-sensor-wireless-white/J7H7ZY2ZYR" target="_blank">Best Buy $36.99</a><a class="view-deal button" href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4aa78-cd64-11f1-aee3-4961995ae782" data-action="Deal Block" data-label="G305 Lightspeed | Wireless" data-dimension48="G305 Lightspeed | Wireless" data-dimension25="$29.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4ab40-cd64-11f1-b17a-a94c7990eaa8" data-action="Deal Block" data-label="Model O Eternal | Wired" data-dimension48="Model O Eternal | Wired" data-dimension25="$29.99" href="https://www.bestbuy.com/product/glorious-model-o-eternal-lightweight-wired-optical-gaming-mouse-with-dual-zone-rgb-lighting-wired-matte-white/J39TGZ8SRL" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="xuXRzZ72Wy2yQ9oAS9r3A4" name="Model O Eternal | Wired" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xuXRzZ72Wy2yQ9oAS9r3A4-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/glorious-model-o-eternal-lightweight-wired-optical-gaming-mouse-with-dual-zone-rgb-lighting-wired-matte-white/J39TGZ8SRL" target="_blank" rel="nofollow" data-dimension112="a8b4ab40-cd64-11f1-b17a-a94c7990eaa8" data-action="Deal Block" data-label="Model O Eternal | Wired" data-dimension48="Model O Eternal | Wired" data-dimension25="$29.99">Model O Eternal | Wired: $29.99</a></strong><br>You aren't packing an incredibly high DPI or polling rate with this mouse, but you are getting strong performance for the price, as well as a lightweight, comfortable build, and solid software. Cheap and cheerful is the aim here.</p><p><strong>Key specs: 12,000 DPI | 300 IPS |  1,000 Hz | 55 g</strong></p><p><strong>Price check: </strong><a href="https://www.amazon.com/dp/B0F9B79WBR" target="_blank">Amazon $39.99</a><strong></strong><a class="view-deal button" href="https://www.bestbuy.com/product/glorious-model-o-eternal-lightweight-wired-optical-gaming-mouse-with-dual-zone-rgb-lighting-wired-matte-white/J39TGZ8SRL" target="_blank" rel="nofollow" data-dimension112="a8b4ab40-cd64-11f1-b17a-a94c7990eaa8" data-action="Deal Block" data-label="Model O Eternal | Wired" data-dimension48="Model O Eternal | Wired" data-dimension25="$29.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4aadc-cd64-11f1-80ca-331a4b79dc87" data-action="Deal Block" data-label="G502 Hero | Wired" data-dimension48="G502 Hero | Wired" data-dimension25="$37.99" href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="SaXBHtPWoMGvzcyvsLNQQX" name="1698934268.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" target="_blank" rel="nofollow" data-dimension112="a8b4aadc-cd64-11f1-80ca-331a4b79dc87" data-action="Deal Block" data-label="G502 Hero | Wired" data-dimension48="G502 Hero | Wired" data-dimension25="$37.99">G502 Hero | Wired: was $69.99 now $37.99</a></strong><br>This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. </p><p><strong>Key specs: Wired | 25,600 DPI | Right-handed</strong></p><p><strong>Price check:</strong> <a href="https://www.bestbuy.com/site/logitech-g502-hero-wired-optical-gaming-mouse-with-rgb-lighting-black/6265133.p?skuId=6265133" target="_blank">Best Buy $37.99</a><a class="view-deal button" href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" target="_blank" rel="nofollow" data-dimension112="a8b4aadc-cd64-11f1-80ca-331a4b79dc87" data-action="Deal Block" data-label="G502 Hero | Wired" data-dimension48="G502 Hero | Wired" data-dimension25="$37.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4abae-cd64-11f1-ad69-8f26d7d00642" data-action="Deal Block" data-label="Retro R8 | Wireless" data-dimension48="Retro R8 | Wireless" data-dimension25="$44.99" href="https://www.amazon.com/Charging-Optical-Wireless-Programmable-Switches/dp/B0F37BTPPH" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="6ftyiD7DphdvJ2Z5PfoAKh" name="PCGamer Deal Block (1)" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6ftyiD7DphdvJ2Z5PfoAKh-1920-80.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Charging-Optical-Wireless-Programmable-Switches/dp/B0F37BTPPH" target="_blank" rel="nofollow" data-dimension112="a8b4abae-cd64-11f1-ad69-8f26d7d00642" data-action="Deal Block" data-label="Retro R8 | Wireless" data-dimension48="Retro R8 | Wireless" data-dimension25="$44.99">Retro R8 | Wireless: was $49.99 now $44.99</a></strong><br>Our James <a href="https://www.pcgamer.com/hardware/gaming-mice/8bitdo-retro-r8-gaming-mouse-review/" target="_blank">reviewed the 8BitDo Retro R8</a>, giving it an 87%, and for good reason. It's a mouse with a super unique look, good specs for the price, and it even comes with a cute charging stand. The retro feel is definitely something to get used to, with buttons that are sunken into the mouse itself, but it's a joy to use regardless. <strong>The 10% discount comes in at checkout.</strong></p><p><strong>Key specs: up to 8,000 Hz polling | 26,000 DPI | 77 g | up to 100-hour battery life</strong></p><p><strong>Price check: </strong><a href="https://www.newegg.com/p/32K-00R0-00033" target="_blank">Newegg $49.99</a><em><strong></strong></em><a class="view-deal button" href="https://www.amazon.com/Charging-Optical-Wireless-Programmable-Switches/dp/B0F37BTPPH" target="_blank" rel="nofollow" data-dimension112="a8b4abae-cd64-11f1-ad69-8f26d7d00642" data-action="Deal Block" data-label="Retro R8 | Wireless" data-dimension48="Retro R8 | Wireless" data-dimension25="$44.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4ac12-cd64-11f1-bf3b-890006427546" data-action="Deal Block" data-label="Burst II Air | Wireless" data-dimension48="Burst II Air | Wireless" data-dimension25="$54.99" href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1504px;"><p class="vanilla-image-block" style="padding-top:99.34%;"><img id="oHpVvSDqMgFC5rnRe2pUnQ" name="1790601251.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1504" height="1494" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4ac12-cd64-11f1-bf3b-890006427546" data-action="Deal Block" data-label="Burst II Air | Wireless" data-dimension48="Burst II Air | Wireless" data-dimension25="$54.99">Burst II Air | Wireless: was $99.99 now $54.99</a></strong><br>We gave this mouse an 85% in <a href="https://www.pcgamer.com/hardware/gaming-mice/turtle-beach-burst-ii-air-review/" target="_blank">our review</a>, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price.</p><p><strong>Key specs: Wireless | 26,000 DPI | Symmetrical</strong></p><p><strong>Price check:</strong> <a href="https://www.bestbuy.com/site/turtle-beach-burst-ii-air-ultra-lightweight-wireless-symmetrical-gaming-mouse-with-bluetooth-120-hour-battery-black/6579301.p?skuId=6579301" target="_blank">Best Buy $99.99</a><a class="view-deal button" href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4ac12-cd64-11f1-bf3b-890006427546" data-action="Deal Block" data-label="Burst II Air | Wireless" data-dimension48="Burst II Air | Wireless" data-dimension25="$54.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4acda-cd64-11f1-a2d5-e3dd542acdae" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="$66.99" href="https://www.amazon.com/dp/B0FKJ2J2R8" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="4AaJcaYRutRHqs8C5qjfye" name="Sabre V2 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4AaJcaYRutRHqs8C5qjfye-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0FKJ2J2R8" target="_blank" rel="nofollow" data-dimension112="a8b4acda-cd64-11f1-a2d5-e3dd542acdae" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="$66.99">Sabre V2 Pro: was $99.99 now $66.99</a></strong><br>Earning a <a href="https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/" target="_blank">92% score from our Jacob Fox</a> last year, this ultra-light gaming mouse is a bit of a beast. It's light, sturdy and comes with a great sensor too. </p><p><strong>Key specs: 33K sensor | Wireless | 36 g weight | 8,000 Hz</strong><a class="view-deal button" href="https://www.amazon.com/dp/B0FKJ2J2R8" target="_blank" rel="nofollow" data-dimension112="a8b4acda-cd64-11f1-a2d5-e3dd542acdae" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="$66.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4ae7e-cd64-11f1-adad-213dd2fda4f5" data-action="Deal Block" data-label="Viper V3 Pro | Wireless" data-dimension48="Viper V3 Pro | Wireless" data-dimension25="$99.27" href="https://www.amazon.com/Razer-Viper-Wireless-Esports-Gaming/dp/B0CVRGCGWJ/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1509px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="xR8QJpjHGx27FS3pZnYBj7" name="1790601520.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xR8QJpjHGx27FS3pZnYBj7-1920-80.jpg" mos="" align="middle" fullscreen="" width="1509" height="1509" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Razer-Viper-Wireless-Esports-Gaming/dp/B0CVRGCGWJ/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4ae7e-cd64-11f1-adad-213dd2fda4f5" data-action="Deal Block" data-label="Viper V3 Pro | Wireless" data-dimension48="Viper V3 Pro | Wireless" data-dimension25="$99.27">Viper V3 Pro | Wireless: was $159.99 now $99.27</a></strong><br>Razer doesn't play around with its compact Viper line-up. The V3 Pro is pretty light, feels great in hand, and tracks your movement like any other high-end mouse. It's top-tier and a little cheaper than the newer V4 Pro now.</p><p><strong>Key specs: 6 buttons | 35K DPI | 8,000 Hz | 70 g</strong><a class="view-deal button" href="https://www.amazon.com/Razer-Viper-Wireless-Esports-Gaming/dp/B0CVRGCGWJ/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4ae7e-cd64-11f1-adad-213dd2fda4f5" data-action="Deal Block" data-label="Viper V3 Pro | Wireless" data-dimension48="Viper V3 Pro | Wireless" data-dimension25="$99.27">View Deal</a></p></div><h2 id="check-out-all-our-latest-deals-in-any-category">Check out all our latest deals in any category:</h2><div class="vizualizer-embed"><fc-author-commerce-widget data-fcaw-version="1" data-fcaw-full-bleed="false">  <style data-fcaw-host-protection>fc-author-commerce-widget[data-fcaw-version="1"] {  display: block !important;  width: 100% !important;  min-width: 0 !important;  max-width: none !important;  isolation: isolate !important;  contain: style !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]{  width: min(    1200px,    var(--fcaw-viewport-width, 100vw)  ) !important;  max-width: 1200px !important;  margin-left: var(    --fcaw-full-bleed-offset,    calc(50% - min(600px, 50vw))  ) !important;  margin-right: 0 !important;  position: relative !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]  #tg-df-spreadsheet-filters {  width: min(    1500px,    var(--fcaw-viewport-width, 100vw)  ) !important;  max-width: 1500px !important;  margin-left: calc(    (      100% -      min(1500px, var(--fcaw-viewport-width, 100vw))    ) / 2  ) !important;  margin-right: 0 !important;}fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::before,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::after {  box-sizing: border-box;}</style>  <div data-fcaw-fallback class="fcaw-v1-fallback">    <style>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with 'tg-df-' to prevent CMS style leakage.    */    .tg-df-container { user-select: text; -webkit-user-select: text;      container-type: inline-size;      container-name: tg-df;                  --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-widget-host[data-tg-df-full-bleed="true"]    {      width: min(        1200px,        var(--fcaw-viewport-width, 100vw)      ) !important;      max-width: 1200px !important;      margin-left: calc(        (          100% -          min(1200px, var(--fcaw-viewport-width, 100vw))        ) / 2      ) !important;      margin-right: 0 !important;      position: relative !important;    }    .tg-df-widget-host[data-tg-df-full-bleed="true"]      #tg-df-spreadsheet-filters {      width: min(        1500px,        var(--fcaw-viewport-width, 100vw)      ) !important;      max-width: 1500px !important;      margin-left: calc(        (          100% -          min(1500px, var(--fcaw-viewport-width, 100vw))        ) / 2      ) !important;      margin-right: 0 !important;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;      position: relative;      z-index: 20;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      margin: 0 auto;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: var(--tg-df-blue);    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters-container {      position: relative;      width: 100%;      max-width: 42rem;    }    .tg-df-scroll-btn {      display: none;      position: absolute;      top: 50%;      transform: translateY(-50%);      width: 32px;      height: 32px;      background: white;      border: 1px solid var(--tg-df-border);      border-radius: 50%;      align-items: center;      justify-content: center;      cursor: pointer;      z-index: 10;      box-shadow: 0 2px 8px rgba(0,0,0,0.1);      color: var(--tg-df-text-primary);      padding: 0;    }    .tg-df-scroll-btn svg {      width: 16px;      height: 16px;    }    .tg-df-scroll-btn:hover {      background: #f4f4f4;    }    .tg-df-scroll-btn.left {      left: 0px;    }    .tg-df-scroll-btn.right {      right: 0px;    }        .tg-df-filters {      display: flex;      justify-content: center;      width: 100%;      gap: 12px;      margin: 0 auto;      max-width: 42rem;    }                 .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;      width: 100%;      max-width: 280px;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      width: 100%;      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }    .tg-df-scroll-btn {      position: absolute;      top: 50%;      transform: translateY(-50%);      width: 32px;      height: 32px;      background: white;      border: 1px solid var(--tg-df-border);      border-radius: 50%;      align-items: center;      justify-content: center;      cursor: pointer;      z-index: 10;      box-shadow: 0 2px 8px rgba(0,0,0,0.1);      color: var(--tg-df-text-primary);      padding: 0;    }    .tg-df-scroll-btn svg {      width: 16px;      height: 16px;    }    .tg-df-scroll-btn:hover {      background: #f4f4f4;    }    .tg-df-scroll-btn.left {      left: 4px;    }    .tg-df-scroll-btn.right {      right: 4px;    }    @container tg-df (max-width: 768px) {      .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; }      .tg-df-filters-container {      position: relative;      width: 100%;      max-width: 42rem;      margin: 0 auto;    }    .tg-df-filters {        justify-content: center;        width: 100%;        margin: 0 auto;        margin-bottom: -320px;        padding: 0 0 320px 0;        display: flex;        flex-wrap: nowrap;        gap: 8px;        overflow-x: auto;        overflow-y: hidden;        pointer-events: none;        scrollbar-width: none;        -webkit-overflow-scrolling: touch;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }      .tg-df-sort-wrapper {        pointer-events: auto;        flex: 0 0 auto;        width: 175px;        min-width: 175px;      }    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: calc(100% + 32px);      max-width: none;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;      margin: 0 -16px -16px -16px;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }    .tg-df-buying-guide-badge {      left: auto;      right: 12px;      max-width: calc(100% - 24px);      overflow: hidden;      text-overflow: ellipsis;      white-space: nowrap;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges { position: absolute; bottom: 8px; left: 8px; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 0; z-index: 10; }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-card-listings {      margin: 0 0 12px;    }    .tg-df-card-listings-title {      display: block;      color: var(--tg-df-text-muted);      font-size: 11px;      font-weight: 700;      letter-spacing: 0.45px;      line-height: 1.2;      margin-bottom: 4px;      text-transform: uppercase;    }    .tg-df-card-listings-links {      border-top: 1px solid var(--tg-df-border);    }    .tg-df-container .tg-df-card-listing-link {      align-items: center;      border-bottom: 1px solid var(--tg-df-border);      box-sizing: border-box;      color: var(--tg-df-blue);      display: flex;      font-size: 13px;      font-weight: 700;      justify-content: space-between;      line-height: 1.2;      min-height: 34px;      padding: 5px 2px;      text-decoration: none;    }    .tg-df-container .tg-df-card-listing-link::after {      content: '↗';      font-size: 14px;      font-weight: 600;      margin-left: 8px;    }    .tg-df-container .tg-df-card-listing-link:hover,    .tg-df-container .tg-df-card-listing-link:focus-visible {      background: #f8fafc;      color: var(--tg-df-blue);      outline: 2px solid var(--tg-df-blue);      outline-offset: -2px;      text-decoration: none;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: calc(100% + 32px);      max-width: none;      box-sizing: border-box;      background-color: var(--tg-df-blue);      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;      margin: 0 -16px -16px -16px;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      filter: brightness(0.85);    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 120px;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /* Optional mobile 2x2 filter grid */    .tg-df-mobile-2x2-container {      display: none;      width: 100%;      margin: 0 0 16px 0;      position: relative;      z-index: 30;    }    .tg-df-mobile-2x2-grid {      display: grid;      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);      width: 100%;      border: 1px solid var(--tg-df-border, #e2e8f0);      background: var(--tg-df-bg, #ffffff);    }    .tg-df-container .tg-df-mobile-grid-cell {      appearance: none;      display: flex;      align-items: center;      justify-content: space-between;      min-width: 0;      padding: 12px 14px;      font-family: inherit;      font-size: 11px;      font-weight: 600;      line-height: 1.2;      text-transform: uppercase;      letter-spacing: 0.5px;      text-align: left;      color: var(--tg-df-text-muted, #64748b);      background: var(--tg-df-bg, #ffffff);      border: 0;      border-radius: 0;      cursor: pointer;      box-shadow: none;    }    .tg-df-mobile-grid-cell > span {      overflow: hidden;      text-overflow: ellipsis;      white-space: nowrap;    }    .tg-df-mobile-grid-cell > svg {      flex: 0 0 auto;      margin-left: 8px;      transition: transform 0.15s ease;    }    .tg-df-mobile-grid-cell > svg.is-open {      transform: rotate(180deg);    }    .tg-df-mobile-grid-cell {      border-bottom: 1px solid var(--tg-df-border, #e2e8f0);    }    .tg-df-mobile-grid-cell:nth-child(odd) {      border-right: 1px solid var(--tg-df-border, #e2e8f0);    }    .tg-df-mobile-2x2-grid--even .tg-df-mobile-grid-cell:nth-last-child(-n + 2) {      border-bottom: 0;    }    .tg-df-mobile-2x2-grid--odd .tg-df-mobile-grid-cell:last-child {      grid-column: 1 / -1;      border-right: 0;      border-bottom: 0;    }    .tg-df-container .tg-df-mobile-grid-cell.active,    .tg-df-container .tg-df-mobile-grid-cell:hover {      background: var(--tg-df-bg-secondary, #f8fafc);      color: var(--tg-df-text, #0f172a);    }    .tg-df-container .tg-df-mobile-grid-cell.has-active-filter {      background: var(--tg-df-blue, #1f69ff);      color: #ffffff;    }    .tg-df-mobile-menu-drawer {      width: 100%;      max-height: 260px;      overflow-y: auto;      overscroll-behavior: contain;      border: 1px solid var(--tg-df-border, #e2e8f0);      border-top: 0;      background: var(--tg-df-bg, #ffffff);      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);    }    .tg-df-container .tg-df-mobile-menu-item {      appearance: none;      display: flex;      align-items: center;      justify-content: space-between;      width: 100%;      min-height: 42px;      padding: 12px 16px;      font-family: inherit;      font-size: 12px;      font-weight: 500;      line-height: 1.3;      text-align: left;      color: var(--tg-df-text, #0f172a);      background: var(--tg-df-bg, #ffffff);      border: 0;      border-bottom: 1px solid #f1f5f9;      border-radius: 0;      cursor: pointer;      box-shadow: none;    }    .tg-df-container .tg-df-mobile-menu-item:last-child {      border-bottom: 0;    }    .tg-df-container .tg-df-mobile-menu-item.selected {      color: var(--tg-df-blue, #1f69ff);      background: rgba(31, 105, 255, 0.08);      font-weight: 600;    }    .tg-df-container .tg-df-mobile-menu-item:hover {      background: var(--tg-df-bg-secondary, #f8fafc);    }    .tg-df-mobile-cell-badge {      display: inline-flex;      align-items: center;      justify-content: center;      padding: 2px 6px;      margin-left: 4px;      color: var(--tg-df-blue, #1f69ff);      background: rgba(31, 105, 255, 0.1);      border-radius: 9999px;      font-size: 10px;      font-weight: 700;    }    @container tg-df (max-width: 599px) {      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-mobile-2x2-container {        display: block !important;        z-index: 50;        background: var(--tg-df-bg, #ffffff);        box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"]        .tg-df-mobile-2x2-container {        position: sticky !important;        top: var(--fcaw-mobile-sticky-offset, 0px);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-controls {        display: none !important;      }    }    @media (max-width: 599px) {      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-mobile-2x2-container {        display: block !important;        z-index: 50;        background: var(--tg-df-bg, #ffffff);        box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"]        .tg-df-mobile-2x2-container {        position: sticky !important;        top: var(--fcaw-mobile-sticky-offset, 0px);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-controls {        display: none !important;      }    }    /* A non-full-bleed desktop embed is constrained to the article column.       Reuse the compact filter grid there instead of squeezing the rails. */    @container tg-df (min-width: 600px) {      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-mobile-2x2-container {        display: block !important;      }      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-controls {        display: none !important;      }    }    @media (min-width: 600px) {      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-mobile-2x2-container {        display: block !important;      }      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-controls {        display: none !important;      }    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-mobile-authors { gap: 16px !important; }      .tg-df-mobile-authors .tg-df-author-row-item { width: 56px !important; }      .tg-df-mobile-authors .tg-df-author-img-wrapper { width: 48px !important; height: 48px !important; }      .tg-df-mobile-authors .tg-df-author-brand-logo { width: 18px !important; height: 18px !important; bottom: -2px !important; right: -2px !important; }      .tg-df-mobile-authors .tg-df-author-row-name { font-size: 11px !important; }      .tg-df-mobile-authors .tg-df-author-row-role { font-size: 10px !important; }            .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; }      .tg-df-controls {        padding: 16px 0 8px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }                  .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;        width: auto;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 8px;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 5px 12px !important;        font-size: 11px !important;        height: 30px !important;        min-height: 30px !important;        border-radius: 0 !important;        flex: 0 0 auto;        text-align: center;        white-space: nowrap;        line-height: 1.2;        margin: 8px 0 0;      }    }    @media (max-width: 599px) {      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 5px 12px !important;        font-size: 11px !important;        height: 30px !important;        min-height: 30px !important;        border-radius: 0 !important;        flex: 0 0 auto;        text-align: center;        white-space: nowrap;        line-height: 1.2;        margin: 8px 0 0;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;      width: 100vw;      max-width: 1200px;      position: relative;      left: 50%;      transform: translateX(-50%);    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: var(--tg-df-blue);      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }        .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: var(--tg-df-blue);      position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }      .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: var(--tg-df-blue);      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 14px;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }        .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;      scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }    .tg-df-container .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-carousel-scroll-left {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: rgba(255, 255, 255, 0.4);      color: var(--tg-df-blue);      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);      border: none;      cursor: pointer;      transition: background-color 0.2s;      margin-top: -4px;      z-index: 10;    }    .tg-df-container .tg-df-carousel-scroll-right {      right: 0;    }    .tg-df-container .tg-df-carousel-scroll-left {      left: 0;    }    .tg-df-container .tg-df-carousel-scroll-right:hover,    .tg-df-container .tg-df-carousel-scroll-left:hover {      background-color: rgba(255, 255, 255, 0.6);    }    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left {       height: 30px;       width: 30px;       background-color: rgba(255, 255, 255, 0.8);       box-shadow: 0 2px 4px rgba(0,0,0,0.1);       margin-top: 0;       color: #0f4098;    }    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right:hover,    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left:hover {       background-color: white;    }    .tg-df-container .tg-df-grid-wrapper {       position: relative;    }    .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-left {       background-color: white;       box-shadow: 0 4px 12px rgba(0,0,0,0.15);       top: 40%;       width: 44px;       height: 44px;       color: #0f4098;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue);    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue);    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }            .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn {      display: inline-flex;      align-items: center;    }    .tg-df-container .tg-df-carousel-filter-btn:hover, .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      width: calc(100% + 24px);      border-radius: 0;      padding: 8px 10px;      margin: auto -12px -12px -12px;      background-color: var(--tg-df-blue);    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.40);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; padding-right: 12px; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @media (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }      .tg-df-container .hawk-deal-widget-title-product-title,      .tg-df-container .hawk-deal-widget-title-price,      .tg-df-container .hawk-deal-widget-title-retailer {        font-size: 14px !important;        line-height: 1.35 !important;        font-weight: 700 !important;      }      .tg-df-container .hawk-deal-widget-title-was-price {        font-size: 13px !important;        line-height: 1.35 !important;      }      .tg-df-container .hawk-deal-widget-text-body-main {        font-size: 14px !important;        line-height: 1.35 !important;        margin-bottom: 8px !important;      }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    /* BESPOKE AUTHOR HEADER STYLES - MAX ISOLATION PROTECTION */    .tg-df-author-embed {      width: 100% !important;      font-family: inherit !important;      background: transparent !important;      margin: 0 !important;      padding: 0 !important;      border: none !important;    }    .tg-df-author-section {      display: block !important;      width: 100% !important;      max-width: 100% !important;      opacity: 1 !important;      overflow: visible !important;      background: transparent !important;      border: none !important;      margin: 0 auto !important;      padding: 0 !important;      box-shadow: none !important;    }    .tg-df-author-card {      text-align: center !important;      padding: 1.75rem 1rem 1.25rem 1rem !important;      margin: 0 auto !important;      max-width: 48rem !important;      background: transparent !important;      border: none !important;      border-radius: 0 !important;      box-sizing: border-box !important;      box-shadow: none !important;    }    .tg-df-author-image {      width: 180px !important;      height: 180px !important;      border-radius: 50% !important;      object-fit: cover !important;      margin: 0 auto 0.75rem auto !important;      display: block !important;      border: none !important;      box-shadow: none !important;      max-width: 100% !important;    }    .tg-df-author-media-slot {      width: 100% !important;      height: 180px !important;      min-height: 180px !important;      margin: 0 auto 0.75rem auto !important;      display: flex !important;      align-items: center !important;      justify-content: center !important;    }    .tg-df-author-media-slot .tg-df-author-image {      margin: 0 auto !important;    }    .tg-df-author-profile-image-wrapper {      position: relative !important;      width: 180px !important;      height: 180px !important;      margin: 0 auto 0.75rem auto !important;      flex: 0 0 auto !important;    }    .tg-df-author-profile-brand-logo {      position: absolute !important;      right: 12px !important;      bottom: 12px !important;      width: 42px !important;      height: 42px !important;      padding: 0 !important;      border: 3px solid var(--tg-df-bg, #fff) !important;      border-radius: 50% !important;      background: #000 !important;      object-fit: contain !important;      box-sizing: border-box !important;    }    .tg-df-author-curated-by {      font-size: 0.875rem !important;      color: #6B7280 !important;      font-style: normal !important;      margin: 0 0 0.25rem 0 !important;      padding: 0 !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;      letter-spacing: normal !important;      line-height: 1.4 !important;    }    .tg-df-author-name {      font-size: 2rem !important;      font-weight: 300 !important;      color: #111827 !important;      margin: 0 0 0.25rem 0 !important;      padding: 0 !important;      line-height: 1.1 !important;      letter-spacing: -0.02em !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;    }    .tg-df-author-role {      font-size: 0.9375rem !important;      font-weight: 500 !important;      color: var(--tg-df-blue, #1F69FF) !important;      margin: 0 0 1.25rem 0 !important;      padding: 0 !important;      line-height: 1.3 !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;    }    .tg-df-author-meta-slot {      width: 100% !important;      min-height: 88px !important;      display: flex !important;      flex-direction: column !important;      align-items: center !important;      justify-content: flex-start !important;    }    .tg-df-author-meta-slot--site {      padding-top: 1rem !important;    }    .tg-df-author-meta-slot--no-social {      min-height: 0 !important;    }    .tg-df-author-meta-slot--no-social .tg-df-author-role {      margin-bottom: 0.5rem !important;    }    .tg-df-author-social-links {      display: flex !important;      flex-wrap: wrap !important;      align-items: center !important;      justify-content: center !important;      gap: 1rem !important;      margin: 0 auto 1.25rem auto !important;      padding: 0 !important;      max-width: 42rem !important;      width: 100% !important;      list-style: none !important;      background: none !important;      border: none !important;      box-shadow: none !important;    }    .tg-df-author-social-btn {      display: inline-flex !important;      align-items: center !important;      justify-content: center !important;      padding: 0 !important;      border-radius: 50% !important;      background-color: #f2f2f2 !important;      color: #111111 !important;      font-size: 0.8125rem !important;      font-weight: 500 !important;      text-decoration: none !important;      transition: all 0.2s ease !important;      border: 0 !important;      line-height: 1 !important;      box-shadow: none !important;      cursor: pointer !important;      outline: none !important;      margin: 0 !important;      height: 34px !important;      width: 34px !important;      min-width: 34px !important;      box-sizing: border-box !important;    }    .tg-df-author-social-btn:hover {      background-color: #dedede !important;      color: #111111 !important;      transform: translateY(-1px) !important;    }    .tg-df-author-social-btn > svg {      width: 19px !important;      height: 19px !important;      flex-shrink: 0 !important;      display: block !important;      margin: 0 !important;    }    .tg-df-author-social-btn[data-social-key="facebook"] > svg {      transform: scale(1.25) !important;    }    .tg-df-author-social-btn[data-social-key="pinterest"] > svg,    .tg-df-author-social-btn[data-social-key="tiktok"] > svg {      transform: scale(1.2) !important;    }    .tg-df-author-bio {      max-width: 42rem !important;      margin: 0 auto 1.25rem auto !important;      padding: 0 0.5rem !important;      color: #4b5563 !important;      line-height: 1.6 !important;      font-weight: 300 !important;      font-size: 0.9375rem !important;      text-align: center !important;      background: none !important;      border: none !important;      border-radius: 0 !important;      box-shadow: none !important;      display: block !important;      height: auto !important;      overflow: visible !important;    }    .tg-df-author-bio-shell--stable {      width: 100% !important;      box-sizing: border-box !important;    }    .tg-df-author-bio--clamped {      min-height: 4.8em !important;      height: 4.8em !important;      max-height: 4.8em !important;      display: -webkit-box !important;      -webkit-box-orient: vertical !important;      -webkit-line-clamp: 3 !important;      overflow: hidden !important;    }    .tg-df-author-bio--expanded {      min-height: 4.8em !important;      height: auto !important;      max-height: none !important;      display: block !important;      overflow: visible !important;    }    .tg-df-author-bio--static,    .tg-df-author-bio--static:hover,    .tg-df-author-bio--static:focus,    .tg-df-author-bio--static:focus-visible {      outline: none !important;      box-shadow: none !important;      cursor: default !important;    }    .tg-df-author-bio-toggle-slot {      height: 28px !important;      display: flex !important;      align-items: center !important;      justify-content: center !important;      margin: 0.125rem 0 0 !important;    }    .tg-df-author-bio-toggle {      appearance: none !important;      border: 0 !important;      border-bottom: 1px solid currentColor !important;      border-radius: 0 !important;      padding: 0.125rem 0 !important;      margin: 0 !important;      background: transparent !important;      color: #4b5563 !important;      box-shadow: none !important;      font: inherit !important;      font-size: 0.75rem !important;      font-weight: 600 !important;      line-height: 1.2 !important;      text-decoration: none !important;      text-transform: none !important;      cursor: pointer !important;    }    .tg-df-author-bio a {      color: var(--tg-df-blue, #1F69FF) !important;      text-decoration: underline !important;      font-weight: 400 !important;      background: none !important;      border: none !important;      padding: 0 !important;      margin: 0 !important;      border-radius: 0 !important;      display: inline !important;      box-shadow: none !important;    }    .tg-df-author-bio p,    .tg-df-author-bio div,    .tg-df-author-bio span {      margin: 0 !important;      padding: 0 !important;      color: inherit !important;      font: inherit !important;      line-height: inherit !important;      text-align: inherit !important;      text-transform: none !important;      letter-spacing: normal !important;      background: none !important;      border: none !important;      box-shadow: none !important;    }    .tg-df-author-bio strong,    .tg-df-author-bio b {      font-weight: 600 !important;    }    .tg-df-author-bio em,    .tg-df-author-bio i {      font-style: italic !important;    }    @container tg-df (min-width: 600px) {      .tg-df-author-image {        width: 180px !important;        height: 180px !important;      }      .tg-df-author-name {        font-size: 2.5rem !important;      }    }    @media (min-width: 600px) {      .tg-df-author-image {        width: 180px !important;        height: 180px !important;      }      .tg-df-author-name {        font-size: 2.5rem !important;      }    }    @container tg-df (max-width: 768px) {      .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; }    }    @media (max-width: 768px) {      .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; }    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; }      .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; }      .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; }      .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; }      .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }    }    @media (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; }      .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; }      .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; }      .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; }      .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }    }        .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button {      align-items: center; background-color: var(--tg-df-blue); box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;    }    .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button:hover { filter: brightness(0.85); text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }    .tg-df-active-badges-row {      display: flex;      flex-wrap: wrap;      gap: 8px;      align-items: center;      margin-top: 12px;      margin-bottom: 16px;      width: 100%;    }    .tg-df-active-badge {      display: inline-flex;      align-items: center;      gap: 6px;      padding: 8px 14px;      background-color: var(--tg-df-blue, #1f69ff);      color: #ffffff;      border: 1px solid var(--tg-df-blue, #1f69ff);      border-radius: 0px;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      line-height: 1;    }    .tg-df-badge-remove {      display: inline-flex;      align-items: center;      justify-content: center;      width: 16px;      height: 16px;      border-radius: 0px;      border: none;      background: rgba(255, 255, 255, 0.25);      color: #ffffff;      cursor: pointer;      padding: 0;      margin-left: 4px;      transition: background-color 0.15s, color 0.15s;    }    .tg-df-badge-remove:hover {      background: rgba(255, 255, 255, 0.45);      color: #ffffff;    }    .tg-df-badge-clear-all {      display: inline-flex;      align-items: center;      justify-content: center;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      line-height: 1;      padding: 8px 14px;      color: var(--tg-df-text-muted, #64748b);      cursor: pointer;      background: #ffffff;      border: 1px solid var(--tg-df-border, #e2e8f0);      border-radius: 0px;      transition: all 0.15s ease;    }    .tg-df-badge-clear-all:hover {      background: var(--tg-df-blue, #1f69ff);      color: #ffffff;      border-color: var(--tg-df-blue, #1f69ff);    }    .tg-df-savings-squad-header {      margin-bottom: 24px;      text-align: center;    }    .tg-df-banner-img-desktop {      display: block;      width: 100%;      height: auto;      margin-bottom: 32px;    }    .tg-df-banner-img-mobile {      display: none;      width: 100%;      height: auto;      margin-bottom: 32px;    }    @container tg-df (max-width: 600px) {      .tg-df-banner-img-desktop {        display: none;      }      .tg-df-banner-img-mobile {        display: block;      }    }    .tg-df-header-title {      font-size: 28px;      font-weight: 700;      color: var(--tg-df-text);      margin: 32px 0 12px 0;      line-height: 1.3;    }    .tg-df-header-subtitle {      font-size: 16px;      color: var(--tg-df-text-muted);      margin: 0 0 32px 0;      line-height: 1.5;    }    @container tg-df (max-width: 599px) {      .tg-df-filters-container { display: none !important; }      #tg-df-controls { display: none !important; }      .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; }      .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; }      .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; }    }    @media (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-filters-container { display: none !important; }      #tg-df-controls { display: none !important; }      .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; }      .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; }      .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; }    }    /* Article Intro Content Styling */    .tg-df-article-content {      font-size: 1rem;      line-height: 1.7;      color: #334155;    }    .tg-df-article-content p {      margin-bottom: 1.25rem;      line-height: 1.7;      font-size: 1rem;      color: #334155;    }    .tg-df-article-content > p:first-of-type::first-letter {      font-size: 3.25rem;      font-weight: 700;      float: left;      line-height: 0.85;      margin-right: 0.5rem;      margin-top: 0.15rem;      color: #0f172a;      font-family: inherit;    }    .tg-df-article-content a {      color: #0066cc;      text-decoration: underline;      font-weight: 500;    }    .tg-df-article-content a:hover {      color: #004499;    }    .tg-df-article-content strong, .tg-df-article-content b {      font-weight: 700;      color: #0f172a;    }    .tg-df-article-section-banner {      border-bottom: 2px solid #e6007e;      margin: 2.25rem 0 1.25rem 0;      position: relative;      clear: both;    }    .tg-df-article-section-banner span {      background-color: #e6007e;      color: #ffffff;      padding: 6px 16px;      font-weight: 700;      font-size: 0.875rem;      text-transform: uppercase;      letter-spacing: 0.05em;      display: inline-block;    }  </style><div class="tg-df-widget-host" data-vizualizer-embed="true" data-tg-df-full-bleed="false" data-tg-df-mobile-dropdowns="true" data-tg-df-sticky-mobile-filters="false" style="--tg-df-blue: #DC191B;"><div class="tg-df-container article-body" style="background-color: transparent;"><div id="tg-df-spreadsheet-filters" style="display: block; margin-bottom: 16px;"><div class="tg-df-categories-row-container" style="border-bottom: 1px solid var(--tg-df-border); position: relative;"><button aria-label="Scroll left" class="tg-df-scroll-btn left tg-df-desktop-only" type="button" style="display: none;"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M15 18l-6-6 6-6"></path></svg></button><button aria-label="Scroll right" class="tg-df-scroll-btn right tg-df-desktop-only" type="button" style="display: none;"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M9 18l6-6-6-6"></path></svg></button><div class="tg-df-categories-row" style="display: flex; overflow-x: auto; scrollbar-width: none;"><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Hardware <span style="color: var(--tg-df-blue); font-size: 10px;">66</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Monitors <span style="color: var(--tg-df-blue); font-size: 10px;">9</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming PCs <span style="color: var(--tg-df-blue); font-size: 10px;">7</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Mice <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Headsets <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Audio <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">SSDs <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Storage <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Laptops <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Controllers <span style="color: var(--tg-df-blue); font-size: 10px;">1</span></button></div></div></div><div class="tg-df-mobile-2x2-container"><div class="tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--odd"><button type="button" class="tg-df-mobile-grid-cell" aria-expanded="false"><span>CATEGORIES</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button><button type="button" class="tg-df-mobile-grid-cell" aria-expanded="false"><span>PRICES</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button><button type="button" class="tg-df-mobile-grid-cell has-active-filter" aria-expanded="false"><span>DISCOUNTS (25%+)</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button></div></div><div class="tg-df-controls" id="tg-df-controls" style="display: flex; margin-top: 12px; margin-bottom: 16px; justify-content: center;"><div class="tg-df-filters-container" style="position: relative; width: 100%; max-width: 800px; margin: 0px auto;"><button class="tg-df-scroll-btn left" style="display: none;"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"></path></svg></button><button class="tg-df-scroll-btn right" style="display: none;"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"></path></svg></button><div class="tg-df-filters"><div class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper" style="display: flex;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path></svg><select class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices"><option value="all">All Prices</option><option value="under50">Under $50</option><option value="50_100">$50 - $100</option><option value="100_200">$100 - $200</option><option value="200_500">$200 - $500</option><option value="over500">Over $500</option></select></div><div class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper" style="display: flex;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path></svg><select class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount"><option value="all">Any discount</option><option value="5">Min 5%</option><option value="10">Min 10%</option><option value="15">Min 15%</option><option value="20">Min 20%</option><option value="25">Min 25%</option><option value="30">Min 30%</option><option value="40">Min 40%</option><option value="50">Min 50%</option><option value="60">Min 60%</option><option value="70">Min 70%</option></select></div><div class="tg-df-sort-wrapper" id="tg-df-review-sort-wrapper" style="display: none;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 7h16M7 12h10m-7 5h4"></path></svg><select class="tg-df-filter-select" id="tg-df-review-sort" aria-label="Sort Reviews"><option value="date_desc">Most recent</option><option value="rating_desc">Highest rating</option><option value="scored_first">Scored products first</option></select></div></div></div></div><div class="tg-df-active-badges-row" style="display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-top: 10px; margin-bottom: 16px;"><span class="tg-df-active-badge">Min 25% off<button type="button" class="tg-df-badge-remove" aria-label="Remove Min 25% off"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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></span></div><div class="tg-df-grid-wrapper"><div class="tg-df-grid article-body tg-df-grid-auto" id="tg-df-grid"><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-0" data-merchant="Amazon" data-previous-price="34.99" data-price="25.99" data-product-name="G203 | Wired"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $9</span><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G203 | Wired" class="tg-df-card-image" loading="lazy" src="http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G203 | Wired"><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G203 | Wired</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>25.99</span></span><span class="tg-df-card-msrp">$34.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Glorious" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-0" data-merchant="Amazon" data-previous-price="59.99" data-price="26.31" data-product-name="GHS Eternal | 40 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $33.68</span><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="GHS Eternal | 40 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="GHS Eternal | 40 mm drivers"><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Glorious GHS Eternal | 40 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>26.31</span></span><span class="tg-df-card-msrp">$59.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-1" data-merchant="Amazon" data-previous-price="49.99" data-price="29.99" data-product-name="G305 Lightspeed | Wireless"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G305 Lightspeed | Wireless" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G305 Lightspeed | Wireless"><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G305 Lightspeed | Wireless</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>29.99</span></span><span class="tg-df-card-msrp">$49.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-86" data-merchant="Amazon" data-previous-price="49.99" data-price="29.99" data-product-name="G305 Lightspeed"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G305 Lightspeed" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G305 Lightspeed"><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G305 Lightspeed</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>29.99</span></span><span class="tg-df-card-msrp">$49.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-87" data-merchant="Bestbuy" data-previous-price="69.99" data-price="34.98" data-product-name="Basilisk V3"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $35.01</span><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Basilisk V3" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Basilisk V3"><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer Basilisk V3</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>34.98</span></span><span class="tg-df-card-msrp">$69.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Bestbuy</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-3" data-merchant="Amazon" data-previous-price="69.99" data-price="37.99" data-product-name="G502 Hero | Wired"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $32</span><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G502 Hero | Wired" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G502 Hero | Wired"><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G502 Hero | Wired</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>37.99</span></span><span class="tg-df-card-msrp">$69.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-80" data-merchant="Amazon" data-previous-price="59.99" data-price="39.79" data-product-name="BlackShark V2 X"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20.2</span><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="BlackShark V2 X" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="BlackShark V2 X"><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer BlackShark V2 X</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>39.79</span></span><span class="tg-df-card-msrp">$59.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-1" data-merchant="Amazon" data-previous-price="79.99" data-price="39.99" data-product-name="G432 | 50 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $40</span><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G432 | 50 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G432 | 50 mm drivers"><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G432 | 50 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>39.99</span></span><span class="tg-df-card-msrp">$79.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-2" data-merchant="Amazon" data-previous-price="79.99" data-price="44.99" data-product-name="Kraken V4 X | 40 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $35</span><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Kraken V4 X | 40 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Kraken V4 X | 40 mm drivers"><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer Kraken V4 X | 40 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>44.99</span></span><span class="tg-df-card-msrp">$79.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Turtle Beach" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-5" data-merchant="Amazon" data-previous-price="99.99" data-price="54.99" data-product-name="Burst II Air | Wireless"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $45</span><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Burst II Air | Wireless" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Burst II Air | Wireless"><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Turtle Beach Burst II Air | Wireless</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>54.99</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="HyperX" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-5" data-merchant="Amazon" data-previous-price="99.99" data-price="57.99" data-product-name="Cloud III | 53 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $42</span><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Cloud III | 53 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Cloud III | 53 mm drivers"><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>HyperX Cloud III | 53 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>57.99</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Nothing" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-15" data-merchant="Amazon" data-previous-price="79" data-price="59" data-product-name="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)"><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Nothing Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>59</span></span><span class="tg-df-card-msrp">$79</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="KTC" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-40" data-merchant="Newegg" data-previous-price="99.99" data-price="62.49" data-product-name="H24V27"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $37.5</span><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="H24V27" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="H24V27"><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>KTC H24V27</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code &quot;LDSF246&quot; for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>62.49</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Newegg</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Scuf" data-currency="$" data-deal-id="airedale-A97h9Ug45WeF5xPLdcoJyf-0" data-merchant="Amazon" data-previous-price="109.99" data-price="76.99" data-product-name="Valor Pro"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $33</span><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Valor Pro" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Valor Pro"><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Scuf Valor Pro</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>76.99</span></span><span class="tg-df-card-msrp">$109.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Jess Kinghorn" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/controllers/the-best-wired-pc-controller-has-been-knocked-down-to-usd77-so-long-as-you-dont-mind-it-in-white" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Jess Kinghorn</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 24 days ago</span></div></div></div></div><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Acer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-41" data-merchant="Newegg" data-previous-price="129.99" data-price="79.99" data-product-name="AOpen 24KG1Y X3bip"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50</span><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="AOpen 24KG1Y X3bip" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="AOpen 24KG1Y X3bip"><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Acer AOpen 24KG1Y X3bip</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>79.99</span></span><span class="tg-df-card-msrp">$129.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Newegg</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Asus" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-82" data-merchant="Amazon" data-previous-price="129.99" data-price="79.99" data-product-name="ROG Pelta"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50</span><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="ROG Pelta" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="ROG Pelta"><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Asus ROG Pelta</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>79.99</span></span><span class="tg-df-card-msrp">$129.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="MSI" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-43" data-merchant="Bestbuy" data-previous-price="149.99" data-price="97.49" data-product-name="MAG 244F"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $52.5</span><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="MAG 244F" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="MAG 244F"><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>MSI MAG 244F</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>97.49</span></span><span class="tg-df-card-msrp">$149.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Bestbuy</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="MSI" data-currency="$" data-deal-id="airedale-UBBZiFU9BXsLfvbZ8d4awf-1" data-merchant="Walmart" data-previous-price="149.99" data-price="99" data-product-name="MAG 255XFV"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50.99</span><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="MAG 255XFV" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="MAG 255XFV"><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>MSI MAG 255XFV</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>99</span></span><span class="tg-df-card-msrp">$149.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Walmart</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/amazon-prime-day-gaming-monitor-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-load-more-control" style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1; overflow-anchor: none;"><button type="button" class="tg-df-tag-outline" aria-busy="false" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer;">Load More</button></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Product","name":"G203 | Wired","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":25.99,"url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":2,"item":{"@type":"Product","name":"GHS Eternal | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","brand":{"@type":"Brand","name":"Glorious"},"offers":{"@type":"Offer","priceCurrency":"USD","price":26.31,"url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":3,"item":{"@type":"Product","name":"G305 Lightspeed | Wireless","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":4,"item":{"@type":"Product","name":"G305 Lightspeed","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/dp/B07CMS5Q6P","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":5,"item":{"@type":"Product","name":"Basilisk V3","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":34.98,"url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":6,"item":{"@type":"Product","name":"G502 Hero | Wired","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":37.99,"url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":7,"item":{"@type":"Product","name":"BlackShark V2 X","image":"https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg","description":"The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.79,"url":"https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":8,"item":{"@type":"Product","name":"G432 | 50 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg","description":"Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.99,"url":"https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":9,"item":{"@type":"Product","name":"Kraken V4 X | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg","description":"If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":44.99,"url":"https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":10,"item":{"@type":"Product","name":"Burst II Air | Wireless","image":"https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg","description":"We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99","brand":{"@type":"Brand","name":"Turtle Beach"},"offers":{"@type":"Offer","priceCurrency":"USD","price":54.99,"url":"https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":11,"item":{"@type":"Product","name":"Cloud III | 53 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg","description":"We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99","brand":{"@type":"Brand","name":"HyperX"},"offers":{"@type":"Offer","priceCurrency":"USD","price":57.99,"url":"https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":12,"item":{"@type":"Product","name":"Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)","image":"https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png","description":"These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response","brand":{"@type":"Brand","name":"Nothing"},"offers":{"@type":"Offer","priceCurrency":"USD","price":59,"url":"https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":13,"item":{"@type":"Product","name":"H24V27","image":"https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png","description":"This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code "LDSF246" for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA","brand":{"@type":"Brand","name":"KTC"},"offers":{"@type":"Offer","priceCurrency":"USD","price":62.49,"url":"https://www.newegg.com/p/3D4-007C-00016","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":14,"item":{"@type":"Product","name":"Valor Pro","image":"https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png","description":"This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks","brand":{"@type":"Brand","name":"Scuf"},"offers":{"@type":"Offer","priceCurrency":"USD","price":76.99,"url":"https://www.amazon.com/dp/B0DTB3QCS5","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":15,"item":{"@type":"Product","name":"AOpen 24KG1Y X3bip","image":"https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png","description":"With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"Acer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.newegg.com/p/N82E16824011533","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":16,"item":{"@type":"Product","name":"ROG Pelta","image":"https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg","description":"With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life","brand":{"@type":"Brand","name":"Asus"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":17,"item":{"@type":"Product","name":"MAG 244F","image":"https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png","description":"With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":97.49,"url":"https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":18,"item":{"@type":"Product","name":"MAG 255XFV","image":"https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg","description":"You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":99,"url":"https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174","seller":{"@type":"Organization","name":"Walmart"}}}}]}</script></div></div><div class="tg-df-modal-backdrop "><div class="tg-df-modal"><div class="tg-df-modal-header"><h3 class="tg-df-modal-title">Available Coupons & Deals</h3><button class="tg-df-modal-close"><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 class="tg-df-modal-body"><div class="tg-df-message">No active vouchers found for .</div></div></div></div></div></div>  </div>  <script type="application/json" data-fcaw-config>{"authorBioLength":"short","authorFullBleed":false,"authorHandle":"all-authors","authorName":"All authors","backgroundColor":"transparent","customBio":"","discountAmount":"25","editorMode":false,"editorialMaxAgeMonths":"0","includeBuyingGuideProducts":false,"includeCollections":false,"includeDeals":true,"includeReviewProducts":false,"mobileDropdowns":true,"stickyMobileFilters":false,"offerType":"","preloadReviewInventory":false,"lightweightReviewDelivery":false,"hideHawkPrices":false,"prioritiseCommercialProducts":true,"priceRange":"all","productSelection":"mix","query":"","region":"auto","resultCount":"6","retailer":"","selectedBrands":[],"showAuthorBio":false,"showAuthorCounters":true,"showAuthorIdentity":false,"showAuthorRail":false,"showBrandRail":false,"showCategoryRail":true,"showCollectionsDropdown":false,"showPriceDiscountFilters":true,"showReviewSort":false,"showSocialButtons":false,"showCountdown":false,"showHeaderDetails":true,"showFreeformTagRail":false,"sort":"price_asc","viewMode":"author","website":"pcgamer","widgetSubtitle":"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.","widgetTitle":"Top Deals Handpicked by Our Editors","brands":[],"shortenedHeadlines":{},"compactEmbed":true}</script>  <script type="application/json" data-fcaw-preload>{"authors":[{"bioLong":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","bioShort":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","name":"James","fullName":"James Bentley","handle":"james-bentley","role":"Hardware writer","image":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","brandKey":"pcgamer"},{"bioLong":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","bioShort":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","name":"Dave","fullName":"Dave James","handle":"dave-james","role":"Editor-in-Chief, Hardware","image":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/not_the_gk","label":"X (Twitter)"},{"key":"email","href":"mailto:dave.james@futurenet.com","label":"Email"}]},{"bioLong":"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'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's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","bioShort":"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'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's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","name":"Jacob","fullName":"Jacob Fox","handle":"jacob-fox","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/Ee8ZL5rzgTjTNkBFJ4jBnD.png","brandKey":"pcgamer"},{"bioLong":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","bioShort":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","name":"Andy","fullName":"Andy Edser","handle":"andy-edser","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","brandKey":"pcgamer"},{"bioLong":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","bioShort":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","name":"Jess","fullName":"Jess Kinghorn","handle":"jess-kinghorn","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/KoeniginKatze","label":"X (Twitter)"},{"key":"linkedin","href":"https://www.linkedin.com/in/jess-kinghorn","label":"LinkedIn"}]}],"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"activeDealTag":null,"activeFreeformTag":null,"activeFreeformTags":[],"couponMap":{"Amazon":"has","Bestbuy":"none","Newegg":"none","Walmart":"none"},"totalAuthorCount":5,"totalDealCount":56,"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"reviewInventoryBaked":false,"regionalDealManifests":{"US":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-0","url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":25.99,"rawMsrp":34.99,"price":"25.99","msrp":"34.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $9","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g203-lightsync-wired-optical-gaming-mouse-with-8000-dpi-sensor-white/6409362.p?skuId=6409362\" target=\"_blank\"\u003eBest Buy $39.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-0","url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","title":"GHS Eternal | 40 mm drivers","brand":"Glorious","productName":"GHS Eternal | 40 mm drivers","merchant":"Amazon","rawPrice":26.31,"rawMsrp":59.99,"price":"26.31","msrp":"59.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $33.68","savingType":"amount","isPrime":false,"starRating":null,"description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","text":"\u003cp\u003eWith a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20 hz - 20 kHz | 255 g\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-1","url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite budget wireless mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/product/logitech-g305-lightspeed-wireless-optical-6-programmable-button-gaming-mouse-with-12000-dpi-hero-sensor-wireless-white/J7H7ZY2ZYR\" target=\"_blank\"\u003eBest Buy $49.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-86","url":"https://www.amazon.com/dp/B07CMS5Q6P","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","title":"G305 Lightspeed","brand":"Logitech","productName":"G305 Lightspeed","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","text":"\u003cp\u003eAlready reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-87","url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","title":"Basilisk V3","brand":"Razer","productName":"Basilisk V3","merchant":"Bestbuy","rawPrice":34.98,"rawMsrp":69.99,"price":"34.98","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $35.01","savingType":"amount","isPrime":false,"starRating":null,"description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","text":"\u003cp\u003eThis mouse might be a few years old, but we scored it highly in \u003ca href=\"https://www.pcgamer.com/razer-basilisk-v3-gaming-mouse-review/\" target=\"_blank\"\u003eour review\u003c/a\u003e in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to \u003ca href=\"https://www.pcgamer.com/hardware/im-ashamed-to-say-that-this-razer-mouse-has-made-me-actually-take-a-shine-to-rgb-and-now-you-can-be-persuaded-too-for-almost-50-percent-off/\" target=\"_blank\"\u003etempt even those who usually hate RGB lighting\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-3","url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":37.99,"rawMsrp":69.99,"price":"37.99","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $32","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","text":"\u003cp\u003eThis is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g502-hero-wired-optical-gaming-mouse-with-rgb-lighting-black/6265133.p?skuId=6265133\" target=\"_blank\"\u003eBest Buy $69.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true}],"GB":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-10","url":"https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":19.99,"rawMsrp":30.99,"price":"19.99","msrp":"30.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £11","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-11","url":"https://www.amazon.co.uk/Logitech-Wireless-Lightweight-Programmable-compatible/dp/B07CGPZ3ZQ","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":19.99,"rawMsrp":27.99,"price":"19.99","msrp":"27.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £8","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite wireless budget mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays. Key specs: Wireless | 12,000 DPI | Right-handed","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite wireless budget mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-19","url":"https://www.amazon.co.uk/JBL-Quantum-Gaming-Wired-Over-ear-Black/dp/B083X24CFF/","image":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","title":"Quantum 100 | 40 mm drivers","brand":"JBL","productName":"Quantum 100 | 40 mm drivers","merchant":"Amazon","rawPrice":19.99,"rawMsrp":29.99,"price":"19.99","msrp":"29.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £10","savingType":"amount","isPrime":false,"starRating":null,"description":"JBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired","text":"\u003cp\u003eJBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-12","url":"https://www.amazon.co.uk/Logitech-Programmable-Buttons-Computer-Adjustable/dp/B07GS6ZB7T/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":22.01,"rawMsrp":37.79,"price":"22.01","msrp":"37.79","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £15.78","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness. Key specs: Wired | 25,600 DPI | Right-handed","text":"\u003cp\u003eThis is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-23","url":"https://www.amazon.co.uk/Logitech-LIGHTSPEED-Wireless-Bluetooth-Nintendo/dp/B0FL7NNGRG?th=1","image":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","title":"G321 Lightspeed | 40 mm drivers","brand":"Logitech","productName":"G321 Lightspeed | 40 mm drivers","merchant":"Amazon","rawPrice":32.99,"rawMsrp":59.99,"price":"32.99","msrp":"59.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £27","savingType":"amount","isPrime":false,"starRating":null,"description":"This very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in his review. It won't blow you away with bass or features, but at this price it's still worth considering. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless Price check: Currys £42.99","text":"\u003cp\u003eThis very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in \u003ca href=\"https://www.pcgamer.com/hardware/gaming-headsets/logitech-g321-lightspeed-review/\" target=\"_blank\"\u003ehis review\u003c/a\u003e. It won't blow you away with bass or features, but at this price it's still worth considering.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless \u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g321-lightspeed-wireless-bluetooth-gaming-headset-black-10289632.html\" target=\"_blank\"\u003eCurrys £42.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-20","url":"https://www.amazon.co.uk/Logitech-Microphone-Comfortable-Lightweight-PlayStation/dp/B07W6J6TG5/","image":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","title":"G335 | 40 mm drivers","brand":"Logitech","productName":"G335 | 40 mm drivers","merchant":"Amazon","rawPrice":34.99,"rawMsrp":64.99,"price":"34.99","msrp":"64.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £30","savingType":"amount","isPrime":false,"starRating":null,"description":"This Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired Price check: Currys £34.99","text":"\u003cp\u003eThis Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g335-gaming-headset-black-10227173.html\" target=\"_blank\"\u003eCurrys £34.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true}],"AU":[{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-5","url":"https://www.amazon.com.au/JBL-QuantumSOUND-Signature-Comfortable-Breathable/dp/B0D6NLHV8N","image":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","title":"Quantum 100M2","brand":"JBL","productName":"Quantum 100M2","merchant":"Amazon","rawPrice":29,"rawMsrp":59.95,"price":"29","msrp":"59.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$30.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.","text":"\u003cp\u003eIf you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-1","url":"https://www.amazon.com.au/dp/B0CMCPY4VG","image":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","title":"Nova Lite","brand":"GameSir","productName":"Nova Lite","merchant":"Amazon","rawPrice":32,"rawMsrp":45,"price":"32","msrp":"45","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$13","savingType":"amount","isPrime":false,"starRating":null,"description":"Our favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.","text":"\u003cp\u003eOur favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-15","url":"https://www.amazon.com.au/dp/B07MG5547J","image":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","title":"G502 Hero","brand":"Logitech","productName":"G502 Hero","merchant":"Amazon","rawPrice":55.99,"rawMsrp":149.95,"price":"55.99","msrp":"149.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$93.96","savingType":"amount","isPrime":false,"starRating":null,"description":"Logitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;","text":"\u003cp\u003eLogitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-8","url":"https://www.amazon.com.au/CORSAIR-Membrane-Wired-Gaming-Keyboard/dp/B0CP6BR96G","image":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","title":"K55 Core Membrane","brand":"Corsair","productName":"K55 Core Membrane","merchant":"Amazon","rawPrice":59,"rawMsrp":79.95,"price":"59","msrp":"79.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$20.95","savingType":"amount","isPrime":false,"starRating":null,"description":"This discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.","text":"\u003cp\u003eThis discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-11","url":"https://www.amazon.com.au/dp/B01K48R5V4","image":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","fallbackImage":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","title":"G G213 Prodigy","brand":"Logitech","productName":"G G213 Prodigy","merchant":"Amazon","rawPrice":72,"rawMsrp":129.95,"price":"72","msrp":"129.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$57.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.","text":"\u003cp\u003eIf you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-13","url":"https://www.amazon.com.au/CORSAIR-Sabre-Ultralight-Wireless-Gaming/dp/B0FKJ2J2R8/","image":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","title":"Sabre v2 Pro","brand":"Corsair","productName":"Sabre v2 Pro","merchant":"Amazon","rawPrice":79,"rawMsrp":169,"price":"79","msrp":"169","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$90","savingType":"amount","isPrime":false,"starRating":null,"description":"The Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox loved its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life.","text":"\u003cp\u003eThe Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox \u003ca href=\"https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/\"\u003eloved\u003c/a\u003e its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life. \u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true}]},"regionalDealRailData":{"US":{"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"totalAuthorCount":5,"totalDealCount":56},"GB":{"brands":[{"formatted_value":"Logitech","count":6},{"formatted_value":"Steelseries","count":2},{"formatted_value":"EarFun","count":2},{"formatted_value":"Lexar","count":2},{"formatted_value":"AOC","count":2},{"formatted_value":"MSI","count":2},{"formatted_value":"JBL","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Turtle Beach","count":1}],"freeformTagCounts":{"hardware":17,"mouse":5,"gaming-mouse":5,"prime-day":5,"amazon-prime-day-2026":14,"amazon-prime-day":17,"prime-day-deals":8,"deals":17,"deal":17,"big-deal-days":17,"gaming-headset":9,"amazon-prime":3,"ssd":1,"pc-deals":3,"gaming-monitor":2,"monitors":2,"solid-state-drive":1,"solid-state":1,"hdd":1,"hard-drive":1,"storage":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"}],"tagCounts":{"Gaming Mice":5,"Hardware":17,"Gaming Headsets":9,"Gaming Audio":9,"SSDs":1,"Storage":1,"Gaming Monitors":2},"tags":["Hardware","Gaming Headsets","Gaming Audio","Gaming Mice","Gaming Monitors","SSDs","Storage"],"totalAuthorCount":4,"totalDealCount":17},"AU":{"brands":[{"formatted_value":"Logitech","count":7},{"formatted_value":"Corsair","count":4},{"formatted_value":"JBL","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"GameSir","count":1},{"formatted_value":"8BitDo","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Asus","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"SteelSeries","count":1}],"freeformTagCounts":{"hardware":20,"amazon-prime":20,"pc-deals":20,"deals":20,"prime-day-deals":20},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"}],"tagCounts":{"Hardware":20},"tags":["Hardware"],"totalAuthorCount":1,"totalDealCount":20}}}</script></fc-author-commerce-widget><script>(()=>{var Z1=Object.create;var cg=Object.defineProperty;var W1=Object.getOwnPropertyDescriptor;var I1=Object.getOwnPropertyNames;var J1=Object.getPrototypeOf,$1=Object.prototype.hasOwnProperty;var un=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var eb=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of I1(t))!$1.call(e,l)&&l!==n&&cg(e,l,{get:()=>t[l],enumerable:!(a=W1(t,l))||a.enumerable});return e};var B=(e,t,n)=>(n=e!=null?Z1(J1(e)):{},eb(t||!e||!e.__esModule?cg(n,"default",{value:e,enumerable:!0}):n,e));var Ag=un(z=>{"use strict";var Tc=Symbol.for("react.transitional.element"),tb=Symbol.for("react.portal"),nb=Symbol.for("react.fragment"),ab=Symbol.for("react.strict_mode"),lb=Symbol.for("react.profiler"),ib=Symbol.for("react.consumer"),rb=Symbol.for("react.context"),ob=Symbol.for("react.forward_ref"),ub=Symbol.for("react.suspense"),cb=Symbol.for("react.memo"),mg=Symbol.for("react.lazy"),sb=Symbol.for("react.activity"),sg=Symbol.iterator;function db(e){return e===null||typeof e!="object"?null:(e=sg&&e[sg]||e["@@iterator"],typeof e=="function"?e:null)}var hg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pg=Object.assign,yg={};function ml(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}ml.prototype.isReactComponent={};ml.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ml.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function vg(){}vg.prototype=ml.prototype;function Ec(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}var Dc=Ec.prototype=new vg;Dc.constructor=Ec;pg(Dc,ml.prototype);Dc.isPureReactComponent=!0;var dg=Array.isArray;function Rc(){}var he={H:null,A:null,T:null,S:null},bg=Object.prototype.hasOwnProperty;function xc(e,t,n){var a=n.ref;return{$$typeof:Tc,type:e,key:t,ref:a!==void 0?a:null,props:n}}function fb(e,t){return xc(e.type,t,e.props)}function Mc(e){return typeof e=="object"&&e!==null&&e.$$typeof===Tc}function gb(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var fg=/\/+/g;function Cc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?gb(""+e.key):t.toString(36)}function mb(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Rc,Rc):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function gl(e,t,n,a,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var r=!1;if(e===null)r=!0;else switch(i){case"bigint":case"string":case"number":r=!0;break;case"object":switch(e.$$typeof){case Tc:case tb:r=!0;break;case mg:return r=e._init,gl(r(e._payload),t,n,a,l)}}if(r)return l=l(e),r=a===""?"."+Cc(e,0):a,dg(l)?(n="",r!=null&&(n=r.replace(fg,"$&/")+"/"),gl(l,t,n,"",function(c){return c})):l!=null&&(Mc(l)&&(l=fb(l,n+(l.key==null||e&&e.key===l.key?"":(""+l.key).replace(fg,"$&/")+"/")+r)),t.push(l)),1;r=0;var o=a===""?".":a+":";if(dg(e))for(var u=0;u<e.length;u++)a=e[u],i=o+Cc(a,u),r+=gl(a,t,n,i,l);else if(u=db(e),typeof u=="function")for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,i=o+Cc(a,u++),r+=gl(a,t,n,i,l);else if(i==="object"){if(typeof e.then=="function")return gl(mb(e),t,n,a,l);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return r}function ro(e,t,n){if(e==null)return e;var a=[],l=0;return gl(e,a,"","",function(i){return t.call(n,i,l++)}),a}function hb(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var gg=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},pb={map:ro,forEach:function(e,t,n){ro(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ro(e,function(){t++}),t},toArray:function(e){return ro(e,function(t){return t})||[]},only:function(e){if(!Mc(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};z.Activity=sb;z.Children=pb;z.Component=ml;z.Fragment=nb;z.Profiler=lb;z.PureComponent=Ec;z.StrictMode=ab;z.Suspense=ub;z.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=he;z.__COMPILER_RUNTIME={__proto__:null,c:function(e){return he.H.useMemoCache(e)}};z.cache=function(e){return function(){return e.apply(null,arguments)}};z.cacheSignal=function(){return null};z.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var a=pg({},e.props),l=e.key;if(t!=null)for(i in t.key!==void 0&&(l=""+t.key),t)!bg.call(t,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&t.ref===void 0||(a[i]=t[i]);var i=arguments.length-2;if(i===1)a.children=n;else if(1<i){for(var r=Array(i),o=0;o<i;o++)r[o]=arguments[o+2];a.children=r}return xc(e.type,l,a)};z.createContext=function(e){return e={$$typeof:rb,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:ib,_context:e},e};z.createElement=function(e,t,n){var a,l={},i=null;if(t!=null)for(a in t.key!==void 0&&(i=""+t.key),t)bg.call(t,a)&&a!=="key"&&a!=="__self"&&a!=="__source"&&(l[a]=t[a]);var r=arguments.length-2;if(r===1)l.children=n;else if(1<r){for(var o=Array(r),u=0;u<r;u++)o[u]=arguments[u+2];l.children=o}if(e&&e.defaultProps)for(a in r=e.defaultProps,r)l[a]===void 0&&(l[a]=r[a]);return xc(e,i,l)};z.createRef=function(){return{current:null}};z.forwardRef=function(e){return{$$typeof:ob,render:e}};z.isValidElement=Mc;z.lazy=function(e){return{$$typeof:mg,_payload:{_status:-1,_result:e},_init:hb}};z.memo=function(e,t){return{$$typeof:cb,type:e,compare:t===void 0?null:t}};z.startTransition=function(e){var t=he.T,n={};he.T=n;try{var a=e(),l=he.S;l!==null&&l(n,a),typeof a=="object"&&a!==null&&typeof a.then=="function"&&a.then(Rc,gg)}catch(i){gg(i)}finally{t!==null&&n.types!==null&&(t.types=n.types),he.T=t}};z.unstable_useCacheRefresh=function(){return he.H.useCacheRefresh()};z.use=function(e){return he.H.use(e)};z.useActionState=function(e,t,n){return he.H.useActionState(e,t,n)};z.useCallback=function(e,t){return he.H.useCallback(e,t)};z.useContext=function(e){return he.H.useContext(e)};z.useDebugValue=function(){};z.useDeferredValue=function(e,t){return he.H.useDeferredValue(e,t)};z.useEffect=function(e,t){return he.H.useEffect(e,t)};z.useEffectEvent=function(e){return he.H.useEffectEvent(e)};z.useId=function(){return he.H.useId()};z.useImperativeHandle=function(e,t,n){return he.H.useImperativeHandle(e,t,n)};z.useInsertionEffect=function(e,t){return he.H.useInsertionEffect(e,t)};z.useLayoutEffect=function(e,t){return he.H.useLayoutEffect(e,t)};z.useMemo=function(e,t){return he.H.useMemo(e,t)};z.useOptimistic=function(e,t){return he.H.useOptimistic(e,t)};z.useReducer=function(e,t,n){return he.H.useReducer(e,t,n)};z.useRef=function(e){return he.H.useRef(e)};z.useState=function(e){return he.H.useState(e)};z.useSyncExternalStore=function(e,t,n){return he.H.useSyncExternalStore(e,t,n)};z.useTransition=function(){return he.H.useTransition()};z.version="19.2.8"});var ft=un((zS,wg)=>{"use strict";wg.exports=Ag()});var Bg=un(Se=>{"use strict";function Oc(e,t){var n=e.length;e.push(t);e:for(;0<n;){var a=n-1>>>1,l=e[a];if(0<oo(l,t))e[a]=t,e[n]=l,n=a;else break e}}function cn(e){return e.length===0?null:e[0]}function co(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var a=0,l=e.length,i=l>>>1;a<i;){var r=2*(a+1)-1,o=e[r],u=r+1,c=e[u];if(0>oo(o,n))u<l&&0>oo(c,o)?(e[a]=c,e[u]=n,a=u):(e[a]=o,e[r]=n,a=r);else if(u<l&&0>oo(c,n))e[a]=c,e[u]=n,a=u;else break e}}return t}function oo(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}Se.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Sg=performance,Se.unstable_now=function(){return Sg.now()}):(_c=Date,Cg=_c.now(),Se.unstable_now=function(){return _c.now()-Cg});var Sg,_c,Cg,wn=[],Qn=[],yb=1,Ut=null,et=3,kc=!1,Mi=!1,_i=!1,Lc=!1,Eg=typeof setTimeout=="function"?setTimeout:null,Dg=typeof clearTimeout=="function"?clearTimeout:null,Rg=typeof setImmediate<"u"?setImmediate:null;function uo(e){for(var t=cn(Qn);t!==null;){if(t.callback===null)co(Qn);else if(t.startTime<=e)co(Qn),t.sortIndex=t.expirationTime,Oc(wn,t);else break;t=cn(Qn)}}function Hc(e){if(_i=!1,uo(e),!Mi)if(cn(wn)!==null)Mi=!0,pl||(pl=!0,hl());else{var t=cn(Qn);t!==null&&zc(Hc,t.startTime-e)}}var pl=!1,Bi=-1,xg=5,Mg=-1;function _g(){return Lc?!0:!(Se.unstable_now()-Mg<xg)}function Bc(){if(Lc=!1,pl){var e=Se.unstable_now();Mg=e;var t=!0;try{e:{Mi=!1,_i&&(_i=!1,Dg(Bi),Bi=-1),kc=!0;var n=et;try{t:{for(uo(e),Ut=cn(wn);Ut!==null&&!(Ut.expirationTime>e&&_g());){var a=Ut.callback;if(typeof a=="function"){Ut.callback=null,et=Ut.priorityLevel;var l=a(Ut.expirationTime<=e);if(e=Se.unstable_now(),typeof l=="function"){Ut.callback=l,uo(e),t=!0;break t}Ut===cn(wn)&&co(wn),uo(e)}else co(wn);Ut=cn(wn)}if(Ut!==null)t=!0;else{var i=cn(Qn);i!==null&&zc(Hc,i.startTime-e),t=!1}}break e}finally{Ut=null,et=n,kc=!1}t=void 0}}finally{t?hl():pl=!1}}}var hl;typeof Rg=="function"?hl=function(){Rg(Bc)}:typeof MessageChannel<"u"?(Nc=new MessageChannel,Tg=Nc.port2,Nc.port1.onmessage=Bc,hl=function(){Tg.postMessage(null)}):hl=function(){Eg(Bc,0)};var Nc,Tg;function zc(e,t){Bi=Eg(function(){e(Se.unstable_now())},t)}Se.unstable_IdlePriority=5;Se.unstable_ImmediatePriority=1;Se.unstable_LowPriority=4;Se.unstable_NormalPriority=3;Se.unstable_Profiling=null;Se.unstable_UserBlockingPriority=2;Se.unstable_cancelCallback=function(e){e.callback=null};Se.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):xg=0<e?Math.floor(1e3/e):5};Se.unstable_getCurrentPriorityLevel=function(){return et};Se.unstable_next=function(e){switch(et){case 1:case 2:case 3:var t=3;break;default:t=et}var n=et;et=t;try{return e()}finally{et=n}};Se.unstable_requestPaint=function(){Lc=!0};Se.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=et;et=e;try{return t()}finally{et=n}};Se.unstable_scheduleCallback=function(e,t,n){var a=Se.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?a+n:a):n=a,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return l=n+l,e={id:yb++,callback:t,priorityLevel:e,startTime:n,expirationTime:l,sortIndex:-1},n>a?(e.sortIndex=n,Oc(Qn,e),cn(wn)===null&&e===cn(Qn)&&(_i?(Dg(Bi),Bi=-1):_i=!0,zc(Hc,n-a))):(e.sortIndex=l,Oc(wn,e),Mi||kc||(Mi=!0,pl||(pl=!0,hl()))),e};Se.unstable_shouldYield=_g;Se.unstable_wrapCallback=function(e){var t=et;return function(){var n=et;et=t;try{return e.apply(this,arguments)}finally{et=n}}}});var Og=un((GS,Ng)=>{"use strict";Ng.exports=Bg()});var Lg=un(ot=>{"use strict";var vb=ft();function kg(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Kn(){}var rt={d:{f:Kn,r:function(){throw Error(kg(522))},D:Kn,C:Kn,L:Kn,m:Kn,X:Kn,S:Kn,M:Kn},p:0,findDOMNode:null},bb=Symbol.for("react.portal");function Ab(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:bb,key:a==null?null:""+a,children:e,containerInfo:t,implementation:n}}var Ni=vb.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function so(e,t){if(e==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}ot.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=rt;ot.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(kg(299));return Ab(e,t,null,n)};ot.flushSync=function(e){var t=Ni.T,n=rt.p;try{if(Ni.T=null,rt.p=2,e)return e()}finally{Ni.T=t,rt.p=n,rt.d.f()}};ot.preconnect=function(e,t){typeof e=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,rt.d.C(e,t))};ot.prefetchDNS=function(e){typeof e=="string"&&rt.d.D(e)};ot.preinit=function(e,t){if(typeof e=="string"&&t&&typeof t.as=="string"){var n=t.as,a=so(n,t.crossOrigin),l=typeof t.integrity=="string"?t.integrity:void 0,i=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;n==="style"?rt.d.S(e,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:a,integrity:l,fetchPriority:i}):n==="script"&&rt.d.X(e,{crossOrigin:a,integrity:l,fetchPriority:i,nonce:typeof t.nonce=="string"?t.nonce:void 0})}};ot.preinitModule=function(e,t){if(typeof e=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var n=so(t.as,t.crossOrigin);rt.d.M(e,{crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&rt.d.M(e)};ot.preload=function(e,t){if(typeof e=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var n=t.as,a=so(n,t.crossOrigin);rt.d.L(e,n,{crossOrigin:a,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}};ot.preloadModule=function(e,t){if(typeof e=="string")if(t){var n=so(t.as,t.crossOrigin);rt.d.m(e,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else rt.d.m(e)};ot.requestFormReset=function(e){rt.d.r(e)};ot.unstable_batchedUpdates=function(e,t){return e(t)};ot.useFormState=function(e,t,n){return Ni.H.useFormState(e,t,n)};ot.useFormStatus=function(){return Ni.H.useHostTransitionStatus()};ot.version="19.2.8"});var Ug=un((qS,zg)=>{"use strict";function Hg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Hg)}catch(e){console.error(e)}}Hg(),zg.exports=Lg()});var Wy=un(Hu=>{"use strict";var Ge=Og(),sh=ft(),wb=Ug();function S(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function dh(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function vr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function fh(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function gh(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Gg(e){if(vr(e)!==e)throw Error(S(188))}function Sb(e){var t=e.alternate;if(!t){if(t=vr(e),t===null)throw Error(S(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return Gg(l),e;if(i===a)return Gg(l),t;i=i.sibling}throw Error(S(188))}if(n.return!==a.return)n=l,a=i;else{for(var r=!1,o=l.child;o;){if(o===n){r=!0,n=l,a=i;break}if(o===a){r=!0,a=l,n=i;break}o=o.sibling}if(!r){for(o=i.child;o;){if(o===n){r=!0,n=i,a=l;break}if(o===a){r=!0,a=i,n=l;break}o=o.sibling}if(!r)throw Error(S(189))}}if(n.alternate!==a)throw Error(S(190))}if(n.tag!==3)throw Error(S(188));return n.stateNode.current===n?e:t}function mh(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=mh(e),t!==null)return t;e=e.sibling}return null}var ve=Object.assign,Cb=Symbol.for("react.element"),fo=Symbol.for("react.transitional.element"),Pi=Symbol.for("react.portal"),Sl=Symbol.for("react.fragment"),hh=Symbol.for("react.strict_mode"),ys=Symbol.for("react.profiler"),ph=Symbol.for("react.consumer"),Mn=Symbol.for("react.context"),fd=Symbol.for("react.forward_ref"),vs=Symbol.for("react.suspense"),bs=Symbol.for("react.suspense_list"),gd=Symbol.for("react.memo"),Zn=Symbol.for("react.lazy");Symbol.for("react.scope");var As=Symbol.for("react.activity");Symbol.for("react.legacy_hidden");Symbol.for("react.tracing_marker");var Rb=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var Pg=Symbol.iterator;function Oi(e){return e===null||typeof e!="object"?null:(e=Pg&&e[Pg]||e["@@iterator"],typeof e=="function"?e:null)}var Tb=Symbol.for("react.client.reference");function ws(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Tb?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Sl:return"Fragment";case ys:return"Profiler";case hh:return"StrictMode";case vs:return"Suspense";case bs:return"SuspenseList";case As:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case Pi:return"Portal";case Mn:return e.displayName||"Context";case ph:return(e._context.displayName||"Context")+".Consumer";case fd:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case gd:return t=e.displayName||null,t!==null?t:ws(e.type)||"Memo";case Zn:t=e._payload,e=e._init;try{return ws(e(t))}catch{}}return null}var qi=Array.isArray,L=sh.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=wb.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,za={pending:!1,data:null,method:null,action:null},Ss=[],Cl=-1;function mn(e){return{current:e}}function Fe(e){0>Cl||(e.current=Ss[Cl],Ss[Cl]=null,Cl--)}function ge(e,t){Cl++,Ss[Cl]=e.current,e.current=t}var gn=mn(null),lr=mn(null),ra=mn(null),Vo=mn(null);function Xo(e,t){switch(ge(ra,t),ge(lr,e),ge(gn,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Qm(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Qm(t),e=Hy(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Fe(gn),ge(gn,e)}function ql(){Fe(gn),Fe(lr),Fe(ra)}function Cs(e){e.memoizedState!==null&&ge(Vo,e);var t=gn.current,n=Hy(t,e.type);t!==n&&(ge(lr,e),ge(gn,n))}function Qo(e){lr.current===e&&(Fe(gn),Fe(lr)),Vo.current===e&&(Fe(Vo),hr._currentValue=za)}var Uc,qg;function Oa(e){if(Uc===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Uc=t&&t[1]||"",qg=-1<n.stack.indexOf(`    at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return``+Uc+e+qg}var Gc=!1;function Pc(e,t){if(!e||Gc)return"";Gc=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var f=function(){throw Error()};if(Object.defineProperty(f.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(f,[])}catch(m){var d=m}Reflect.construct(e,[],f)}else{try{f.call()}catch(m){d=m}e.call(f.prototype)}}else{try{throw Error()}catch(m){d=m}(f=e())&&typeof f.catch=="function"&&f.catch(function(){})}}catch(m){if(m&&d&&typeof m.stack=="string")return[m.stack,d.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var i=a.DetermineComponentFrameRoot(),r=i[0],o=i[1];if(r&&o){var u=r.split(``),c=o.split(``);for(l=a=0;a<u.length&&!u[a].includes("DetermineComponentFrameRoot");)a++;for(;l<c.length&&!c[l].includes("DetermineComponentFrameRoot");)l++;if(a===u.length||l===c.length)for(a=u.length-1,l=c.length-1;1<=a&&0<=l&&u[a]!==c[l];)l--;for(;1<=a&&0<=l;a--,l--)if(u[a]!==c[l]){if(a!==1||l!==1)do if(a--,l--,0>l||u[a]!==c[l]){var s=``+u[a].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}while(1<=a&&0<=l);break}}}finally{Gc=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Oa(n):""}function Eb(e,t){switch(e.tag){case 26:case 27:case 5:return Oa(e.type);case 16:return Oa("Lazy");case 13:return e.child!==t&&t!==null?Oa("Suspense Fallback"):Oa("Suspense");case 19:return Oa("SuspenseList");case 0:case 15:return Pc(e.type,!1);case 11:return Pc(e.type.render,!1);case 1:return Pc(e.type,!0);case 31:return Oa("Activity");default:return""}}function Fg(e){try{var t="",n=null;do t+=Eb(e,n),n=e,e=e.return;while(e);return t}catch(a){return`Error generating stack: `+a.message+``+a.stack}}var Rs=Object.prototype.hasOwnProperty,md=Ge.unstable_scheduleCallback,qc=Ge.unstable_cancelCallback,Db=Ge.unstable_shouldYield,xb=Ge.unstable_requestPaint,Dt=Ge.unstable_now,Mb=Ge.unstable_getCurrentPriorityLevel,yh=Ge.unstable_ImmediatePriority,vh=Ge.unstable_UserBlockingPriority,Ko=Ge.unstable_NormalPriority,_b=Ge.unstable_LowPriority,bh=Ge.unstable_IdlePriority,Bb=Ge.log,Nb=Ge.unstable_setDisableYieldValue,br=null,xt=null;function ta(e){if(typeof Bb=="function"&&Nb(e),xt&&typeof xt.setStrictMode=="function")try{xt.setStrictMode(br,e)}catch{}}var Mt=Math.clz32?Math.clz32:Lb,Ob=Math.log,kb=Math.LN2;function Lb(e){return e>>>=0,e===0?32:31-(Ob(e)/kb|0)|0}var go=256,mo=262144,ho=4194304;function ka(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Au(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,i=e.suspendedLanes,r=e.pingedLanes;e=e.warmLanes;var o=a&134217727;return o!==0?(a=o&~i,a!==0?l=ka(a):(r&=o,r!==0?l=ka(r):n||(n=o&~e,n!==0&&(l=ka(n))))):(o=a&~i,o!==0?l=ka(o):r!==0?l=ka(r):n||(n=a&~e,n!==0&&(l=ka(n)))),l===0?0:t!==0&&t!==l&&(t&i)===0&&(i=l&-l,n=t&-t,i>=n||i===32&&(n&4194048)!==0)?t:l}function Ar(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Hb(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ah(){var e=ho;return ho<<=1,(ho&62914560)===0&&(ho=4194304),e}function Fc(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function wr(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function zb(e,t,n,a,l,i){var r=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,u=e.expirationTimes,c=e.hiddenUpdates;for(n=r&~n;0<n;){var s=31-Mt(n),f=1<<s;o[s]=0,u[s]=-1;var d=c[s];if(d!==null)for(c[s]=null,s=0;s<d.length;s++){var m=d[s];m!==null&&(m.lane&=-536870913)}n&=~f}a!==0&&wh(e,a,0),i!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=i&~(r&~t))}function wh(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-Mt(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function Sh(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-Mt(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function Ch(e,t){var n=t&-t;return n=(n&42)!==0?1:hd(n),(n&(e.suspendedLanes|t))!==0?0:n}function hd(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function pd(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Rh(){var e=$.p;return e!==0?e:(e=window.event,e===void 0?32:Qy(e.type))}function jg(e,t){var n=$.p;try{return $.p=e,t()}finally{$.p=n}}var ba=Math.random().toString(36).slice(2),Ve="__reactFiber$"+ba,vt="__reactProps$"+ba,Jl="__reactContainer$"+ba,Ts="__reactEvents$"+ba,Ub="__reactListeners$"+ba,Gb="__reactHandles$"+ba,Yg="__reactResources$"+ba,Sr="__reactMarker$"+ba;function yd(e){delete e[Ve],delete e[vt],delete e[Ts],delete e[Ub],delete e[Gb]}function Rl(e){var t=e[Ve];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jl]||n[Ve]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Jm(e);e!==null;){if(n=e[Ve])return n;e=Jm(e)}return t}e=n,n=e.parentNode}return null}function $l(e){if(e=e[Ve]||e[Jl]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Fi(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(S(33))}function kl(e){var t=e[Yg];return t||(t=e[Yg]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function qe(e){e[Sr]=!0}var Th=new Set,Eh={};function Qa(e,t){Fl(e,t),Fl(e+"Capture",t)}function Fl(e,t){for(Eh[e]=t,e=0;e<t.length;e++)Th.add(t[e])}var Pb=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Vg={},Xg={};function qb(e){return Rs.call(Xg,e)?!0:Rs.call(Vg,e)?!1:Pb.test(e)?Xg[e]=!0:(Vg[e]=!0,!1)}function _o(e,t,n){if(qb(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function po(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function Sn(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function Pt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Dh(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Fb(e,t,n){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var l=a.get,i=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(r){n=""+r,i.call(this,r)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(r){n=""+r},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Es(e){if(!e._valueTracker){var t=Dh(e)?"checked":"value";e._valueTracker=Fb(e,t,""+e[t])}}function xh(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Dh(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function Zo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var jb=/[\n"\\]/g;function jt(e){return e.replace(jb,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ds(e,t,n,a,l,i,r,o){e.name="",r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"?e.type=r:e.removeAttribute("type"),t!=null?r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Pt(t)):e.value!==""+Pt(t)&&(e.value=""+Pt(t)):r!=="submit"&&r!=="reset"||e.removeAttribute("value"),t!=null?xs(e,r,Pt(t)):n!=null?xs(e,r,Pt(n)):a!=null&&e.removeAttribute("value"),l==null&&i!=null&&(e.defaultChecked=!!i),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.name=""+Pt(o):e.removeAttribute("name")}function Mh(e,t,n,a,l,i,r,o){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||n!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){Es(e);return}n=n!=null?""+Pt(n):"",t=t!=null?""+Pt(t):n,o||t===e.value||(e.value=t),e.defaultValue=t}a=a??l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=o?e.checked:!!a,e.defaultChecked=!!a,r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(e.name=r),Es(e)}function xs(e,t,n){t==="number"&&Zo(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Ll(e,t,n,a){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&a&&(e[n].defaultSelected=!0)}else{for(n=""+Pt(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,a&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function _h(e,t,n){if(t!=null&&(t=""+Pt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+Pt(n):""}function Bh(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(S(92));if(qi(a)){if(1<a.length)throw Error(S(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=Pt(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Es(e)}function jl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Yb=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Qg(e,t,n){var a=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,n):typeof n!="number"||n===0||Yb.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Nh(e,t,n){if(t!=null&&typeof t!="object")throw Error(S(62));if(e=e.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var l in t)a=t[l],t.hasOwnProperty(l)&&n[l]!==a&&Qg(e,l,a)}else for(var i in t)t.hasOwnProperty(i)&&Qg(e,i,t[i])}function vd(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Vb=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Xb=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Bo(e){return Xb.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function _n(){}var Ms=null;function bd(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tl=null,Hl=null;function Kg(e){var t=$l(e);if(t&&(e=t.stateNode)){var n=e[vt]||null;e:switch(e=t.stateNode,t.type){case"input":if(Ds(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+jt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[vt]||null;if(!l)throw Error(S(90));Ds(a,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(t=0;t<n.length;t++)a=n[t],a.form===e.form&&xh(a)}break e;case"textarea":_h(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Ll(e,!!n.multiple,t,!1)}}}var jc=!1;function Oh(e,t,n){if(jc)return e(t,n);jc=!0;try{var a=e(t);return a}finally{if(jc=!1,(Tl!==null||Hl!==null)&&(Nu(),Tl&&(t=Tl,e=Hl,Hl=Tl=null,Kg(t),e)))for(t=0;t<e.length;t++)Kg(e[t])}}function ir(e,t){var n=e.stateNode;if(n===null)return null;var a=n[vt]||null;if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(S(231,t,typeof n));return n}var Ln=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_s=!1;if(Ln)try{yl={},Object.defineProperty(yl,"passive",{get:function(){_s=!0}}),window.addEventListener("test",yl,yl),window.removeEventListener("test",yl,yl)}catch{_s=!1}var yl,na=null,Ad=null,No=null;function kh(){if(No)return No;var e,t=Ad,n=t.length,a,l="value"in na?na.value:na.textContent,i=l.length;for(e=0;e<n&&t[e]===l[e];e++);var r=n-e;for(a=1;a<=r&&t[n-a]===l[i-a];a++);return No=l.slice(e,1<a?1-a:void 0)}function Oo(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function yo(){return!0}function Zg(){return!1}function bt(e){function t(n,a,l,i,r){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=i,this.target=r,this.currentTarget=null;for(var o in e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?yo:Zg,this.isPropagationStopped=Zg,this}return ve(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=yo)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=yo)},persist:function(){},isPersistent:yo}),t}var Ka={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},wu=bt(Ka),Cr=ve({},Ka,{view:0,detail:0}),Qb=bt(Cr),Yc,Vc,ki,Su=ve({},Cr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:wd,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ki&&(ki&&e.type==="mousemove"?(Yc=e.screenX-ki.screenX,Vc=e.screenY-ki.screenY):Vc=Yc=0,ki=e),Yc)},movementY:function(e){return"movementY"in e?e.movementY:Vc}}),Wg=bt(Su),Kb=ve({},Su,{dataTransfer:0}),Zb=bt(Kb),Wb=ve({},Cr,{relatedTarget:0}),Xc=bt(Wb),Ib=ve({},Ka,{animationName:0,elapsedTime:0,pseudoElement:0}),Jb=bt(Ib),$b=ve({},Ka,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),eA=bt($b),tA=ve({},Ka,{data:0}),Ig=bt(tA),nA={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},aA={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},lA={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function iA(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=lA[e])?!!t[e]:!1}function wd(){return iA}var rA=ve({},Cr,{key:function(e){if(e.key){var t=nA[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Oo(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?aA[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:wd,charCode:function(e){return e.type==="keypress"?Oo(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Oo(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),oA=bt(rA),uA=ve({},Su,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Jg=bt(uA),cA=ve({},Cr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:wd}),sA=bt(cA),dA=ve({},Ka,{propertyName:0,elapsedTime:0,pseudoElement:0}),fA=bt(dA),gA=ve({},Su,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),mA=bt(gA),hA=ve({},Ka,{newState:0,oldState:0}),pA=bt(hA),yA=[9,13,27,32],Sd=Ln&&"CompositionEvent"in window,Vi=null;Ln&&"documentMode"in document&&(Vi=document.documentMode);var vA=Ln&&"TextEvent"in window&&!Vi,Lh=Ln&&(!Sd||Vi&&8<Vi&&11>=Vi),$g=" ",em=!1;function Hh(e,t){switch(e){case"keyup":return yA.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var El=!1;function bA(e,t){switch(e){case"compositionend":return zh(t);case"keypress":return t.which!==32?null:(em=!0,$g);case"textInput":return e=t.data,e===$g&&em?null:e;default:return null}}function AA(e,t){if(El)return e==="compositionend"||!Sd&&Hh(e,t)?(e=kh(),No=Ad=na=null,El=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Lh&&t.locale!=="ko"?null:t.data;default:return null}}var wA={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function tm(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!wA[e.type]:t==="textarea"}function Uh(e,t,n,a){Tl?Hl?Hl.push(a):Hl=[a]:Tl=a,t=gu(t,"onChange"),0<t.length&&(n=new wu("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Xi=null,rr=null;function SA(e){Oy(e,0)}function Cu(e){var t=Fi(e);if(xh(t))return e}function nm(e,t){if(e==="change")return t}var Gh=!1;Ln&&(Ln?(bo="oninput"in document,bo||(Qc=document.createElement("div"),Qc.setAttribute("oninput","return;"),bo=typeof Qc.oninput=="function"),vo=bo):vo=!1,Gh=vo&&(!document.documentMode||9<document.documentMode));var vo,bo,Qc;function am(){Xi&&(Xi.detachEvent("onpropertychange",Ph),rr=Xi=null)}function Ph(e){if(e.propertyName==="value"&&Cu(rr)){var t=[];Uh(t,rr,e,bd(e)),Oh(SA,t)}}function CA(e,t,n){e==="focusin"?(am(),Xi=t,rr=n,Xi.attachEvent("onpropertychange",Ph)):e==="focusout"&&am()}function RA(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Cu(rr)}function TA(e,t){if(e==="click")return Cu(t)}function EA(e,t){if(e==="input"||e==="change")return Cu(t)}function DA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Bt=typeof Object.is=="function"?Object.is:DA;function or(e,t){if(Bt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var l=n[a];if(!Rs.call(t,l)||!Bt(e[l],t[l]))return!1}return!0}function lm(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function im(e,t){var n=lm(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=lm(n)}}function qh(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?qh(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fh(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Zo(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Zo(e.document)}return t}function Cd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var xA=Ln&&"documentMode"in document&&11>=document.documentMode,Dl=null,Bs=null,Qi=null,Ns=!1;function rm(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ns||Dl==null||Dl!==Zo(a)||(a=Dl,"selectionStart"in a&&Cd(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qi&&or(Qi,a)||(Qi=a,a=gu(Bs,"onSelect"),0<a.length&&(t=new wu("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Dl)))}function Na(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xl={animationend:Na("Animation","AnimationEnd"),animationiteration:Na("Animation","AnimationIteration"),animationstart:Na("Animation","AnimationStart"),transitionrun:Na("Transition","TransitionRun"),transitionstart:Na("Transition","TransitionStart"),transitioncancel:Na("Transition","TransitionCancel"),transitionend:Na("Transition","TransitionEnd")},Kc={},jh={};Ln&&(jh=document.createElement("div").style,"AnimationEvent"in window||(delete xl.animationend.animation,delete xl.animationiteration.animation,delete xl.animationstart.animation),"TransitionEvent"in window||delete xl.transitionend.transition);function Za(e){if(Kc[e])return Kc[e];if(!xl[e])return e;var t=xl[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in jh)return Kc[e]=t[n];return e}var Yh=Za("animationend"),Vh=Za("animationiteration"),Xh=Za("animationstart"),MA=Za("transitionrun"),_A=Za("transitionstart"),BA=Za("transitioncancel"),Qh=Za("transitionend"),Kh=new Map,Os="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Os.push("scrollEnd");function tn(e,t){Kh.set(e,t),Qa(t,[e])}var Wo=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Gt=[],Ml=0,Rd=0;function Ru(){for(var e=Ml,t=Rd=Ml=0;t<e;){var n=Gt[t];Gt[t++]=null;var a=Gt[t];Gt[t++]=null;var l=Gt[t];Gt[t++]=null;var i=Gt[t];if(Gt[t++]=null,a!==null&&l!==null){var r=a.pending;r===null?l.next=l:(l.next=r.next,r.next=l),a.pending=l}i!==0&&Zh(n,l,i)}}function Tu(e,t,n,a){Gt[Ml++]=e,Gt[Ml++]=t,Gt[Ml++]=n,Gt[Ml++]=a,Rd|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function Td(e,t,n,a){return Tu(e,t,n,a),Io(e)}function Wa(e,t){return Tu(e,null,null,t),Io(e)}function Zh(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,i=e.return;i!==null;)i.childLanes|=n,a=i.alternate,a!==null&&(a.childLanes|=n),i.tag===22&&(e=i.stateNode,e===null||e._visibility&1||(l=!0)),e=i,i=i.return;return e.tag===3?(i=e.stateNode,l&&t!==null&&(l=31-Mt(n),e=i.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),i):null}function Io(e){if(50<nr)throw nr=0,ed=null,Error(S(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var _l={};function NA(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Tt(e,t,n,a){return new NA(e,t,n,a)}function Ed(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nn(e,t){var n=e.alternate;return n===null?(n=Tt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Wh(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ko(e,t,n,a,l,i){var r=0;if(a=e,typeof e=="function")Ed(e)&&(r=1);else if(typeof e=="string")r=Lw(e,n,gn.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case As:return e=Tt(31,n,t,l),e.elementType=As,e.lanes=i,e;case Sl:return Ua(n.children,l,i,t);case hh:r=8,l|=24;break;case ys:return e=Tt(12,n,t,l|2),e.elementType=ys,e.lanes=i,e;case vs:return e=Tt(13,n,t,l),e.elementType=vs,e.lanes=i,e;case bs:return e=Tt(19,n,t,l),e.elementType=bs,e.lanes=i,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Mn:r=10;break e;case ph:r=9;break e;case fd:r=11;break e;case gd:r=14;break e;case Zn:r=16,a=null;break e}r=29,n=Error(S(130,e===null?"null":typeof e,"")),a=null}return t=Tt(r,n,t,l),t.elementType=e,t.type=a,t.lanes=i,t}function Ua(e,t,n,a){return e=Tt(7,e,a,t),e.lanes=n,e}function Zc(e,t,n){return e=Tt(6,e,null,t),e.lanes=n,e}function Ih(e){var t=Tt(18,null,null,0);return t.stateNode=e,t}function Wc(e,t,n){return t=Tt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var om=new WeakMap;function Yt(e,t){if(typeof e=="object"&&e!==null){var n=om.get(e);return n!==void 0?n:(t={value:e,source:t,stack:Fg(t)},om.set(e,t),t)}return{value:e,source:t,stack:Fg(t)}}var Bl=[],Nl=0,Jo=null,ur=0,qt=[],Ft=0,ha=null,sn=1,dn="";function Dn(e,t){Bl[Nl++]=ur,Bl[Nl++]=Jo,Jo=e,ur=t}function Jh(e,t,n){qt[Ft++]=sn,qt[Ft++]=dn,qt[Ft++]=ha,ha=e;var a=sn;e=dn;var l=32-Mt(a)-1;a&=~(1<<l),n+=1;var i=32-Mt(t)+l;if(30<i){var r=l-l%5;i=(a&(1<<r)-1).toString(32),a>>=r,l-=r,sn=1<<32-Mt(t)+l|n<<l|a,dn=i+e}else sn=1<<i|n<<l|a,dn=e}function Dd(e){e.return!==null&&(Dn(e,1),Jh(e,1,0))}function xd(e){for(;e===Jo;)Jo=Bl[--Nl],Bl[Nl]=null,ur=Bl[--Nl],Bl[Nl]=null;for(;e===ha;)ha=qt[--Ft],qt[Ft]=null,dn=qt[--Ft],qt[Ft]=null,sn=qt[--Ft],qt[Ft]=null}function $h(e,t){qt[Ft++]=sn,qt[Ft++]=dn,qt[Ft++]=ha,sn=t.id,dn=t.overflow,ha=e}var Xe=null,ye=null,V=!1,oa=null,Vt=!1,ks=Error(S(519));function pa(e){var t=Error(S(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw cr(Yt(t,e)),ks}function um(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[Ve]=e,t[vt]=a,n){case"dialog":q("cancel",t),q("close",t);break;case"iframe":case"object":case"embed":q("load",t);break;case"video":case"audio":for(n=0;n<gr.length;n++)q(gr[n],t);break;case"source":q("error",t);break;case"img":case"image":case"link":q("error",t),q("load",t);break;case"details":q("toggle",t);break;case"input":q("invalid",t),Mh(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":q("invalid",t);break;case"textarea":q("invalid",t),Bh(t,a.value,a.defaultValue,a.children)}n=a.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||a.suppressHydrationWarning===!0||Ly(t.textContent,n)?(a.popover!=null&&(q("beforetoggle",t),q("toggle",t)),a.onScroll!=null&&q("scroll",t),a.onScrollEnd!=null&&q("scrollend",t),a.onClick!=null&&(t.onclick=_n),t=!0):t=!1,t||pa(e,!0)}function cm(e){for(Xe=e.return;Xe;)switch(Xe.tag){case 5:case 31:case 13:Vt=!1;return;case 27:case 3:Vt=!0;return;default:Xe=Xe.return}}function vl(e){if(e!==Xe)return!1;if(!V)return cm(e),V=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||id(e.type,e.memoizedProps)),n=!n),n&&ye&&pa(e),cm(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(317));ye=Im(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(317));ye=Im(e)}else t===27?(t=ye,Aa(e.type)?(e=cd,cd=null,ye=e):ye=t):ye=Xe?Qt(e.stateNode.nextSibling):null;return!0}function Fa(){ye=Xe=null,V=!1}function Ic(){var e=oa;return e!==null&&(pt===null?pt=e:pt.push.apply(pt,e),oa=null),e}function cr(e){oa===null?oa=[e]:oa.push(e)}var Ls=mn(null),Ia=null,Bn=null;function In(e,t,n){ge(Ls,t._currentValue),t._currentValue=n}function On(e){e._currentValue=Ls.current,Fe(Ls)}function Hs(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function zs(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var i=l.dependencies;if(i!==null){var r=l.child;i=i.firstContext;e:for(;i!==null;){var o=i;i=l;for(var u=0;u<t.length;u++)if(o.context===t[u]){i.lanes|=n,o=i.alternate,o!==null&&(o.lanes|=n),Hs(i.return,n,e),a||(r=null);break e}i=o.next}}else if(l.tag===18){if(r=l.return,r===null)throw Error(S(341));r.lanes|=n,i=r.alternate,i!==null&&(i.lanes|=n),Hs(r,n,e),r=null}else r=l.child;if(r!==null)r.return=l;else for(r=l;r!==null;){if(r===e){r=null;break}if(l=r.sibling,l!==null){l.return=r.return,r=l;break}r=r.return}l=r}}function ei(e,t,n,a){e=null;for(var l=t,i=!1;l!==null;){if(!i){if((l.flags&524288)!==0)i=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var r=l.alternate;if(r===null)throw Error(S(387));if(r=r.memoizedProps,r!==null){var o=l.type;Bt(l.pendingProps.value,r.value)||(e!==null?e.push(o):e=[o])}}else if(l===Vo.current){if(r=l.alternate,r===null)throw Error(S(387));r.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(hr):e=[hr])}l=l.return}e!==null&&zs(t,e,n,a),t.flags|=262144}function $o(e){for(e=e.firstContext;e!==null;){if(!Bt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ja(e){Ia=e,Bn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Qe(e){return ep(Ia,e)}function Ao(e,t){return Ia===null&&ja(e),ep(e,t)}function ep(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Bn===null){if(e===null)throw Error(S(308));Bn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Bn=Bn.next=t;return n}var OA=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},kA=Ge.unstable_scheduleCallback,LA=Ge.unstable_NormalPriority,ke={$$typeof:Mn,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Md(){return{controller:new OA,data:new Map,refCount:0}}function Rr(e){e.refCount--,e.refCount===0&&kA(LA,function(){e.controller.abort()})}var Ki=null,Us=0,Yl=0,zl=null;function HA(e,t){if(Ki===null){var n=Ki=[];Us=0,Yl=ef(),zl={status:"pending",value:void 0,then:function(a){n.push(a)}}}return Us++,t.then(sm,sm),t}function sm(){if(--Us===0&&Ki!==null){zl!==null&&(zl.status="fulfilled");var e=Ki;Ki=null,Yl=0,zl=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function zA(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(a.status="rejected",a.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),a}var dm=L.S;L.S=function(e,t){my=Dt(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&HA(e,t),dm!==null&&dm(e,t)};var Ga=mn(null);function _d(){var e=Ga.current;return e!==null?e:ue.pooledCache}function Lo(e,t){t===null?ge(Ga,Ga.current):ge(Ga,t.pool)}function tp(){var e=_d();return e===null?null:{parent:ke._currentValue,pool:e}}var ti=Error(S(460)),Bd=Error(S(474)),Eu=Error(S(542)),eu={then:function(){}};function fm(e){return e=e.status,e==="fulfilled"||e==="rejected"}function np(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(_n,_n),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mm(e),e;default:if(typeof t.status=="string")t.then(_n,_n);else{if(e=ue,e!==null&&100<e.shellSuspendCounter)throw Error(S(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=a}},function(a){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mm(e),e}throw Pa=t,ti}}function La(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Pa=n,ti):n}}var Pa=null;function gm(){if(Pa===null)throw Error(S(459));var e=Pa;return Pa=null,e}function mm(e){if(e===ti||e===Eu)throw Error(S(483))}var Ul=null,sr=0;function wo(e){var t=sr;return sr+=1,Ul===null&&(Ul=[]),np(Ul,e,t)}function Li(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function So(e,t){throw t.$$typeof===Cb?Error(S(525)):(e=Object.prototype.toString.call(t),Error(S(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function ap(e){function t(h,g){if(e){var p=h.deletions;p===null?(h.deletions=[g],h.flags|=16):p.push(g)}}function n(h,g){if(!e)return null;for(;g!==null;)t(h,g),g=g.sibling;return null}function a(h){for(var g=new Map;h!==null;)h.key!==null?g.set(h.key,h):g.set(h.index,h),h=h.sibling;return g}function l(h,g){return h=Nn(h,g),h.index=0,h.sibling=null,h}function i(h,g,p){return h.index=p,e?(p=h.alternate,p!==null?(p=p.index,p<g?(h.flags|=67108866,g):p):(h.flags|=67108866,g)):(h.flags|=1048576,g)}function r(h){return e&&h.alternate===null&&(h.flags|=67108866),h}function o(h,g,p,y){return g===null||g.tag!==6?(g=Zc(p,h.mode,y),g.return=h,g):(g=l(g,p),g.return=h,g)}function u(h,g,p,y){var C=p.type;return C===Sl?s(h,g,p.props.children,y,p.key):g!==null&&(g.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zn&&La(C)===g.type)?(g=l(g,p.props),Li(g,p),g.return=h,g):(g=ko(p.type,p.key,p.props,null,h.mode,y),Li(g,p),g.return=h,g)}function c(h,g,p,y){return g===null||g.tag!==4||g.stateNode.containerInfo!==p.containerInfo||g.stateNode.implementation!==p.implementation?(g=Wc(p,h.mode,y),g.return=h,g):(g=l(g,p.children||[]),g.return=h,g)}function s(h,g,p,y,C){return g===null||g.tag!==7?(g=Ua(p,h.mode,y,C),g.return=h,g):(g=l(g,p),g.return=h,g)}function f(h,g,p){if(typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint")return g=Zc(""+g,h.mode,p),g.return=h,g;if(typeof g=="object"&&g!==null){switch(g.$$typeof){case fo:return p=ko(g.type,g.key,g.props,null,h.mode,p),Li(p,g),p.return=h,p;case Pi:return g=Wc(g,h.mode,p),g.return=h,g;case Zn:return g=La(g),f(h,g,p)}if(qi(g)||Oi(g))return g=Ua(g,h.mode,p,null),g.return=h,g;if(typeof g.then=="function")return f(h,wo(g),p);if(g.$$typeof===Mn)return f(h,Ao(h,g),p);So(h,g)}return null}function d(h,g,p,y){var C=g!==null?g.key:null;if(typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint")return C!==null?null:o(h,g,""+p,y);if(typeof p=="object"&&p!==null){switch(p.$$typeof){case fo:return p.key===C?u(h,g,p,y):null;case Pi:return p.key===C?c(h,g,p,y):null;case Zn:return p=La(p),d(h,g,p,y)}if(qi(p)||Oi(p))return C!==null?null:s(h,g,p,y,null);if(typeof p.then=="function")return d(h,g,wo(p),y);if(p.$$typeof===Mn)return d(h,g,Ao(h,p),y);So(h,p)}return null}function m(h,g,p,y,C){if(typeof y=="string"&&y!==""||typeof y=="number"||typeof y=="bigint")return h=h.get(p)||null,o(g,h,""+y,C);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case fo:return h=h.get(y.key===null?p:y.key)||null,u(g,h,y,C);case Pi:return h=h.get(y.key===null?p:y.key)||null,c(g,h,y,C);case Zn:return y=La(y),m(h,g,p,y,C)}if(qi(y)||Oi(y))return h=h.get(p)||null,s(g,h,y,C,null);if(typeof y.then=="function")return m(h,g,p,wo(y),C);if(y.$$typeof===Mn)return m(h,g,p,Ao(g,y),C);So(g,y)}return null}function v(h,g,p,y){for(var C=null,R=null,T=g,M=g=0,w=null;T!==null&&M<p.length;M++){T.index>M?(w=T,T=null):w=T.sibling;var D=d(h,T,p[M],y);if(D===null){T===null&&(T=w);break}e&&T&&D.alternate===null&&t(h,T),g=i(D,g,M),R===null?C=D:R.sibling=D,R=D,T=w}if(M===p.length)return n(h,T),V&&Dn(h,M),C;if(T===null){for(;M<p.length;M++)T=f(h,p[M],y),T!==null&&(g=i(T,g,M),R===null?C=T:R.sibling=T,R=T);return V&&Dn(h,M),C}for(T=a(T);M<p.length;M++)w=m(T,h,M,p[M],y),w!==null&&(e&&w.alternate!==null&&T.delete(w.key===null?M:w.key),g=i(w,g,M),R===null?C=w:R.sibling=w,R=w);return e&&T.forEach(function(k){return t(h,k)}),V&&Dn(h,M),C}function A(h,g,p,y){if(p==null)throw Error(S(151));for(var C=null,R=null,T=g,M=g=0,w=null,D=p.next();T!==null&&!D.done;M++,D=p.next()){T.index>M?(w=T,T=null):w=T.sibling;var k=d(h,T,D.value,y);if(k===null){T===null&&(T=w);break}e&&T&&k.alternate===null&&t(h,T),g=i(k,g,M),R===null?C=k:R.sibling=k,R=k,T=w}if(D.done)return n(h,T),V&&Dn(h,M),C;if(T===null){for(;!D.done;M++,D=p.next())D=f(h,D.value,y),D!==null&&(g=i(D,g,M),R===null?C=D:R.sibling=D,R=D);return V&&Dn(h,M),C}for(T=a(T);!D.done;M++,D=p.next())D=m(T,h,M,D.value,y),D!==null&&(e&&D.alternate!==null&&T.delete(D.key===null?M:D.key),g=i(D,g,M),R===null?C=D:R.sibling=D,R=D);return e&&T.forEach(function(se){return t(h,se)}),V&&Dn(h,M),C}function b(h,g,p,y){if(typeof p=="object"&&p!==null&&p.type===Sl&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case fo:e:{for(var C=p.key;g!==null;){if(g.key===C){if(C=p.type,C===Sl){if(g.tag===7){n(h,g.sibling),y=l(g,p.props.children),y.return=h,h=y;break e}}else if(g.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zn&&La(C)===g.type){n(h,g.sibling),y=l(g,p.props),Li(y,p),y.return=h,h=y;break e}n(h,g);break}else t(h,g);g=g.sibling}p.type===Sl?(y=Ua(p.props.children,h.mode,y,p.key),y.return=h,h=y):(y=ko(p.type,p.key,p.props,null,h.mode,y),Li(y,p),y.return=h,h=y)}return r(h);case Pi:e:{for(C=p.key;g!==null;){if(g.key===C)if(g.tag===4&&g.stateNode.containerInfo===p.containerInfo&&g.stateNode.implementation===p.implementation){n(h,g.sibling),y=l(g,p.children||[]),y.return=h,h=y;break e}else{n(h,g);break}else t(h,g);g=g.sibling}y=Wc(p,h.mode,y),y.return=h,h=y}return r(h);case Zn:return p=La(p),b(h,g,p,y)}if(qi(p))return v(h,g,p,y);if(Oi(p)){if(C=Oi(p),typeof C!="function")throw Error(S(150));return p=C.call(p),A(h,g,p,y)}if(typeof p.then=="function")return b(h,g,wo(p),y);if(p.$$typeof===Mn)return b(h,g,Ao(h,p),y);So(h,p)}return typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint"?(p=""+p,g!==null&&g.tag===6?(n(h,g.sibling),y=l(g,p),y.return=h,h=y):(n(h,g),y=Zc(p,h.mode,y),y.return=h,h=y),r(h)):n(h,g)}return function(h,g,p,y){try{sr=0;var C=b(h,g,p,y);return Ul=null,C}catch(T){if(T===ti||T===Eu)throw T;var R=Tt(29,T,null,h.mode);return R.lanes=y,R.return=h,R}finally{}}}var Ya=ap(!0),lp=ap(!1),Wn=!1;function Nd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Gs(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ua(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ca(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(J&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=Io(e),Zh(e,null,n),t}return Tu(e,a,t,n),Io(e)}function Zi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Sh(e,n)}}function Jc(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var r={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};i===null?l=i=r:i=i.next=r,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ps=!1;function Wi(){if(Ps){var e=zl;if(e!==null)throw e}}function Ii(e,t,n,a){Ps=!1;var l=e.updateQueue;Wn=!1;var i=l.firstBaseUpdate,r=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var u=o,c=u.next;u.next=null,r===null?i=c:r.next=c,r=u;var s=e.alternate;s!==null&&(s=s.updateQueue,o=s.lastBaseUpdate,o!==r&&(o===null?s.firstBaseUpdate=c:o.next=c,s.lastBaseUpdate=u))}if(i!==null){var f=l.baseState;r=0,s=c=u=null,o=i;do{var d=o.lane&-536870913,m=d!==o.lane;if(m?(Y&d)===d:(a&d)===d){d!==0&&d===Yl&&(Ps=!0),s!==null&&(s=s.next={lane:0,tag:o.tag,payload:o.payload,callback:null,next:null});e:{var v=e,A=o;d=t;var b=n;switch(A.tag){case 1:if(v=A.payload,typeof v=="function"){f=v.call(b,f,d);break e}f=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=A.payload,d=typeof v=="function"?v.call(b,f,d):v,d==null)break e;f=ve({},f,d);break e;case 2:Wn=!0}}d=o.callback,d!==null&&(e.flags|=64,m&&(e.flags|=8192),m=l.callbacks,m===null?l.callbacks=[d]:m.push(d))}else m={lane:d,tag:o.tag,payload:o.payload,callback:o.callback,next:null},s===null?(c=s=m,u=f):s=s.next=m,r|=d;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;m=o,o=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);s===null&&(u=f),l.baseState=u,l.firstBaseUpdate=c,l.lastBaseUpdate=s,i===null&&(l.shared.lanes=0),va|=r,e.lanes=r,e.memoizedState=f}}function ip(e,t){if(typeof e!="function")throw Error(S(191,e));e.call(t)}function rp(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)ip(n[e],t)}var Vl=mn(null),tu=mn(0);function hm(e,t){e=Gn,ge(tu,e),ge(Vl,t),Gn=e|t.baseLanes}function qs(){ge(tu,Gn),ge(Vl,Vl.current)}function Od(){Gn=tu.current,Fe(Vl),Fe(tu)}var Nt=mn(null),Xt=null;function Jn(e){var t=e.alternate;ge(xe,xe.current&1),ge(Nt,e),Xt===null&&(t===null||Vl.current!==null||t.memoizedState!==null)&&(Xt=e)}function Fs(e){ge(xe,xe.current),ge(Nt,e),Xt===null&&(Xt=e)}function op(e){e.tag===22?(ge(xe,xe.current),ge(Nt,e),Xt===null&&(Xt=e)):$n(e)}function $n(){ge(xe,xe.current),ge(Nt,Nt.current)}function Rt(e){Fe(Nt),Xt===e&&(Xt=null),Fe(xe)}var xe=mn(0);function nu(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||od(n)||ud(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Hn=0,G=null,re=null,Ne=null,au=!1,Gl=!1,Va=!1,lu=0,dr=0,Pl=null,UA=0;function Re(){throw Error(S(321))}function kd(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Bt(e[n],t[n]))return!1;return!0}function Ld(e,t,n,a,l,i){return Hn=i,G=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,L.H=e===null||e.memoizedState===null?Up:Xd,Va=!1,i=n(a,l),Va=!1,Gl&&(i=cp(t,n,a,l)),up(e),i}function up(e){L.H=fr;var t=re!==null&&re.next!==null;if(Hn=0,Ne=re=G=null,au=!1,dr=0,Pl=null,t)throw Error(S(300));e===null||Le||(e=e.dependencies,e!==null&&$o(e)&&(Le=!0))}function cp(e,t,n,a){G=e;var l=0;do{if(Gl&&(Pl=null),dr=0,Gl=!1,25<=l)throw Error(S(301));if(l+=1,Ne=re=null,e.updateQueue!=null){var i=e.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,i.memoCache!=null&&(i.memoCache.index=0)}L.H=Gp,i=t(n,a)}while(Gl);return i}function GA(){var e=L.H,t=e.useState()[0];return t=typeof t.then=="function"?Tr(t):t,e=e.useState()[0],(re!==null?re.memoizedState:null)!==e&&(G.flags|=1024),t}function Hd(){var e=lu!==0;return lu=0,e}function zd(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Ud(e){if(au){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}au=!1}Hn=0,Ne=re=G=null,Gl=!1,dr=lu=0,Pl=null}function ut(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ne===null?G.memoizedState=Ne=e:Ne=Ne.next=e,Ne}function Me(){if(re===null){var e=G.alternate;e=e!==null?e.memoizedState:null}else e=re.next;var t=Ne===null?G.memoizedState:Ne.next;if(t!==null)Ne=t,re=e;else{if(e===null)throw G.alternate===null?Error(S(467)):Error(S(310));re=e,e={memoizedState:re.memoizedState,baseState:re.baseState,baseQueue:re.baseQueue,queue:re.queue,next:null},Ne===null?G.memoizedState=Ne=e:Ne=Ne.next=e}return Ne}function Du(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Tr(e){var t=dr;return dr+=1,Pl===null&&(Pl=[]),e=np(Pl,e,t),t=G,(Ne===null?t.memoizedState:Ne.next)===null&&(t=t.alternate,L.H=t===null||t.memoizedState===null?Up:Xd),e}function xu(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Tr(e);if(e.$$typeof===Mn)return Qe(e)}throw Error(S(438,String(e)))}function Gd(e){var t=null,n=G.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=G.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=Du(),G.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),a=0;a<e;a++)n[a]=Rb;return t.index++,n}function zn(e,t){return typeof t=="function"?t(e):t}function Ho(e){var t=Me();return Pd(t,re,e)}function Pd(e,t,n){var a=e.queue;if(a===null)throw Error(S(311));a.lastRenderedReducer=n;var l=e.baseQueue,i=a.pending;if(i!==null){if(l!==null){var r=l.next;l.next=i.next,i.next=r}t.baseQueue=l=i,a.pending=null}if(i=e.baseState,l===null)e.memoizedState=i;else{t=l.next;var o=r=null,u=null,c=t,s=!1;do{var f=c.lane&-536870913;if(f!==c.lane?(Y&f)===f:(Hn&f)===f){var d=c.revertLane;if(d===0)u!==null&&(u=u.next={lane:0,revertLane:0,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),f===Yl&&(s=!0);else if((Hn&d)===d){c=c.next,d===Yl&&(s=!0);continue}else f={lane:0,revertLane:c.revertLane,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},u===null?(o=u=f,r=i):u=u.next=f,G.lanes|=d,va|=d;f=c.action,Va&&n(i,f),i=c.hasEagerState?c.eagerState:n(i,f)}else d={lane:f,revertLane:c.revertLane,gesture:c.gesture,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},u===null?(o=u=d,r=i):u=u.next=d,G.lanes|=f,va|=f;c=c.next}while(c!==null&&c!==t);if(u===null?r=i:u.next=o,!Bt(i,e.memoizedState)&&(Le=!0,s&&(n=zl,n!==null)))throw n;e.memoizedState=i,e.baseState=r,e.baseQueue=u,a.lastRenderedState=i}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function $c(e){var t=Me(),n=t.queue;if(n===null)throw Error(S(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var r=l=l.next;do i=e(i,r.action),r=r.next;while(r!==l);Bt(i,t.memoizedState)||(Le=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,a]}function sp(e,t,n){var a=G,l=Me(),i=V;if(i){if(n===void 0)throw Error(S(407));n=n()}else n=t();var r=!Bt((re||l).memoizedState,n);if(r&&(l.memoizedState=n,Le=!0),l=l.queue,qd(gp.bind(null,a,l,e),[e]),l.getSnapshot!==t||r||Ne!==null&&Ne.memoizedState.tag&1){if(a.flags|=2048,Xl(9,{destroy:void 0},fp.bind(null,a,l,n,t),null),ue===null)throw Error(S(349));i||(Hn&127)!==0||dp(a,t,n)}return n}function dp(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=G.updateQueue,t===null?(t=Du(),G.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function fp(e,t,n,a){t.value=n,t.getSnapshot=a,mp(t)&&hp(e)}function gp(e,t,n){return n(function(){mp(t)&&hp(e)})}function mp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Bt(e,n)}catch{return!0}}function hp(e){var t=Wa(e,2);t!==null&&yt(t,e,2)}function js(e){var t=ut();if(typeof e=="function"){var n=e;if(e=n(),Va){ta(!0);try{n()}finally{ta(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:e},t}function pp(e,t,n,a){return e.baseState=n,Pd(e,re,typeof a=="function"?a:zn)}function PA(e,t,n,a,l){if(_u(e))throw Error(S(485));if(e=t.action,e!==null){var i={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(r){i.listeners.push(r)}};L.T!==null?n(!0):i.isTransition=!1,a(i),n=t.pending,n===null?(i.next=t.pending=i,yp(t,i)):(i.next=n.next,t.pending=n.next=i)}}function yp(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var i=L.T,r={};L.T=r;try{var o=n(l,a),u=L.S;u!==null&&u(r,o),pm(e,t,o)}catch(c){Ys(e,t,c)}finally{i!==null&&r.types!==null&&(i.types=r.types),L.T=i}}else try{i=n(l,a),pm(e,t,i)}catch(c){Ys(e,t,c)}}function pm(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){ym(e,t,a)},function(a){return Ys(e,t,a)}):ym(e,t,n)}function ym(e,t,n){t.status="fulfilled",t.value=n,vp(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,yp(e,n)))}function Ys(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,vp(t),t=t.next;while(t!==a)}e.action=null}function vp(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function bp(e,t){return t}function vm(e,t){if(V){var n=ue.formState;if(n!==null){e:{var a=G;if(V){if(ye){t:{for(var l=ye,i=Vt;l.nodeType!==8;){if(!i){l=null;break t}if(l=Qt(l.nextSibling),l===null){l=null;break t}}i=l.data,l=i==="F!"||i==="F"?l:null}if(l){ye=Qt(l.nextSibling),a=l.data==="F!";break e}}pa(a)}a=!1}a&&(t=n[0])}}return n=ut(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:bp,lastRenderedState:t},n.queue=a,n=Lp.bind(null,G,a),a.dispatch=n,a=js(!1),i=Vd.bind(null,G,!1,a.queue),a=ut(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=PA.bind(null,G,l,i,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function bm(e){var t=Me();return Ap(t,re,e)}function Ap(e,t,n){if(t=Pd(e,t,bp)[0],e=Ho(zn)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Tr(t)}catch(r){throw r===ti?Eu:r}else a=t;t=Me();var l=t.queue,i=l.dispatch;return n!==t.memoizedState&&(G.flags|=2048,Xl(9,{destroy:void 0},qA.bind(null,l,n),null)),[a,i,e]}function qA(e,t){e.action=t}function Am(e){var t=Me(),n=re;if(n!==null)return Ap(t,n,e);Me(),t=t.memoizedState,n=Me();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Xl(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=G.updateQueue,t===null&&(t=Du(),G.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function wp(){return Me().memoizedState}function zo(e,t,n,a){var l=ut();G.flags|=e,l.memoizedState=Xl(1|t,{destroy:void 0},n,a===void 0?null:a)}function Mu(e,t,n,a){var l=Me();a=a===void 0?null:a;var i=l.memoizedState.inst;re!==null&&a!==null&&kd(a,re.memoizedState.deps)?l.memoizedState=Xl(t,i,n,a):(G.flags|=e,l.memoizedState=Xl(1|t,i,n,a))}function wm(e,t){zo(8390656,8,e,t)}function qd(e,t){Mu(2048,8,e,t)}function FA(e){G.flags|=4;var t=G.updateQueue;if(t===null)t=Du(),G.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Sp(e){var t=Me().memoizedState;return FA({ref:t,nextImpl:e}),function(){if((J&2)!==0)throw Error(S(440));return t.impl.apply(void 0,arguments)}}function Cp(e,t){return Mu(4,2,e,t)}function Rp(e,t){return Mu(4,4,e,t)}function Tp(e,t){if(typeof t=="function"){e=e();var n=t(e);return function(){typeof n=="function"?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Ep(e,t,n){n=n!=null?n.concat([e]):null,Mu(4,4,Tp.bind(null,t,e),n)}function Fd(){}function Dp(e,t){var n=Me();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&kd(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function xp(e,t){var n=Me();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&kd(t,a[1]))return a[0];if(a=e(),Va){ta(!0);try{e()}finally{ta(!1)}}return n.memoizedState=[a,t],a}function jd(e,t,n){return n===void 0||(Hn&1073741824)!==0&&(Y&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=py(),G.lanes|=e,va|=e,n)}function Mp(e,t,n,a){return Bt(n,t)?n:Vl.current!==null?(e=jd(e,n,a),Bt(e,t)||(Le=!0),e):(Hn&42)===0||(Hn&1073741824)!==0&&(Y&261930)===0?(Le=!0,e.memoizedState=n):(e=py(),G.lanes|=e,va|=e,t)}function _p(e,t,n,a,l){var i=$.p;$.p=i!==0&&8>i?i:8;var r=L.T,o={};L.T=o,Vd(e,!1,t,n);try{var u=l(),c=L.S;if(c!==null&&c(o,u),u!==null&&typeof u=="object"&&typeof u.then=="function"){var s=zA(u,a);Ji(e,t,s,_t(e))}else Ji(e,t,a,_t(e))}catch(f){Ji(e,t,{then:function(){},status:"rejected",reason:f},_t())}finally{$.p=i,r!==null&&o.types!==null&&(r.types=o.types),L.T=r}}function jA(){}function Vs(e,t,n,a){if(e.tag!==5)throw Error(S(476));var l=Bp(e).queue;_p(e,l,t,za,n===null?jA:function(){return Np(e),n(a)})}function Bp(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:za,baseState:za,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:za},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Np(e){var t=Bp(e);t.next===null&&(t=e.alternate.memoizedState),Ji(e,t.next.queue,{},_t())}function Yd(){return Qe(hr)}function Op(){return Me().memoizedState}function kp(){return Me().memoizedState}function YA(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=_t();e=ua(n);var a=ca(t,e,n);a!==null&&(yt(a,t,n),Zi(a,t,n)),t={cache:Md()},e.payload=t;return}t=t.return}}function VA(e,t,n){var a=_t();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},_u(e)?Hp(t,n):(n=Td(e,t,n,a),n!==null&&(yt(n,e,a),zp(n,t,a)))}function Lp(e,t,n){var a=_t();Ji(e,t,n,a)}function Ji(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(_u(e))Hp(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var r=t.lastRenderedState,o=i(r,n);if(l.hasEagerState=!0,l.eagerState=o,Bt(o,r))return Tu(e,t,l,0),ue===null&&Ru(),!1}catch{}finally{}if(n=Td(e,t,l,a),n!==null)return yt(n,e,a),zp(n,t,a),!0}return!1}function Vd(e,t,n,a){if(a={lane:2,revertLane:ef(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},_u(e)){if(t)throw Error(S(479))}else t=Td(e,n,a,2),t!==null&&yt(t,e,2)}function _u(e){var t=e.alternate;return e===G||t!==null&&t===G}function Hp(e,t){Gl=au=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function zp(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Sh(e,n)}}var fr={readContext:Qe,use:xu,useCallback:Re,useContext:Re,useEffect:Re,useImperativeHandle:Re,useLayoutEffect:Re,useInsertionEffect:Re,useMemo:Re,useReducer:Re,useRef:Re,useState:Re,useDebugValue:Re,useDeferredValue:Re,useTransition:Re,useSyncExternalStore:Re,useId:Re,useHostTransitionStatus:Re,useFormState:Re,useActionState:Re,useOptimistic:Re,useMemoCache:Re,useCacheRefresh:Re};fr.useEffectEvent=Re;var Up={readContext:Qe,use:xu,useCallback:function(e,t){return ut().memoizedState=[e,t===void 0?null:t],e},useContext:Qe,useEffect:wm,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,zo(4194308,4,Tp.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zo(4194308,4,e,t)},useInsertionEffect:function(e,t){zo(4,2,e,t)},useMemo:function(e,t){var n=ut();t=t===void 0?null:t;var a=e();if(Va){ta(!0);try{e()}finally{ta(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=ut();if(n!==void 0){var l=n(t);if(Va){ta(!0);try{n(t)}finally{ta(!1)}}}else l=t;return a.memoizedState=a.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},a.queue=e,e=e.dispatch=VA.bind(null,G,e),[a.memoizedState,e]},useRef:function(e){var t=ut();return e={current:e},t.memoizedState=e},useState:function(e){e=js(e);var t=e.queue,n=Lp.bind(null,G,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Fd,useDeferredValue:function(e,t){var n=ut();return jd(n,e,t)},useTransition:function(){var e=js(!1);return e=_p.bind(null,G,e.queue,!0,!1),ut().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=G,l=ut();if(V){if(n===void 0)throw Error(S(407));n=n()}else{if(n=t(),ue===null)throw Error(S(349));(Y&127)!==0||dp(a,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,wm(gp.bind(null,a,i,e),[e]),a.flags|=2048,Xl(9,{destroy:void 0},fp.bind(null,a,i,n,t),null),n},useId:function(){var e=ut(),t=ue.identifierPrefix;if(V){var n=dn,a=sn;n=(a&~(1<<32-Mt(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=lu++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=UA++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Yd,useFormState:vm,useActionState:vm,useOptimistic:function(e){var t=ut();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Vd.bind(null,G,!0,n),n.dispatch=t,[e,t]},useMemoCache:Gd,useCacheRefresh:function(){return ut().memoizedState=YA.bind(null,G)},useEffectEvent:function(e){var t=ut(),n={impl:e};return t.memoizedState=n,function(){if((J&2)!==0)throw Error(S(440));return n.impl.apply(void 0,arguments)}}},Xd={readContext:Qe,use:xu,useCallback:Dp,useContext:Qe,useEffect:qd,useImperativeHandle:Ep,useInsertionEffect:Cp,useLayoutEffect:Rp,useMemo:xp,useReducer:Ho,useRef:wp,useState:function(){return Ho(zn)},useDebugValue:Fd,useDeferredValue:function(e,t){var n=Me();return Mp(n,re.memoizedState,e,t)},useTransition:function(){var e=Ho(zn)[0],t=Me().memoizedState;return[typeof e=="boolean"?e:Tr(e),t]},useSyncExternalStore:sp,useId:Op,useHostTransitionStatus:Yd,useFormState:bm,useActionState:bm,useOptimistic:function(e,t){var n=Me();return pp(n,re,e,t)},useMemoCache:Gd,useCacheRefresh:kp};Xd.useEffectEvent=Sp;var Gp={readContext:Qe,use:xu,useCallback:Dp,useContext:Qe,useEffect:qd,useImperativeHandle:Ep,useInsertionEffect:Cp,useLayoutEffect:Rp,useMemo:xp,useReducer:$c,useRef:wp,useState:function(){return $c(zn)},useDebugValue:Fd,useDeferredValue:function(e,t){var n=Me();return re===null?jd(n,e,t):Mp(n,re.memoizedState,e,t)},useTransition:function(){var e=$c(zn)[0],t=Me().memoizedState;return[typeof e=="boolean"?e:Tr(e),t]},useSyncExternalStore:sp,useId:Op,useHostTransitionStatus:Yd,useFormState:Am,useActionState:Am,useOptimistic:function(e,t){var n=Me();return re!==null?pp(n,re,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Gd,useCacheRefresh:kp};Gp.useEffectEvent=Sp;function es(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:ve({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Xs={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=_t(),l=ua(a);l.payload=t,n!=null&&(l.callback=n),t=ca(e,l,a),t!==null&&(yt(t,e,a),Zi(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=_t(),l=ua(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=ca(e,l,a),t!==null&&(yt(t,e,a),Zi(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=_t(),a=ua(n);a.tag=2,t!=null&&(a.callback=t),t=ca(e,a,n),t!==null&&(yt(t,e,n),Zi(t,e,n))}};function Sm(e,t,n,a,l,i,r){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,i,r):t.prototype&&t.prototype.isPureReactComponent?!or(n,a)||!or(l,i):!0}function Cm(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&Xs.enqueueReplaceState(t,t.state,null)}function Xa(e,t){var n=t;if("ref"in t){n={};for(var a in t)a!=="ref"&&(n[a]=t[a])}if(e=e.defaultProps){n===t&&(n=ve({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function Pp(e){Wo(e)}function qp(e){console.error(e)}function Fp(e){Wo(e)}function iu(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Rm(e,t,n){try{var a=e.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(l){setTimeout(function(){throw l})}}function Qs(e,t,n){return n=ua(n),n.tag=3,n.payload={element:null},n.callback=function(){iu(e,t)},n}function jp(e){return e=ua(e),e.tag=3,e}function Yp(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var i=a.value;e.payload=function(){return l(i)},e.callback=function(){Rm(t,n,a)}}var r=n.stateNode;r!==null&&typeof r.componentDidCatch=="function"&&(e.callback=function(){Rm(t,n,a),typeof l!="function"&&(sa===null?sa=new Set([this]):sa.add(this));var o=a.stack;this.componentDidCatch(a.value,{componentStack:o!==null?o:""})})}function XA(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&ei(t,n,l,!0),n=Nt.current,n!==null){switch(n.tag){case 31:case 13:return Xt===null?su():n.alternate===null&&Te===0&&(Te=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===eu?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),ds(e,a,l)),!1;case 22:return n.flags|=65536,a===eu?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([a]):n.add(a)),ds(e,a,l)),!1}throw Error(S(435,n.tag))}return ds(e,a,l),su(),!1}if(V)return t=Nt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==ks&&(e=Error(S(422),{cause:a}),cr(Yt(e,n)))):(a!==ks&&(t=Error(S(423),{cause:a}),cr(Yt(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=Yt(a,n),l=Qs(e.stateNode,a,l),Jc(e,l),Te!==4&&(Te=2)),!1;var i=Error(S(520),{cause:a});if(i=Yt(i,n),tr===null?tr=[i]:tr.push(i),Te!==4&&(Te=2),t===null)return!0;a=Yt(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Qs(n.stateNode,a,e),Jc(n,e),!1;case 1:if(t=n.type,i=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(sa===null||!sa.has(i))))return n.flags|=65536,l&=-l,n.lanes|=l,l=jp(l),Yp(l,e,n,a),Jc(n,l),!1}n=n.return}while(n!==null);return!1}var Qd=Error(S(461)),Le=!1;function Ye(e,t,n,a){t.child=e===null?lp(t,null,n,a):Ya(t,e.child,n,a)}function Tm(e,t,n,a,l){n=n.render;var i=t.ref;if("ref"in a){var r={};for(var o in a)o!=="ref"&&(r[o]=a[o])}else r=a;return ja(t),a=Ld(e,t,n,r,i,l),o=Hd(),e!==null&&!Le?(zd(e,t,l),Un(e,t,l)):(V&&o&&Dd(t),t.flags|=1,Ye(e,t,a,l),t.child)}function Em(e,t,n,a,l){if(e===null){var i=n.type;return typeof i=="function"&&!Ed(i)&&i.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=i,Vp(e,t,i,a,l)):(e=ko(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!Kd(e,l)){var r=i.memoizedProps;if(n=n.compare,n=n!==null?n:or,n(r,a)&&e.ref===t.ref)return Un(e,t,l)}return t.flags|=1,e=Nn(i,a),e.ref=t.ref,e.return=t,t.child=e}function Vp(e,t,n,a,l){if(e!==null){var i=e.memoizedProps;if(or(i,a)&&e.ref===t.ref)if(Le=!1,t.pendingProps=a=i,Kd(e,l))(e.flags&131072)!==0&&(Le=!0);else return t.lanes=e.lanes,Un(e,t,l)}return Ks(e,t,n,a,l)}function Xp(e,t,n,a){var l=a.children,i=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(i=i!==null?i.baseLanes|n:n,e!==null){for(a=t.child=e.child,l=0;a!==null;)l=l|a.lanes|a.childLanes,a=a.sibling;a=l&~i}else a=0,t.child=null;return Dm(e,t,i,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Lo(t,i!==null?i.cachePool:null),i!==null?hm(t,i):qs(),op(t);else return a=t.lanes=536870912,Dm(e,t,i!==null?i.baseLanes|n:n,n,a)}else i!==null?(Lo(t,i.cachePool),hm(t,i),$n(t),t.memoizedState=null):(e!==null&&Lo(t,null),qs(),$n(t));return Ye(e,t,l,n),t.child}function ji(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Dm(e,t,n,a,l){var i=_d();return i=i===null?null:{parent:ke._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},e!==null&&Lo(t,null),qs(),op(t),e!==null&&ei(e,t,a,!0),t.childLanes=l,null}function Uo(e,t){return t=ru({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function xm(e,t,n){return Ya(t,e.child,null,n),e=Uo(t,t.pendingProps),e.flags|=2,Rt(t),t.memoizedState=null,e}function QA(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(V){if(a.mode==="hidden")return e=Uo(t,a),t.lanes=536870912,ji(null,e);if(Fs(t),(e=ye)?(e=Uy(e,Vt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ha!==null?{id:sn,overflow:dn}:null,retryLane:536870912,hydrationErrors:null},n=Ih(e),n.return=t,t.child=n,Xe=t,ye=null)):e=null,e===null)throw pa(t);return t.lanes=536870912,null}return Uo(t,a)}var i=e.memoizedState;if(i!==null){var r=i.dehydrated;if(Fs(t),l)if(t.flags&256)t.flags&=-257,t=xm(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(S(558));else if(Le||ei(e,t,n,!1),l=(n&e.childLanes)!==0,Le||l){if(a=ue,a!==null&&(r=Ch(a,n),r!==0&&r!==i.retryLane))throw i.retryLane=r,Wa(e,r),yt(a,e,r),Qd;su(),t=xm(e,t,n)}else e=i.treeContext,ye=Qt(r.nextSibling),Xe=t,V=!0,oa=null,Vt=!1,e!==null&&$h(t,e),t=Uo(t,a),t.flags|=4096;return t}return e=Nn(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Go(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(S(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Ks(e,t,n,a,l){return ja(t),n=Ld(e,t,n,a,void 0,l),a=Hd(),e!==null&&!Le?(zd(e,t,l),Un(e,t,l)):(V&&a&&Dd(t),t.flags|=1,Ye(e,t,n,l),t.child)}function Mm(e,t,n,a,l,i){return ja(t),t.updateQueue=null,n=cp(t,a,n,l),up(e),a=Hd(),e!==null&&!Le?(zd(e,t,i),Un(e,t,i)):(V&&a&&Dd(t),t.flags|=1,Ye(e,t,n,i),t.child)}function _m(e,t,n,a,l){if(ja(t),t.stateNode===null){var i=_l,r=n.contextType;typeof r=="object"&&r!==null&&(i=Qe(r)),i=new n(a,i),t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=Xs,t.stateNode=i,i._reactInternals=t,i=t.stateNode,i.props=a,i.state=t.memoizedState,i.refs={},Nd(t),r=n.contextType,i.context=typeof r=="object"&&r!==null?Qe(r):_l,i.state=t.memoizedState,r=n.getDerivedStateFromProps,typeof r=="function"&&(es(t,n,r,a),i.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(r=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),r!==i.state&&Xs.enqueueReplaceState(i,i.state,null),Ii(t,a,i,l),Wi(),i.state=t.memoizedState),typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){i=t.stateNode;var o=t.memoizedProps,u=Xa(n,o);i.props=u;var c=i.context,s=n.contextType;r=_l,typeof s=="object"&&s!==null&&(r=Qe(s));var f=n.getDerivedStateFromProps;s=typeof f=="function"||typeof i.getSnapshotBeforeUpdate=="function",o=t.pendingProps!==o,s||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(o||c!==r)&&Cm(t,i,a,r),Wn=!1;var d=t.memoizedState;i.state=d,Ii(t,a,i,l),Wi(),c=t.memoizedState,o||d!==c||Wn?(typeof f=="function"&&(es(t,n,f,a),c=t.memoizedState),(u=Wn||Sm(t,n,u,a,d,c,r))?(s||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=c),i.props=a,i.state=c,i.context=r,a=u):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,Gs(e,t),r=t.memoizedProps,s=Xa(n,r),i.props=s,f=t.pendingProps,d=i.context,c=n.contextType,u=_l,typeof c=="object"&&c!==null&&(u=Qe(c)),o=n.getDerivedStateFromProps,(c=typeof o=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(r!==f||d!==u)&&Cm(t,i,a,u),Wn=!1,d=t.memoizedState,i.state=d,Ii(t,a,i,l),Wi();var m=t.memoizedState;r!==f||d!==m||Wn||e!==null&&e.dependencies!==null&&$o(e.dependencies)?(typeof o=="function"&&(es(t,n,o,a),m=t.memoizedState),(s=Wn||Sm(t,n,s,a,d,m,u)||e!==null&&e.dependencies!==null&&$o(e.dependencies))?(c||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,m,u),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,m,u)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=m),i.props=a,i.state=m,i.context=u,a=s):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),a=!1)}return i=a,Go(e,t),a=(t.flags&128)!==0,i||a?(i=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:i.render(),t.flags|=1,e!==null&&a?(t.child=Ya(t,e.child,null,l),t.child=Ya(t,null,n,l)):Ye(e,t,n,l),t.memoizedState=i.state,e=t.child):e=Un(e,t,l),e}function Bm(e,t,n,a){return Fa(),t.flags|=256,Ye(e,t,n,a),t.child}var ts={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ns(e){return{baseLanes:e,cachePool:tp()}}function as(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=Et),e}function Qp(e,t,n){var a=t.pendingProps,l=!1,i=(t.flags&128)!==0,r;if((r=i)||(r=e!==null&&e.memoizedState===null?!1:(xe.current&2)!==0),r&&(l=!0,t.flags&=-129),r=(t.flags&32)!==0,t.flags&=-33,e===null){if(V){if(l?Jn(t):$n(t),(e=ye)?(e=Uy(e,Vt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ha!==null?{id:sn,overflow:dn}:null,retryLane:536870912,hydrationErrors:null},n=Ih(e),n.return=t,t.child=n,Xe=t,ye=null)):e=null,e===null)throw pa(t);return ud(e)?t.lanes=32:t.lanes=536870912,null}var o=a.children;return a=a.fallback,l?($n(t),l=t.mode,o=ru({mode:"hidden",children:o},l),a=Ua(a,l,n,null),o.return=t,a.return=t,o.sibling=a,t.child=o,a=t.child,a.memoizedState=ns(n),a.childLanes=as(e,r,n),t.memoizedState=ts,ji(null,a)):(Jn(t),Zs(t,o))}var u=e.memoizedState;if(u!==null&&(o=u.dehydrated,o!==null)){if(i)t.flags&256?(Jn(t),t.flags&=-257,t=ls(e,t,n)):t.memoizedState!==null?($n(t),t.child=e.child,t.flags|=128,t=null):($n(t),o=a.fallback,l=t.mode,a=ru({mode:"visible",children:a.children},l),o=Ua(o,l,n,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,Ya(t,e.child,null,n),a=t.child,a.memoizedState=ns(n),a.childLanes=as(e,r,n),t.memoizedState=ts,t=ji(null,a));else if(Jn(t),ud(o)){if(r=o.nextSibling&&o.nextSibling.dataset,r)var c=r.dgst;r=c,a=Error(S(419)),a.stack="",a.digest=r,cr({value:a,source:null,stack:null}),t=ls(e,t,n)}else if(Le||ei(e,t,n,!1),r=(n&e.childLanes)!==0,Le||r){if(r=ue,r!==null&&(a=Ch(r,n),a!==0&&a!==u.retryLane))throw u.retryLane=a,Wa(e,a),yt(r,e,a),Qd;od(o)||su(),t=ls(e,t,n)}else od(o)?(t.flags|=192,t.child=e.child,t=null):(e=u.treeContext,ye=Qt(o.nextSibling),Xe=t,V=!0,oa=null,Vt=!1,e!==null&&$h(t,e),t=Zs(t,a.children),t.flags|=4096);return t}return l?($n(t),o=a.fallback,l=t.mode,u=e.child,c=u.sibling,a=Nn(u,{mode:"hidden",children:a.children}),a.subtreeFlags=u.subtreeFlags&65011712,c!==null?o=Nn(c,o):(o=Ua(o,l,n,null),o.flags|=2),o.return=t,a.return=t,a.sibling=o,t.child=a,ji(null,a),a=t.child,o=e.child.memoizedState,o===null?o=ns(n):(l=o.cachePool,l!==null?(u=ke._currentValue,l=l.parent!==u?{parent:u,pool:u}:l):l=tp(),o={baseLanes:o.baseLanes|n,cachePool:l}),a.memoizedState=o,a.childLanes=as(e,r,n),t.memoizedState=ts,ji(e.child,a)):(Jn(t),n=e.child,e=n.sibling,n=Nn(n,{mode:"visible",children:a.children}),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function Zs(e,t){return t=ru({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function ru(e,t){return e=Tt(22,e,null,t),e.lanes=0,e}function ls(e,t,n){return Ya(t,e.child,null,n),e=Zs(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Nm(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Hs(e.return,t,n)}function is(e,t,n,a,l,i){var r=e.memoizedState;r===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:i}:(r.isBackwards=t,r.rendering=null,r.renderingStartTime=0,r.last=a,r.tail=n,r.tailMode=l,r.treeForkCount=i)}function Kp(e,t,n){var a=t.pendingProps,l=a.revealOrder,i=a.tail;a=a.children;var r=xe.current,o=(r&2)!==0;if(o?(r=r&1|2,t.flags|=128):r&=1,ge(xe,r),Ye(e,t,a,n),a=V?ur:0,!o&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Nm(e,n,t);else if(e.tag===19)Nm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&nu(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),is(t,!1,l,n,i,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&nu(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}is(t,!0,n,null,i,a);break;case"together":is(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function Un(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),va|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(ei(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(S(153));if(t.child!==null){for(e=t.child,n=Nn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Nn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Kd(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&$o(e)))}function KA(e,t,n){switch(t.tag){case 3:Xo(t,t.stateNode.containerInfo),In(t,ke,e.memoizedState.cache),Fa();break;case 27:case 5:Cs(t);break;case 4:Xo(t,t.stateNode.containerInfo);break;case 10:In(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Fs(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(Jn(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Qp(e,t,n):(Jn(t),e=Un(e,t,n),e!==null?e.sibling:null);Jn(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(ei(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return Kp(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),ge(xe,xe.current),a)break;return null;case 22:return t.lanes=0,Xp(e,t,n,t.pendingProps);case 24:In(t,ke,e.memoizedState.cache)}return Un(e,t,n)}function Zp(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Le=!0;else{if(!Kd(e,n)&&(t.flags&128)===0)return Le=!1,KA(e,t,n);Le=(e.flags&131072)!==0}else Le=!1,V&&(t.flags&1048576)!==0&&Jh(t,ur,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=La(t.elementType),t.type=e,typeof e=="function")Ed(e)?(a=Xa(e,a),t.tag=1,t=_m(null,t,e,a,n)):(t.tag=0,t=Ks(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===fd){t.tag=11,t=Tm(null,t,e,a,n);break e}else if(l===gd){t.tag=14,t=Em(null,t,e,a,n);break e}}throw t=ws(e)||e,Error(S(306,t,""))}}return t;case 0:return Ks(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=Xa(a,t.pendingProps),_m(e,t,a,l,n);case 3:e:{if(Xo(t,t.stateNode.containerInfo),e===null)throw Error(S(387));a=t.pendingProps;var i=t.memoizedState;l=i.element,Gs(e,t),Ii(t,a,null,n);var r=t.memoizedState;if(a=r.cache,In(t,ke,a),a!==i.cache&&zs(t,[ke],n,!0),Wi(),a=r.element,i.isDehydrated)if(i={element:a,isDehydrated:!1,cache:r.cache},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){t=Bm(e,t,a,n);break e}else if(a!==l){l=Yt(Error(S(424)),t),cr(l),t=Bm(e,t,a,n);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(ye=Qt(e.firstChild),Xe=t,V=!0,oa=null,Vt=!0,n=lp(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Fa(),a===l){t=Un(e,t,n);break e}Ye(e,t,a,n)}t=t.child}return t;case 26:return Go(e,t),e===null?(n=eh(t.type,null,t.pendingProps,null))?t.memoizedState=n:V||(n=t.type,e=t.pendingProps,a=mu(ra.current).createElement(n),a[Ve]=t,a[vt]=e,Ke(a,n,e),qe(a),t.stateNode=a):t.memoizedState=eh(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Cs(t),e===null&&V&&(a=t.stateNode=Gy(t.type,t.pendingProps,ra.current),Xe=t,Vt=!0,l=ye,Aa(t.type)?(cd=l,ye=Qt(a.firstChild)):ye=l),Ye(e,t,t.pendingProps.children,n),Go(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&V&&((l=a=ye)&&(a=Sw(a,t.type,t.pendingProps,Vt),a!==null?(t.stateNode=a,Xe=t,ye=Qt(a.firstChild),Vt=!1,l=!0):l=!1),l||pa(t)),Cs(t),l=t.type,i=t.pendingProps,r=e!==null?e.memoizedProps:null,a=i.children,id(l,i)?a=null:r!==null&&id(l,r)&&(t.flags|=32),t.memoizedState!==null&&(l=Ld(e,t,GA,null,null,n),hr._currentValue=l),Go(e,t),Ye(e,t,a,n),t.child;case 6:return e===null&&V&&((e=n=ye)&&(n=Cw(n,t.pendingProps,Vt),n!==null?(t.stateNode=n,Xe=t,ye=null,e=!0):e=!1),e||pa(t)),null;case 13:return Qp(e,t,n);case 4:return Xo(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=Ya(t,null,a,n):Ye(e,t,a,n),t.child;case 11:return Tm(e,t,t.type,t.pendingProps,n);case 7:return Ye(e,t,t.pendingProps,n),t.child;case 8:return Ye(e,t,t.pendingProps.children,n),t.child;case 12:return Ye(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,In(t,t.type,a.value),Ye(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,ja(t),l=Qe(l),a=a(l),t.flags|=1,Ye(e,t,a,n),t.child;case 14:return Em(e,t,t.type,t.pendingProps,n);case 15:return Vp(e,t,t.type,t.pendingProps,n);case 19:return Kp(e,t,n);case 31:return QA(e,t,n);case 22:return Xp(e,t,n,t.pendingProps);case 24:return ja(t),a=Qe(ke),e===null?(l=_d(),l===null&&(l=ue,i=Md(),l.pooledCache=i,i.refCount++,i!==null&&(l.pooledCacheLanes|=n),l=i),t.memoizedState={parent:a,cache:l},Nd(t),In(t,ke,l)):((e.lanes&n)!==0&&(Gs(e,t),Ii(t,null,null,n),Wi()),l=e.memoizedState,i=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),In(t,ke,a)):(a=i.cache,In(t,ke,a),a!==l.cache&&zs(t,[ke],n,!0))),Ye(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(S(156,t.tag))}function Cn(e){e.flags|=4}function rs(e,t,n,a,l){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(l&335544128)===l)if(e.stateNode.complete)e.flags|=8192;else if(by())e.flags|=8192;else throw Pa=eu,Bd}else e.flags&=-16777217}function Om(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Fy(t))if(by())e.flags|=8192;else throw Pa=eu,Bd}function Co(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Ah():536870912,e.lanes|=t,Ql|=t)}function Hi(e,t){if(!V)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function pe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags&65011712,a|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags,a|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function ZA(e,t,n){var a=t.pendingProps;switch(xd(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return pe(t),null;case 1:return pe(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),On(ke),ql(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(vl(t)?Cn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Ic())),pe(t),null;case 26:var l=t.type,i=t.memoizedState;return e===null?(Cn(t),i!==null?(pe(t),Om(t,i)):(pe(t),rs(t,l,null,a,n))):i?i!==e.memoizedState?(Cn(t),pe(t),Om(t,i)):(pe(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&Cn(t),pe(t),rs(t,l,e,a,n)),null;case 27:if(Qo(t),n=ra.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return pe(t),null}e=gn.current,vl(t)?um(t,e):(e=Gy(l,a,n),t.stateNode=e,Cn(t))}return pe(t),null;case 5:if(Qo(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return pe(t),null}if(i=gn.current,vl(t))um(t,i);else{var r=mu(ra.current);switch(i){case 1:i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":i=r.createElement("div"),i.innerHTML="<script><\/scr"+"ipt>",i=i.removeChild(i.firstChild);break;case"select":i=typeof a.is=="string"?r.createElement("select",{is:a.is}):r.createElement("select"),a.multiple?i.multiple=!0:a.size&&(i.size=a.size);break;default:i=typeof a.is=="string"?r.createElement(l,{is:a.is}):r.createElement(l)}}i[Ve]=t,i[vt]=a;e:for(r=t.child;r!==null;){if(r.tag===5||r.tag===6)i.appendChild(r.stateNode);else if(r.tag!==4&&r.tag!==27&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break e;for(;r.sibling===null;){if(r.return===null||r.return===t)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}t.stateNode=i;e:switch(Ke(i,l,a),l){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&Cn(t)}}return pe(t),rs(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(S(166));if(e=ra.current,vl(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=Xe,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[Ve]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Ly(e.nodeValue,n)),e||pa(t,!0)}else e=mu(e).createTextNode(a),e[Ve]=t,t.stateNode=e}return pe(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=vl(t),n!==null){if(e===null){if(!a)throw Error(S(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(557));e[Ve]=t}else Fa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;pe(t),e=!1}else n=Ic(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Rt(t),t):(Rt(t),null);if((t.flags&128)!==0)throw Error(S(558))}return pe(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=vl(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(S(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(S(317));l[Ve]=t}else Fa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;pe(t),l=!1}else l=Ic(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(Rt(t),t):(Rt(t),null)}return Rt(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),i=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(i=a.memoizedState.cachePool.pool),i!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Co(t,t.updateQueue),pe(t),null);case 4:return ql(),e===null&&tf(t.stateNode.containerInfo),pe(t),null;case 10:return On(t.type),pe(t),null;case 19:if(Fe(xe),a=t.memoizedState,a===null)return pe(t),null;if(l=(t.flags&128)!==0,i=a.rendering,i===null)if(l)Hi(a,!1);else{if(Te!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=nu(e),i!==null){for(t.flags|=128,Hi(a,!1),e=i.updateQueue,t.updateQueue=e,Co(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Wh(n,e),n=n.sibling;return ge(xe,xe.current&1|2),V&&Dn(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&Dt()>uu&&(t.flags|=128,l=!0,Hi(a,!1),t.lanes=4194304)}else{if(!l)if(e=nu(i),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,Co(t,e),Hi(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!V)return pe(t),null}else 2*Dt()-a.renderingStartTime>uu&&n!==536870912&&(t.flags|=128,l=!0,Hi(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(e=a.last,e!==null?e.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=Dt(),e.sibling=null,n=xe.current,ge(xe,l?n&1|2:n&1),V&&Dn(t,a.treeForkCount),e):(pe(t),null);case 22:case 23:return Rt(t),Od(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&(pe(t),t.subtreeFlags&6&&(t.flags|=8192)):pe(t),n=t.updateQueue,n!==null&&Co(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&Fe(Ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),On(ke),pe(t),null;case 25:return null;case 30:return null}throw Error(S(156,t.tag))}function WA(e,t){switch(xd(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return On(ke),ql(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Qo(t),null;case 31:if(t.memoizedState!==null){if(Rt(t),t.alternate===null)throw Error(S(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Rt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(S(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Fe(xe),null;case 4:return ql(),null;case 10:return On(t.type),null;case 22:case 23:return Rt(t),Od(),e!==null&&Fe(Ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return On(ke),null;case 25:return null;default:return null}}function Wp(e,t){switch(xd(t),t.tag){case 3:On(ke),ql();break;case 26:case 27:case 5:Qo(t);break;case 4:ql();break;case 31:t.memoizedState!==null&&Rt(t);break;case 13:Rt(t);break;case 19:Fe(xe);break;case 10:On(t.type);break;case 22:case 23:Rt(t),Od(),e!==null&&Fe(Ga);break;case 24:On(ke)}}function Er(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var l=a.next;n=l;do{if((n.tag&e)===e){a=void 0;var i=n.create,r=n.inst;a=i(),r.destroy=a}n=n.next}while(n!==l)}}catch(o){le(t,t.return,o)}}function ya(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){var r=a.inst,o=r.destroy;if(o!==void 0){r.destroy=void 0,l=t;var u=n,c=o;try{c()}catch(s){le(l,u,s)}}}a=a.next}while(a!==i)}}catch(s){le(t,t.return,s)}}function Ip(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{rp(t,n)}catch(a){le(e,e.return,a)}}}function Jp(e,t,n){n.props=Xa(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){le(e,t,a)}}function $i(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof n=="function"?e.refCleanup=n(a):n.current=a}}catch(l){le(e,t,l)}}function fn(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){le(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(l){le(e,t,l)}else n.current=null}function $p(e){var t=e.type,n=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break e;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(l){le(e,e.return,l)}}function os(e,t,n){try{var a=e.stateNode;pw(a,e.type,n,t),a[vt]=t}catch(l){le(e,e.return,l)}}function ey(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Aa(e.type)||e.tag===4}function us(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ey(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Aa(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ws(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=_n));else if(a!==4&&(a===27&&Aa(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Ws(e,t,n),e=e.sibling;e!==null;)Ws(e,t,n),e=e.sibling}function ou(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&Aa(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(ou(e,t,n),e=e.sibling;e!==null;)ou(e,t,n),e=e.sibling}function ty(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);Ke(t,a,n),t[Ve]=e,t[vt]=n}catch(i){le(e,e.return,i)}}var xn=!1,Oe=!1,cs=!1,km=typeof WeakSet=="function"?WeakSet:Set,Pe=null;function IA(e,t){if(e=e.containerInfo,ad=vu,e=Fh(e),Cd(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var l=a.anchorOffset,i=a.focusNode;a=a.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var r=0,o=-1,u=-1,c=0,s=0,f=e,d=null;t:for(;;){for(var m;f!==n||l!==0&&f.nodeType!==3||(o=r+l),f!==i||a!==0&&f.nodeType!==3||(u=r+a),f.nodeType===3&&(r+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===e)break t;if(d===n&&++c===l&&(o=r),d===i&&++s===a&&(u=r),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}n=o===-1||u===-1?null:{start:o,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ld={focusedElem:e,selectionRange:n},vu=!1,Pe=t;Pe!==null;)if(t=Pe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Pe=e;else for(;Pe!==null;){switch(t=Pe,i=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&i!==null){e=void 0,n=t,l=i.memoizedProps,i=i.memoizedState,a=n.stateNode;try{var v=Xa(n.type,l);e=a.getSnapshotBeforeUpdate(v,i),a.__reactInternalSnapshotBeforeUpdate=e}catch(A){le(n,n.return,A)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)rd(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":rd(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(S(163))}if(e=t.sibling,e!==null){e.return=t.return,Pe=e;break}Pe=t.return}}function ny(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:Tn(e,n),a&4&&Er(5,n);break;case 1:if(Tn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(r){le(n,n.return,r)}else{var l=Xa(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(r){le(n,n.return,r)}}a&64&&Ip(n),a&512&&$i(n,n.return);break;case 3:if(Tn(e,n),a&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{rp(e,t)}catch(r){le(n,n.return,r)}}break;case 27:t===null&&a&4&&ty(n);case 26:case 5:Tn(e,n),t===null&&a&4&&$p(n),a&512&&$i(n,n.return);break;case 12:Tn(e,n);break;case 31:Tn(e,n),a&4&&iy(e,n);break;case 13:Tn(e,n),a&4&&ry(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=rw.bind(null,n),Rw(e,n))));break;case 22:if(a=n.memoizedState!==null||xn,!a){t=t!==null&&t.memoizedState!==null||Oe,l=xn;var i=Oe;xn=a,(Oe=t)&&!i?En(e,n,(n.subtreeFlags&8772)!==0):Tn(e,n),xn=l,Oe=i}break;case 30:break;default:Tn(e,n)}}function ay(e){var t=e.alternate;t!==null&&(e.alternate=null,ay(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&yd(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Ce=null,ht=!1;function Rn(e,t,n){for(n=n.child;n!==null;)ly(e,t,n),n=n.sibling}function ly(e,t,n){if(xt&&typeof xt.onCommitFiberUnmount=="function")try{xt.onCommitFiberUnmount(br,n)}catch{}switch(n.tag){case 26:Oe||fn(n,t),Rn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Oe||fn(n,t);var a=Ce,l=ht;Aa(n.type)&&(Ce=n.stateNode,ht=!1),Rn(e,t,n),ar(n.stateNode),Ce=a,ht=l;break;case 5:Oe||fn(n,t);case 6:if(a=Ce,l=ht,Ce=null,Rn(e,t,n),Ce=a,ht=l,Ce!==null)if(ht)try{(Ce.nodeType===9?Ce.body:Ce.nodeName==="HTML"?Ce.ownerDocument.body:Ce).removeChild(n.stateNode)}catch(i){le(n,t,i)}else try{Ce.removeChild(n.stateNode)}catch(i){le(n,t,i)}break;case 18:Ce!==null&&(ht?(e=Ce,Zm(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),Il(e)):Zm(Ce,n.stateNode));break;case 4:a=Ce,l=ht,Ce=n.stateNode.containerInfo,ht=!0,Rn(e,t,n),Ce=a,ht=l;break;case 0:case 11:case 14:case 15:ya(2,n,t),Oe||ya(4,n,t),Rn(e,t,n);break;case 1:Oe||(fn(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Jp(n,t,a)),Rn(e,t,n);break;case 21:Rn(e,t,n);break;case 22:Oe=(a=Oe)||n.memoizedState!==null,Rn(e,t,n),Oe=a;break;default:Rn(e,t,n)}}function iy(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Il(e)}catch(n){le(t,t.return,n)}}}function ry(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Il(e)}catch(n){le(t,t.return,n)}}function JA(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new km),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new km),t;default:throw Error(S(435,e.tag))}}function Ro(e,t){var n=JA(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=ow.bind(null,e,a);a.then(l,l)}})}function gt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],i=e,r=t,o=r;e:for(;o!==null;){switch(o.tag){case 27:if(Aa(o.type)){Ce=o.stateNode,ht=!1;break e}break;case 5:Ce=o.stateNode,ht=!1;break e;case 3:case 4:Ce=o.stateNode.containerInfo,ht=!0;break e}o=o.return}if(Ce===null)throw Error(S(160));ly(i,r,l),Ce=null,ht=!1,i=l.alternate,i!==null&&(i.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)oy(t,e),t=t.sibling}var en=null;function oy(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:gt(t,e),mt(e),a&4&&(ya(3,e,e.return),Er(3,e),ya(5,e,e.return));break;case 1:gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),a&64&&xn&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var l=en;if(gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),a&4){var i=n!==null?n.memoizedState:null;if(a=e.memoizedState,n===null)if(a===null)if(e.stateNode===null){e:{a=e.type,n=e.memoizedProps,l=l.ownerDocument||l;t:switch(a){case"title":i=l.getElementsByTagName("title")[0],(!i||i[Sr]||i[Ve]||i.namespaceURI==="http://www.w3.org/2000/svg"||i.hasAttribute("itemprop"))&&(i=l.createElement(a),l.head.insertBefore(i,l.querySelector("head > title"))),Ke(i,a,n),i[Ve]=e,qe(i),a=i;break e;case"link":var r=nh("link","href",l).get(a+(n.href||""));if(r){for(var o=0;o<r.length;o++)if(i=r[o],i.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&i.getAttribute("rel")===(n.rel==null?null:n.rel)&&i.getAttribute("title")===(n.title==null?null:n.title)&&i.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){r.splice(o,1);break t}}i=l.createElement(a),Ke(i,a,n),l.head.appendChild(i);break;case"meta":if(r=nh("meta","content",l).get(a+(n.content||""))){for(o=0;o<r.length;o++)if(i=r[o],i.getAttribute("content")===(n.content==null?null:""+n.content)&&i.getAttribute("name")===(n.name==null?null:n.name)&&i.getAttribute("property")===(n.property==null?null:n.property)&&i.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&i.getAttribute("charset")===(n.charSet==null?null:n.charSet)){r.splice(o,1);break t}}i=l.createElement(a),Ke(i,a,n),l.head.appendChild(i);break;default:throw Error(S(468,a))}i[Ve]=e,qe(i),a=i}e.stateNode=a}else ah(l,e.type,e.stateNode);else e.stateNode=th(l,a,e.memoizedProps);else i!==a?(i===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):i.count--,a===null?ah(l,e.type,e.stateNode):th(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&os(e,e.memoizedProps,n.memoizedProps)}break;case 27:gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),n!==null&&a&4&&os(e,e.memoizedProps,n.memoizedProps);break;case 5:if(gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),e.flags&32){l=e.stateNode;try{jl(l,"")}catch(v){le(e,e.return,v)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,os(e,l,n!==null?n.memoizedProps:l)),a&1024&&(cs=!0);break;case 6:if(gt(t,e),mt(e),a&4){if(e.stateNode===null)throw Error(S(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(v){le(e,e.return,v)}}break;case 3:if(Fo=null,l=en,en=hu(t.containerInfo),gt(t,e),en=l,mt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{Il(t.containerInfo)}catch(v){le(e,e.return,v)}cs&&(cs=!1,uy(e));break;case 4:a=en,en=hu(e.stateNode.containerInfo),gt(t,e),mt(e),en=a;break;case 12:gt(t,e),mt(e);break;case 31:gt(t,e),mt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 13:gt(t,e),mt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Bu=Dt()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 22:l=e.memoizedState!==null;var u=n!==null&&n.memoizedState!==null,c=xn,s=Oe;if(xn=c||l,Oe=s||u,gt(t,e),Oe=s,xn=c,mt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||u||xn||Oe||Ha(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){u=n=t;try{if(i=u.stateNode,l)r=i.style,typeof r.setProperty=="function"?r.setProperty("display","none","important"):r.display="none";else{o=u.stateNode;var f=u.memoizedProps.style,d=f!=null&&f.hasOwnProperty("display")?f.display:null;o.style.display=d==null||typeof d=="boolean"?"":(""+d).trim()}}catch(v){le(u,u.return,v)}}}else if(t.tag===6){if(n===null){u=t;try{u.stateNode.nodeValue=l?"":u.memoizedProps}catch(v){le(u,u.return,v)}}}else if(t.tag===18){if(n===null){u=t;try{var m=u.stateNode;l?Wm(m,!0):Wm(u.stateNode,!1)}catch(v){le(u,u.return,v)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,Ro(e,n))));break;case 19:gt(t,e),mt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 30:break;case 21:break;default:gt(t,e),mt(e)}}function mt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(ey(a)){n=a;break}a=a.return}if(n==null)throw Error(S(160));switch(n.tag){case 27:var l=n.stateNode,i=us(e);ou(e,i,l);break;case 5:var r=n.stateNode;n.flags&32&&(jl(r,""),n.flags&=-33);var o=us(e);ou(e,o,r);break;case 3:case 4:var u=n.stateNode.containerInfo,c=us(e);Ws(e,c,u);break;default:throw Error(S(161))}}catch(s){le(e,e.return,s)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function uy(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;uy(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Tn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)ny(e,t.alternate,t),t=t.sibling}function Ha(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:ya(4,t,t.return),Ha(t);break;case 1:fn(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Jp(t,t.return,n),Ha(t);break;case 27:ar(t.stateNode);case 26:case 5:fn(t,t.return),Ha(t);break;case 22:t.memoizedState===null&&Ha(t);break;case 30:Ha(t);break;default:Ha(t)}e=e.sibling}}function En(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,i=t,r=i.flags;switch(i.tag){case 0:case 11:case 15:En(l,i,n),Er(4,i);break;case 1:if(En(l,i,n),a=i,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(c){le(a,a.return,c)}if(a=i,l=a.updateQueue,l!==null){var o=a.stateNode;try{var u=l.shared.hiddenCallbacks;if(u!==null)for(l.shared.hiddenCallbacks=null,l=0;l<u.length;l++)ip(u[l],o)}catch(c){le(a,a.return,c)}}n&&r&64&&Ip(i),$i(i,i.return);break;case 27:ty(i);case 26:case 5:En(l,i,n),n&&a===null&&r&4&&$p(i),$i(i,i.return);break;case 12:En(l,i,n);break;case 31:En(l,i,n),n&&r&4&&iy(l,i);break;case 13:En(l,i,n),n&&r&4&&ry(l,i);break;case 22:i.memoizedState===null&&En(l,i,n),$i(i,i.return);break;case 30:break;default:En(l,i,n)}t=t.sibling}}function Zd(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Rr(n))}function Wd(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rr(e))}function $t(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)cy(e,t,n,a),t=t.sibling}function cy(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:$t(e,t,n,a),l&2048&&Er(9,t);break;case 1:$t(e,t,n,a);break;case 3:$t(e,t,n,a),l&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rr(e)));break;case 12:if(l&2048){$t(e,t,n,a),e=t.stateNode;try{var i=t.memoizedProps,r=i.id,o=i.onPostCommit;typeof o=="function"&&o(r,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(u){le(t,t.return,u)}}else $t(e,t,n,a);break;case 31:$t(e,t,n,a);break;case 13:$t(e,t,n,a);break;case 23:break;case 22:i=t.stateNode,r=t.alternate,t.memoizedState!==null?i._visibility&2?$t(e,t,n,a):er(e,t):i._visibility&2?$t(e,t,n,a):(i._visibility|=2,Al(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&Zd(r,t);break;case 24:$t(e,t,n,a),l&2048&&Wd(t.alternate,t);break;default:$t(e,t,n,a)}}function Al(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var i=e,r=t,o=n,u=a,c=r.flags;switch(r.tag){case 0:case 11:case 15:Al(i,r,o,u,l),Er(8,r);break;case 23:break;case 22:var s=r.stateNode;r.memoizedState!==null?s._visibility&2?Al(i,r,o,u,l):er(i,r):(s._visibility|=2,Al(i,r,o,u,l)),l&&c&2048&&Zd(r.alternate,r);break;case 24:Al(i,r,o,u,l),l&&c&2048&&Wd(r.alternate,r);break;default:Al(i,r,o,u,l)}t=t.sibling}}function er(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,a=t,l=a.flags;switch(a.tag){case 22:er(n,a),l&2048&&Zd(a.alternate,a);break;case 24:er(n,a),l&2048&&Wd(a.alternate,a);break;default:er(n,a)}t=t.sibling}}var Yi=8192;function bl(e,t,n){if(e.subtreeFlags&Yi)for(e=e.child;e!==null;)sy(e,t,n),e=e.sibling}function sy(e,t,n){switch(e.tag){case 26:bl(e,t,n),e.flags&Yi&&e.memoizedState!==null&&Hw(n,en,e.memoizedState,e.memoizedProps);break;case 5:bl(e,t,n);break;case 3:case 4:var a=en;en=hu(e.stateNode.containerInfo),bl(e,t,n),en=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=Yi,Yi=16777216,bl(e,t,n),Yi=a):bl(e,t,n));break;default:bl(e,t,n)}}function dy(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function zi(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];Pe=a,gy(a,e)}dy(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)fy(e),e=e.sibling}function fy(e){switch(e.tag){case 0:case 11:case 15:zi(e),e.flags&2048&&ya(9,e,e.return);break;case 3:zi(e);break;case 12:zi(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Po(e)):zi(e);break;default:zi(e)}}function Po(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];Pe=a,gy(a,e)}dy(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:ya(8,t,t.return),Po(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Po(t));break;default:Po(t)}e=e.sibling}}function gy(e,t){for(;Pe!==null;){var n=Pe;switch(n.tag){case 0:case 11:case 15:ya(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var a=n.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Rr(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,Pe=a;else e:for(n=e;Pe!==null;){a=Pe;var l=a.sibling,i=a.return;if(ay(a),a===n){Pe=null;break e}if(l!==null){l.return=i,Pe=l;break e}Pe=i}}}var $A={getCacheForType:function(e){var t=Qe(ke),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Qe(ke).controller.signal}},ew=typeof WeakMap=="function"?WeakMap:Map,J=0,ue=null,F=null,Y=0,ae=0,Ct=null,aa=!1,ni=!1,Id=!1,Gn=0,Te=0,va=0,qa=0,Jd=0,Et=0,Ql=0,tr=null,pt=null,Is=!1,Bu=0,my=0,uu=1/0,cu=null,sa=null,Ue=0,da=null,Kl=null,kn=0,Js=0,$s=null,hy=null,nr=0,ed=null;function _t(){return(J&2)!==0&&Y!==0?Y&-Y:L.T!==null?ef():Rh()}function py(){if(Et===0)if((Y&536870912)===0||V){var e=mo;mo<<=1,(mo&3932160)===0&&(mo=262144),Et=e}else Et=536870912;return e=Nt.current,e!==null&&(e.flags|=32),Et}function yt(e,t,n){(e===ue&&(ae===2||ae===9)||e.cancelPendingCommit!==null)&&(Zl(e,0),la(e,Y,Et,!1)),wr(e,n),((J&2)===0||e!==ue)&&(e===ue&&((J&2)===0&&(qa|=n),Te===4&&la(e,Y,Et,!1)),hn(e))}function yy(e,t,n){if((J&6)!==0)throw Error(S(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||Ar(e,t),l=a?aw(e,t):ss(e,t,!0),i=a;do{if(l===0){ni&&!a&&la(e,t,0,!1);break}else{if(n=e.current.alternate,i&&!tw(n)){l=ss(e,t,!1),i=!1;continue}if(l===2){if(i=t,e.errorRecoveryDisabledLanes&i)var r=0;else r=e.pendingLanes&-536870913,r=r!==0?r:r&536870912?536870912:0;if(r!==0){t=r;e:{var o=e;l=tr;var u=o.current.memoizedState.isDehydrated;if(u&&(Zl(o,r).flags|=256),r=ss(o,r,!1),r!==2){if(Id&&!u){o.errorRecoveryDisabledLanes|=i,qa|=i,l=4;break e}i=pt,pt=l,i!==null&&(pt===null?pt=i:pt.push.apply(pt,i))}l=r}if(i=!1,l!==2)continue}}if(l===1){Zl(e,0),la(e,t,0,!0);break}e:{switch(a=e,i=l,i){case 0:case 1:throw Error(S(345));case 4:if((t&4194048)!==t)break;case 6:la(a,t,Et,!aa);break e;case 2:pt=null;break;case 3:case 5:break;default:throw Error(S(329))}if((t&62914560)===t&&(l=Bu+300-Dt(),10<l)){if(la(a,t,Et,!aa),Au(a,0,!0)!==0)break e;kn=t,a.timeoutHandle=zy(Lm.bind(null,a,n,pt,cu,Is,t,Et,qa,Ql,aa,i,"Throttled",-0,0),l);break e}Lm(a,n,pt,cu,Is,t,Et,qa,Ql,aa,i,null,-0,0)}}break}while(!0);hn(e)}function Lm(e,t,n,a,l,i,r,o,u,c,s,f,d,m){if(e.timeoutHandle=-1,f=t.subtreeFlags,f&8192||(f&16785408)===16785408){f={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:_n},sy(t,i,f);var v=(i&62914560)===i?Bu-Dt():(i&4194048)===i?my-Dt():0;if(v=zw(f,v),v!==null){kn=i,e.cancelPendingCommit=v(zm.bind(null,e,t,i,n,a,l,r,o,u,s,f,null,d,m)),la(e,i,r,!c);return}}zm(e,t,i,n,a,l,r,o,u)}function tw(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var l=n[a],i=l.getSnapshot;l=l.value;try{if(!Bt(i(),l))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function la(e,t,n,a){t&=~Jd,t&=~qa,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var i=31-Mt(l),r=1<<i;a[i]=-1,l&=~r}n!==0&&wh(e,n,t)}function Nu(){return(J&6)===0?(Dr(0,!1),!1):!0}function $d(){if(F!==null){if(ae===0)var e=F.return;else e=F,Bn=Ia=null,Ud(e),Ul=null,sr=0,e=F;for(;e!==null;)Wp(e.alternate,e),e=e.return;F=null}}function Zl(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,bw(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),kn=0,$d(),ue=e,F=n=Nn(e.current,null),Y=t,ae=0,Ct=null,aa=!1,ni=Ar(e,t),Id=!1,Ql=Et=Jd=qa=va=Te=0,pt=tr=null,Is=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var l=31-Mt(a),i=1<<l;t|=e[l],a&=~i}return Gn=t,Ru(),n}function vy(e,t){G=null,L.H=fr,t===ti||t===Eu?(t=gm(),ae=3):t===Bd?(t=gm(),ae=4):ae=t===Qd?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Ct=t,F===null&&(Te=1,iu(e,Yt(t,e.current)))}function by(){var e=Nt.current;return e===null?!0:(Y&4194048)===Y?Xt===null:(Y&62914560)===Y||(Y&536870912)!==0?e===Xt:!1}function Ay(){var e=L.H;return L.H=fr,e===null?fr:e}function wy(){var e=L.A;return L.A=$A,e}function su(){Te=4,aa||(Y&4194048)!==Y&&Nt.current!==null||(ni=!0),(va&134217727)===0&&(qa&134217727)===0||ue===null||la(ue,Y,Et,!1)}function ss(e,t,n){var a=J;J|=2;var l=Ay(),i=wy();(ue!==e||Y!==t)&&(cu=null,Zl(e,t)),t=!1;var r=Te;e:do try{if(ae!==0&&F!==null){var o=F,u=Ct;switch(ae){case 8:$d(),r=6;break e;case 3:case 2:case 9:case 6:Nt.current===null&&(t=!0);var c=ae;if(ae=0,Ct=null,Ol(e,o,u,c),n&&ni){r=0;break e}break;default:c=ae,ae=0,Ct=null,Ol(e,o,u,c)}}nw(),r=Te;break}catch(s){vy(e,s)}while(!0);return t&&e.shellSuspendCounter++,Bn=Ia=null,J=a,L.H=l,L.A=i,F===null&&(ue=null,Y=0,Ru()),r}function nw(){for(;F!==null;)Sy(F)}function aw(e,t){var n=J;J|=2;var a=Ay(),l=wy();ue!==e||Y!==t?(cu=null,uu=Dt()+500,Zl(e,t)):ni=Ar(e,t);e:do try{if(ae!==0&&F!==null){t=F;var i=Ct;t:switch(ae){case 1:ae=0,Ct=null,Ol(e,t,i,1);break;case 2:case 9:if(fm(i)){ae=0,Ct=null,Hm(t);break}t=function(){ae!==2&&ae!==9||ue!==e||(ae=7),hn(e)},i.then(t,t);break e;case 3:ae=7;break e;case 4:ae=5;break e;case 7:fm(i)?(ae=0,Ct=null,Hm(t)):(ae=0,Ct=null,Ol(e,t,i,7));break;case 5:var r=null;switch(F.tag){case 26:r=F.memoizedState;case 5:case 27:var o=F;if(r?Fy(r):o.stateNode.complete){ae=0,Ct=null;var u=o.sibling;if(u!==null)F=u;else{var c=o.return;c!==null?(F=c,Ou(c)):F=null}break t}}ae=0,Ct=null,Ol(e,t,i,5);break;case 6:ae=0,Ct=null,Ol(e,t,i,6);break;case 8:$d(),Te=6;break e;default:throw Error(S(462))}}lw();break}catch(s){vy(e,s)}while(!0);return Bn=Ia=null,L.H=a,L.A=l,J=n,F!==null?0:(ue=null,Y=0,Ru(),Te)}function lw(){for(;F!==null&&!Db();)Sy(F)}function Sy(e){var t=Zp(e.alternate,e,Gn);e.memoizedProps=e.pendingProps,t===null?Ou(e):F=t}function Hm(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Mm(n,t,t.pendingProps,t.type,void 0,Y);break;case 11:t=Mm(n,t,t.pendingProps,t.type.render,t.ref,Y);break;case 5:Ud(t);default:Wp(n,t),t=F=Wh(t,Gn),t=Zp(n,t,Gn)}e.memoizedProps=e.pendingProps,t===null?Ou(e):F=t}function Ol(e,t,n,a){Bn=Ia=null,Ud(t),Ul=null,sr=0;var l=t.return;try{if(XA(e,l,t,n,Y)){Te=1,iu(e,Yt(n,e.current)),F=null;return}}catch(i){if(l!==null)throw F=l,i;Te=1,iu(e,Yt(n,e.current)),F=null;return}t.flags&32768?(V||a===1?e=!0:ni||(Y&536870912)!==0?e=!1:(aa=e=!0,(a===2||a===9||a===3||a===6)&&(a=Nt.current,a!==null&&a.tag===13&&(a.flags|=16384))),Cy(t,e)):Ou(t)}function Ou(e){var t=e;do{if((t.flags&32768)!==0){Cy(t,aa);return}e=t.return;var n=ZA(t.alternate,t,Gn);if(n!==null){F=n;return}if(t=t.sibling,t!==null){F=t;return}F=t=e}while(t!==null);Te===0&&(Te=5)}function Cy(e,t){do{var n=WA(e.alternate,e);if(n!==null){n.flags&=32767,F=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){F=e;return}F=e=n}while(e!==null);Te=6,F=null}function zm(e,t,n,a,l,i,r,o,u){e.cancelPendingCommit=null;do ku();while(Ue!==0);if((J&6)!==0)throw Error(S(327));if(t!==null){if(t===e.current)throw Error(S(177));if(i=t.lanes|t.childLanes,i|=Rd,zb(e,n,i,r,o,u),e===ue&&(F=ue=null,Y=0),Kl=t,da=e,kn=n,Js=i,$s=l,hy=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,uw(Ko,function(){return xy(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=L.T,L.T=null,l=$.p,$.p=2,r=J,J|=4;try{IA(e,t,n)}finally{J=r,$.p=l,L.T=a}}Ue=1,Ry(),Ty(),Ey()}}function Ry(){if(Ue===1){Ue=0;var e=da,t=Kl,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=L.T,L.T=null;var a=$.p;$.p=2;var l=J;J|=4;try{oy(t,e);var i=ld,r=Fh(e.containerInfo),o=i.focusedElem,u=i.selectionRange;if(r!==o&&o&&o.ownerDocument&&qh(o.ownerDocument.documentElement,o)){if(u!==null&&Cd(o)){var c=u.start,s=u.end;if(s===void 0&&(s=c),"selectionStart"in o)o.selectionStart=c,o.selectionEnd=Math.min(s,o.value.length);else{var f=o.ownerDocument||document,d=f&&f.defaultView||window;if(d.getSelection){var m=d.getSelection(),v=o.textContent.length,A=Math.min(u.start,v),b=u.end===void 0?A:Math.min(u.end,v);!m.extend&&A>b&&(r=b,b=A,A=r);var h=im(o,A),g=im(o,b);if(h&&g&&(m.rangeCount!==1||m.anchorNode!==h.node||m.anchorOffset!==h.offset||m.focusNode!==g.node||m.focusOffset!==g.offset)){var p=f.createRange();p.setStart(h.node,h.offset),m.removeAllRanges(),A>b?(m.addRange(p),m.extend(g.node,g.offset)):(p.setEnd(g.node,g.offset),m.addRange(p))}}}}for(f=[],m=o;m=m.parentNode;)m.nodeType===1&&f.push({element:m,left:m.scrollLeft,top:m.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<f.length;o++){var y=f[o];y.element.scrollLeft=y.left,y.element.scrollTop=y.top}}vu=!!ad,ld=ad=null}finally{J=l,$.p=a,L.T=n}}e.current=t,Ue=2}}function Ty(){if(Ue===2){Ue=0;var e=da,t=Kl,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=L.T,L.T=null;var a=$.p;$.p=2;var l=J;J|=4;try{ny(e,t.alternate,t)}finally{J=l,$.p=a,L.T=n}}Ue=3}}function Ey(){if(Ue===4||Ue===3){Ue=0,xb();var e=da,t=Kl,n=kn,a=hy;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?Ue=5:(Ue=0,Kl=da=null,Dy(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(sa=null),pd(n),t=t.stateNode,xt&&typeof xt.onCommitFiberRoot=="function")try{xt.onCommitFiberRoot(br,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=L.T,l=$.p,$.p=2,L.T=null;try{for(var i=e.onRecoverableError,r=0;r<a.length;r++){var o=a[r];i(o.value,{componentStack:o.stack})}}finally{L.T=t,$.p=l}}(kn&3)!==0&&ku(),hn(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===ed?nr++:(nr=0,ed=e):nr=0,Dr(0,!1)}}function Dy(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Rr(t)))}function ku(){return Ry(),Ty(),Ey(),xy()}function xy(){if(Ue!==5)return!1;var e=da,t=Js;Js=0;var n=pd(kn),a=L.T,l=$.p;try{$.p=32>n?32:n,L.T=null,n=$s,$s=null;var i=da,r=kn;if(Ue=0,Kl=da=null,kn=0,(J&6)!==0)throw Error(S(331));var o=J;if(J|=4,fy(i.current),cy(i,i.current,r,n),J=o,Dr(0,!1),xt&&typeof xt.onPostCommitFiberRoot=="function")try{xt.onPostCommitFiberRoot(br,i)}catch{}return!0}finally{$.p=l,L.T=a,Dy(e,t)}}function Um(e,t,n){t=Yt(n,t),t=Qs(e.stateNode,t,2),e=ca(e,t,2),e!==null&&(wr(e,2),hn(e))}function le(e,t,n){if(e.tag===3)Um(e,e,n);else for(;t!==null;){if(t.tag===3){Um(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(sa===null||!sa.has(a))){e=Yt(n,e),n=jp(2),a=ca(t,n,2),a!==null&&(Yp(n,a,t,e),wr(a,2),hn(a));break}}t=t.return}}function ds(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new ew;var l=new Set;a.set(t,l)}else l=a.get(t),l===void 0&&(l=new Set,a.set(t,l));l.has(n)||(Id=!0,l.add(n),e=iw.bind(null,e,t,n),t.then(e,e))}function iw(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ue===e&&(Y&n)===n&&(Te===4||Te===3&&(Y&62914560)===Y&&300>Dt()-Bu?(J&2)===0&&Zl(e,0):Jd|=n,Ql===Y&&(Ql=0)),hn(e)}function My(e,t){t===0&&(t=Ah()),e=Wa(e,t),e!==null&&(wr(e,t),hn(e))}function rw(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),My(e,n)}function ow(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(S(314))}a!==null&&a.delete(t),My(e,n)}function uw(e,t){return md(e,t)}var du=null,wl=null,td=!1,fu=!1,fs=!1,ia=0;function hn(e){e!==wl&&e.next===null&&(wl===null?du=wl=e:wl=wl.next=e),fu=!0,td||(td=!0,sw())}function Dr(e,t){if(!fs&&fu){fs=!0;do for(var n=!1,a=du;a!==null;){if(!t)if(e!==0){var l=a.pendingLanes;if(l===0)var i=0;else{var r=a.suspendedLanes,o=a.pingedLanes;i=(1<<31-Mt(42|e)+1)-1,i&=l&~(r&~o),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(n=!0,Gm(a,i))}else i=Y,i=Au(a,a===ue?i:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(i&3)===0||Ar(a,i)||(n=!0,Gm(a,i));a=a.next}while(n);fs=!1}}function cw(){_y()}function _y(){fu=td=!1;var e=0;ia!==0&&vw()&&(e=ia);for(var t=Dt(),n=null,a=du;a!==null;){var l=a.next,i=By(a,t);i===0?(a.next=null,n===null?du=l:n.next=l,l===null&&(wl=n)):(n=a,(e!==0||(i&3)!==0)&&(fu=!0)),a=l}Ue!==0&&Ue!==5||Dr(e,!1),ia!==0&&(ia=0)}function By(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes&-62914561;0<i;){var r=31-Mt(i),o=1<<r,u=l[r];u===-1?((o&n)===0||(o&a)!==0)&&(l[r]=Hb(o,t)):u<=t&&(e.expiredLanes|=o),i&=~o}if(t=ue,n=Y,n=Au(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(ae===2||ae===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&qc(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||Ar(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&qc(a),pd(n)){case 2:case 8:n=vh;break;case 32:n=Ko;break;case 268435456:n=bh;break;default:n=Ko}return a=Ny.bind(null,e),n=md(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&qc(a),e.callbackPriority=2,e.callbackNode=null,2}function Ny(e,t){if(Ue!==0&&Ue!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(ku()&&e.callbackNode!==n)return null;var a=Y;return a=Au(e,e===ue?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(yy(e,a,t),By(e,Dt()),e.callbackNode!=null&&e.callbackNode===n?Ny.bind(null,e):null)}function Gm(e,t){if(ku())return null;yy(e,t,!0)}function sw(){Aw(function(){(J&6)!==0?md(yh,cw):_y()})}function ef(){if(ia===0){var e=Yl;e===0&&(e=go,go<<=1,(go&261888)===0&&(go=256)),ia=e}return ia}function Pm(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:Bo(""+e)}function qm(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function dw(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var i=Pm((l[vt]||null).action),r=a.submitter;r&&(t=(t=r[vt]||null)?Pm(t.formAction):r.getAttribute("formAction"),t!==null&&(i=t,r=null));var o=new wu("action","action",null,a,l);e.push({event:o,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(ia!==0){var u=r?qm(l,r):new FormData(l);Vs(n,{pending:!0,data:u,method:l.method,action:i},null,u)}}else typeof i=="function"&&(o.preventDefault(),u=r?qm(l,r):new FormData(l),Vs(n,{pending:!0,data:u,method:l.method,action:i},i,u))},currentTarget:l}]})}}for(To=0;To<Os.length;To++)Eo=Os[To],Fm=Eo.toLowerCase(),jm=Eo[0].toUpperCase()+Eo.slice(1),tn(Fm,"on"+jm);var Eo,Fm,jm,To;tn(Yh,"onAnimationEnd");tn(Vh,"onAnimationIteration");tn(Xh,"onAnimationStart");tn("dblclick","onDoubleClick");tn("focusin","onFocus");tn("focusout","onBlur");tn(MA,"onTransitionRun");tn(_A,"onTransitionStart");tn(BA,"onTransitionCancel");tn(Qh,"onTransitionEnd");Fl("onMouseEnter",["mouseout","mouseover"]);Fl("onMouseLeave",["mouseout","mouseover"]);Fl("onPointerEnter",["pointerout","pointerover"]);Fl("onPointerLeave",["pointerout","pointerover"]);Qa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Qa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Qa("onBeforeInput",["compositionend","keypress","textInput","paste"]);Qa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Qa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Qa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var gr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),fw=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(gr));function Oy(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],l=a.event;a=a.listeners;e:{var i=void 0;if(t)for(var r=a.length-1;0<=r;r--){var o=a[r],u=o.instance,c=o.currentTarget;if(o=o.listener,u!==i&&l.isPropagationStopped())break e;i=o,l.currentTarget=c;try{i(l)}catch(s){Wo(s)}l.currentTarget=null,i=u}else for(r=0;r<a.length;r++){if(o=a[r],u=o.instance,c=o.currentTarget,o=o.listener,u!==i&&l.isPropagationStopped())break e;i=o,l.currentTarget=c;try{i(l)}catch(s){Wo(s)}l.currentTarget=null,i=u}}}}function q(e,t){var n=t[Ts];n===void 0&&(n=t[Ts]=new Set);var a=e+"__bubble";n.has(a)||(ky(t,e,2,!1),n.add(a))}function gs(e,t,n){var a=0;t&&(a|=4),ky(n,e,a,t)}var Do="_reactListening"+Math.random().toString(36).slice(2);function tf(e){if(!e[Do]){e[Do]=!0,Th.forEach(function(n){n!=="selectionchange"&&(fw.has(n)||gs(n,!1,e),gs(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Do]||(t[Do]=!0,gs("selectionchange",!1,t))}}function ky(e,t,n,a){switch(Qy(t)){case 2:var l=Pw;break;case 8:l=qw;break;default:l=rf}n=l.bind(null,t,n,e),l=void 0,!_s||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),a?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function ms(e,t,n,a,l){var i=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var r=a.tag;if(r===3||r===4){var o=a.stateNode.containerInfo;if(o===l)break;if(r===4)for(r=a.return;r!==null;){var u=r.tag;if((u===3||u===4)&&r.stateNode.containerInfo===l)return;r=r.return}for(;o!==null;){if(r=Rl(o),r===null)return;if(u=r.tag,u===5||u===6||u===26||u===27){a=i=r;continue e}o=o.parentNode}}a=a.return}Oh(function(){var c=i,s=bd(n),f=[];e:{var d=Kh.get(e);if(d!==void 0){var m=wu,v=e;switch(e){case"keypress":if(Oo(n)===0)break e;case"keydown":case"keyup":m=oA;break;case"focusin":v="focus",m=Xc;break;case"focusout":v="blur",m=Xc;break;case"beforeblur":case"afterblur":m=Xc;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":m=Wg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":m=Zb;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":m=sA;break;case Yh:case Vh:case Xh:m=Jb;break;case Qh:m=fA;break;case"scroll":case"scrollend":m=Qb;break;case"wheel":m=mA;break;case"copy":case"cut":case"paste":m=eA;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":m=Jg;break;case"toggle":case"beforetoggle":m=pA}var A=(t&4)!==0,b=!A&&(e==="scroll"||e==="scrollend"),h=A?d!==null?d+"Capture":null:d;A=[];for(var g=c,p;g!==null;){var y=g;if(p=y.stateNode,y=y.tag,y!==5&&y!==26&&y!==27||p===null||h===null||(y=ir(g,h),y!=null&&A.push(mr(g,y,p))),b)break;g=g.return}0<A.length&&(d=new m(d,v,null,n,s),f.push({event:d,listeners:A}))}}if((t&7)===0){e:{if(d=e==="mouseover"||e==="pointerover",m=e==="mouseout"||e==="pointerout",d&&n!==Ms&&(v=n.relatedTarget||n.fromElement)&&(Rl(v)||v[Jl]))break e;if((m||d)&&(d=s.window===s?s:(d=s.ownerDocument)?d.defaultView||d.parentWindow:window,m?(v=n.relatedTarget||n.toElement,m=c,v=v?Rl(v):null,v!==null&&(b=vr(v),A=v.tag,v!==b||A!==5&&A!==27&&A!==6)&&(v=null)):(m=null,v=c),m!==v)){if(A=Wg,y="onMouseLeave",h="onMouseEnter",g="mouse",(e==="pointerout"||e==="pointerover")&&(A=Jg,y="onPointerLeave",h="onPointerEnter",g="pointer"),b=m==null?d:Fi(m),p=v==null?d:Fi(v),d=new A(y,g+"leave",m,n,s),d.target=b,d.relatedTarget=p,y=null,Rl(s)===c&&(A=new A(h,g+"enter",v,n,s),A.target=p,A.relatedTarget=b,y=A),b=y,m&&v)t:{for(A=gw,h=m,g=v,p=0,y=h;y;y=A(y))p++;y=0;for(var C=g;C;C=A(C))y++;for(;0<p-y;)h=A(h),p--;for(;0<y-p;)g=A(g),y--;for(;p--;){if(h===g||g!==null&&h===g.alternate){A=h;break t}h=A(h),g=A(g)}A=null}else A=null;m!==null&&Ym(f,d,m,A,!1),v!==null&&b!==null&&Ym(f,b,v,A,!0)}}e:{if(d=c?Fi(c):window,m=d.nodeName&&d.nodeName.toLowerCase(),m==="select"||m==="input"&&d.type==="file")var R=nm;else if(tm(d))if(Gh)R=EA;else{R=RA;var T=CA}else m=d.nodeName,!m||m.toLowerCase()!=="input"||d.type!=="checkbox"&&d.type!=="radio"?c&&vd(c.elementType)&&(R=nm):R=TA;if(R&&(R=R(e,c))){Uh(f,R,n,s);break e}T&&T(e,d,c),e==="focusout"&&c&&d.type==="number"&&c.memoizedProps.value!=null&&xs(d,"number",d.value)}switch(T=c?Fi(c):window,e){case"focusin":(tm(T)||T.contentEditable==="true")&&(Dl=T,Bs=c,Qi=null);break;case"focusout":Qi=Bs=Dl=null;break;case"mousedown":Ns=!0;break;case"contextmenu":case"mouseup":case"dragend":Ns=!1,rm(f,n,s);break;case"selectionchange":if(xA)break;case"keydown":case"keyup":rm(f,n,s)}var M;if(Sd)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else El?Hh(e,n)&&(w="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(w="onCompositionStart");w&&(Lh&&n.locale!=="ko"&&(El||w!=="onCompositionStart"?w==="onCompositionEnd"&&El&&(M=kh()):(na=s,Ad="value"in na?na.value:na.textContent,El=!0)),T=gu(c,w),0<T.length&&(w=new Ig(w,e,null,n,s),f.push({event:w,listeners:T}),M?w.data=M:(M=zh(n),M!==null&&(w.data=M)))),(M=vA?bA(e,n):AA(e,n))&&(w=gu(c,"onBeforeInput"),0<w.length&&(T=new Ig("onBeforeInput","beforeinput",null,n,s),f.push({event:T,listeners:w}),T.data=M)),dw(f,e,c,n,s)}Oy(f,t)})}function mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function gu(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,i=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||i===null||(l=ir(e,n),l!=null&&a.unshift(mr(e,l,i)),l=ir(e,t),l!=null&&a.push(mr(e,l,i))),e.tag===3)return a;e=e.return}return[]}function gw(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Ym(e,t,n,a,l){for(var i=t._reactName,r=[];n!==null&&n!==a;){var o=n,u=o.alternate,c=o.stateNode;if(o=o.tag,u!==null&&u===a)break;o!==5&&o!==26&&o!==27||c===null||(u=c,l?(c=ir(n,i),c!=null&&r.unshift(mr(n,c,u))):l||(c=ir(n,i),c!=null&&r.push(mr(n,c,u)))),n=n.return}r.length!==0&&e.push({event:t,listeners:r})}var mw=/\r\n?/g,hw=/\u0000|\uFFFD/g;function Vm(e){return(typeof e=="string"?e:""+e).replace(mw,``).replace(hw,"")}function Ly(e,t){return t=Vm(t),Vm(e)===t}function ie(e,t,n,a,l,i){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||jl(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&jl(e,""+a);break;case"className":po(e,"class",a);break;case"tabIndex":po(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":po(e,n,a);break;case"style":Nh(e,a,i);break;case"data":if(t!=="object"){po(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=Bo(""+a),e.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof i=="function"&&(n==="formAction"?(t!=="input"&&ie(e,t,"name",l.name,l,null),ie(e,t,"formEncType",l.formEncType,l,null),ie(e,t,"formMethod",l.formMethod,l,null),ie(e,t,"formTarget",l.formTarget,l,null)):(ie(e,t,"encType",l.encType,l,null),ie(e,t,"method",l.method,l,null),ie(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=Bo(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=_n);break;case"onScroll":a!=null&&q("scroll",e);break;case"onScrollEnd":a!=null&&q("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(S(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(S(60));e.innerHTML=n}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}n=Bo(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""+a):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":a===!0?e.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,a):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(n,a):e.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(n):e.setAttribute(n,a);break;case"popover":q("beforetoggle",e),q("toggle",e),_o(e,"popover",a);break;case"xlinkActuate":Sn(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":Sn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":Sn(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":Sn(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":Sn(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":Sn(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":_o(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=Vb.get(n)||n,_o(e,n,a))}}function nd(e,t,n,a,l,i){switch(n){case"style":Nh(e,a,i);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(S(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(S(60));e.innerHTML=n}}break;case"children":typeof a=="string"?jl(e,a):(typeof a=="number"||typeof a=="bigint")&&jl(e,""+a);break;case"onScroll":a!=null&&q("scroll",e);break;case"onScrollEnd":a!=null&&q("scrollend",e);break;case"onClick":a!=null&&(e.onclick=_n);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Eh.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),i=e[vt]||null,i=i!=null?i[n]:null,typeof i=="function"&&e.removeEventListener(t,i,l),typeof a=="function")){typeof i!="function"&&i!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,l);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):_o(e,n,a)}}}function Ke(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":q("error",e),q("load",e);var a=!1,l=!1,i;for(i in n)if(n.hasOwnProperty(i)){var r=n[i];if(r!=null)switch(i){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(S(137,t));default:ie(e,t,i,r,n,null)}}l&&ie(e,t,"srcSet",n.srcSet,n,null),a&&ie(e,t,"src",n.src,n,null);return;case"input":q("invalid",e);var o=i=r=l=null,u=null,c=null;for(a in n)if(n.hasOwnProperty(a)){var s=n[a];if(s!=null)switch(a){case"name":l=s;break;case"type":r=s;break;case"checked":u=s;break;case"defaultChecked":c=s;break;case"value":i=s;break;case"defaultValue":o=s;break;case"children":case"dangerouslySetInnerHTML":if(s!=null)throw Error(S(137,t));break;default:ie(e,t,a,s,n,null)}}Mh(e,i,o,u,c,r,l,!1);return;case"select":q("invalid",e),a=r=i=null;for(l in n)if(n.hasOwnProperty(l)&&(o=n[l],o!=null))switch(l){case"value":i=o;break;case"defaultValue":r=o;break;case"multiple":a=o;default:ie(e,t,l,o,n,null)}t=i,n=r,e.multiple=!!a,t!=null?Ll(e,!!a,t,!1):n!=null&&Ll(e,!!a,n,!0);return;case"textarea":q("invalid",e),i=l=a=null;for(r in n)if(n.hasOwnProperty(r)&&(o=n[r],o!=null))switch(r){case"value":a=o;break;case"defaultValue":l=o;break;case"children":i=o;break;case"dangerouslySetInnerHTML":if(o!=null)throw Error(S(91));break;default:ie(e,t,r,o,n,null)}Bh(e,a,l,i);return;case"option":for(u in n)if(n.hasOwnProperty(u)&&(a=n[u],a!=null))switch(u){case"selected":e.selected=a&&typeof a!="function"&&typeof a!="symbol";break;default:ie(e,t,u,a,n,null)}return;case"dialog":q("beforetoggle",e),q("toggle",e),q("cancel",e),q("close",e);break;case"iframe":case"object":q("load",e);break;case"video":case"audio":for(a=0;a<gr.length;a++)q(gr[a],e);break;case"image":q("error",e),q("load",e);break;case"details":q("toggle",e);break;case"embed":case"source":case"link":q("error",e),q("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in n)if(n.hasOwnProperty(c)&&(a=n[c],a!=null))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(S(137,t));default:ie(e,t,c,a,n,null)}return;default:if(vd(t)){for(s in n)n.hasOwnProperty(s)&&(a=n[s],a!==void 0&&nd(e,t,s,a,n,void 0));return}}for(o in n)n.hasOwnProperty(o)&&(a=n[o],a!=null&&ie(e,t,o,a,n,null))}function pw(e,t,n,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,i=null,r=null,o=null,u=null,c=null,s=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case"checked":break;case"value":break;case"defaultValue":u=f;default:a.hasOwnProperty(m)||ie(e,t,m,null,a,f)}}for(var d in a){var m=a[d];if(f=n[d],a.hasOwnProperty(d)&&(m!=null||f!=null))switch(d){case"type":i=m;break;case"name":l=m;break;case"checked":c=m;break;case"defaultChecked":s=m;break;case"value":r=m;break;case"defaultValue":o=m;break;case"children":case"dangerouslySetInnerHTML":if(m!=null)throw Error(S(137,t));break;default:m!==f&&ie(e,t,d,m,a,f)}}Ds(e,r,o,u,c,s,i,l);return;case"select":m=r=o=d=null;for(i in n)if(u=n[i],n.hasOwnProperty(i)&&u!=null)switch(i){case"value":break;case"multiple":m=u;default:a.hasOwnProperty(i)||ie(e,t,i,null,a,u)}for(l in a)if(i=a[l],u=n[l],a.hasOwnProperty(l)&&(i!=null||u!=null))switch(l){case"value":d=i;break;case"defaultValue":o=i;break;case"multiple":r=i;default:i!==u&&ie(e,t,l,i,a,u)}t=o,n=r,a=m,d!=null?Ll(e,!!n,d,!1):!!a!=!!n&&(t!=null?Ll(e,!!n,t,!0):Ll(e,!!n,n?[]:"",!1));return;case"textarea":m=d=null;for(o in n)if(l=n[o],n.hasOwnProperty(o)&&l!=null&&!a.hasOwnProperty(o))switch(o){case"value":break;case"children":break;default:ie(e,t,o,null,a,l)}for(r in a)if(l=a[r],i=n[r],a.hasOwnProperty(r)&&(l!=null||i!=null))switch(r){case"value":d=l;break;case"defaultValue":m=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(S(91));break;default:l!==i&&ie(e,t,r,l,a,i)}_h(e,d,m);return;case"option":for(var v in n)if(d=n[v],n.hasOwnProperty(v)&&d!=null&&!a.hasOwnProperty(v))switch(v){case"selected":e.selected=!1;break;default:ie(e,t,v,null,a,d)}for(u in a)if(d=a[u],m=n[u],a.hasOwnProperty(u)&&d!==m&&(d!=null||m!=null))switch(u){case"selected":e.selected=d&&typeof d!="function"&&typeof d!="symbol";break;default:ie(e,t,u,d,a,m)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var A in n)d=n[A],n.hasOwnProperty(A)&&d!=null&&!a.hasOwnProperty(A)&&ie(e,t,A,null,a,d);for(c in a)if(d=a[c],m=n[c],a.hasOwnProperty(c)&&d!==m&&(d!=null||m!=null))switch(c){case"children":case"dangerouslySetInnerHTML":if(d!=null)throw Error(S(137,t));break;default:ie(e,t,c,d,a,m)}return;default:if(vd(t)){for(var b in n)d=n[b],n.hasOwnProperty(b)&&d!==void 0&&!a.hasOwnProperty(b)&&nd(e,t,b,void 0,a,d);for(s in a)d=a[s],m=n[s],!a.hasOwnProperty(s)||d===m||d===void 0&&m===void 0||nd(e,t,s,d,a,m);return}}for(var h in n)d=n[h],n.hasOwnProperty(h)&&d!=null&&!a.hasOwnProperty(h)&&ie(e,t,h,null,a,d);for(f in a)d=a[f],m=n[f],!a.hasOwnProperty(f)||d===m||d==null&&m==null||ie(e,t,f,d,a,m)}function Xm(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function yw(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var l=n[a],i=l.transferSize,r=l.initiatorType,o=l.duration;if(i&&o&&Xm(r)){for(r=0,o=l.responseEnd,a+=1;a<n.length;a++){var u=n[a],c=u.startTime;if(c>o)break;var s=u.transferSize,f=u.initiatorType;s&&Xm(f)&&(u=u.responseEnd,r+=s*(u<o?1:(o-c)/(u-c)))}if(--a,t+=8*(i+r)/(l.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var ad=null,ld=null;function mu(e){return e.nodeType===9?e:e.ownerDocument}function Qm(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Hy(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function id(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var hs=null;function vw(){var e=window.event;return e&&e.type==="popstate"?e===hs?!1:(hs=e,!0):(hs=null,!1)}var zy=typeof setTimeout=="function"?setTimeout:void 0,bw=typeof clearTimeout=="function"?clearTimeout:void 0,Km=typeof Promise=="function"?Promise:void 0,Aw=typeof queueMicrotask=="function"?queueMicrotask:typeof Km<"u"?function(e){return Km.resolve(null).then(e).catch(ww)}:zy;function ww(e){setTimeout(function(){throw e})}function Aa(e){return e==="head"}function Zm(e,t){var n=t,a=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"||n==="/&"){if(a===0){e.removeChild(l),Il(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")ar(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,ar(n);for(var i=n.firstChild;i;){var r=i.nextSibling,o=i.nodeName;i[Sr]||o==="SCRIPT"||o==="STYLE"||o==="LINK"&&i.rel.toLowerCase()==="stylesheet"||n.removeChild(i),i=r}}else n==="body"&&ar(e.ownerDocument.body);n=l}while(n);Il(t)}function Wm(e,t){var n=e;e=0;do{var a=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=a}while(n)}function rd(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":rd(n),yd(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Sw(e,t,n,a){for(;e.nodeType===1;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[Sr])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(i=e.getAttribute("rel"),i==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(i!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(i=e.getAttribute("src"),(i!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&i&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var i=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===i)return e}else return e;if(e=Qt(e.nextSibling),e===null)break}return null}function Cw(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Qt(e.nextSibling),e===null))return null;return e}function Uy(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Qt(e.nextSibling),e===null))return null;return e}function od(e){return e.data==="$?"||e.data==="$~"}function ud(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function Rw(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function Qt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var cd=null;function Im(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Qt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function Jm(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(t===0)return e;t--}else n!=="/$"&&n!=="/&"||t++}e=e.previousSibling}return null}function Gy(e,t,n){switch(t=mu(n),e){case"html":if(e=t.documentElement,!e)throw Error(S(452));return e;case"head":if(e=t.head,!e)throw Error(S(453));return e;case"body":if(e=t.body,!e)throw Error(S(454));return e;default:throw Error(S(451))}}function ar(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);yd(e)}var Kt=new Map,$m=new Set;function hu(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Pn=$.d;$.d={f:Tw,r:Ew,D:Dw,C:xw,L:Mw,m:_w,X:Nw,S:Bw,M:Ow};function Tw(){var e=Pn.f(),t=Nu();return e||t}function Ew(e){var t=$l(e);t!==null&&t.tag===5&&t.type==="form"?Np(t):Pn.r(e)}var ai=typeof document>"u"?null:document;function Py(e,t,n){var a=ai;if(a&&typeof t=="string"&&t){var l=jt(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),$m.has(l)||($m.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),Ke(t,"link",e),qe(t),a.head.appendChild(t)))}}function Dw(e){Pn.D(e),Py("dns-prefetch",e,null)}function xw(e,t){Pn.C(e,t),Py("preconnect",e,t)}function Mw(e,t,n){Pn.L(e,t,n);var a=ai;if(a&&e&&t){var l='link[rel="preload"][as="'+jt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+jt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+jt(n.imageSizes)+'"]')):l+='[href="'+jt(e)+'"]';var i=l;switch(t){case"style":i=Wl(e);break;case"script":i=li(e)}Kt.has(i)||(e=ve({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Kt.set(i,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(xr(i))||t==="script"&&a.querySelector(Mr(i))||(t=a.createElement("link"),Ke(t,"link",e),qe(t),a.head.appendChild(t)))}}function _w(e,t){Pn.m(e,t);var n=ai;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+jt(a)+'"][href="'+jt(e)+'"]',i=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=li(e)}if(!Kt.has(i)&&(e=ve({rel:"modulepreload",href:e},t),Kt.set(i,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Mr(i)))return}a=n.createElement("link"),Ke(a,"link",e),qe(a),n.head.appendChild(a)}}}function Bw(e,t,n){Pn.S(e,t,n);var a=ai;if(a&&e){var l=kl(a).hoistableStyles,i=Wl(e);t=t||"default";var r=l.get(i);if(!r){var o={loading:0,preload:null};if(r=a.querySelector(xr(i)))o.loading=5;else{e=ve({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Kt.get(i))&&nf(e,n);var u=r=a.createElement("link");qe(u),Ke(u,"link",e),u._p=new Promise(function(c,s){u.onload=c,u.onerror=s}),u.addEventListener("load",function(){o.loading|=1}),u.addEventListener("error",function(){o.loading|=2}),o.loading|=4,qo(r,t,a)}r={type:"stylesheet",instance:r,count:1,state:o},l.set(i,r)}}}function Nw(e,t){Pn.X(e,t);var n=ai;if(n&&e){var a=kl(n).hoistableScripts,l=li(e),i=a.get(l);i||(i=n.querySelector(Mr(l)),i||(e=ve({src:e,async:!0},t),(t=Kt.get(l))&&af(e,t),i=n.createElement("script"),qe(i),Ke(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function Ow(e,t){Pn.M(e,t);var n=ai;if(n&&e){var a=kl(n).hoistableScripts,l=li(e),i=a.get(l);i||(i=n.querySelector(Mr(l)),i||(e=ve({src:e,async:!0,type:"module"},t),(t=Kt.get(l))&&af(e,t),i=n.createElement("script"),qe(i),Ke(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function eh(e,t,n,a){var l=(l=ra.current)?hu(l):null;if(!l)throw Error(S(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Wl(n.href),n=kl(l).hoistableStyles,a=n.get(t),a||(a={type:"style",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=Wl(n.href);var i=kl(l).hoistableStyles,r=i.get(e);if(r||(l=l.ownerDocument||l,r={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,r),(i=l.querySelector(xr(e)))&&!i._p&&(r.instance=i,r.state.loading=5),Kt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Kt.set(e,n),i||kw(l,e,n,r.state))),t&&a===null)throw Error(S(528,""));return r}if(t&&a!==null)throw Error(S(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=li(n),n=kl(l).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(S(444,e))}}function Wl(e){return'href="'+jt(e)+'"'}function xr(e){return'link[rel="stylesheet"]['+e+"]"}function qy(e){return ve({},e,{"data-precedence":e.precedence,precedence:null})}function kw(e,t,n,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ke(t,"link",n),qe(t),e.head.appendChild(t))}function li(e){return'[src="'+jt(e)+'"]'}function Mr(e){return"script[async]"+e}function th(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+jt(n.href)+'"]');if(a)return t.instance=a,qe(a),a;var l=ve({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),qe(a),Ke(a,"style",l),qo(a,n.precedence,e),t.instance=a;case"stylesheet":l=Wl(n.href);var i=e.querySelector(xr(l));if(i)return t.state.loading|=4,t.instance=i,qe(i),i;a=qy(n),(l=Kt.get(l))&&nf(a,l),i=(e.ownerDocument||e).createElement("link"),qe(i);var r=i;return r._p=new Promise(function(o,u){r.onload=o,r.onerror=u}),Ke(i,"link",a),t.state.loading|=4,qo(i,n.precedence,e),t.instance=i;case"script":return i=li(n.src),(l=e.querySelector(Mr(i)))?(t.instance=l,qe(l),l):(a=n,(l=Kt.get(i))&&(a=ve({},n),af(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),qe(l),Ke(l,"link",a),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(S(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,qo(a,n.precedence,e));return t.instance}function qo(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,i=l,r=0;r<a.length;r++){var o=a[r];if(o.dataset.precedence===t)i=o;else if(i!==l)break}i?i.parentNode.insertBefore(e,i.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function nf(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function af(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var Fo=null;function nh(e,t,n){if(Fo===null){var a=new Map,l=Fo=new Map;l.set(n,a)}else l=Fo,a=l.get(n),a||(a=new Map,l.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var i=n[l];if(!(i[Sr]||i[Ve]||e==="link"&&i.getAttribute("rel")==="stylesheet")&&i.namespaceURI!=="http://www.w3.org/2000/svg"){var r=i.getAttribute(t)||"";r=e+r;var o=a.get(r);o?o.push(i):a.set(r,[i])}}return a}function ah(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Lw(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Fy(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Hw(e,t,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var l=Wl(a.href),i=t.querySelector(xr(l));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=pu.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=i,qe(i);return}i=t.ownerDocument||t,a=qy(a),(l=Kt.get(l))&&nf(a,l),i=i.createElement("link"),qe(i);var r=i;r._p=new Promise(function(o,u){r.onload=o,r.onerror=u}),Ke(i,"link",a),n.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=pu.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var ps=0;function zw(e,t){return e.stylesheets&&e.count===0&&jo(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&jo(e,e.stylesheets),e.unsuspend){var i=e.unsuspend;e.unsuspend=null,i()}},6e4+t);0<e.imgBytes&&ps===0&&(ps=62500*yw());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&jo(e,e.stylesheets),e.unsuspend)){var i=e.unsuspend;e.unsuspend=null,i()}},(e.imgBytes>ps?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function pu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)jo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var yu=null;function jo(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,yu=new Map,t.forEach(Uw,e),yu=null,pu.call(e))}function Uw(e,t){if(!(t.state.loading&4)){var n=yu.get(e);if(n)var a=n.get(null);else{n=new Map,yu.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i<l.length;i++){var r=l[i];(r.nodeName==="LINK"||r.getAttribute("media")!=="not all")&&(n.set(r.dataset.precedence,r),a=r)}a&&n.set(null,a)}l=t.instance,r=l.getAttribute("data-precedence"),i=n.get(r)||a,i===a&&n.set(null,l),n.set(r,l),this.count++,a=pu.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),i?i.parentNode.insertBefore(l,i.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var hr={$$typeof:Mn,Provider:null,Consumer:null,_currentValue:za,_currentValue2:za,_threadCount:0};function Gw(e,t,n,a,l,i,r,o,u){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Fc(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Fc(0),this.hiddenUpdates=Fc(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=i,this.onRecoverableError=r,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=u,this.incompleteTransitions=new Map}function jy(e,t,n,a,l,i,r,o,u,c,s,f){return e=new Gw(e,t,n,r,u,c,s,f,o),t=1,i===!0&&(t|=24),i=Tt(3,null,null,t),e.current=i,i.stateNode=e,t=Md(),t.refCount++,e.pooledCache=t,t.refCount++,i.memoizedState={element:a,isDehydrated:n,cache:t},Nd(i),e}function Yy(e){return e?(e=_l,e):_l}function Vy(e,t,n,a,l,i){l=Yy(l),a.context===null?a.context=l:a.pendingContext=l,a=ua(t),a.payload={element:n},i=i===void 0?null:i,i!==null&&(a.callback=i),n=ca(e,a,t),n!==null&&(yt(n,e,t),Zi(n,e,t))}function lh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function lf(e,t){lh(e,t),(e=e.alternate)&&lh(e,t)}function Xy(e){if(e.tag===13||e.tag===31){var t=Wa(e,67108864);t!==null&&yt(t,e,67108864),lf(e,67108864)}}function ih(e){if(e.tag===13||e.tag===31){var t=_t();t=hd(t);var n=Wa(e,t);n!==null&&yt(n,e,t),lf(e,t)}}var vu=!0;function Pw(e,t,n,a){var l=L.T;L.T=null;var i=$.p;try{$.p=2,rf(e,t,n,a)}finally{$.p=i,L.T=l}}function qw(e,t,n,a){var l=L.T;L.T=null;var i=$.p;try{$.p=8,rf(e,t,n,a)}finally{$.p=i,L.T=l}}function rf(e,t,n,a){if(vu){var l=sd(a);if(l===null)ms(e,t,a,bu,n),rh(e,a);else if(jw(l,e,t,n,a))a.stopPropagation();else if(rh(e,a),t&4&&-1<Fw.indexOf(e)){for(;l!==null;){var i=$l(l);if(i!==null)switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var r=ka(i.pendingLanes);if(r!==0){var o=i;for(o.pendingLanes|=2,o.entangledLanes|=2;r;){var u=1<<31-Mt(r);o.entanglements[1]|=u,r&=~u}hn(i),(J&6)===0&&(uu=Dt()+500,Dr(0,!1))}}break;case 31:case 13:o=Wa(i,2),o!==null&&yt(o,i,2),Nu(),lf(i,2)}if(i=sd(a),i===null&&ms(e,t,a,bu,n),i===l)break;l=i}l!==null&&a.stopPropagation()}else ms(e,t,a,null,n)}}function sd(e){return e=bd(e),of(e)}var bu=null;function of(e){if(bu=null,e=Rl(e),e!==null){var t=vr(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=fh(t),e!==null)return e;e=null}else if(n===31){if(e=gh(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return bu=e,null}function Qy(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Mb()){case yh:return 2;case vh:return 8;case Ko:case _b:return 32;case bh:return 268435456;default:return 32}default:return 32}}var dd=!1,fa=null,ga=null,ma=null,pr=new Map,yr=new Map,ea=[],Fw="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function rh(e,t){switch(e){case"focusin":case"focusout":fa=null;break;case"dragenter":case"dragleave":ga=null;break;case"mouseover":case"mouseout":ma=null;break;case"pointerover":case"pointerout":pr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":yr.delete(t.pointerId)}}function Ui(e,t,n,a,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:i,targetContainers:[l]},t!==null&&(t=$l(t),t!==null&&Xy(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function jw(e,t,n,a,l){switch(t){case"focusin":return fa=Ui(fa,e,t,n,a,l),!0;case"dragenter":return ga=Ui(ga,e,t,n,a,l),!0;case"mouseover":return ma=Ui(ma,e,t,n,a,l),!0;case"pointerover":var i=l.pointerId;return pr.set(i,Ui(pr.get(i)||null,e,t,n,a,l)),!0;case"gotpointercapture":return i=l.pointerId,yr.set(i,Ui(yr.get(i)||null,e,t,n,a,l)),!0}return!1}function Ky(e){var t=Rl(e.target);if(t!==null){var n=vr(t);if(n!==null){if(t=n.tag,t===13){if(t=fh(n),t!==null){e.blockedOn=t,jg(e.priority,function(){ih(n)});return}}else if(t===31){if(t=gh(n),t!==null){e.blockedOn=t,jg(e.priority,function(){ih(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Yo(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=sd(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Ms=a,n.target.dispatchEvent(a),Ms=null}else return t=$l(n),t!==null&&Xy(t),e.blockedOn=n,!1;t.shift()}return!0}function oh(e,t,n){Yo(e)&&n.delete(t)}function Yw(){dd=!1,fa!==null&&Yo(fa)&&(fa=null),ga!==null&&Yo(ga)&&(ga=null),ma!==null&&Yo(ma)&&(ma=null),pr.forEach(oh),yr.forEach(oh)}function xo(e,t){e.blockedOn===t&&(e.blockedOn=null,dd||(dd=!0,Ge.unstable_scheduleCallback(Ge.unstable_NormalPriority,Yw)))}var Mo=null;function uh(e){Mo!==e&&(Mo=e,Ge.unstable_scheduleCallback(Ge.unstable_NormalPriority,function(){Mo===e&&(Mo=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],l=e[t+2];if(typeof a!="function"){if(of(a||n)===null)continue;break}var i=$l(n);i!==null&&(e.splice(t,3),t-=3,Vs(i,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function Il(e){function t(u){return xo(u,e)}fa!==null&&xo(fa,e),ga!==null&&xo(ga,e),ma!==null&&xo(ma,e),pr.forEach(t),yr.forEach(t);for(var n=0;n<ea.length;n++){var a=ea[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<ea.length&&(n=ea[0],n.blockedOn===null);)Ky(n),n.blockedOn===null&&ea.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],i=n[a+1],r=l[vt]||null;if(typeof i=="function")r||uh(n);else if(r){var o=null;if(i&&i.hasAttribute("formAction")){if(l=i,r=i[vt]||null)o=r.formAction;else if(of(l)!==null)continue}else o=r.action;typeof o=="function"?n[a+1]=o:(n.splice(a,3),a-=3),uh(n)}}}function Zy(){function e(i){i.canIntercept&&i.info==="react-transition"&&i.intercept({handler:function(){return new Promise(function(r){return l=r})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var i=navigation.currentEntry;i&&i.url!=null&&navigation.navigate(i.url,{state:i.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),l!==null&&(l(),l=null)}}}function uf(e){this._internalRoot=e}Lu.prototype.render=uf.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(S(409));var n=t.current,a=_t();Vy(n,a,e,t,null,null)};Lu.prototype.unmount=uf.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Vy(e.current,2,null,e,null,null),Nu(),t[Jl]=null}};function Lu(e){this._internalRoot=e}Lu.prototype.unstable_scheduleHydration=function(e){if(e){var t=Rh();e={blockedOn:null,target:e,priority:t};for(var n=0;n<ea.length&&t!==0&&t<ea[n].priority;n++);ea.splice(n,0,e),n===0&&Ky(e)}};var ch=sh.version;if(ch!=="19.2.8")throw Error(S(527,ch,"19.2.8"));$.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(S(188)):(e=Object.keys(e).join(","),Error(S(268,e)));return e=Sb(t),e=e!==null?mh(e):null,e=e===null?null:e.stateNode,e};var Vw={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:L,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(Gi=__REACT_DEVTOOLS_GLOBAL_HOOK__,!Gi.isDisabled&&Gi.supportsFiber))try{br=Gi.inject(Vw),xt=Gi}catch{}var Gi;Hu.createRoot=function(e,t){if(!dh(e))throw Error(S(299));var n=!1,a="",l=Pp,i=qp,r=Fp;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(r=t.onRecoverableError)),t=jy(e,1,!1,null,null,n,a,null,l,i,r,Zy),e[Jl]=t.current,tf(e),new uf(t)};Hu.hydrateRoot=function(e,t,n){if(!dh(e))throw Error(S(299));var a=!1,l="",i=Pp,r=qp,o=Fp,u=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(i=n.onUncaughtError),n.onCaughtError!==void 0&&(r=n.onCaughtError),n.onRecoverableError!==void 0&&(o=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=jy(e,1,!0,t,n??null,a,l,u,i,r,o,Zy),t.context=Yy(null),n=t.current,a=_t(),a=hd(a),l=ua(a),l.callback=null,ca(n,l,a),n=a,t.current.lanes=n,wr(t,n),hn(t),e[Jl]=t.current,tf(e),new Lu(t)};Hu.version="19.2.8"});var $y=un((jS,Jy)=>{"use strict";function Iy(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Iy)}catch(e){console.error(e)}}Iy(),Jy.exports=Wy()});var t0=un(zu=>{"use strict";var Xw=Symbol.for("react.transitional.element"),Qw=Symbol.for("react.fragment");function e0(e,t,n){var a=null;if(n!==void 0&&(a=""+n),t.key!==void 0&&(a=""+t.key),"key"in t){n={};for(var l in t)l!=="key"&&(n[l]=t[l])}else n=t;return t=n.ref,{$$typeof:Xw,type:e,key:a,ref:t!==void 0?t:null,props:n}}zu.Fragment=Qw;zu.jsx=e0;zu.jsxs=e0});var O=un((VS,n0)=>{"use strict";n0.exports=t0()});var Lt=B(ft(),1),s1=B($y(),1);var Wv=B(ft(),1);var qn=B(O(),1);function Kw(e){return{under50:"Under $50",over50:"Over $50",over30:"Over $30",over500:"Over $500","50_100":"$50 - $100","100_200":"$100 - $200","200_500":"$200 - $500"}[e]||e}function a0({activeDealTag:e,activeFreeformTags:t,airedaleTags:n,freeformTags:a,discountAmount:l,onBrandSelect:i,onBrandToggle:r,onDiscountAmountChange:o,onPriceRangeChange:u,onTagClear:c,onFreeformTagClear:s,onFreeformTagToggle:f,priceRange:d,selectedBrands:m}){let v=m.map(b=>({type:"brand",value:b,label:b}));if(e){let b=n.find(h=>h.startsWith(e+":::")||h===e);v.push({type:"category",value:e,label:b?b.split(":::")[1]||b.split(":::")[0]:e})}if(t.forEach(b=>{let h=a.find(g=>g.handle===b);v.push({type:"freeform-tag",value:b,label:h?.label||b})}),d&&d!=="all"&&v.push({type:"price",value:d,label:Kw(d)}),l&&l!=="0"&&l!=="all"&&v.push({type:"discount",value:l,label:`Min ${l}% off`}),v.length===0)return null;let A=b=>{b.type==="brand"&&r?.(b.value),b.type==="category"&&c(),b.type==="freeform-tag"&&f(b.value),b.type==="discount"&&o?.("0"),b.type==="price"&&u?.("all")};return(0,qn.jsxs)("div",{className:"tg-df-active-badges-row",style:{display:"flex",flexWrap:"wrap",gap:"4px",alignItems:"center",marginTop:"10px",marginBottom:"16px"},children:[v.map(b=>(0,qn.jsxs)("span",{className:"tg-df-active-badge",children:[b.label,(0,qn.jsx)("button",{type:"button",className:"tg-df-badge-remove","aria-label":`Remove ${b.label}`,onClick:()=>A(b),children:(0,qn.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,qn.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,qn.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},b.type+"-"+b.value)),v.length>1&&(0,qn.jsx)("button",{type:"button",className:"tg-df-badge-clear-all",onClick:()=>{i?.([]),c(),s(),o?.("0"),u?.("all")},children:"Clear all"})]})}function l0(e){if(!e)return null;let t=e.documentname||e.title||"";!t&&e.documentnametext&&(t=Array.isArray(e.documentnametext)?e.documentnametext[0]:e.documentnametext),!t&&e.articlename&&(t=Array.isArray(e.articlename)?e.articlename[0]:e.articlename),!t&&e.articlesocialtitle&&Array.isArray(e.articlesocialtitle)&&(t=e.articlesocialtitle[0]);let n=e.strapline||e.articlestrapline||e.subtitle||e.dek||"";!n&&e.image_thumbnail&&e.image_thumbnail.dek&&(n=e.image_thumbnail.dek),Array.isArray(n)&&(n=n[0]||"");let a="";if(e.articlepage)try{let l=e.articlepage;if(typeof l=="string")try{l=JSON.parse(l)}catch{}if(Array.isArray(l)&&l.length>0){let i=l[0];if(typeof i=="string")try{i=JSON.parse(i)}catch{}if(Array.isArray(i)){let r=[];for(let o of i){if(o.type==="featured-product")break;if(o.type==="text"&&o.data)Array.isArray(o.data.paragraphs)?o.data.paragraphs.forEach(u=>{u&&r.push(u.startsWith("<")?u:`<p>${u}<\/p>`)}):typeof o.data.text=="string"&&o.data.text&&r.push(o.data.text.startsWith("<")?o.data.text:`<p>${o.data.text}<\/p>`);else if(o.type==="section"&&o.data){let u=o.data.text||o.data.heading||o.data.title||"";u&&r.push(`<div class="tg-df-article-section-banner"><span>${u}<\/span><\/div>`)}}r.length>0&&(a=r.join(""))}}}catch(l){console.error("Error parsing articlepage",l)}return!a&&e.content?a=typeof e.content=="string"?e.content:"":!a&&e.intro?a=typeof e.intro=="string"?e.intro:"":!a&&e.paragraphs&&(a=(Array.isArray(e.paragraphs)?e.paragraphs:[e.paragraphs]).map(i=>`<p>${i}<\/p>`).join("")),{headline:t,strapline:n,contentHtml:a}}var ii=B(O(),1);function i0({articles:e,selectedArticleId:t}){if(!t)return null;let n=e.find(l=>l.id===t);if(!n)return null;let a=l0(n);return!a||!a.headline&&!a.strapline&&!a.contentHtml?null:(0,ii.jsxs)("div",{className:"tg-df-article-intro-container",id:"tg-df-article-intro",style:{margin:"0 auto 32px",width:"100%",maxWidth:"800px",textAlign:"left",padding:"0 16px"},children:[a.headline&&(0,ii.jsx)("h2",{className:"tg-df-article-headline",id:"tg-df-article-headline",style:{fontSize:"1.75rem",fontWeight:800,color:"#0f172a",marginBottom:"1rem",lineHeight:1.25},children:a.headline}),a.strapline&&(0,ii.jsx)("p",{className:"tg-df-article-strapline",id:"tg-df-article-strapline",style:{fontSize:"1.125rem",fontWeight:600,color:"#334155",marginBottom:"1.25rem",lineHeight:1.4},children:a.strapline}),a.contentHtml&&(0,ii.jsx)("div",{className:"tg-df-article-content",id:"tg-df-article-content",dangerouslySetInnerHTML:{__html:a.contentHtml}})]})}var Fn=B(O(),1);function Zw({articles:e,authorHandle:t,authorName:n}){let a=n||e.length>0&&(e[0].articleauthortext?.[0]||e[0].articleauthor?.[0])||"Author";(t==="all-authors"||n==="all-authors"||n==="All authors")&&(a="All authors");let l=a.trim().split(" ")[0]||"Author";return a==="All authors"&&(l="All authors"),`Shop all ${l==="All authors"?"authors'":l.endsWith("'s")||l.endsWith("\u2019s")?l:`${l}'s`} collections`}function Ww(e){let t=[];return e.documentnametext&&t.push(e.documentnametext),e.documentname&&t.push(e.documentname),e.articlename&&t.push(Array.isArray(e.articlename)?e.articlename[0]:e.articlename),e.articlesocialtitle&&Array.isArray(e.articlesocialtitle)&&t.push(...e.articlesocialtitle),t.length>0?t.reduce((n,a)=>a&&a.length<n.length?a:n,t[0]):"Article"}function r0({articles:e,authorHandle:t,authorName:n,onChange:a,selectedArticleId:l,shortenedHeadlines:i}){return(0,Fn.jsx)("div",{className:"tg-df-top-bar",id:"tg-df-top-bar",style:{position:"relative",zIndex:100,margin:"0 auto 20px",width:"100%",display:"flex",justifyContent:"center"},children:(0,Fn.jsxs)("div",{className:"tg-df-sort-wrapper",style:{width:"auto",maxWidth:"320px",display:"inline-flex",position:"relative"},children:[(0,Fn.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",style:{position:"absolute",left:"14px",top:"50%",transform:"translateY(-50%)",width:"14px",height:"14px",color:"var(--tg-df-text-muted)",pointerEvents:"none",zIndex:2},children:(0,Fn.jsx)("path",{d:"M12 2l-10 4.5 10 4.5 10-4.5-10-4.5zm0 6.5l-8-3.6 8-3.6 8 3.6-8 3.6zm-10 6l10 4.5 10-4.5v-2.5l-10 4.5-10-4.5v2.5zm0 5l10 4.5 10-4.5v-2.5l-10 4.5-10-4.5v2.5z"})}),(0,Fn.jsxs)("select",{className:"tg-df-filter-select tg-df-article-select",style:{width:"100%",maxWidth:"320px",padding:"10px 36px 10px 38px",fontSize:"14px",fontWeight:500,borderRadius:"100px",border:"1px solid var(--tg-df-border)",color:"var(--tg-df-text)",backgroundColor:"var(--tg-df-bg-secondary)",appearance:"none",backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 14px center",textAlign:"left",textAlignLast:"left",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",cursor:"pointer"},value:l||"",onChange:r=>a(r.target.value),children:[(0,Fn.jsx)("option",{value:"",style:{textAlign:"left"},children:Zw({articles:e,authorHandle:t,authorName:n})}),e.map(r=>{let o=i?.[r.id]||Ww(r);return o&&o.length>38&&(o=o.substring(0,36)+"\u2026"),(0,Fn.jsx)("option",{value:r.id,style:{textAlign:"left"},children:o},r.id)})]})]})})}var A0=B(ft(),1);function o0(e,t=new Date){if(!e)return"";let n=new Date(e),a=Math.floor((t.getTime()-n.getTime())/1e3);if(a<60)return"Just now";let l=Math.floor(a/60);if(l<60)return`${l} min${l>1?"s":""} ago`;let i=Math.floor(l/60);if(i<24)return`${i} hr${i>1?"s":""} ago`;let r=Math.floor(i/24);if(r<30)return`${r} day${r>1?"s":""} ago`;let o=Math.floor(r/30);if(o<12)return`${o} mo${o>1?"s":""} ago`;let u=Math.floor(r/365);return`${u} yr${u>1?"s":""} ago`}function Iw(e){return e.replace(/<\/p\s*>/gi," ").replace(/<p[^>]*>/gi," ").replace(/<br\s*\/?>/gi," ").replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function _r(e,t,n){let a="";return n==="short"?a=e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"":a=e.articleauthorlongbio&&e.articleauthorlongbio[t]&&e.articleauthorlongbio[t]!=="null"?e.articleauthorlongbio[t]:e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"",a?Iw(a):""}function u0(e,t){return e.articleauthorrole&&e.articleauthorrole[t]&&e.articleauthorrole[t]!=="null"?e.articleauthorrole[t]:""}function c0(e,t){return e.articleauthormedia&&e.articleauthormedia[t]?e.articleauthormedia[t]:""}function ri(e){if(typeof e!="string"||!e.trim())return"";try{let t=new URL(e);if(t.hostname.toLowerCase()!=="cdn.mos.cms.futurecdn.net")return e;let n=/\.(?:jpe?g|png|webp)$/i;return!n.test(t.pathname)||/-\d+-\d+\.(?:jpe?g|png|webp)$/i.test(t.pathname)?e:(t.pathname=t.pathname.replace(n,"-480-80$&"),t.toString())}catch{return e}}function Uu(e,t=0){if(!e||!e.articleauthorsocialnetworks)return[];let n=e.articleauthorsocialnetworks[t];if(n||(n=e.articleauthorsocialnetworks[0]),!n)return[];let a=null;if(typeof n=="string")try{a=JSON.parse(n)}catch{try{a=JSON.parse(n.replace(/\\"/g,'"'))}catch{}}else typeof n=="object"&&n!==null&&(a=n);if(!a||typeof a!="object")return[];let l=[];for(let[i,r]of Object.entries(a)){if(!r)continue;let o="",u="";if(typeof r=="string"?o=r:typeof r=="object"&&r!==null&&(o=r.url||r.address||r.link||"",u=r.address||""),!o&&!u)continue;let c=i.toLowerCase().trim(),s=o||u;c==="email"?s.startsWith("mailto:")||(s=s.includes("@")?`mailto:${s}`:`mailto:${s}`):!s.startsWith("http://")&&!s.startsWith("https://")&&!s.startsWith("//")&&(s=`https://${s}`);let f=c.charAt(0).toUpperCase()+c.slice(1);c==="linkedin"?f="LinkedIn":c==="youtube"?f="YouTube":c==="tiktok"?f="TikTok":c==="twitch"?f="Twitch":c==="steam"?f="Steam":c==="github"?f="GitHub":c==="rss"?f="RSS":(c==="x"||c==="twitter")&&(f="X (Twitter)"),l.push({key:c,href:s,label:f})}return l}function ee(e){if(!e)return"";let t=String(e);for(let n=0;n<3;n+=1){let a=t.replace(/&/gi,"&").replace(/£/g,"\xA3").replace(/£/gi,"\xA3").replace(/$/g,"$").replace(/&dollar;/gi,"$").replace(/€/g,"\u20AC").replace(/€/gi,"\u20AC").replace(/&#(\d+);/g,(l,i)=>String.fromCharCode(Number(i))).replace(/&#x([0-9a-f]+);/gi,(l,i)=>String.fromCharCode(parseInt(i,16)));if(a===t)break;t=a}return t}var Ee=B(O(),1);function cf({authorUrl:e,deal:t}){if(!t.authorName)return null;let n=ee(String(t.authorName)),a=t.authorRole&&!["null","nul","undefined"].includes(String(t.authorRole).toLowerCase())?` \u2022 ${ee(String(t.authorRole))}`:"";return(0,Ee.jsx)("div",{className:"tg-df-author-line-desktop",style:{padding:"0 0 12px 0"},children:(0,Ee.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[t.authorImage&&(0,Ee.jsx)("img",{src:ri(t.authorImage),alt:n,className:"tg-df-author-img",width:"36",height:"36",style:{borderRadius:"50%",objectFit:"cover",flexShrink:0,aspectRatio:"1 / 1",minWidth:"36px",minHeight:"36px"}}),(0,Ee.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,Ee.jsx)("div",{style:{fontSize:"10px",color:"var(--tg-df-text-muted)",textTransform:"uppercase",letterSpacing:"0.5px",marginBottom:"2px",fontWeight:600},children:t.isReviewProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Product tested by:"}):t.isBuyingGuideProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Expert review by:"}):t.isFeatured?(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:"Top product"})," ","recommended by:"]}):(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:t.merchant})," ","deal recommended by:"]})}),(0,Ee.jsxs)("div",{style:{fontSize:"11px",color:"var(--tg-df-text)",lineHeight:1.2},children:[(0,Ee.jsx)("strong",{children:(0,Ee.jsx)("a",{href:e,target:"_blank",rel:"noopener",style:{textDecoration:"none",color:"inherit",borderBottom:"1px dotted var(--tg-df-text-muted)"},children:n})}),a,t.modifiedDate?(0,Ee.jsxs)("span",{style:{color:"var(--tg-df-text-muted)"},children:[" ","\u2022 ",o0(t.modifiedDate)]}):""]})]})]})})}var K=B(O(),1);function s0({authorUrl:e,deal:t,hideHawkPrices:n,msrpFormatted:a,sourceArticleUrl:l}){let i=ee(String(t.merchant||"")),r=ee(String(t.currency||""));if(t.isBuyingGuideProduct||t.isReviewProduct){let o=!!t.hasCommerceOffer,u=o&&!t.isCheckPrice,c=!!t.hawkPricePending,s=!!t.isReviewProduct&&!c&&!o,f=n&&o&&Array.isArray(t.hawkListings)?t.hawkListings.filter(m=>m?.merchant&&m?.url).slice(0,4):[],d=f.length>0;return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[c?(0,K.jsx)("div",{className:"tg-df-card-price-group","aria-live":"polite",children:(0,K.jsx)("span",{className:"tg-df-card-price",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"Checking live price\u2026"})}):d?(0,K.jsxs)("div",{className:"tg-df-card-listings",children:[(0,K.jsx)("span",{className:"tg-df-card-listings-title",children:"Today's cheapest prices:"}),(0,K.jsx)("div",{className:"tg-df-card-listings-links",children:f.map((m,v)=>{let A=ee(String(m.merchant));return(0,K.jsx)("a",{"aria-label":`View product at ${A}`,className:"tg-df-card-listing-link hawk-affiliate-link-container","data-fcaw-affiliate-link":"","data-merchant":A,"data-merchant-id":m.merchantId||void 0,"data-model-id":m.modelId||void 0,"data-product-key":m.productKey||void 0,href:m.url,rel:"sponsored nofollow noopener",target:"_blank",children:A},`${m.merchant}-${m.url}-${v}`)})})]}):u?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsxs)("div",{className:"tg-df-card-price-group",children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})]}):s?(0,K.jsx)("div",{className:"tg-df-card-price-group",children:(0,K.jsx)("span",{className:"tg-df-card-price tg-df-card-price--unavailable",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"No retail listing found"})}):null,(0,K.jsx)(cf,{authorUrl:e,deal:t}),!d&&(0,K.jsx)("a",{href:o?t.url:l,"data-fcaw-affiliate-link":o?"":void 0,target:"_blank",rel:o?"sponsored nofollow noopener":"noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},children:o?u?"VIEW DEAL":"CHECK PRICE":"READ REVIEW"})]})}return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[!(t.authorName&&!t.isFeatured)&&(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsx)("div",{className:"tg-df-card-price-group",children:t.isCheckPrice?(0,K.jsx)("span",{className:"tg-df-card-price",style:{fontSize:"15px",fontWeight:500,fontStyle:"italic"},children:"See price at retailer"}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})}),(0,K.jsx)(cf,{authorUrl:e,deal:t}),(0,K.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":"",target:"_blank",rel:"sponsored nofollow noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},"data-model-id":t.modelId||void 0,"data-product-key":t.productKey||void 0,"data-merchant-id":t.merchantId||void 0,children:t.isCheckPrice?"CHECK PRICE":t.isFeatured?"SHOP NOW":"VIEW DEAL"})]})}var Ze=B(O(),1);function d0({couponStatus:e,deal:t,onOpenVouchers:n}){let a=!!t.hasCommerceOffer;return(0,Ze.jsxs)("div",{className:"tg-df-card-image-box",children:[t.buyingGuideBadge?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge tg-df-buying-guide-badge",children:t.buyingGuideBadge}):t.savingLabel&&!t.isCheckPrice?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge",children:ee(t.savingLabel)}):null,(0,Ze.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":a?"":void 0,className:a?"hawk-affiliate-link-deal-widget":void 0,target:"_blank",rel:a?"sponsored nofollow noopener":"noopener",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:(0,Ze.jsx)("img",{src:t.image||void 0,alt:ee(String(t.title||"")),className:"tg-df-card-image",loading:"lazy",onError:l=>{t.fallbackImage&&!l.currentTarget.dataset.fb?(l.currentTarget.dataset.fb="1",l.currentTarget.src=t.fallbackImage):l.currentTarget.style.opacity="0"}})}),(0,Ze.jsxs)("div",{className:"tg-df-card-badges",children:[t.isPrime&&(0,Ze.jsxs)("span",{className:"tg-df-tag tg-df-tag-prime",children:[(0,Ze.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,Ze.jsx)("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})})," ","Prime"]}),!t.merchant?.toLowerCase().includes("amazon")&&(e==="loading"||e==="has")&&(0,Ze.jsx)("div",{className:"tg-df-coupon-wrapper",style:{display:"inline-flex",alignItems:"center"},children:e==="loading"?(0,Ze.jsx)("div",{className:"tg-df-coupon-spinner"}):(0,Ze.jsxs)("button",{type:"button",className:"tg-df-tag tg-df-tag-coupons",onClick:l=>{l.preventDefault(),n(t.merchant)},children:[(0,Ze.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Ze.jsx)("path",{d:"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"}),(0,Ze.jsx)("line",{x1:"7",y1:"7",x2:"7.01",y2:"7"})]})," ","Coupons"]})})]})]})}var ct=B(O(),1);function f0({label:e="Tom's Guide:",starRating:t,color:n="#1f69ff"}){if(!t||t<=0)return null;let a=Math.floor(t),l=t-a>=.5?1:0,i=Math.max(0,5-a-l),r=[];for(let o=0;o<a;o++)r.push((0,ct.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:n,stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})},`f${o}`));l&&r.push((0,ct.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"url(#halfGrad)",stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ct.jsx)("defs",{children:(0,ct.jsxs)("linearGradient",{id:"halfGrad",x1:"0",x2:"1",y1:"0",y2:"0",children:[(0,ct.jsx)("stop",{offset:"50%",stopColor:n}),(0,ct.jsx)("stop",{offset:"50%",stopColor:"transparent"})]})}),(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})]},"h"));for(let o=0;o<i;o++)r.push((0,ct.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:n,opacity:"0.35",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})},`e${o}`));return(0,ct.jsxs)("div",{className:"tg-df-card-stars",style:{display:"flex",alignItems:"center",marginBottom:"8px",fontSize:"13px",fontWeight:600,color:"var(--tg-df-text-muted)"},children:[e&&(0,ct.jsx)("span",{style:{marginRight:"6px"},children:e}),(0,ct.jsx)("div",{style:{display:"flex",gap:"2px"},children:r})]})}var At=B(O(),1);function g0({heading:e,items:t}){return t.length===0?null:(0,At.jsxs)("div",{style:{marginBottom:"10px"},children:[(0,At.jsx)("strong",{style:{display:"block",fontSize:"12px",marginBottom:"3px"},children:e}),(0,At.jsx)("ul",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:0,paddingLeft:"18px"},children:t.map(n=>{let a=ee(String(n));return(0,At.jsx)("li",{children:a},n)})})]})}function m0({cons:e=[],expanded:t,fullReviewUrl:n,onToggle:a,pros:l=[],subtitle:i="",truncateSubtitle:r=!1}){let o=l.length>0||e.length>0,u=ee(i);return!u&&!o?null:(0,At.jsxs)("div",{style:{marginBottom:"12px"},children:[u&&(0,At.jsx)("p",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:"0 0 8px",display:!t&&r?"-webkit-box":"block",WebkitLineClamp:!t&&r?3:void 0,WebkitBoxOrient:!t&&r?"vertical":void 0,overflow:!t&&r?"hidden":void 0},children:u}),t&&o&&(0,At.jsxs)("div",{children:[(0,At.jsx)(g0,{heading:"Pros",items:l}),(0,At.jsx)(g0,{heading:"Cons",items:e})]}),(o||r)&&(0,At.jsxs)("div",{className:"tg-df-review-summary-actions",style:{alignItems:"flex-start",display:"flex",flexDirection:"column",gap:t&&n?"4px":0},children:[t&&n&&(0,At.jsx)("a",{href:n,target:"_blank",rel:"noopener",className:"tg-df-review-full-link",style:{alignItems:"center",color:"var(--tg-df-blue)",display:"flex",fontSize:"12px",fontWeight:700,minHeight:"40px",paddingRight:"12px",textDecoration:"underline"},children:"Read our full review"}),(0,At.jsx)("button",{type:"button",onClick:c=>{c.preventDefault(),c.stopPropagation(),a()},className:"tg-df-review-summary-toggle",style:{appearance:"none",background:"transparent",border:"none",color:"#000000",cursor:"pointer",fontFamily:"inherit",fontSize:"11px",fontWeight:700,minHeight:"40px",padding:"0 12px 0 0",textTransform:"uppercase"},children:t?"LESS":"READ MORE"})]})]})}var oi=B(ft(),1);var Br=B(O(),1);function h0({text:e,expanded:t,onToggle:n}){let[a,l]=(0,oi.useState)(!1),i=(0,oi.useRef)(null),r=ee(e);return(0,oi.useEffect)(()=>{i.current&&l(i.current.scrollHeight>i.current.clientHeight||i.current.scrollHeight>60)},[r]),r?(0,Br.jsxs)("div",{style:{marginBottom:"12px",position:"relative"},children:[(0,Br.jsx)("p",{ref:i,style:{fontSize:"13px",color:"var(--tg-df-text-muted)",marginBottom:"0",lineHeight:"1.4",display:t?"inline":"-webkit-box",WebkitLineClamp:t?"unset":3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:r}),a&&(0,Br.jsx)("button",{type:"button",onClick:o=>{o.preventDefault(),o.stopPropagation(),n()},style:{display:"block",appearance:"none",border:"none",color:"#000000",fontSize:"11px",fontWeight:700,textTransform:"uppercase",cursor:"pointer",fontFamily:"inherit",position:t?"static":"absolute",bottom:"2px",right:0,background:t?"transparent":"linear-gradient(to right, transparent, #fff 20%, #fff)",padding:t?"0":"0 0 0 16px"},children:t?"LESS":"READ MORE"})]}):null}var p0={pcgamer:"#DC191B",space:"#2E4A7F",tomsguide:"#1F69FF",techradar:"#E40784",golfmonthly:"#FFFFFF",androidcentral:"#1CCC3E",cinemablend:"#FFC033",creativebloq:"#DC361A",cyclingnews:"#371B51",cyclingweekly:"#AE1305",decanter:"#1B1B1B",digitalcameraworld:"#CAEBF2",fitandwell:"#BED100",fourfourtwo:"#AE1006",gamesradar:"#DC361A",guitarplayer:"#FFFFFF",guitarworld:"#DC1F26",homesandgardens:"#185A7D",idealhome:"#CAEBF2",imore:"#FFD600",livescience:"#023953",livingetc:"#FFFFFF",loudersound:"#DC0F17",marieclaireus:"#FFFFFF",marieclaireuk:"#FFFFFF",musicradar:"#006EA9",shortlist:"#2853E0",t3:"#DF0A14",theweek:"#DF0A14",theweekjuniorus:"#10A0B0",tomshardware:"#D8373B",wallpaper:"#FFFFFF",whathifi:"#E02928",whowhatwear:"#FFFFFF",windowscentral:"#CE0E5F",womanandhome:"#2F746E"},Nr={tomsguide:"https://proof.vanilla.tools/media/images/brandLogos/tomsguide.png",techradar:"https://proof.vanilla.tools/media/images/brandLogos/techradar.png",tomshardware:"https://proof.vanilla.tools/media/images/brandLogos/tomshardware.png",pcgamer:"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png",gamesradar:"https://proof.vanilla.tools/media/images/brandLogos/gamesradar.png",creativebloq:"https://proof.vanilla.tools/media/images/brandLogos/creativebloq.png",space:"https://proof.vanilla.tools/media/images/brandLogos/space.png",livescience:"https://proof.vanilla.tools/media/images/brandLogos/livescience.png",cinemablend:"https://proof.vanilla.tools/media/images/brandLogos/cinemablend.png",marieclaireus:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireus.png",marieclaireuk:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireuk.png",homesandgardens:"https://proof.vanilla.tools/media/images/brandLogos/homesandgardens.png",whowhatwear:"https://proof.vanilla.tools/media/images/brandLogos/whowhatwear.png",idealhome:"https://proof.vanilla.tools/media/images/brandLogos/idealhome.png",womanandhome:"https://proof.vanilla.tools/media/images/brandLogos/womanandhome.png",livingetc:"https://proof.vanilla.tools/media/images/brandLogos/livingetc.png",t3:"https://proof.vanilla.tools/media/images/brandLogos/t3.png",whathifi:"https://proof.vanilla.tools/media/images/brandLogos/whathifi.png",digitalcameraworld:"https://proof.vanilla.tools/media/images/brandLogos/digitalcameraworld.png",fitandwell:"https://proof.vanilla.tools/media/images/brandLogos/fitandwell.png",golfmonthly:"https://proof.vanilla.tools/media/images/brandLogos/golfmonthly.png",musicradar:"https://proof.vanilla.tools/media/images/brandLogos/musicradar.png",windowscentral:"https://proof.vanilla.tools/media/images/brandLogos/windowscentral.png",cyclingnews:"https://proof.vanilla.tools/media/images/brandLogos/cyclingnews.png",cyclingweekly:"https://proof.vanilla.tools/media/images/brandLogos/cyclingweekly.png",loudersound:"https://proof.vanilla.tools/media/images/brandLogos/loudersound.png",guitarworld:"https://proof.vanilla.tools/media/images/brandLogos/guitarworld.png",guitarplayer:"https://proof.vanilla.tools/media/images/brandLogos/guitarplayer.png",wallpaper:"https://proof.vanilla.tools/media/images/brandLogos/wallpaper.png",fourfourtwo:"https://proof.vanilla.tools/media/images/brandLogos/fourfourtwo.png",shortlist:"https://proof.vanilla.tools/media/images/brandLogos/shortlist.png",advnture:"https://proof.vanilla.tools/media/images/brandLogos/advnture.png",countrylife:"https://proof.vanilla.tools/media/images/brandLogos/countrylife.png",gardeningknowhow:"https://proof.vanilla.tools/media/images/brandLogos/gardeningknowhow.png",gnomesingardens:"https://proof.vanilla.tools/media/images/brandLogos/gnomesingardens.png",kiplinger:"https://proof.vanilla.tools/media/images/brandLogos/kiplinger.png",moneyweek:"https://proof.vanilla.tools/media/images/brandLogos/moneyweek.png",toptenreviews:"https://proof.vanilla.tools/media/images/brandLogos/toptenreviews.png"},Gu={tomsguide:"Tom's Guide",techradar:"TechRadar",tomshardware:"Tom's Hardware",pcgamer:"PC Gamer",gamesradar:"GamesRadar+",creativebloq:"Creative Bloq",space:"Space",livescience:"Live Science",cinemablend:"CinemaBlend",marieclaireus:"Marie Claire US",marieclaireuk:"Marie Claire UK",homesandgardens:"Homes & Gardens",whowhatwear:"Who What Wear",idealhome:"Ideal Home",womanandhome:"Woman & Home",livingetc:"Living Etc",t3:"T3",whathifi:"What Hi-Fi?",digitalcameraworld:"Digital Camera World",fitandwell:"Fit & Well",golfmonthly:"Golf Monthly",musicradar:"MusicRadar",androidcentral:"Android Central",imore:"iMore",windowscentral:"Windows Central",cyclingnews:"Cycling News",cyclingweekly:"Cycling Weekly",loudersound:"Louder Sound",guitarworld:"Guitar World",guitarplayer:"Guitar Player",theweek:"The Week",theweekjuniorus:"The Week Junior US",wallpaper:"Wallpaper",decanter:"Decanter",fourfourtwo:"FourFourTwo",shortlist:"ShortList",advnture:"Advnture",countrylife:"Country Life",gardeningknowhow:"Gardening Know How",gnomesingardens:"Gnomes in Gardens",kiplinger:"Kiplinger",moneyweek:"Money Week",toptenreviews:"Top 10 Reviews"},y0={pcgamer:[{key:"steam",href:"https://steamcommunity.com/groups/pcgamer",label:"PC Gamer on Steam"},{key:"x",href:"https://twitter.com/pcgamer",label:"PC Gamer on X"},{key:"facebook",href:"https://www.facebook.com/pcgamermagazine",label:"PC Gamer on Facebook"},{key:"instagram",href:"https://www.instagram.com/pcgamer_mag/?hl=en",label:"PC Gamer on Instagram"},{key:"youtube",href:"https://www.youtube.com/user/pcgamer",label:"PC Gamer on YouTube"},{key:"twitch",href:"https://www.twitch.tv/pcgamer",label:"PC Gamer on Twitch"},{key:"tiktok",href:"https://www.tiktok.com/@pcgamer_mag?lang=en",label:"PC Gamer on TikTok"}],homesandgardens:[{key:"instagram",href:"https://www.instagram.com/homesandgardensofficial",label:"Homes & Gardens on Instagram"},{key:"facebook",href:"https://www.facebook.com/homesandgardens/",label:"Homes & Gardens on Facebook"},{key:"x",href:"https://x.com/homesandgardens",label:"Homes & Gardens on X"},{key:"tiktok",href:"https://www.tiktok.com/@homesandgardensofficial",label:"Homes & Gardens on TikTok"},{key:"pinterest",href:"https://pinterest.com/homesgardensofficial/",label:"Homes & Gardens on Pinterest"}],whowhatwear:[{key:"x",href:"https://twitter.com/WhoWhatWear",label:"Who What Wear on X"},{key:"instagram",href:"https://www.instagram.com/whowhatwear/",label:"Who What Wear on Instagram"},{key:"facebook",href:"https://www.facebook.com/WhoWhatWear/",label:"Who What Wear on Facebook"},{key:"pinterest",href:"https://www.pinterest.co.uk/whowhatwearuk/",label:"Who What Wear on Pinterest"},{key:"tiktok",href:"https://www.tiktok.com/@whowhatwear.uk",label:"Who What Wear on TikTok"}]};var Ot=B(O(),1);function v0(e){return String(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ").trim().toLowerCase()}function Jw(e){let t=ee(String(e.brand||"")).trim(),n=ee(String(e.productName||e.title||"")).trim(),a=v0(t),l=v0(n);return a.length>0&&l.startsWith(a)&&!/^[a-z0-9]/.test(l.slice(a.length))||!t?n:`${t} ${n}`.trim()}function b0({couponStatus:e,deal:t,editorMode:n,hideHawkPrices:a,isDescriptionExpanded:l,isSelected:i,onDescriptionToggle:r,onOpenVouchers:o,onSelectionChange:u,website:c}){let s=ee(String(t.currency||"")),f=t.rawMsrp?s+t.rawMsrp:null,d=Jw(t),m=ee(String(t.title||"")),v=Gu[c||"tomsguide"]||c||"Tom's Guide",A=(c||"tomsguide").includes(".")?(c||"").startsWith("http")?c:`https://${c}`:`https://www.${c||"tomsguide"}.com`,b=(t.documentUrl||"").replace(/^\/+/,""),h=b.startsWith("http://")||b.startsWith("https://")?b:`${A}/${b}`,g=String(t.sourceArticleUrl||t.documentUrl||t.url||"").replace(/^\/+/,""),p=g.startsWith("http://")||g.startsWith("https://")?g:`${A}/${g}`,y=!!t.hasCommerceOffer;return(0,Ot.jsxs)("div",{className:"tg-df-card","data-brand":t.modelBrand||t.brand||void 0,"data-currency":t.isoCurrencyCode||s||void 0,"data-deal-id":t.externalProductId||t.id||void 0,"data-merchant":t.merchant||void 0,"data-merchant-id":t.merchantId||void 0,"data-model-id":t.modelId||void 0,"data-previous-price":t.rawMsrp||void 0,"data-price":t.rawPrice||void 0,"data-product-key":t.productKey||void 0,"data-product-name":t.productName||t.title||void 0,"data-review-product":t.isReviewProduct?"true":void 0,"data-source-article-url":t.isReviewProduct?p:void 0,children:[n&&(0,Ot.jsx)("input",{type:"checkbox",className:"tg-df-deal-checkbox",checked:i,onChange:C=>u(C.target.checked)}),(0,Ot.jsx)(d0,{couponStatus:e,deal:t,onOpenVouchers:o}),(0,Ot.jsxs)("div",{className:"tg-df-card-body",children:[(0,Ot.jsx)("h3",{className:"tg-df-card-title",title:m,children:(0,Ot.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":y?"":void 0,className:y?"hawk-affiliate-link-container":void 0,target:"_blank",rel:y?"sponsored nofollow noopener":"noopener",style:{textDecoration:"none",color:"inherit"},children:(0,Ot.jsx)("strong",{children:d})})}),(0,Ot.jsx)(f0,{label:t.isBuyingGuideProduct?"":`${v} rating:`,starRating:t.starRating,color:t.isReviewProduct?"var(--tg-df-blue)":void 0}),t.isBuyingGuideProduct||t.isReviewProduct?(0,Ot.jsx)(m0,{cons:t.cons,expanded:l,fullReviewUrl:t.isReviewProduct&&g?p:void 0,onToggle:r,pros:t.pros,subtitle:t.isReviewProduct?t.description:t.subtitle,truncateSubtitle:t.isReviewProduct}):t.description?(0,Ot.jsx)(h0,{text:t.description,expanded:l,onToggle:r}):null,(0,Ot.jsx)(s0,{authorUrl:h,deal:t,hideHawkPrices:a,msrpFormatted:f,sourceArticleUrl:p})]})]})}var ce=B(O(),1);function $w({activeDealTag:e,activeFreeformTags:t=[],query:n,selectedBrands:a=[]}){let l=o=>{let u=String(o||"").trim();return u&&u.toLowerCase()!=="everything"?u:""},r=(t.length>0?t:e?[e]:a.length>0?a:[n]).map(l).filter(Boolean).map(o=>o.replace(/\s+deals?$/i,"").trim()).filter((o,u,c)=>c.findIndex(s=>s.toLowerCase()===o.toLowerCase())===u);return r.length<=1?r[0]||"":`${r.slice(0,-1).join(", ")} or ${r.at(-1)}`}function e2(){return(0,ce.jsx)(ce.Fragment,{children:Array.from({length:6}).map((e,t)=>(0,ce.jsxs)("div",{className:"tg-df-card",children:[(0,ce.jsx)("div",{className:"tg-df-card-image-box tg-df-skeleton"}),(0,ce.jsxs)("div",{className:"tg-df-card-body",children:[(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short",style:{marginBottom:"24px"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title",style:{width:"80%"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short"}),(0,ce.jsx)("div",{className:"tg-df-card-cta tg-df-skeleton",style:{width:"100%",height:"40px",marginTop:"auto",border:"none"}})]})]},t))})}function t2(e,t){return{"@context":"https://schema.org","@type":"ItemList",itemListElement:e.slice(0,t).map((n,a)=>{let l="USD";return n.currency==="\xA3"?l="GBP":n.currency==="\u20AC"?l="EUR":n.currency==="A$"?l="AUD":n.currency==="CA$"&&(l="CAD"),{"@type":"ListItem",position:a+1,item:{"@type":"Product",name:n.title,image:n.image||"",description:n.description||"",brand:{"@type":"Brand",name:n.brand||""},offers:{"@type":"Offer",priceCurrency:l,price:n.rawPrice||0,url:n.url||"",seller:{"@type":"Organization",name:n.merchant||""}}}}}).filter(n=>n.item.name)}}function w0({activeDealTag:e,activeFreeformTags:t,couponMap:n,deals:a,displayCount:l,editorMode:i,error:r,expandedDealIds:o,hasMore:u,hideHawkPrices:c,loading:s,loadingMore:f,loadMoreStartCount:d,onDescriptionToggle:m,onLoadMore:v,onOpenVouchers:A,query:b,recentDealsOnly:h,selectedBrands:g,selectedDeals:p,setSelectedDeals:y,website:C}){let R=$w({activeDealTag:e,activeFreeformTags:t,query:b,selectedBrands:g}),T=f&&d!=null?d:l,M=!f&&d!=null&&d<T?d:null,w=D=>D.map(k=>(0,ce.jsx)(A0.default.Fragment,{children:(0,ce.jsx)(b0,{couponStatus:n[k.merchant],deal:k,editorMode:i,hideHawkPrices:c,isDescriptionExpanded:o.has(k.id),isSelected:p.has(k.id),onDescriptionToggle:()=>m(k.id),onOpenVouchers:A,onSelectionChange:se=>{let I=new Map(p);se?I.set(k.id,k):I.delete(k.id),y(I)},website:C})},k.id));return(0,ce.jsx)("div",{className:"tg-df-grid-wrapper",children:(0,ce.jsx)("div",{className:"tg-df-grid article-body tg-df-grid-auto",id:"tg-df-grid",children:s?(0,ce.jsx)(e2,{}):r?(0,ce.jsx)("div",{className:"tg-df-message",children:"Failed to load deals. Please try again."}):a.length===0?(0,ce.jsx)("div",{className:"tg-df-message",children:h?`No ${R?`${R} `:""}deals found from the last 30 days.`:!b||b.length<=2||b.toLowerCase()==="everything"?"No deals found for this author.":`No savings squad match your search for "${b}".`}):(0,ce.jsxs)(ce.Fragment,{children:[w(a.slice(0,M??T)),M!=null&&(0,ce.jsx)("div",{"aria-live":"polite",className:"tg-df-load-more-boundary",style:{alignItems:"center",color:"var(--tg-df-text-muted)",display:"flex",fontSize:"13px",fontWeight:600,gridColumn:"1 / -1",justifyContent:"center",marginTop:"16px",minHeight:"40px",overflowAnchor:"none"},children:"More products"}),M!=null&&w(a.slice(M,T)),u&&(0,ce.jsx)("div",{className:"tg-df-load-more-control",style:{width:"100%",display:"flex",justifyContent:"center",marginTop:"16px",gridColumn:"1 / -1",overflowAnchor:"none"},children:(0,ce.jsx)("button",{type:"button",className:"tg-df-tag-outline",style:{padding:"8px 24px",borderRadius:"100px",fontWeight:600,fontSize:"14px",cursor:"pointer"},"aria-busy":f,disabled:f,onClick:D=>{D.preventDefault(),D.stopPropagation(),v()},children:f?"Loading more products\u2026":"Load More"})}),a.length>0&&(0,ce.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(t2(a,T))}})]})})})}var S0=B(O(),1);var pn=B(ft(),1),nn=B(O(),1);function Pu({onScrollLeft:e,onScrollRight:t,showLeft:n,showRight:a}){return(0,nn.jsxs)(nn.Fragment,{children:[(0,nn.jsx)("button",{"aria-label":"Scroll left",className:"tg-df-scroll-btn left tg-df-desktop-only",onClick:e,style:{display:n?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,nn.jsx)("button",{"aria-label":"Scroll right",className:"tg-df-scroll-btn right tg-df-desktop-only",onClick:t,style:{display:a?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})}function qu(e){let t=(0,pn.useRef)(null),[n,a]=(0,pn.useState)(!1),[l,i]=(0,pn.useState)(!1),r=(0,pn.useCallback)(()=>{let u=t.current;u&&(a(u.scrollLeft>1),i(Math.ceil(u.scrollLeft+u.clientWidth)<u.scrollWidth-1))},[]);(0,pn.useLayoutEffect)(()=>{let u=t.current;if(!u)return;r();let c=requestAnimationFrame(r),s=typeof ResizeObserver>"u"?null:new ResizeObserver(r);return s?.observe(u),()=>{cancelAnimationFrame(c),s?.disconnect()}},[e,r]);let o=(0,pn.useCallback)(u=>{t.current?.scrollBy({left:u,behavior:"smooth"})},[]);return{onScroll:r,railRef:t,scrollLeft:()=>o(-240),scrollRight:()=>o(240),showLeft:n,showRight:l}}var jn=B(O(),1);function ui({containerClassName:e,itemClassName:t,items:n,loading:a,loadingKey:l,onItemClick:i,rowClassName:r,showCounters:o}){let u=qu(n.length);return n.length===0&&!a?null:(0,jn.jsxs)("div",{className:e,style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[n.length>0&&(0,jn.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,jn.jsx)("div",{className:r,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none"},onScroll:u.onScroll,children:n.length>0?n.map(c=>(0,jn.jsxs)("button",{className:t,onClick:()=>i(c.key),style:{border:"none",borderRight:"1px solid var(--tg-df-border)",padding:"12px 20px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"1px",cursor:"pointer",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:"6px",...t==="tg-df-brand-row-item"?{transition:"all 0.2s ease"}:{},background:c.selected?"var(--tg-df-bg-secondary)":"var(--tg-df-bg)",color:c.selected?"var(--tg-df-text-primary)":"var(--tg-df-text-muted)",fontWeight:c.selected?600:500},children:[c.label," ",l===c.key&&(0,jn.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading",style:{borderWidth:"2px",height:"12px",width:"12px"}}),o!==!1&&(0,jn.jsx)("span",{style:{color:"var(--tg-df-blue)",fontSize:"10px",...t==="tg-df-brand-row-item"?{fontWeight:400}:{}},children:c.count})]},c.key)):[1,2,3,4,5].map(c=>(0,jn.jsx)("div",{className:"tg-df-skeleton",style:{height:"36px",width:"80px",borderRadius:"18px",flexShrink:0,margin:"8px 12px"}},`${r}-skeleton-${c}`))})]})}var R0=B(O(),1);function C0({airedaleBrands:e,brands:t,loading:n,refreshing:a,onBrandToggle:l,selectedBrands:i,showAuthorCounters:r}){let o=e.length>0?e:t||[],u=o.slice(0,15).map(c=>({count:c.count||0,key:c.formatted_value,label:c.formatted_value,selected:i?.includes(c.formatted_value)||!1}));return(0,R0.jsx)(ui,{containerClassName:"tg-df-brands-row-container",itemClassName:"tg-df-brand-row-item",items:u,loading:n&&o.length===0,loadingKey:a?i?.[0]:null,onItemClick:c=>l?.(c),rowClassName:"tg-df-brands-row",showCounters:r})}var E0=B(O(),1);function T0({activeDealTag:e,airedaleTagCounts:t,airedaleTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>{let c=u.split(":::"),s=c[0];return{count:t[u]||0,key:s,label:c[1]||u,selected:e===s}});return(0,E0.jsx)(ui,{containerClassName:"tg-df-categories-row-container",itemClassName:"tg-df-category-row-item",items:o,loading:a&&n.length===0,loadingKey:l?e:null,onItemClick:i,rowClassName:"tg-df-categories-row",showCounters:r})}var x0=B(O(),1);function D0({activeFreeformTags:e,freeformTagCounts:t,freeformTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>({count:t[u.handle]||0,key:u.handle,label:u.label,selected:e.includes(u.handle)}));return(0,x0.jsx)(ui,{containerClassName:"tg-df-freeform-tags-row-container",itemClassName:"tg-df-freeform-tag-row-item",items:o,loading:a&&n.length===0,loadingKey:l&&e.at(-1)||null,onItemClick:i,rowClassName:"tg-df-freeform-tags-row",showCounters:r})}var _e=B(O(),1),n2=4;function M0({authors:e,clickedAuthorOverride:t,loading:n,refreshing:a,onAuthorClick:l,overriddenAuthorHandle:i,overriddenAuthorName:r,website:o}){let u=qu(e.length);return e.length===0&&!n?null:(0,_e.jsxs)("div",{className:"tg-df-authors-row-container",style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[e.length>0&&(0,_e.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,_e.jsx)("div",{className:"tg-df-authors-row tg-df-mobile-authors",onScroll:u.onScroll,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none",gap:"24px",padding:"4px 16px 2px 16px",alignItems:"flex-start"},children:e.length>0?e.map((c,s)=>{let f=Nr[c.brandKey]||Nr[o||"tomsguide"],d=t&&(i===c.handle||r===c.fullName);return(0,_e.jsxs)("div",{className:"tg-df-author-row-item",onClick:()=>l(c),style:{cursor:"pointer",display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px",opacity:t?d?1:.4:1},children:[(0,_e.jsxs)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px",borderRadius:"50%",boxShadow:d?"0 0 0 3px var(--tg-df-blue, #1F69FF)":"none"},children:[(0,_e.jsx)("img",{src:ri(c.image),alt:c.fullName,decoding:"async",loading:s<n2?"eager":"lazy",style:{width:"100%",height:"100%",borderRadius:"50%",objectFit:"cover",filter:t&&!d?"grayscale(100%)":"none"}}),d&&(0,_e.jsx)("span",{"aria-label":`Clear ${c.fullName} selection`,className:"tg-df-author-clear-badge",title:"Click again to clear selection",style:{alignItems:"center",backgroundColor:"#dc2626",border:"2px solid var(--tg-df-bg, #fff)",borderRadius:"50%",boxShadow:"0 1px 3px rgb(0 0 0 / 25%)",color:"#fff",display:"flex",fontSize:"15px",fontWeight:700,height:"20px",justifyContent:"center",lineHeight:1,position:"absolute",right:"-5px",top:"-5px",width:"20px",zIndex:1},children:(0,_e.jsx)("span",{"aria-hidden":"true",style:{display:"block",transform:"translateY(-1px)"},children:"\xD7"})}),f&&(0,_e.jsx)("img",{src:f,alt:"",className:"tg-df-author-brand-logo",decoding:"async",loading:"lazy",style:{position:"absolute",bottom:"-4px",right:"-4px",width:"24px",height:"24px",borderRadius:"50%",border:"2px solid var(--tg-df-bg, #fff)",backgroundColor:"#000",objectFit:"contain",filter:t&&!d?"grayscale(100%)":"none"}})]}),(0,_e.jsxs)("div",{style:{textAlign:"center"},children:[(0,_e.jsxs)("div",{className:"tg-df-author-row-name",style:{fontSize:"13px",fontWeight:700,color:"var(--tg-df-text)",lineHeight:"1.2"},children:[c.name,a&&d&&(0,_e.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading author products",style:{borderWidth:"2px",display:"inline-block",height:"11px",marginLeft:"4px",width:"11px"}})]}),c.role&&(0,_e.jsx)("div",{className:"tg-df-author-row-role",style:{fontSize:"11px",color:"var(--tg-df-text-muted)",lineHeight:"1.2",marginTop:"2px",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",wordBreak:"break-word"},children:c.role})]})]},c.handle)}):[1,2,3,4].map(c=>(0,_e.jsxs)("div",{className:"tg-df-author-row-item",style:{display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px"},children:[(0,_e.jsx)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px"},children:(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{width:"100%",height:"100%",borderRadius:"50%"}})}),(0,_e.jsxs)("div",{style:{textAlign:"center",width:"100%"},children:[(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"12px",width:"80%",margin:"0 auto 4px auto",borderRadius:"2px"}}),(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"10px",width:"60%",margin:"0 auto",borderRadius:"2px"}})]})]},`author-skeleton-${c}`))})]})}var Ja=B(O(),1);function _0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,freeformTagCounts:i,freeformTags:r,allAuthorsList:o,brands:u,clickedAuthorOverride:c,loading:s,refreshing:f,onAuthorClick:d,onBrandToggle:m,onTagClick:v,onFreeformTagClick:A,overriddenAuthorHandle:b,overriddenAuthorName:h,selectedBrands:g,showAuthorRail:p,showAuthorCounters:y,showBrandRail:C,showCategoryRail:R,showFreeformTagRail:T,website:M}){let w=R!==!1&&l.length>0||T!==!1&&r.length>0||C!==!1&&(n.length>0||!!u?.length)||p&&o.length>0;return!(p||R!==!1||T!==!1||C!==!1)||!w&&!s?null:(0,Ja.jsxs)("div",{id:"tg-df-spreadsheet-filters",style:{display:"block",marginBottom:"16px"},children:[p&&(0,Ja.jsx)(M0,{authors:o,clickedAuthorOverride:c,loading:s&&o.length===0,refreshing:f,onAuthorClick:d,overriddenAuthorHandle:b,overriddenAuthorName:h,website:M}),R!==!1&&(0,Ja.jsx)(T0,{activeDealTag:e,airedaleTagCounts:a,airedaleTags:l,loading:s,refreshing:f,onTagClick:v,showAuthorCounters:y}),T!==!1&&(0,Ja.jsx)(D0,{activeFreeformTags:t,freeformTagCounts:i,freeformTags:r,loading:s,refreshing:f,onTagClick:A,showAuthorCounters:y}),C!==!1&&(0,Ja.jsx)(C0,{airedaleBrands:n,brands:u,loading:s,refreshing:f,onBrandToggle:m,selectedBrands:g,showAuthorCounters:y})]})}var O0=B(ft(),1);var B0=[{value:"date_desc",label:"Most recent"},{value:"rating_desc",label:"Highest rating"},{value:"scored_first",label:"Scored products first"}];function Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}){return!!(a&&e!==!0&&t===!1&&n===!1)}function Fu({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a,lightweightReviewDelivery:l,showPriceDiscountFilters:i,showReviewSort:r}){return!!(l&&i===!1&&r===!1&&Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}))}function ju(e=!0){return e?B0:B0.filter(t=>t.value!=="scored_first")}function wa(e,t=!0){return!t&&e==="scored_first"?"date_desc":e||"date_desc"}var H=B(O(),1),N0=[{value:"all",label:"All Prices",shortLabel:""},{value:"under50",label:"Under $50",shortLabel:"< $50"},{value:"50_100",label:"$50 - $100",shortLabel:"$50-$100"},{value:"100_200",label:"$100 - $200",shortLabel:"$100-$200"},{value:"200_500",label:"$200 - $500",shortLabel:"$200-$500"},{value:"over500",label:"Over $500",shortLabel:"> $500"}],a2=[{value:"0",label:"Any discount"},...[5,10,15,20,25,30,40,50,60,70].map(e=>({value:String(e),label:`Min ${e}% off`}))];function l2({open:e}){return(0,H.jsx)("svg",{"aria-hidden":"true",className:e?"is-open":void 0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("path",{d:"m6 9 6 6 6-6"})})}function Yn(){return(0,H.jsx)("svg",{"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("polyline",{points:"20 6 9 17 4 12"})})}function k0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,brands:i,discountAmount:r,enabled:o,freeformTagCounts:u,freeformTags:c,includeScoredFirst:s,onBrandSelect:f,onBrandToggle:d,onDiscountAmountChange:m,onFreeformTagClear:v,onFreeformTagToggle:A,onPriceRangeChange:b,onReviewSortChange:h,onTagClear:g,onTagClick:p,priceRange:y,reviewSort:C,selectedBrands:R,showCounters:T,showBrandRail:M,showCategoryRail:w,showFreeformTagRail:D,showPriceDiscountFilters:k,showReviewSort:se}){let[I,j]=(0,O0.useState)(null);if(!o)return null;let He=l.map(x=>{let P=x.split(":::");return{count:a[x]||0,handle:P[0],label:P[1]||x}}),ze=n.length>0?n:i||[],St=He.find(x=>x.handle===e),Ie=y||"all",rn=!r||r==="all"?"0":r,Be=N0.find(x=>x.value===Ie),Je=k!==!1,nt=wa(C,s),X=ju(s),de=nt==="rating_desc"?"Highest rating":nt==="scored_first"?"Scored first":"Most recent",$e=x=>{j(P=>P===x?null:x)},Z=[];return w!==!1&&Z.push({active:!!e,label:`CATEGORIES${St?` (${St.label})`:""}`,menu:"categories"}),D!==!1&&Z.push({active:t.length>0,label:`KEYWORDS${t.length>0?` (${t.length})`:""}`,menu:"keywords"}),M!==!1&&Z.push({active:R.length>0,label:`BRANDS${R.length>0?` (${R.length})`:""}`,menu:"brands"}),Je&&Z.push({active:Ie!=="all",label:`PRICES${Be?.shortLabel?` (${Be.shortLabel})`:""}`,menu:"prices"}),(Je||se)&&Z.push({active:se?nt!=="date_desc":rn!=="0",label:se?`SORT REVIEWS (${de})`:`DISCOUNTS${rn!=="0"?` (${rn}%+)`:""}`,menu:se?"review-sort":"discounts"}),(0,H.jsxs)("div",{className:"tg-df-mobile-2x2-container",children:[(0,H.jsx)("div",{className:`tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--${Z.length%2===0?"even":"odd"}`,children:Z.map(x=>(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-grid-cell${x.active?" has-active-filter":""}${I===x.menu?" active":""}`,"aria-expanded":I===x.menu,onClick:()=>$e(x.menu),children:[(0,H.jsx)("span",{children:x.label}),(0,H.jsx)(l2,{open:I===x.menu})]},x.menu))}),w!==!1&&I==="categories"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${e?"":" selected"}`,onClick:()=>{g(),j(null)},children:[(0,H.jsx)("span",{children:"All Categories"}),!e&&(0,H.jsx)(Yn,{})]}),He.map(x=>{let P=e===x.handle;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{p(x.handle),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},x.handle)})]}),M!==!1&&I==="brands"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${R.length===0?" selected":""}`,onClick:()=>f?.([]),children:[(0,H.jsx)("span",{children:"All Brands"}),R.length===0&&(0,H.jsx)(Yn,{})]}),ze.map(x=>{let P=x.formatted_value,Q=R.includes(P);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${Q?" selected":""}`,onClick:()=>d?.(P),children:[(0,H.jsx)("span",{children:P}),Q?(0,H.jsx)(Yn,{}):T!==!1&&x.count?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},P)})]}),D!==!1&&I==="keywords"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${t.length===0?" selected":""}`,onClick:()=>{v(),j(null)},children:[(0,H.jsx)("span",{children:"All Keywords"}),t.length===0&&(0,H.jsx)(Yn,{})]}),c.map(x=>{let P=t.includes(x.handle);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>A(x.handle),children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1&&u[x.handle]?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:u[x.handle]}):null]},x.handle)})]}),I==="prices"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:N0.map(x=>{let P=Ie===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{b?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="discounts"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:a2.map(x=>{let P=rn===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{m?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="review-sort"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:X.map(x=>{let P=nt===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{h?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})})]})}var $a=B(ft(),1);var W=B(O(),1);function L0({airedaleBrands:e,airedaleTags:t,discountAmount:n,hidden:a,includeScoredFirst:l,onDiscountAmountChange:i,onPriceRangeChange:r,onReviewSortChange:o,priceRange:u,reviewSort:c,showReviewSort:s,showPriceDiscountFilters:f}){let d=(0,$a.useRef)(null),[m,v]=(0,$a.useState)(!1),[A,b]=(0,$a.useState)(!1),h=ju(l),g=wa(c,l),p=()=>{if(!d.current)return;let{scrollLeft:y,scrollWidth:C,clientWidth:R}=d.current;v(y>0),b(Math.ceil(y+R)<C-5)};return(0,$a.useEffect)(()=>(p(),window.addEventListener("resize",p),setTimeout(p,100),setTimeout(()=>{document.querySelector(".tg-df-categories-row")?.dispatchEvent(new Event("scroll")),document.querySelector(".tg-df-brands-row")?.dispatchEvent(new Event("scroll"))},150),()=>window.removeEventListener("resize",p)),[t,e]),(0,W.jsx)("div",{className:"tg-df-controls",id:"tg-df-controls",style:{display:a?"none":"flex",marginTop:"12px",marginBottom:"16px",justifyContent:"center"},children:(0,W.jsxs)("div",{className:"tg-df-filters-container",style:{position:"relative",width:"100%",maxWidth:"800px",margin:"0 auto"},children:[(0,W.jsx)("button",{className:"tg-df-scroll-btn left",style:{display:m?"flex":"none"},onClick:()=>d.current?.scrollBy({left:-200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,W.jsx)("button",{className:"tg-df-scroll-btn right",style:{display:A?"flex":"none"},onClick:()=>d.current?.scrollBy({left:200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M9 18l6-6-6-6"})})}),(0,W.jsxs)("div",{className:"tg-df-filters",ref:d,onScroll:p,children:[(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-legacy-price-wrapper",style:{display:f!==!1?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-price-filter","aria-label":"Filter Prices",value:u||"all",onChange:y=>r?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"All Prices"}),(0,W.jsx)("option",{value:"under50",children:"Under $50"}),(0,W.jsx)("option",{value:"50_100",children:"$50 - $100"}),(0,W.jsx)("option",{value:"100_200",children:"$100 - $200"}),(0,W.jsx)("option",{value:"200_500",children:"$200 - $500"}),(0,W.jsx)("option",{value:"over500",children:"Over $500"})]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-discount-filter-wrapper",style:{display:f!==!1&&!s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-discount-filter","aria-label":"Discount Amount",value:n||"all",onChange:y=>i?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"Any discount"}),[5,10,15,20,25,30,40,50,60,70].map(y=>(0,W.jsxs)("option",{value:y,children:["Min ",y,"%"]},y))]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-review-sort-wrapper",style:{display:s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M4 7h16M7 12h10m-7 5h4"})}),(0,W.jsx)("select",{className:"tg-df-filter-select",id:"tg-df-review-sort","aria-label":"Sort Reviews",value:g,onChange:y=>o?.(y.target.value),children:h.map(y=>(0,W.jsx)("option",{value:y.value,children:y.label},y.value))})]})]})]})})}var be=B(ft(),1);function kr(e,t){return e.filter(n=>{let a=n.handle.toLowerCase(),l=n.fullName.toLowerCase(),i=n.name.toLowerCase();return t.some(r=>{let o=r.articleauthorhandle||[],u=r.articleauthor||[],c=r.articleauthortext||[];return[...o,...u,...c].some(s=>{let f=String(s||"").toLowerCase();return f===a||f===l||f===i})})})}function Yu(e,t){return e.map((n,a)=>({index:a,profile:n,productCount:t[n.handle]||0})).sort((n,a)=>a.productCount-n.productCount||n.index-a.index).map(({profile:n})=>n)}function Vu(e,t){return e==="all-authors"||t==="all-authors"||t==="All authors"||!e&&!t}function Xu(e,t,n){let a=e;if((t||n)&&t!=="all-authors"&&n!=="all-authors"&&n!=="All authors"){if(t){let l=t.toLowerCase(),i=e.filter(r=>r.articleauthorhandle&&r.articleauthorhandle.some(o=>o.toLowerCase()===l));if(i.length>0)a=i;else if(n){let r=n.toLowerCase(),o=e.filter(u=>u.articleauthor&&u.articleauthor.some(c=>c.toLowerCase()===r));o.length>0&&(a=o)}}else if(n){let l=n.toLowerCase();a=e.filter(i=>i.articleauthor&&i.articleauthor.some(r=>r.toLowerCase()===l))}}return a}function sf(e,t,n){let a=0;if(t&&e.articleauthorhandle){let l=e.articleauthorhandle.findIndex(i=>i.toLowerCase()===t.toLowerCase());l>=0&&(a=l)}else if(n&&e.articleauthor){let l=e.articleauthor.findIndex(i=>i.toLowerCase()===n.toLowerCase());l>=0&&(a=l)}return a}function Qu(e,t,n){let a=sf(e,t,n),l=i=>typeof i=="string"?ee(i):i||"";return{authorName:e.articleauthortext?l(e.articleauthortext[a]):e.articleauthor?l(e.articleauthor[a]):"",authorRole:e.articleauthorrole?l(e.articleauthorrole[a]):"",authorImage:e.articleauthormedia?e.articleauthormedia[a]:""}}function Lr(e,t){let n=new Map;return e.forEach(a=>{if(!a.articleauthor)return;let l=t;if(a.documenturl)try{let f=new URL(a.documenturl).hostname.replace("www.","").split(".");f.length>0&&(l=f[0].toLowerCase())}catch{}let i=a.articleauthorhandle||[],r=a.articleauthor||[],o=a.articleauthortext||[],u=a.articleauthorrole||[],c=a.articleauthormedia||[];r.forEach((s,f)=>{if(!s||s==="null"||s.toLowerCase()==="all authors")return;let d=i[f]&&i[f]!=="null"?i[f]:s.toLowerCase().replace(/\s+/g,"-");if(!d||d==="null")return;let m=o[f]&&o[f]!=="null"?o[f]:s,v=u[f]&&u[f]!=="null"?u[f]:"",A=ee(String(m)),b=ee(String(v)),h=c[f]&&c[f]!=="null"?c[f]:"",g=A.split(" ")[0],p=_r(a,f,"short"),y=_r(a,f,"long"),C=Uu(a,f),R=n.get(d);!R&&A&&h?n.set(d,{...y?{bioLong:y}:{},...p?{bioShort:p}:{},name:g,fullName:A,handle:d,role:b,image:h,brandKey:l,...C.length>0?{socialNetworks:C}:{}}):R&&(!R.bioShort&&p&&(R.bioShort=p),!R.bioLong&&y&&(R.bioLong=y),!R.socialNetworks?.length&&C.length>0&&(R.socialNetworks=C))})}),Array.from(n.values())}var E=B(O(),1);function z0(e){let t=(0,be.useRef)(""),n=(0,be.useRef)(null),a=(0,be.useCallback)(()=>{n.current!==null&&(window.clearTimeout(n.current),n.current=null)},[]),l=(0,be.useCallback)(r=>{a(),t.current=r},[a]),i=(0,be.useCallback)((r,o,u=!1)=>{if(!e)return;if(r===t.current){a();return}let c=()=>{n.current=null,t.current=r,e(o)};a(),u?c():n.current=window.setTimeout(c,350)},[a,e]);return(0,be.useEffect)(()=>a,[a]),{save:i,synchronise:l}}function H0({contentKey:e,defaultText:t,kind:n,onChange:a,value:l}){let i=(0,be.useRef)(null),r=(0,be.useRef)(e),[o,u]=(0,be.useState)(!1),c=l??t,s=!!a,{save:f,synchronise:d}=z0(a);(0,be.useLayoutEffect)(()=>{let g=r.current!==e;i.current&&(g||document.activeElement!==i.current)&&(i.current.innerHTML!==c&&(i.current.innerHTML=c),d(c)),r.current=e},[e,d,c]);let m=(g=!1)=>{if(!i.current)return;let p=i.current.innerHTML;f(p,p===t?void 0:p,g)},v=(g,p)=>{document.execCommand(g,!1,p),m(!0)},A=n==="kicker"?{fontSize:"0.875rem",color:"#6B7280",fontStyle:"normal",margin:"0 0 0.25rem 0"}:{fontSize:"2.25rem",fontWeight:300,color:"#111827",margin:"0 0 0.25rem 0",lineHeight:1.1,letterSpacing:"-0.02em"},b=n==="kicker"?"tg-df-author-curated-by tg-df-author-kicker":"tg-df-author-name",h=()=>n==="kicker"?(0,E.jsx)("p",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}}):(0,E.jsx)("h2",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}});return s?(0,E.jsxs)("div",{className:"tg-df-author-header-text-shell",style:{position:"relative"},children:[o&&(0,E.jsxs)("div",{className:"tg-df-author-header-text-toolbar",role:"toolbar","aria-label":`${n==="kicker"?"Shop by text":"Site or author name"} formatting`,style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"0.25rem",margin:"0 auto 0.375rem",width:"fit-content",padding:"0.25rem 0.5rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",fontSize:"11px",zIndex:10},children:[(0,E.jsx)("span",{style:{color:"#64748b",padding:"2px 2px 2px 0"},children:"Editing"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("bold"),title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("italic"),title:"Italic",children:(0,E.jsx)("em",{children:"I"})}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{let g=prompt("Enter URL:");g&&v("createLink",g)},title:"Add link",children:"\u{1F517}"}),l!==void 0&&(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{i.current&&(i.current.innerHTML=t),d(t),a?.(void 0)},title:"Restore default",children:"Reset"})]}),h()]}):h()}function i2({contentKey:e,initialBio:t,defaultPlaceholder:n,onBioChange:a,stabilizeHeight:l=!1}){let r=(0,be.useRef)(null),o=(0,be.useRef)(e),u=(0,be.useRef)(n),c=(0,be.useRef)(!1),[s,f]=(0,be.useState)(!1),[d,m]=(0,be.useState)(!1),[v,A]=(0,be.useState)(!1),b=t||n,h=l&&b.replace(/<[^>]*>/g,"").trim().length>240,g=!!a,{save:p,synchronise:y}=z0(a);(0,be.useLayoutEffect)(()=>{let w=o.current!==e,D=u.current!==n;w&&(c.current=!1);let k=!t&&D&&!c.current;r.current&&(w||document.activeElement!==r.current||k)&&(r.current.innerHTML!==b&&(r.current.innerHTML=b),y(b)),o.current=e,u.current=n},[b,e,n,t,y]),(0,be.useLayoutEffect)(()=>{m(!1)},[e]),(0,be.useLayoutEffect)(()=>{if(!h||!r.current){A(!1);return}let w=r.current,D=()=>{A(w.scrollHeight>w.clientHeight+1)};if(D(),typeof ResizeObserver>"u")return;let k=new ResizeObserver(D);return k.observe(w),()=>k.disconnect()},[b,e,d,h]);let C=(w,D=null)=>{if(c.current=!0,document.execCommand(w,!1,D||void 0),r.current){let k=r.current.innerHTML;p(k,k===n?"":k,!0)}},R=(w=!1)=>{if(!r.current)return;let D=r.current.innerHTML;p(D,D===n?"":D,w)};return(0,E.jsxs)("div",{style:{position:"relative",maxWidth:"42rem",margin:"0 auto 0.5rem auto",padding:"0.25rem 0.5rem"},className:`tg-df-author-bio-shell${l?" tg-df-author-bio-shell--stable":""}`,children:[g&&s&&(0,E.jsxs)("div",{role:"toolbar","aria-label":"Introduction text formatting",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.375rem",marginBottom:"0.5rem",padding:"0.25rem 0.625rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",width:"fit-content",margin:"0 auto 0.5rem auto",fontSize:"12px",userSelect:"none",zIndex:10},children:[(0,E.jsx)("span",{style:{fontSize:"11px",color:"#64748b",fontWeight:500,marginRight:"2px"},children:"Editing \u2014 saves when you click away"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("bold"),style:{fontWeight:"bold",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("italic"),style:{fontStyle:"italic",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Italic",children:"I"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{let w=prompt("Enter URL:");w&&C("createLink",w)},style:{padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Add Link",children:"\u{1F517}"}),t&&(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:w=>{w.preventDefault(),w.stopPropagation(),r.current&&(r.current.innerHTML=n),c.current=!1,y(n),a&&a("")},style:{fontSize:"10px",padding:"2px 8px",borderRadius:"4px",background:"#fee2e2",color:"#991b1b",cursor:"pointer",border:"1px solid #fca5a5"},title:"Reset Bio",children:"Reset"})]}),(0,E.jsx)("div",{ref:r,contentEditable:g?!0:void 0,suppressContentEditableWarning:g,onFocus:g?()=>{f(!0)}:void 0,onBlur:g?()=>{f(!1),R(!0),c.current=!1}:void 0,onInput:g?()=>{c.current=!0}:void 0,className:`tg-df-author-bio ${g?"wysiwyg-bio-editable":"tg-df-author-bio--static"}${h?d?" tg-df-author-bio--expanded":" tg-df-author-bio--clamped":""}`,style:{color:"#4b5563",lineHeight:1.6,fontWeight:300,fontSize:"0.9375rem",textAlign:"center",outline:g&&s?"2px solid #3b82f6":"none",borderRadius:"6px",padding:"0.375rem 0.5rem",cursor:g?"text":"default",transition:"all 0.15s ease-in-out"}}),h?(0,E.jsx)("div",{className:"tg-df-author-bio-toggle-slot",children:(0,E.jsx)("button",{type:"button",className:"tg-df-author-bio-toggle","aria-expanded":d,onClick:()=>m(w=>!w),style:{visibility:v||d?"visible":"hidden"},children:d?"Show less":"Read more"})}):null]})}function r2(e){let t=(e||"").toLowerCase();return t==="linkedin"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.28 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.75M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z"})}):t==="twitter"||t==="x"?(0,E.jsx)("svg",{className:"icon-svg",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,E.jsx)("path",{fill:"currentColor",d:"M18 2h4l-8 9 9 11h-7l-5-7-6 7H2l7-9L1 2h7l5 6zm-1 18h2L7 4H5z"})}):t==="email"||t==="mail"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("rect",{width:"20",height:"16",x:"2",y:"4",rx:"2"}),(0,E.jsx)("path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"})]}):t==="instagram"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"12",cy:"12",r:"4.25",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"17.4",cy:"6.7",r:"1.25",fill:"currentColor"})]}):t==="steam"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("circle",{fill:"#0f1618",cx:"12",cy:"12",r:"12"}),(0,E.jsx)("path",{d:"m18.22 8.9a2.269 2.269 0 1 1 -2.27-2.265 2.267 2.267 0 0 1 2.27 2.265zm2.258.005a4.534 4.534 0 0 1 -4.533 4.526h-.1l-4.087 2.911v.161a3.4 3.4 0 0 1 -6.74.669l-4.549-1.879c-.032-.109-.057-.219-.085-.329a11.973 11.973 0 0 1 -.384-2.964c0-.214.02-.423.032-.635 0-.1.008-.206.016-.308l6.394 2.643a3.385 3.385 0 0 1 1.915-.591c.065 0 .127 0 .191.005l2.865-4.145v-.062a4.533 4.533 0 0 1 9.066 0zm-9.763 6.618a2.55 2.55 0 0 0 -3.262-1.411l1.525.63a1.877 1.877 0 1 1 -1.446 3.464l-1.475-.606a2.529 2.529 0 0 0 1.315 1.25 2.559 2.559 0 0 0 3.339-1.374 2.526 2.526 0 0 0 .004-1.951zm8.251-6.618a3.021 3.021 0 1 0 -3.021 3.015 3.022 3.022 0 0 0 3.021-3.013z",fill:"#fff"})]}):t==="youtube"?(0,E.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"})}):t==="twitch"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("path",{d:"m24 12a12 12 0 1 1 -12-12 12 12 0 0 1 12 12z",fill:"#111"}),(0,E.jsx)("path",{d:"m12.308 17.167-1.833 1.833h-1.818v-1.833h-3.357v-9.733l.925-2.434h12.475v8.517l-3.648 3.65zm5.175-10.95h-10.043v8.824h2.743v1.833l1.817-1.833h3.342l2.14-2.126zm-5.483 6.083v-3.65h-1.218v3.65zm3.342 0v-3.65h-1.216v3.65z",fill:"#fff"})]}):t==="facebook"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m13.079 19h-2.9v-7h-1.441v-2.408h1.442v-1.456c0-1.96.813-3.136 3.136-3.136h1.933v2.408h-1.2c-.91 0-.965.35-.965.966v1.218h2.183l-.257 2.408h-1.931z",fill:"currentColor"})}):t==="pinterest"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.336 5c-3.822 0-5.754 2.744-5.754 5.025a3.065 3.065 0 0 0 1.652 3.066.279.279 0 0 0 .407-.2l.154-.644a.373.373 0 0 0-.113-.448 2.341 2.341 0 0 1-.532-1.582 3.812 3.812 0 0 1 3.961-3.849 3.009 3.009 0 0 1 3.346 3.08c0 2.323-1.022 4.283-2.547 4.283a1.253 1.253 0 0 1-1.273-1.554 17.616 17.616 0 0 0 .713-2.856 1.081 1.081 0 0 0-1.092-1.2c-.854 0-1.553.881-1.553 2.071a2.954 2.954 0 0 0 .266 1.274l-1.038 4.383a9.389 9.389 0 0 0-.027 3.065.109.109 0 0 0 .2.042 8.737 8.737 0 0 0 1.457-2.631l.561-2.212a2.3 2.3 0 0 0 1.959 1.008c2.59 0 4.34-2.366 4.34-5.516a4.8 4.8 0 0 0-5.087-4.605z",fill:"currentColor"})}):t==="substack"?(0,E.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M22.539 8.242H1.46V5.406h21.08v2.836zM1.46 10.812V24L12 18.11 22.54 24V10.812H1.46zM22.54 0H1.46v2.836h21.08V0z"})}):t==="threads"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12.186 24h-.007c-3.582-.024-6.332-1.22-8.173-3.555C2.26 18.212 1.5 15.228 1.5 11.83 1.5 8.16 2.673 5.097 4.902 2.935 7.026.877 10.02 0 13.565 0c3.784 0 6.81 1.028 8.995 3.056 2.008 1.862 3.013 4.417 2.91 7.391-.122 3.518-1.57 6.136-4.304 7.781-1.892 1.138-4.103 1.62-6.57 1.433-.122.392-.266.769-.434 1.127-.514 1.096-1.18 1.96-1.982 2.569-.884.67-1.933 1.01-3.118 1.01-1.34 0-2.42-.42-3.21-1.248-.78-.82-1.17-1.89-1.17-3.18 0-1.512.52-2.73 1.545-3.62 1.018-.883 2.45-1.33 4.258-1.33.56 0 1.11.04 1.63.12-.04-.53-.13-1.02-.27-1.46-.26-.81-.71-1.45-1.34-1.92-.62-.47-1.42-.71-2.38-.71-1.09 0-2.02.29-2.77.87-.29.22-.68.17-.9-.12l-.76-1.03c-.22-.3-.16-.71.13-.93C7.43 5.37 8.95 4.9 10.8 4.9c1.64 0 2.99.41 4.02 1.22 1.04.81 1.73 1.93 2.06 3.33.15.65.25 1.42.3 2.31 1.68-.31 3.05-1.05 4.08-2.2 1.01-1.13 1.52-2.58 1.52-4.31 0-2.43-.84-4.32-2.5-5.62C18.63 1.32 16.32.5 13.56.5c-3.03 0-5.54.73-7.27 2.21C4.48 4.27 3.5 6.78 3.5 10c0 3.1.66 5.62 1.96 7.49 1.34 1.93 3.38 2.92 6.07 2.95 1.76.02 3.32-.34 4.64-1.07.28-.15.63-.05.78.22l.55.98c.15.28.05.63-.22.78-1.63.9-3.55 1.35-5.7 1.35z"})}):t==="tiktok"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.308 5.012c.763-.012 1.522 0 2.281-.012a3.636 3.636 0 0 0 1.02 2.434 4.12 4.12 0 0 0 2.473 1.043v2.349a6.177 6.177 0 0 1-2.449-.564 7.207 7.207 0 0 1-.947-.543c0 1.705.008 3.406-.01 5.105a4.442 4.442 0 0 1-.789 2.3 4.343 4.343 0 0 1-3.448 1.872 4.254 4.254 0 0 1-2.379-.6 4.393 4.393 0 0 1-2.127-3.331c-.014-.292-.019-.584-.007-.868a4.395 4.395 0 0 1 5.091-3.9c.013.864-.021 1.727-.021 2.591a2.007 2.007 0 0 0-2.558 1.237 2.316 2.316 0 0 0-.079.939 1.992 1.992 0 0 0 3.658.736 1.39 1.39 0 0 0 .239-.62c.057-1.043.034-2.082.041-3.126.006-2.351-.007-4.7.011-7.041z",fill:"currentColor"})}):t==="bluesky"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.879.139 2.588-.02 3.868.002 5.03c.08 4.201 1.84 10.024 3.931 12.397 2.091 2.373 4.545 1.573 5.467.927.817-.573 1.564-1.611 2.6-2.92 1.036 1.309 1.783 2.347 2.6 2.92.922.646 3.376 1.446 5.467-.927 2.091-2.373 3.851-8.196 3.931-12.397.022-1.162-.137-2.442-.9-3.151-.659-.613-1.664-.935-4.3-1.074C16.046 4.747 13.087 8.686 12 10.8z"})}):t==="github"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"})}):t==="rss"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("path",{d:"M4 11a9 9 0 0 1 9 9"}),(0,E.jsx)("path",{d:"M4 4a16 16 0 0 1 16 16"}),(0,E.jsx)("circle",{cx:"5",cy:"19",r:"1"})]}):(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,E.jsx)("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),(0,E.jsx)("path",{d:"M2 12h20"})]})}function U0({authorCount:e=0,authorArticlesList:t,authorBioLength:n,customBio:a,customHeaderKicker:l,customHeaderTitle:i,effectiveAuthorHandle:r,effectiveAuthorName:o,isReviewWidget:u=!1,onBioChange:c,onHeaderKickerChange:s,onHeaderTitleChange:f,selectedProfile:d,showAuthorBio:m=!0,showAuthorIdentity:v=!0,showSocialButtons:A=!0,stabilizeBio:b=!1,totalDealCount:h=0,website:g}){let p=Vu(r,o),y=g||"tomsguide",C=Gu[y]||y,R=Nr[y],T=r?.toLowerCase(),M=o?.toLowerCase(),w=t.find(Be=>T&&Be.articleauthorhandle?.some(Je=>Je?.toLowerCase()===T)||M&&Be.articleauthor?.some(Je=>Je?.toLowerCase()===M))||null,D=w?sf(w,r,o):0,k=d?.image||(w?c0(w,D):""),se=d?n==="short"?d.bioShort||"":d.bioLong||d.bioShort||"":w?_r(w,D,n):"",I=p?`Our team is dedicated to researching, reviewing and recommending the latest and best products in all the categories that matter to you. Below you can shop the latest ${h} ${u?"review ":""}recommendations from ${e} ${C} ${u?"editor tests":"editors"}.`:se||`Handpicked deals and recommendations curated by ${o||"our expert editorial team"}.`,j=d?.role||"",He=p?y0[y]||[]:d?.socialNetworks||[];!p&&w&&(j||(j=u0(w,D)),He.length===0&&(He=Uu(w,D)));let ze=d?.fullName||o||"Author Name",St=p?`site:${y}`:`author:${d?.handle||r||ze}`,Ie=A&&He.length>0,rn=!p&&!!j||Ie;return(0,E.jsxs)("div",{className:"tg-df-author-card",style:{textAlign:"center",padding:"1.75rem 1rem 0.25rem 1rem",margin:"0 auto",maxWidth:"48rem"},children:[v&&(p?(0,E.jsx)("div",{className:"tg-df-author-media-slot tg-df-author-image-container",style:{margin:"0 auto 0.75rem auto",textAlign:"center",minHeight:"180px",display:"flex",alignItems:"center",justifyContent:"center"},children:R?(0,E.jsx)("img",{src:R,alt:C,className:"tg-df-site-logo",style:{maxHeight:"150px",maxWidth:"520px",objectFit:"contain",margin:"0 auto",display:"block"}}):(0,E.jsx)("div",{style:{fontSize:"1.75rem",fontWeight:700,color:"#111827"},children:C})}):(0,E.jsx)("div",{className:"tg-df-author-media-slot",children:(0,E.jsxs)("div",{className:"tg-df-author-profile-image-wrapper",children:[k?(0,E.jsx)("img",{src:ri(k),alt:ze,className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",objectFit:"cover",display:"block"}}):(0,E.jsx)("div",{className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",background:"#e2e8f0",display:"block"}}),R?(0,E.jsx)("img",{src:R,alt:"",className:"tg-df-author-profile-brand-logo"}):null]})})),v&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(H0,{contentKey:`${St}:kicker`,defaultText:u?"Reviews shop by":"Shop by",kind:"kicker",onChange:s,value:l}),(0,E.jsx)(H0,{contentKey:`${St}:title`,defaultText:p?C:ze,kind:"title",onChange:f,value:i}),rn&&(0,E.jsxs)("div",{className:`tg-df-author-meta-slot${p?" tg-df-author-meta-slot--site":""}${Ie?"":" tg-df-author-meta-slot--no-social"}`,children:[!p&&j?(0,E.jsx)("div",{className:"tg-df-author-role",id:"tg-df-author-role-display",style:{fontSize:"0.9375rem",fontWeight:500,color:"var(--tg-df-blue, #1F69FF)",margin:"0 0 0.5rem 0",lineHeight:1.3},children:j}):null,Ie?(0,E.jsx)("div",{className:"tg-df-author-social-links",children:He.map(Be=>(0,E.jsx)("a",{href:Be.href,target:"_blank",rel:"noopener noreferrer",title:Be.label,"aria-label":Be.label,className:"tg-df-author-social-btn","data-social-key":Be.key.toLowerCase(),children:r2(Be.key)},Be.key))}):null]})]}),m&&(0,E.jsx)(i2,{contentKey:St,initialBio:a,defaultPlaceholder:I,onBioChange:c,stabilizeHeight:b})]})}var te=B(O(),1);function df(e){if(!e||typeof e!="object")return"";if(e.type==="voucher_code"&&e.display_value)return e.display_value;let t=Array.isArray(e)?e:Object.keys(e).filter(n=>Object.prototype.hasOwnProperty.call(e,n)).map(n=>e[n]);for(let n of t){let a=df(n);if(a)return a}return""}function o2({endTime:e}){if(!e)return null;let t=e;!isNaN(Number(t))&&String(t).length===10&&(t=Number(t)*1e3);let n=new Date(t),a=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"});return(0,te.jsxs)("span",{className:"tg-df-voucher-expiry",children:[(0,te.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginRight:"4px"},children:[(0,te.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,te.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),"Expires ",a.format(n)]})}function G0({error:e,loading:t,merchant:n,onClose:a,vouchers:l}){return(0,te.jsx)("div",{className:`tg-df-modal-backdrop ${n?"active":""}`,onClick:i=>{i.target===i.currentTarget&&a()},children:(0,te.jsxs)("div",{className:"tg-df-modal",children:[(0,te.jsxs)("div",{className:"tg-df-modal-header",children:[(0,te.jsx)("h3",{className:"tg-df-modal-title",children:n?`${n} Coupons & Deals`:"Available Coupons & Deals"}),(0,te.jsx)("button",{className:"tg-df-modal-close",onClick:a,children:(0,te.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,te.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,te.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),(0,te.jsx)("div",{className:"tg-df-modal-body",children:t?(0,te.jsx)("div",{className:"tg-df-message",children:(0,te.jsx)("div",{className:"tg-df-coupon-spinner",style:{width:"24px",height:"24px",borderColor:"#ccc",borderTopColor:"#3b82f6"}})}):e?(0,te.jsx)("div",{className:"tg-df-message",children:"Failed to load vouchers."}):l.length===0?(0,te.jsxs)("div",{className:"tg-df-message",children:["No active vouchers found for ",n,"."]}):l.map((i,r)=>{let o=i.offer?.name||i.offer?.title||i.name||i.title||i.model_name||"Voucher",u=i.offer?.link||i.offer?.url||i.link||i.url||"#",c=i.merchant,s=Array.isArray(c)?c[0]?.logo_url||"":c?.logo_url||"",f=df(i.offer)||df(i)||i.offer?.voucher_code||i.voucher_code||"",d=i.offer?.end_time||i.end_time||"";return(0,te.jsxs)("a",{href:u,target:"_blank",rel:"noopener nofollow",className:"tg-df-voucher-item",children:[s?(0,te.jsx)("img",{src:s,alt:"Logo",className:"tg-df-voucher-logo"}):(0,te.jsx)("div",{className:"tg-df-voucher-logo",style:{background:"#e2e8f0"}}),(0,te.jsxs)("div",{className:"tg-df-voucher-content",children:[(0,te.jsx)("h4",{className:"tg-df-voucher-title",children:o}),(0,te.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:"8px"},children:[f&&(0,te.jsxs)("span",{className:"tg-df-voucher-code",title:"Copy to clipboard",onClick:m=>{m.preventDefault(),m.stopPropagation();let v=m.currentTarget;navigator.clipboard.writeText(f).then(()=>{v.classList.add("copied");let A=v.querySelector(".tg-df-voucher-code-text"),b=v.querySelector(".tg-df-voucher-copy-icon"),h=A.innerText,g=b.innerHTML;A.innerText="Copied!",b.innerHTML='<polyline points="20 6 9 17 4 12"><\/polyline>',setTimeout(()=>{v.classList.remove("copied"),A&&(A.innerText=h),b&&(b.innerHTML=g)},2e3)})},children:[(0,te.jsx)("span",{className:"tg-df-voucher-code-text",children:f}),(0,te.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:"6px",flexShrink:0},className:"tg-df-voucher-copy-icon",children:[(0,te.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,te.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})]}),d&&(0,te.jsx)(o2,{endTime:d})]})]})]},r)})})]})})}var N=B(ft(),1);function ci(e){if(!e||!e.articlepage)return[];try{let t=e.articlepage;if(!Array.isArray(t))return typeof t=="string"?JSON.parse(t):t;if(t.length===0)return[];let n=t[0];return typeof n=="string"?JSON.parse(n):Array.isArray(n)?n:n&&typeof n=="object"&&"type"in n?t:n}catch{return[]}}function si(e,t=!1,{includeCollections:n=!0,includeDeals:a=!0}={}){let l=t?e.filter(r=>r.type==="buying-guide"):[];if(l.length>0)return l;let i=e.filter(r=>r.type==="deal"||r.type==="featured-product");return a&&!n&&!t?i.filter(r=>r.type==="deal"):i}function di(e,t){if(!t||t.length===0)return!0;let n=e&&(e.brand||e.retailer)||"";if(!n)return!1;let a=n.replace(/^\d+\.\s*/,"").trim().toLowerCase();return t.some(l=>{let i=l.trim().toLowerCase();return a===i||a.startsWith(`${i} `)||a.includes(i)||i.includes(a)})}function wt(e){return!e||e==="auto"?"US":e}function an(e){return e==="GB"||e==="UK"?"GBP":e==="AU"?"AUD":e==="CA"?"CAD":["DE","FR","IT","ES","NL"].includes(e)?"EUR":"USD"}function P0(e,t){if(e.isBuyingGuideProduct||e.isReviewProduct)return!0;if(t==="unavailable")return!1;let n=String(e.isoCurrency||e.currency||"").trim().toUpperCase();return({$:"USD",A$:"AUD",CA$:"CAD","\xA3":"GBP","\u20AC":"EUR"}[n]||n)===an(t)}function fi(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=a?n.currency||(n.price&&typeof n.price=="object"?n.price.currency:""):l.currency||(typeof l=="string"?l:"")||n.currency||"";!i&&n.variants&&n.variants.length>0&&(i=n.variants[0].currency||"");let r="$",o="USD",u=(i||"").toString().toUpperCase().trim();return u==="GBP"||u==="\xA3"||u.includes("POUND")||u.includes("163")?(r="\xA3",o="GBP"):u==="EUR"||u==="\u20AC"||u.includes("EURO")||u.includes("8364")?(r="\u20AC",o="EUR"):u==="AUD"||u==="A$"?(r="A$",o="AUD"):u==="CAD"||u==="CA$"?(r="CA$",o="CAD"):u==="USD"||u==="$"||u.includes("DOLLAR")||u.includes("36")?(r="$",o="USD"):(o=an(t),o==="GBP"?r="\xA3":o==="AUD"?r="A$":o==="CAD"?r="CA$":o==="EUR"&&(r="\u20AC")),{isoCurr:o,currencyStr:r}}function Ku(e){let t=e.data||{},n=e.type==="featured-product",a=t.price||{},l=0,i=0;return n?(l=typeof a=="number"?a:a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):t.msrp?parseFloat(t.msrp):0):(l=a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):0),{rawPrice:l,rawMsrp:i}}function Sa(e,t){if(!t||t==="all"||e<=0)return!0;if(t==="under50"&&e>=50||t==="over50"&&e<=50||t==="over30"&&e<=30||t==="over500"&&e<=500)return!1;if(t.includes("_")){let[n,a]=t.split("_").map(Number);if(n&&e<n||a&&e>a)return!1}return!0}function Ca(e,t,n){if(!n||n==="0"||n==="all")return!0;let a=parseInt(n);return!(!isNaN(a)&&a>0&&(!t||t<=e||Math.round((1-e/t)*100)<a))}var Zu=[0,50,100,150,200,250,300,350,400,450],ff={parameter:"articleControlTag",value:"type_buying_guide"},u2={includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"deals"},{parameter:"articleControlTag",value:"sig-product-collection"}]},c2={pcgamer:{includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"deals"},{parameter:"articleControlTag",value:"sig-product-collection"},{parameter:"articleControlTag",value:"type_deal",requiredArticleType:"news",requiredControlTags:["deals","type_deal","channel_gaming_hardware"]}],buyingGuideScopes:[ff]},homesandgardens:{includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"collection",inventoryKind:"collections"},{parameter:"articleControlTag",value:"sig-product-collection",inventoryKind:"collections"},{parameter:"articleControlTag",value:"van-hawk-collection-widget",inventoryKind:"collections"},{parameter:"articleControlTag",value:"shopping",requiredArticleType:"news",inventoryKind:"collections"},{parameter:"articleType",value:"deals",inventoryKind:"deals"},{parameter:"articleControlTag",value:"type_deal",requiredArticleType:"news",requiredControlTags:["shopping","type_deal"],inventoryKind:"deals"}],buyingGuideScopes:[{parameter:"articleType",value:"buying guide"},ff]},whowhatwear:{includeAllContent:!0,pageStarts:Zu,scopes:[{}]}};function Wu(e,{includeBuyingGuideProducts:t=!1,includeCollections:n=!0,includeDeals:a=!0}={}){let l=c2[e]||u2;if(l.includeAllContent)return l;let i=l.scopes.filter(r=>r.inventoryKind==="collections"?n:r.inventoryKind==="deals"?a:r.value==="sig-product-collection"?n:a);return t?{...l,scopes:[...i,...l.buyingGuideScopes||[ff]]}:{...l,scopes:i}}function gf(e){if(Array.isArray(e))return e;let t=e.data;return t&&Array.isArray(t)?t:[]}function q0(e){let t=new Set;return e.filter(n=>{let a=n.id||n.articleid||n.url;return!a||t.has(a)?!1:(t.add(a),!0)})}function Zt(e){return typeof e.articletype=="string"?e.articletype.toLowerCase():Array.isArray(e.articletype)&&e.articletype.length>0?e.articletype[0].toLowerCase():""}function Hr(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]/g,"")}function mf(e){return[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]].map(Hr)}function s2(e){return Zt(e)==="review"&&mf(e).some(t=>t.includes("channelgaminghardware"))}function F0(e,t,n){let a=Zt(e),l=mf(e),i=c=>l.some(s=>s.includes(c)),r=a==="news"&&i("shopping")&&i("deal")&&i("typedeal"),o=a==="deals"||r,u=a==="collection"||i("sigproductcollection")||i("vanhawkcollectionwidget")||a==="news"&&i("shopping")&&!r||a==="idea"&&i("shopping")&&(i("sigproductcollection")||i("vanhawkcollectionwidget"));return t&&o||n&&u}function el(e,t=!0,n=!0,a){if(a==="homesandgardens")return F0(e,t,n);let l=Zt(e),i=mf(e),r=l==="deals"||i.some(u=>u.includes("typedeal")),o=i.some(u=>u.includes("sigproductcollection"));return t&&r||n&&o}function j0(e,t,n=!1,a=!1,l=!0,i=!0){if(a&&Zt(e)==="review")return t!=="pcgamer"||s2(e);if(t==="homesandgardens")return Zt(e)==="buying guide"?n:F0(e,i,l);let r=Wu(t,{includeBuyingGuideProducts:n,includeCollections:l,includeDeals:i});if(r.includeAllContent)return i&&l?!0:n||el(e,i,l);let o=Zt(e),u=[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]],c=f=>!f.requiredArticleType||o===f.requiredArticleType.toLowerCase(),s=f=>!f.requiredControlTags||f.requiredControlTags.every(d=>u.some(m=>typeof m=="string"&&Hr(m).includes(Hr(d))));return r.scopes.some(f=>!c(f)||!s(f)?!1:f.parameter==="articleType"?o===f.value.toLowerCase():f.parameter==="articleControlTag"?u.some(d=>typeof d=="string"&&Hr(d).includes(Hr(f.value))):!1)}function hf(e,t){let n=e.map(a=>({...a}));return t.filter(a=>(a.isBuyingGuideProduct||a.isReviewProduct)&&a.brand).forEach(a=>{let l=String(a.brand).trim();if(!l)return;let i=n.find(r=>r.formatted_value.toLowerCase()===l.toLowerCase());i?i.count++:n.push({formatted_value:l,count:1})}),n.sort((a,l)=>l.count-a.count)}function Iu(e,t){let n={};return e.forEach(a=>{if(!a.articlepage)return;let l=ci(a),i=si(l,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});(t.includeDeals===!1||t.includeCollections===!1)&&!i.some(r=>r.type==="buying-guide")&&!el(a,t.includeDeals,t.includeCollections,t.website)||i.forEach(r=>{if(fi(r,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:o,rawMsrp:u}=Ku(r);if(!Sa(o,t.priceRange)||!Ca(o,u,t.discountAmount))return;let c=r.data||{},s=c.brand||c.retailer;if(!s)return;let f=s.replace(/^\d+\.\s*/,"").trim(),d=f.toLowerCase(),m=Object.keys(n).find(v=>v.toLowerCase()===d);m?n[m]++:(f===f.toLowerCase()&&(f=f.replace(/\b\w/g,v=>v.toUpperCase())),n[f]=1)})}),Object.keys(n).map(a=>({formatted_value:a,count:n[a]})).sort((a,l)=>l.count-a.count)}function d2(e){return String(e||"").trim().toLowerCase()}function Ju(e){return(Array.isArray(e)?e:[e]).map(d2).filter(Boolean)}function pf(e){let t=Ju(e.articletype),n=[...Ju(e.articlecontroltag),...Ju(e.articletagtypetaghandle)];return t.includes("deals")||n.some(a=>a.replace(/[\s-]+/g,"_")==="type_deal")}function V0(e){let t=Array.isArray(e)?e[0]:e,n=new Date(String(t||"")).getTime();return Number.isFinite(n)?n:null}function f2(e){for(let t of[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]){let n=V0(t);if(n!==null)return n}return null}function g2(e){for(let t of[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]){let n=V0(t);if(n!==null)return n}return null}function Y0(e){return Ju(e.articletype).includes("review")}function yf(e,t=new Date,n=0){let a=pf(e)?1:Y0(e)?36:n;if(a<=0)return!0;let l=Y0(e)?g2(e):f2(e);if(l===null)return!0;let i=new Date(t);return i.setMonth(i.getMonth()-a),l>=i.getTime()}function tl(e,t,n=0){return e.filter(a=>yf(a,t,n))}var m2=15;function Q0(e){return Array.isArray(e.articlemedia)?e.articlemedia[0]:""}function zr(e){return Array.isArray(e.documenturl)?e.documenturl[0]:e.documenturl||""}function h2(e){return kt(String(e||"").replace(/^\d+\.\s*/,"").trim())}function tt(e){return Array.isArray(e)?e.map(tt).find(Boolean)||"":typeof e=="string"||typeof e=="number"?String(e).trim():""}function vf(e,t=!1){return(t?[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]:[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]).map(tt).find(Boolean)||""}function p2(e,t,n){let a=tt(e).match(/^\s*(\d+)\s*[.)]\s*/)?.[1];return a||[t.rank,t.position,t.number,t.productNumber,t.product_number].map(tt).map(i=>i.match(/^\s*(\d+)\s*$/)?.[1]||"").find(Boolean)||String(n+1)}function y2(e){let t=tt(e);try{t=new URL(t).pathname}catch{}return t=t.split(/[?#]/)[0].split("/").filter(Boolean).at(-1)||"",t.split(/[-_]+/).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function v2(e){return tt(e.documenthandle)||tt(e.document_handle)||zr(e)||tt(e.documentname)||tt(e.documentnametext)}function b2(e,t){if(!t)return"";let n=t.length>m2?"Ranked":t;return`#${e} ${n}`}function A2(e){if(typeof e=="object"&&e)return String(e["data-model-name"]||"");try{return String(JSON.parse(String(e||""))["data-model-name"]||"")}catch{return""}}function w2(e){let t=e.brand||e.productBrand||e.manufacturer||e.maker||"";return typeof t=="string"?kt(t.replace(/^\d+\.\s*/,"").trim()):""}function S2(e){let t=e.price&&typeof e.price=="object"?e.price:{},n=Number(t.salePrice||t.price||e.salePrice||e.current_price||(typeof e.price=="number"?e.price:0)),a=Number(t.wasPrice||t.msrp||e.was_price||e.msrp||0),l=e.url||e.link?.url||e.link?.href||"";return{currency:t.currency||e.currency||"",rawMsrp:Number.isFinite(a)?a:0,rawPrice:Number.isFinite(n)?n:0,url:l}}function bf(e){let t=e?.review||{},n=t.rating??t.starRating??t.score??e?.rating??e?.starRating??e?.score,a=Number(n);if(!Number.isFinite(a)||a<=0)return null;let l=a>5?a/20:a;return Math.min(l,5)}function K0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,imageUrl:i}){let r=t.data||{},o=r.review||{},u=h2(r.title),c=p2(r.title,r,a),s=y2(v2(e)),f=zr(e),d=S2(r),m=!!d.url,v=m?d.url:o.url||f,A=i||Q0(e);return{id:`airedale-buying-guide-${n}-${a}`,url:v,image:A,fallbackImage:A,title:u,brand:w2(r),productName:u,merchant:"",rawPrice:d.rawPrice,rawMsrp:d.rawMsrp,price:d.rawPrice>0?String(d.rawPrice):"",msrp:d.rawMsrp>0?String(d.rawMsrp):"",currency:d.currency,isoCurrency:"",isCheckPrice:d.rawPrice<=0,savingLabel:"",savingType:"none",isPrime:!1,starRating:bf(r),description:"",text:"",subtitle:kt(r.subtitle||""),pros:Array.isArray(r.pros)?r.pros:[],cons:Array.isArray(r.cons)?r.cons:[],...l,documentUrl:zr(e),modifiedDate:vf(e),isFeatured:!1,isBuyingGuideProduct:!0,buyingGuideBadge:b2(c,s),hawkModelName:A2(r.hawk),hasCommerceOffer:m,sourceArticleUrl:f}}function C2(e){return gi(e)||tt(e.documentnametext)||tt(e.documentname)}function $u(e){if(Array.isArray(e))return e.map($u).find(Boolean)||"";if(e&&typeof e=="object"){let n=e,a=tt(n["data-widget-type"]||n.dataWidgetType||n.widgetType).toLowerCase(),l=tt(n["data-model-name"]||n.dataModelName||n.modelName);return a==="review"&&l?l:Object.values(n).map($u).find(Boolean)||""}if(typeof e!="string")return"";let t=[e,e.replace(/\\"/g,'"').replace(/\\u0022/gi,'"')];for(let n of t){try{let l=$u(JSON.parse(n));if(l)return l}catch{}let a=n.match(/["']data-widget-type["']\s*:\s*["']review["'][\s\S]{0,1500}?["']data-model-name["']\s*:\s*["']([^"']+)["']/i);if(a?.[1])return a[1].trim()}return""}function gi(e){let t=tt(e.articlehawkmodels);if(t)return t;for(let n of[e.articlepage,e.articlebodypageblock,e.articlepageblock,e.fepjson,e.articlebodyclean]){let a=$u(n);if(a)return a}return""}function X0(e){return(Array.isArray(e)?e:[e]).map(t=>kt(tt(t))).filter(Boolean)}function Z0({article:e,articleIdentity:t,authorProfile:n}){let a=kt(gi(e)),l=kt(C2(e)),i=zr(e),r=Q0(e),o=kt(tt(e.productverdict));return{id:`airedale-review-${t}`,url:i,image:r,fallbackImage:r,title:l,brand:"",productName:l,merchant:"",rawPrice:0,rawMsrp:0,price:"",msrp:"",currency:"",isoCurrency:"",isCheckPrice:!0,savingLabel:"",savingType:"none",isPrime:!1,starRating:bf({rating:e.productrating}),description:o,text:o,...n,documentUrl:i,modifiedDate:vf(e,!0),isFeatured:!1,isReviewProduct:!0,hawkModelName:a||l,hasCommerceOffer:!1,sourceArticleUrl:i,pros:X0(e.productpros),cons:X0(e.productcons)}}function kt(e){return typeof e=="string"?ee(e):e}function W0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,currencyString:i,isoCurrency:r,presentation:o,pricing:u}){let c=t.data||{},{isFeatured:s,externalUrl:f,summaryTitle:d,description:m,imageUrl:v,merchantName:A}=o,{rawPrice:b,rawMsrp:h,savingLabel:g}=u;return{id:`airedale-${n}-${a}`,url:f,image:v,fallbackImage:v,title:kt(d),brand:kt(c.brand||""),productName:kt(c.productName||""),merchant:kt(A),rawPrice:b,rawMsrp:h,price:b>0?b.toString():"",msrp:h>0?h.toString():"",currency:i,isoCurrency:r,isCheckPrice:!b,savingLabel:g,savingType:h>b?"amount":"none",isPrime:!1,starRating:bf(c),description:kt(m),text:kt(c.text||""),...l,documentUrl:zr(e),modifiedDate:vf(e),isFeatured:s,hasCommerceOffer:!!f}}function I0(e,t){let n=t.data||{},a=t.type==="featured-product",l=n.link||{},i=n.image||{};n.brand&&(n.brand=n.brand.replace(/^\d+\.\s*/,"").trim());let r=a?n.url:l.href||null,o=a?n.name||n.brand:n.productName||l.label||(Array.isArray(e.articlename)?e.articlename[0]:e.articlename),u=a?n.strapline||"":n.text||"";if(!a&&!n.productName&&n.text){let f=n.text.split(/<br\s*\/?>/i);if(f.length>1)o=f[0].replace(/<[^>]+>/g,"").trim(),u=f.slice(1).join(" ").replace(/<br\s*\/?>/gi," ").replace(/<\/?(p|div)[^>]*>/gi," ").replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();else{let d=n.text.match(/<strong>(.*?)<\/strong>/);d&&(o=d[1].replace(/<[^>]+>/g,"").trim(),o.endsWith(":")&&(o=o.slice(0,-1)))}}let c=a?i.mos:i.src||null;c?.startsWith("//")&&(c=`https:${c}`),u=u.replace(/<br\s*\/?>/gi," ").replace(/<\/?(p|div)[^>]*>/gi," ").replace(/<[^>]+>/g,"").replace(/\s+/g," ").replace(/View Deal$/i,"").trim();let s=n.retailer||"";if(!s&&r)try{s=new URL(r).hostname.replace("www.","").split(".")[0],s=s.charAt(0).toUpperCase()+s.slice(1)}catch{}return s||(s="Retailer"),{isFeatured:a,externalUrl:r,summaryTitle:o,description:u,imageUrl:c,merchantName:s}}function J0(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=0,r=0;a?(i=typeof n.salePrice=="number"&&n.salePrice>0?n.salePrice:typeof n.price=="number"?n.price:0,r=typeof n.salePrice=="number"&&typeof n.price=="number"&&n.price>n.salePrice?n.price:0):(i=l.amount?parseFloat(l.amount):0,r=l.amountWas?parseFloat(l.amountWas):0);let o=0,u="";return i>0&&r>i&&(o=parseFloat((r-i).toFixed(2)),u=`Save ${t}${o}`),{rawPrice:i,rawMsrp:r,savingLabel:u}}function R2(e,t){let n=e.indexOf(t);if(n<1)return"";let a=e[n-1]?.data||{},i=a.slides?.[0]?.image||a.image||a;return i?.src||i?.mos||""}function Ur(e,{activeRegionCode:t,targetIso:n,selectedBrands:a,priceRange:l,discountAmount:i,authorHandle:r,authorName:o,createFallbackIdentity:u=Math.random,includeBuyingGuideProducts:c=!1,includeCollections:s=!0,includeDeals:f=!0,includeReviewProducts:d=!1,website:m}){let v=[],A=new Set;return e.forEach(b=>{if(d&&Zt(b)==="review"){v.push(Z0({article:b,articleIdentity:b.id||u(),authorProfile:Qu(b,r,o)}));return}if(!b.articlepage)return;let h=ci(b),g=si(h,c,{includeCollections:s,includeDeals:f});(f===!1||s===!1)&&!g.some(p=>p.type==="buying-guide")&&!el(b,f,s,m)||g.forEach((p,y)=>{if(p.type==="buying-guide"){v.push(K0({article:b,block:p,articleIdentity:b.id||u(),blockIndex:y,authorProfile:Qu(b,r,o),imageUrl:R2(h,p)}));return}let{isoCurr:C,currencyStr:R}=fi(p,t);if(C!==n)return;let T=p.data||{},M=I0(b,p),{externalUrl:w}=M,D=J0(p,R),{rawPrice:k,rawMsrp:se}=D;if(!(a&&a.length>0&&!di(T,a))&&Sa(k,l)&&Ca(k,se,i)){if(w){if(A.has(w))return;A.add(w)}v.push(W0({article:b,block:p,articleIdentity:b.id||u(),blockIndex:y,authorProfile:Qu(b,r,o),currencyString:R,isoCurrency:C,presentation:M,pricing:D}))}})}),v}function mi(e,t){return Ur(e,{...t,selectedBrands:[],priceRange:"all",discountAmount:"0"})}function $0(e,t){return Ur(e,t)}function Gr(e){return(Array.isArray(e)?e:[e]).filter(n=>typeof n=="string").map(n=>n.trim())}function ec(e){return e?.trim().toLowerCase()==="freeform"}function Af(e){return!!e&&!/[^\p{L}\p{N}\s]/u.test(e)}function wf(e){let t=Gr(e.articletag),n=Gr(e.articletaghandle),a=Gr(e.articletagtype),l=new Map;t.forEach((o,u)=>{let c=n[u];!ec(a[u])||!c||!Af(o)||l.set(c.toLowerCase(),{handle:c,label:o,requestValue:o})});let i=Gr(e.articletagtypetag),r=Gr(e.articletagtypetaghandle);return i.forEach((o,u)=>{let[c,...s]=o.split("|"),[f,...d]=(r[u]||"").split("|"),m=s.join("|").trim(),v=d.join("|").trim();!ec(c)||!ec(f)||!v||!Af(m)||l.has(v.toLowerCase())||l.set(v.toLowerCase(),{handle:v,label:m,requestValue:m})}),r.forEach(o=>{let[u,...c]=o.split("|"),s=c.join("|").trim();!ec(u)||!s||!Af(s)||l.has(s.toLowerCase())||l.set(s.toLowerCase(),{handle:s,label:s})}),[...l.values()]}function ev(e,t){if(t)return e.find(n=>n.handle.toLowerCase()===t.toLowerCase())?.requestValue}function hi(e,t){let n=(Array.isArray(t)?t:[t]).filter(a=>typeof a=="string").map(a=>a.trim().toLowerCase()).filter(Boolean);return n.length===0?e:e.filter(a=>wf(a).some(l=>n.includes(l.handle.toLowerCase())))}function T2(e){let t=new Map;return Array.isArray(e.articlecategory)?(e.articlecategory.forEach(n=>{if(typeof n!="string")return;let a=n.trim();a===a.toLowerCase()&&(a=a.replace(/\b\w/g,l=>l.toUpperCase())),a&&!t.has(a.toLowerCase())&&t.set(a.toLowerCase(),{handle:a,label:a})}),[...t.values()]):[]}function tv(e,t,n){let a={},l={},i={};e.forEach(u=>{let c=[];if(t.includeReviewProducts&&Zt(u)==="review"&&c.push(u.id||u.documenturl||u.documenthandle||""),u.articlepage)try{let s=ci(u),f=si(s,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});if((t.includeDeals===!1||t.includeCollections===!1)&&!f.some(d=>d.type==="buying-guide")&&!el(u,t.includeDeals,t.includeCollections,t.website))return;f.forEach(d=>{if(d.type==="buying-guide"){c.push(d.id||JSON.stringify(d.data||{}));return}if(fi(d,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:m,rawMsrp:v}=Ku(d);if(!Sa(m,t.priceRange)||!Ca(m,v,t.discountAmount))return;let A=d.data||{};if(t.selectedBrands&&t.selectedBrands.length>0&&!di(A,t.selectedBrands))return;let h=d.type==="featured-product"?A.primaryLink:A.link,g=A.url||A.link&&A.link.url||h&&h.url;c.push(g||JSON.stringify(A))})}catch{}c.length!==0&&n(u).forEach(s=>{let f=s.handle.toLowerCase(),d=Object.keys(a).find(m=>m.toLowerCase()===f);d||(d=s.handle,a[d]=new Set,l[d]=s.label,i[d]=s.requestValue),c.forEach(m=>a[d].add(m))})});let r={};return Object.keys(a).forEach(u=>{r[u]=a[u].size}),{tags:Object.keys(r).map(u=>({handle:u,label:l[u]||u,requestValue:i[u]})).sort((u,c)=>r[c.handle]-r[u.handle]),tagCounts:r}}function tc(e,t){let{tags:n,tagCounts:a}=tv(e,t,T2);return{tags:n.map(l=>l.label),tagCounts:a}}function nc(e,t){let{tags:n,tagCounts:a}=tv(e,t,wf);return{tags:n,tagCounts:a}}function E2(e,t){return e.documentUrl||e.sourceArticleUrl||e.articleId||`deal-${t}`}function yn(e,t,n){if(t!=="mix"||n!=="date_desc")return e;let a=new Map;e.forEach((o,u)=>{let c=E2(o,u),s=a.get(c)||[];s.push(o),a.set(c,s)});let l=[],i=0,r=!0;for(;r;)r=!1,a.forEach(o=>{let u=o[i];u&&(l.push(u),r=!0)}),i+=1;return l}var nv="compact-v1",D2={brand:"",currency:"",hasCommerceOffer:!1,isoCurrency:"",isCheckPrice:!0,isFeatured:!1,isPrime:!1,merchant:"",merchantId:"",msrp:"",price:"",rawMsrp:0,rawPrice:0,savingLabel:"",savingType:"none"},x2={hasCommerceOffer:!0,hawkPricePending:!1,rawMsrp:0,rawPrice:0};function av(e){return e.map(t=>{if(!t.isReviewProduct)return t;let n=String(t.sourceArticleUrl||t.documentUrl||t.url||""),a=t.fallbackImage??t.image??"",l={...D2,...t,fallbackImage:a,image:t.image??a,sourceArticleUrl:n,documentUrl:t.documentUrl??n,url:t.url??n,title:t.title??t.productName??"",text:t.text??t.description??"",hawkPricePending:t.hawkPricePending??!!t.hawkModelName,pros:t.pros??[],cons:t.cons??[]};return t.hawkRegionalCommerce&&(l.hawkRegionalCommerce=Object.fromEntries(Object.entries(t.hawkRegionalCommerce).map(([i,r])=>{let o=r,u=o.productName??l.productName,c=o.rawPrice??0,s=o.rawMsrp??0;return[i,{...x2,...o,fallbackImage:o.fallbackImage??a,image:o.image??a,productName:u,title:o.title??u??l.title,price:o.price??(c?String(c):""),msrp:o.msrp??(s?String(s):"")}]}))),l})}function ac(e,t,n=100){let a=new Set(e.slice(0,t).map((i,r)=>i.id||`visible-${r}`)),l=e.slice(0,t).filter(i=>i.isReviewProduct).length;return e.filter((i,r)=>{let o=i.id||`visible-${r}`;return a.has(o)?!0:i.isReviewProduct?(l+=1,l<=n):!1})}function lv(e,t){let n=new Map(t.map((a,l)=>[a.id||`enriched-${l}`,a]));return e.map((a,l)=>n.get(a.id||`enriched-${l}`)||a)}var M2=new Set(["deal","featured-product","gallery","buying-guide","text","section"]);function lc(e){return!!e&&typeof e=="object"}function iv(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function rv(e){try{let t=iv(e);if(!Array.isArray(t)||!t[0])return;let n=t[0],a=typeof n=="string"?iv(n):Array.isArray(n)?n:lc(n)&&"type"in n?t:n;if(!Array.isArray(a))return;let l=a.filter(i=>lc(i)&&M2.has(i.type)).map(i=>i.type==="text"&&i.data?{type:"text",data:{paragraphs:Array.isArray(i.data.paragraphs)?i.data.paragraphs.slice(0,3):void 0,text:typeof i.data.text=="string"?i.data.text.slice(0,500):void 0}}:i.type==="section"&&i.data?{type:"section",data:{text:i.data.text,heading:i.data.heading,title:i.data.title}}:i);return l.length>0?[JSON.stringify(l)]:void 0}catch{return}}function ov(e){if(!Array.isArray(e))return[];let t=!1;return e.map(n=>{if(!lc(n))return n;let a=n.articlepage?rv(n.articlepage):void 0,l=!!(n.articleauthormedia||n.articleauthorrole),i=!!(!t&&(n.articleauthorbio||n.articleauthorlongbio||n.articleauthorsocialnetworks));return i&&(t=!0),{id:n.id,articlename:n.articlename,documentname:n.documentname,documentnametext:n.documentnametext,documenthandle:n.documenthandle,articlecategory:n.articlecategory,articletag:n.articletag,articletaghandle:n.articletaghandle,articletagtype:n.articletagtype,articletagtypetag:n.articletagtypetag,articletagtypetaghandle:n.articletagtypetaghandle,articlecontroltag:n.articlecontroltag,articletype:n.articletype,articleauthor:n.articleauthor,articleauthorhandle:n.articleauthorhandle,articleauthortext:n.articleauthortext,...l?{articleauthorrole:n.articleauthorrole,articleauthormedia:n.articleauthormedia}:{},articlestrapline:n.articlestrapline,articlesocialtitle:n.articlesocialtitle,documenturl:n.documenturl,articlemedia:n.articlemedia,articlehawkmodels:n.articlehawkmodels,productrating:n.productrating,productpros:n.productpros,productcons:n.productcons,productverdict:n.productverdict,contentmodifieddate:n.contentmodifieddate,modifieddate:n.modifieddate,createddate:n.createddate,datepublished:n.datepublished,publisheddate:n.publisheddate,...i?{articleauthorbio:n.articleauthorbio,articleauthorlongbio:n.articleauthorlongbio,articleauthorsocialnetworks:n.articleauthorsocialnetworks}:{},...a?{articlepage:a}:{}}})}function uv(e){return Array.isArray(e)?e.map(t=>{if(!lc(t))return t;let n=t.articlepage?rv(t.articlepage):void 0;return{id:t.id,articleid:t.articleid,articlename:t.articlename,documentname:t.documentname,documentnametext:t.documentnametext,documenthandle:t.documenthandle,articleauthor:t.articleauthor,articleauthorhandle:t.articleauthorhandle,articleauthortext:t.articleauthortext,articleauthorrole:t.articleauthorrole,articleauthormedia:t.articleauthormedia,articleauthorbio:t.articleauthorbio,articleauthorlongbio:t.articleauthorlongbio,articleauthorsocialnetworks:t.articleauthorsocialnetworks,articlecategory:t.articlecategory,articletag:t.articletag,articletaghandle:t.articletaghandle,articletagtype:t.articletagtype,articletagtypetag:t.articletagtypetag,articletagtypetaghandle:t.articletagtypetaghandle,articletype:t.articletype,articlestrapline:t.articlestrapline,articlesocialtitle:t.articlesocialtitle,documenturl:t.documenturl,articlemedia:t.articlemedia,articlehawkmodels:t.articlehawkmodels,productrating:t.productrating,productpros:t.productpros,productcons:t.productcons,productverdict:t.productverdict,url:t.url,contentmodifieddate:t.contentmodifieddate,modifieddate:t.modifieddate,createddate:t.createddate,datepublished:t.datepublished,publisheddate:t.publisheddate,content:t.content,dek:t.dek,image_thumbnail:t.image_thumbnail,intro:t.intro,paragraphs:t.paragraphs,strapline:t.strapline,subtitle:t.subtitle,title:t.title,...n?{articlepage:n}:{}}}):[]}function pi(e){if(!e?.modifiedDate)return 0;let t=Array.isArray(e.modifiedDate)?e.modifiedDate[0]:e.modifiedDate,n=new Date(t).getTime();return Number.isNaN(n)?0:n}function nl(e){return e?.hasCommerceOffer===!0?!0:e?.hasCommerceOffer===!1?!1:!!(!e?.isBuyingGuideProduct&&!e?.isReviewProduct&&e?.url)}function ln(e,t,n=!0){let a=!0;t==="date_desc"?e.sort((l,i)=>pi(i)-pi(l)):t==="price_asc"?e.sort((l,i)=>l.rawPrice-i.rawPrice):t==="price_desc"?e.sort((l,i)=>i.rawPrice-l.rawPrice):t==="discount_desc"?e.sort((l,i)=>{let r=l.rawMsrp>l.rawPrice?l.rawMsrp-l.rawPrice:0;return(i.rawMsrp>i.rawPrice?i.rawMsrp-i.rawPrice:0)-r}):t==="rating_desc"?e.sort((l,i)=>{let r=Number(l.starRating)||0;return(Number(i.starRating)||0)-r||pi(i)-pi(l)}):t==="scored_first"?e.sort((l,i)=>{let r=Number(l.starRating)>0?1:0;return(Number(i.starRating)>0?1:0)-r||pi(i)-pi(l)}):a=!1,a&&n&&e.sort((l,i)=>Number(nl(i))-Number(nl(l)))}function cv(e,t,n){let a=e;if(!a&&t){let l=n.find(i=>i.toLowerCase()===t?.toLowerCase());l&&(a=l)}return a}function Pr(e,t){if(!t)return e;let n=t.toLowerCase();return e.filter(a=>a.articlecategory&&Array.isArray(a.articlecategory)&&a.articlecategory.some(l=>{if(!l||typeof l!="string")return!1;let i=l.toLowerCase(),r=i.split(":::");return i===n||r[0]===n||i.includes(n)}))}function sv(e){let t=wt(e.region);return{activeRegionCode:t,targetIso:an(t)}}function al(e,t,{discountAmount:n,priceRange:a}={}){let l=!!(a&&a!=="all"),i=!!(n&&n!=="0"&&n!=="all");return!t?.length&&!l&&!i?e:e.filter(r=>!r.isBuyingGuideProduct&&!r.isReviewProduct?!0:t?.length&&!di({brand:r.brand},t)||l&&(!Number(r.rawPrice)||!Sa(Number(r.rawPrice),a))?!1:Ca(Number(r.rawPrice)||0,Number(r.rawMsrp)||0,n))}function _2(e,t){let n=e.articleauthorhandle||[],a=e.articleauthor||[],l=e.articleauthortext||[],i=new Set([t.handle.toLowerCase(),t.fullName.toLowerCase(),t.name.toLowerCase()]);return[...n,...a,...l].some(r=>i.has(String(r||"").toLowerCase()))}function Sf(e,t,n){let a=Object.fromEntries(e.map(l=>[l.handle,0]));return t.forEach(l=>{let i=mi([l],n).length;i!==0&&e.forEach(r=>{_2(l,r)&&(a[r.handle]+=i)})}),a}function Cf(e,t){let n=Xu(e,t.authorHandle,t.authorName),a=t.selectedArticleId?n.filter(A=>A.id===t.selectedArticleId):n,{activeRegionCode:l,targetIso:i}=sv(t),{tags:r,tagCounts:o}=tc(a,{activeRegionCode:l,targetIso:i,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),u=cv(t.activeDealTag,t.query,r),c=Pr(a,u),{tags:s,tagCounts:f}=nc(c,{activeRegionCode:l,targetIso:i,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),d=t.activeFreeformTags?.length?t.activeFreeformTags:t.activeFreeformTag?[t.activeFreeformTag]:[],m=d.flatMap(A=>{let b=s.find(h=>h.handle.toLowerCase()===A.toLowerCase());return b?[b.handle]:[]}),v=t.preserveFreeformTagSelection?d:m;return{activeDealTag:u,activeFreeformTag:v[0]||null,activeFreeformTags:v,activeRegionCode:l,authorArticles:n,freeformTagCounts:f,freeformTags:s,tagCounts:o,tags:r,targetArticles:hi(c,v),targetIso:i}}function ic(e,t,n,a){let l=Iu(e,{activeRegionCode:n,targetIso:a,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,website:t.website}),i=Ur(e,{activeRegionCode:n,targetIso:a,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website});ln(i,t.sort,t.prioritiseCommercialProducts);let r=yn(al(i,t.selectedBrands,{discountAmount:t.discountAmount,priceRange:t.priceRange}),t.productSelection,t.sort).map(o=>(o.isBuyingGuideProduct||o.isReviewProduct)&&o.hawkModelName?{...o,hawkPricePending:!0}:o);return{brands:l,displayedDeals:r,extractedDeals:i}}function dv(e,t){let{activeRegionCode:n,targetIso:a}=sv(t),l=Lr(e,t.website||"tomsguide"),i=e.filter(o=>mi([o],{activeRegionCode:n,targetIso:a,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}).length>0),r=al(Ur(e,{activeRegionCode:n,targetIso:a,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),t.selectedBrands,{discountAmount:t.discountAmount,priceRange:t.priceRange});return{authorCount:kr(l,i).length,deals:r}}function fv({allArticles:e,authorArticles:t,inventoryArticles:n,bakeReviewInventory:a,brands:l,couponMap:i,currentDealTag:r,currentFreeformTags:o,displayedDeals:u,options:c,resultCount:s,tagCounts:f,tags:d,freeformTagCounts:m,freeformTags:v,totalAuthorCount:A,totalDealCount:b}){let h=Lr(e,c.website||"tomsguide"),g=Sf(h,n,{activeRegionCode:wt(c.region),targetIso:an(wt(c.region)),selectedBrands:c.selectedBrands,priceRange:c.priceRange,discountAmount:c.discountAmount,includeBuyingGuideProducts:c.includeBuyingGuideProducts,includeCollections:c.includeCollections,includeDeals:c.includeDeals,includeReviewProducts:c.includeReviewProducts,website:c.website}),p=kr(h,e.filter(C=>mi([C],{activeRegionCode:wt(c.region),targetIso:an(wt(c.region)),includeBuyingGuideProducts:c.includeBuyingGuideProducts,includeCollections:c.includeCollections,includeDeals:c.includeDeals,includeReviewProducts:c.includeReviewProducts,website:c.website}).length>0)),y=Number(s)||12;return{activeDealTag:r,activeFreeformTag:o[0]||null,activeFreeformTags:o,allDeals:a?ac(u,y):u,authorArticles:ov(t),authors:Yu(p,g),brands:l,couponMap:i,deals:u.slice(0,y),reviewInventoryBaked:a,tagCounts:f,tags:d,freeformTagCounts:m,freeformTags:v,totalAuthorCount:A,totalDealCount:b}}function B2(e){return e&&e.widget&&e.widget.data&&Array.isArray(e.widget.data.offers)?e.widget.data.offers:e&&e.data&&Array.isArray(e.data.offers)?e.data.offers:Array.isArray(e)?e:e&&Array.isArray(e.offers)?e.offers:e&&e.offers&&Array.isArray(e.offers.offer)?e.offers.offer:e&&Array.isArray(e.data)?e.data:[]}function gv(e,t,n){let a={...n},l=new Set;return B2(e).forEach(r=>{let o="";r.merchant_name?o=r.merchant_name:r.merchant&&r.merchant[0]&&r.merchant[0].name?o=r.merchant[0].name:r.merchant&&r.merchant.name?o=r.merchant.name:r.retailer&&(o=r.retailer),o&&l.add(o.toLowerCase())}),t.forEach(r=>{a[r]=l.has(r.toLowerCase())?"has":"none"}),a}function mv(e){let t=[];return e?.widget?.data?.offers?t=e.widget.data.offers:e?.data?.offers?t=e.data.offers:Array.isArray(e)?t=e:e?.offers?.offer?t=Array.isArray(e.offers.offer)?e.offers.offer:[e.offers.offer]:e?.offers&&(t=Array.isArray(e.offers)?e.offers:[e.offers]),t}async function hv({couponMap:e,couponUrl:t,fetcher:n=fetch,merchants:a}){if(!t)return e;try{let l=await n(t.toString());return gv(await l.json(),a,e)}catch{let l={...e};return a.forEach(i=>{l[i]="none"}),l}}function pv({enrichingBuyingGuides:e,error:t,loading:n,loadingMore:a,refreshingFeed:l}){return t?"error":a?"loading_more":n?"loading_inventory":l?"refreshing_inventory":e?"enriching_visible_cards":"ready"}function yv(e,t){let n=Xu(tl(e),t.authorHandle,t.authorName),a=wt(t.region),l=an(a),{tags:i,tagCounts:r}=tc(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),o=Iu(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,website:t.website}),{tags:u,tagCounts:c}=nc(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),s=$0(n,{activeRegionCode:a,targetIso:l,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website});ln(s,t.sort,t.prioritiseCommercialProducts);let f=yn(s,t.productSelection,t.sort);return{authorArticles:n,brands:o,deals:f,tagCounts:r,tags:i,freeformTagCounts:c,freeformTags:u}}var N2="fc-author-commerce-widget",vn="airedale-feeds";var rc=null;function vv(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Rf(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function Tf(){return rc||(typeof window>"u"||typeof window.indexedDB>"u"?Promise.resolve(null):(rc=new Promise(e=>{let t=window.indexedDB.open(N2,14);t.onupgradeneeded=()=>{let n=t.result;n.objectStoreNames.contains(vn)||n.createObjectStore(vn,{keyPath:"key"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null)}),rc))}function bv({authorHandle:e,authorName:t,includeBuyingGuideProducts:n,includeCollections:a,includeDeals:l,includeReviewProducts:i,articleCategory:r,articleTag:o,pageStarts:u,reviewPageStarts:c,loadAllReviewPages:s,website:f}){return["v14",f||"tomsguide",e||"",t||"",n?"buying-guides":"",a===!1?"no-collections":"collections",l===!1?"no-deals":"deals",i?"reviews":"",r||"",o||"",u?.join(",")||"",c?.join(",")||"",s===!1?"review-pages-partial":""].map(d=>encodeURIComponent(d)).join("|")}async function O2(e){let t=await Tf();if(!t)return;let n=t.transaction(vn,"readwrite"),a=Rf(n);n.objectStore(vn).delete(e),await a}async function Av(e,t=Date.now()){try{let n=await Tf();if(!n)return null;let a=n.transaction(vn,"readonly"),l=await vv(a.objectStore(vn).get(e));if(!l||l.schemaVersion!==14||!Array.isArray(l.articles)||l.articles.length===0)return null;let i=Math.max(0,t-l.cachedAt);return i>864e5?(O2(e),null):{articles:l.articles,cachedAt:l.cachedAt,isFresh:i<=6e5}}catch{return null}}async function k2(e){let t=e.transaction(vn,"readwrite"),n=Rf(t),a=t.objectStore(vn);(await vv(a.getAll())).sort((i,r)=>r.cachedAt-i.cachedAt).slice(10).forEach(i=>a.delete(i.key)),await n}async function wv(e,t,n=Date.now()){if(t.length!==0)try{let a=await Tf();if(!a)return;let l=a.transaction(vn,"readwrite"),i=Rf(l);l.objectStore(vn).put({articles:t,cachedAt:n,key:e,schemaVersion:14}),await i,await k2(a)}catch{}}var Ef=[];var Mf=[],Df=0;function Sv(){for(;Df<4&&Mf.length>0;){let e=Mf.shift();if(!e)return;Df+=1,e.run().then(e.resolve,e.reject).finally(()=>{Df-=1,Sv()})}}function L2(e){return new Promise((t,n)=>{Mf.push({reject:n,resolve:t,run:e}),Sv()})}function xf(e){Ef.push(e),Ef.length>100&&Ef.shift()}async function oc(e,t,n=4){let a=new Array(e.length),l=0,i=Math.min(Math.max(1,n),e.length);return await Promise.all(Array.from({length:i},async()=>{for(;l<e.length;){let r=l;l+=1,a[r]=await t(e[r],r)}})),a}async function yi(e,t){return L2(async()=>{let n=t.fetcher||fetch,a=Date.now(),l=new AbortController,i=!1,r=()=>l.abort();if(t.signal?.aborted)return xf({durationMs:0,outcome:"aborted",source:t.source,startedAt:a}),{data:null,response:null};t.signal?.addEventListener("abort",r,{once:!0});let o=setTimeout(()=>{i=!0,l.abort()},8e3);try{let u=await n(e,{signal:l.signal}),c=u.ok?await u.json():null;return xf({durationMs:Date.now()-a,outcome:u.ok?"succeeded":"failed",source:t.source,startedAt:a}),{data:c,response:u}}catch{return xf({durationMs:Date.now()-a,outcome:i?"timed_out":t.signal?.aborted?"aborted":"failed",source:t.source,startedAt:a}),{data:null,response:null}}finally{clearTimeout(o),t.signal?.removeEventListener("abort",r)}})}var Bf="https://airedale.futurecdn.net/feeds/feed_1786707986217.json",H2="https://airedale.futurecdn.net/feeds/feed_1786702796175.json",z2="https://airedale.futurecdn.net/feeds/feed_1787582137748.json",U2=2,_f=new Map,Cv=new Map;function Rv(e){let t=new URL(e),n=String(t.searchParams.get("articleType")||"").trim().toLowerCase(),a=String(t.searchParams.get("articleControlTag")||"").replace(/[\s-]+/g,"_").toLowerCase();return n!=="deals"&&a!=="type_deal"?null:(t.searchParams.delete("start"),t.toString())}function G2(e){return!e.response?.ok||e.articles.length<50?!1:!e.articles.some(t=>pf(t)&&!yf(t))}function P2(e){return!e.parameter||!e.value?"":`&${e.parameter}=${encodeURIComponent(e.value)}`}function q2(e,t="",n=!1,a,l,{includeCollections:i=!0,includeDeals:r=!0}={},o){let u=Wu(e,{includeBuyingGuideProducts:n,includeCollections:i,includeDeals:r}),c=a?`&articleCategory=${encodeURIComponent(a)}`:"",s=o?`&articleTag=${encodeURIComponent(o)}`:"";return u.scopes.flatMap(f=>(l||u.pageStarts).map(d=>`${Bf}?site=${e}&limit=${50}&start=${d}${P2(f)}${t}${c}${s}`))}function Tv(e,t="",n,a=0,l){let i=e==="pcgamer"?"&articleControlTag=channel_gaming_hardware":"",r=n?`&articleCategory=${encodeURIComponent(n)}`:"",o=l?`&articleTag=${encodeURIComponent(l)}`:"";return`${H2}?site=${encodeURIComponent(e)}&articleType=review&limit=${50}&start=${a}${i}${t}${r}${o}`}function F2(e,t){return t!=="pcgamer"?e:e.map(n=>{let a=Array.isArray(n.articlecontroltag)?n.articlecontroltag:[];return a.some(l=>String(l).replace(/[^a-z0-9]/gi,"").toLowerCase()==="channelgaminghardware")?n:{...n,articlecontroltag:[...a,"channel_gaming_hardware"]}})}function j2(e,t){return`${z2}?site=${encodeURIComponent(e)}&documentHandle=${encodeURIComponent(t)}&limit=1`}async function Y2(e,t){let n=`${e}|${t}`,a=Cv.get(n);if(a)return a;let l=yi(j2(e,t),{source:"review-model-resolver"}).then(({data:i})=>i?gf(i)[0]:null).then(i=>i?gi(i):"").catch(()=>"");return Cv.set(n,l),l}async function Nf(e,t,n,a="date_desc"){let l=o=>{let u=[o.datepublished,o.publisheddate,o.createddate,o.contentmodifieddate,o.modifieddate].find(s=>s!=null&&String(s).trim()),c=new Date(Array.isArray(u)?u[0]:u).getTime();return Number.isFinite(c)?c:0},i=o=>{let u=Array.isArray(o.productrating)?o.productrating[0]:o.productrating;return Number(u)||0},r=e.filter(o=>Zt(o)==="review"&&!gi(o)&&typeof o.documenthandle=="string"&&o.documenthandle.trim()).sort((o,u)=>{let c=i(o),s=i(u);return a==="rating_desc"?s-c||l(u)-l(o):a==="scored_first"&&+(s>0)-+(c>0)||l(u)-l(o)}).slice(0,n);return await Promise.all(r.map(async o=>{let u=await Y2(t,o.documenthandle);u&&(o.articlehawkmodels=[u])})),e}function xv(e,t){let n=()=>{wv(e,uv(t))};if(typeof window<"u"&&typeof window.requestIdleCallback=="function"){window.requestIdleCallback(n,{timeout:2e3});return}setTimeout(n,0)}function V2(e,t){return e&&e!=="all-authors"?`&articleAuthorHandle=${encodeURIComponent(e)}`:t&&t!=="All authors"&&t!=="all-authors"?`&articleAuthor=${encodeURIComponent(t)}`:""}function X2({articleCategory:e,articleTag:t,authorParameter:n}){return!!(n&&!e&&!t)}async function Mv({authorHandle:e,authorName:t,fallbackAuthorName:n,includeBuyingGuideProducts:a,includeCollections:l,includeDeals:i,includeReviewProducts:r,onProgress:o,articleCategory:u,articleTag:c,pageStarts:s,reviewPageStarts:f,loadAllReviewPages:d,signal:m,throwOnFailure:v,website:A}){let b=A||"tomsguide",h=V2(e,t),g=[],p=!1,y=!0,C=w=>j0(w,b,a,r,l,i),R=()=>q0(g).map(w=>{let D=gi(w);return D&&!String(w.articlehawkmodels||"").trim()?{...w,articlehawkmodels:[D]}:w}).filter(C),T=()=>{let w=R();w.length>0&&o?.(w)};try{let w=q2(b,h,a,u,s,{includeCollections:l,includeDeals:i},c),D=[];r&&(f||[0]).forEach(X=>{let de=Tv(b,h,u,X,c);D.push(de),w.push(de)});let k=async(X,de=D.includes(X)?"review-feed":"author-feed")=>{let $e=await yi(X,{signal:m,source:de});for(let jr=0;jr<U2&&!$e.response?.ok&&!m?.aborted;jr+=1)$e=await yi(X,{signal:m,source:de});let{data:Z,response:x}=$e,P=Z?gf(Z):[],Q=b==="pcgamer"&&de.startsWith("review-feed")?F2(P,b):P,Vn={articles:Q,data:Z,isPcGamerHardwareReviewFeed:b==="pcgamer"&&de.startsWith("review-feed"),response:x,reviewTotalCount:D.includes(X)&&Number(x?.headers.get("x-total-count"))||null};return Q.length>0&&g.push(...Q),Vn},se=w.filter(X=>Number(new URL(X).searchParams.get("start")||0)===0),I=w.filter(X=>!se.includes(X)),j=await oc(se,X=>k(X));T();let He=new Map(se.flatMap((X,de)=>{let $e=Rv(X);return $e?[[$e,j[de]]]:[]})),ze=new Map,St=[];I.forEach(X=>{let de=Rv(X);if(!de){St.push(X);return}ze.set(de,[...ze.get(de)||[],X])});let[Ie,rn]=await Promise.all([oc(St,X=>k(X)),Promise.all([...ze.entries()].map(async([X,de])=>{let $e=[],Z=He.get(X);for(let x of de){if(!Z||!G2(Z))break;let P=await k(x);$e.push(P),Z=P}return $e}))]),Be=[...Ie,...rn.flat()],Je=[...j,...Be];p=Je.length>0&&Je.every(X=>!X.response?.ok);let nt=Je.find(X=>X.reviewTotalCount!==null)?.reviewTotalCount;if(d!==!1&&f&&nt&&nt>f.length*50){let X=new Set(f),de=[];for(let Z=0;Z<nt;Z+=50)X.has(Z)||de.push(Z);let $e=await oc(de,async Z=>await k(Tv(b,h,u,Z,c),"review-feed-page"));Je.push(...$e)}y=Je.every(X=>X.response?.ok)}catch(w){y=!1}if(v&&p)throw new Error("The author feed could not be loaded");let M=R();if(M.length===0&&X2({authorParameter:h,articleCategory:u,articleTag:c}))try{let w=await yi(`${Bf}?site=${b}&limit=150${h}`,{signal:m,source:"author-feed-fallback"});if(!w.response?.ok&&n&&(w=await yi(`${Bf}?site=${b}&limit=150&articleAuthor=${encodeURIComponent(n)}`,{signal:m,source:"author-feed-fallback"})),w.data){let D=w.data,k=Array.isArray(D)?D:D.data||[];k.length>0&&(M=k.slice(0,150))}}catch(w){}return{articles:M.filter(C),complete:!m?.aborted&&y}}function Ev(e,t){let n=_f.get(e);if(n)return n;let a=Mv(t).then(l=>(l.complete&&l.articles.length>0&&xv(e,l.articles),l)).finally(()=>{_f.delete(e)});return _f.set(e,a),a}async function Dv(e,t){let n=await Mv(t);return n.complete&&n.articles.length>0&&xv(e,n.articles),n}async function _v({onBackgroundRefresh:e,onProgress:t,...n}){let a=bv(n),l=await Av(a);return l?(t?.(l.articles),l.isFresh||(n.signal?Dv(a,n):Ev(a,n)).then(({articles:o,complete:u})=>{u&&o.length>0&&e?.(o)}),l.articles):(await(n.signal?Dv(a,{...n,onProgress:t}):Ev(a,{...n,onProgress:t}))).articles}function Of(e,t){let n=e.shipping?.prime===!0,a=e.merchant?.name||e.merchant_name||e.retailer||"Retailer";typeof e.merchant=="string"&&(a=e.merchant);let l=null,i=0,r=String(e.model_id||e.id||"");if(r&&t)if(t[r]&&t[r].score!=null)l=parseFloat(t[r].score);else{let o=Object.values(t).find(u=>String(u.model_id)===r||String(u.id)===r);o&&o.score!=null&&(l=parseFloat(o.score))}return l!=null&&(i=Math.round((l>10?l/20:l/2)*2)/2),{isPrime:n,merchant:a,starRating:i>0?i:null}}function kf(e){let t=String(e.price||e.current_price||"0"),n=String(e.was_price||e.msrp||e.original_price||"0"),a=parseFloat(t.replace(/[^0-9.]/g,""))||0,l=parseFloat(n.replace(/[^0-9.]/g,""))||0,i=a===0||t==="0.00"||t==="0",r=e.currency&&typeof e.currency=="string"?e.currency:e.currency_symbol&&typeof e.currency_symbol=="string"?e.currency_symbol:"$",o=ee(e.percentage_saving_label||"");!o&&l>a&&a>0&&(o=Math.round((l-a)/l*100)+"% OFF");let u=r;return u.includes("&")&&(u.includes("36")?u="$":u.includes("163")||u.includes("pound")?u="\xA3":(u.includes("8364")||u.includes("euro"))&&(u="\u20AC")),{rawPrice:a,rawMsrp:l,currency:u,isCheckPrice:i,savingLabel:o}}function Bv({query:e,region:t,retailer:n,selectedBrands:a,offerType:l,priceRange:i,discountAmount:r,resultCount:o}){let u=new URL("https://search-api.fie.future.net.uk/widget.php");if(u.searchParams.append("model_name",e),t&&t!=="auto"&&u.searchParams.append("area",t),n&&u.searchParams.append("filter_merchant_name",n),a&&a.length>0&&u.searchParams.append("filter_label[text_brand]",a.join(",")),l&&u.searchParams.append("offer",l),i&&i!=="all"){if(i==="under50")u.searchParams.append("filter_max_price","50");else if(i==="over50")u.searchParams.append("filter_min_price","50");else if(i==="over30")u.searchParams.append("filter_min_price","30");else if(i==="over500")u.searchParams.append("filter_min_price","500");else if(i.includes("_")){let[c,s]=i.split("_");c&&u.searchParams.append("filter_min_price",c),s&&u.searchParams.append("filter_max_price",s)}}if(r&&r!=="0"){let c=(100-parseInt(r))/100;u.searchParams.append("min_discount_ratio",c.toString())}return u.searchParams.append("filter_product_types","deals"),u.searchParams.append("rows",String(o||"12")),u}function Nv(e){return e?.widget?.data?.offers?e.widget.data.offers:e?.data?.offers?e.data.offers:Array.isArray(e)?e:e?.offers?.offer?Array.isArray(e.offers.offer)?e.offers.offer:[e.offers.offer]:e?.offers?Array.isArray(e.offers)?e.offers:[e.offers]:[]}function Ov(e){let t=[];return e.forEach(n=>{let a=[];Array.isArray(n.offers)?a=n.offers:Array.isArray(n.offer)?a=n.offer:n.offers&&typeof n.offers=="object"?a=[n.offers]:n.offer&&typeof n.offer=="object"&&(a=[n.offer]),a.length>0?a.forEach(l=>{t.push({...n,...l})}):t.push(n)}),t}function kv(e){return e?.widget?.data?.model_info?e.widget.data.model_info:e?.data?.model_info?e.data.model_info:{}}var Lf=new Map,Q2=3e3,K2=["GB","US"],Lv=6,Z2=["brand","currency","fallbackImage","hasCommerceOffer","hawkPricePending","hawkListings","image","isCheckPrice","merchant","merchantId","modelId","msrp","price","productKey","productName","rawMsrp","rawPrice","savingLabel","title","url"];function Hf(e){return String(e||"").trim().toLowerCase()}function Gv(e){return e==="UK"?"GB":e}function Pv(e,t){let n=String(t||"").trim().toUpperCase(),l={AU:["A$","AUD"],CA:["CA$","CAD"],DE:["\u20AC","EUR"],ES:["\u20AC","EUR"],FR:["\u20AC","EUR"],GB:["\xA3","GBP","GB\xA3"],IT:["\u20AC","EUR"],NL:["\u20AC","EUR"],US:["$","USD","US$"]}[e];return!l||l.includes(n)}function Hv(e,t){return String(e.id||`hawk-deal-${t}`)}function W2(e){return e.map(t=>({...t,hasCommerceOffer:!1,hawkPricePending:!!t.hawkModelName,hawkListings:[],image:t.fallbackImage||t.image||"",isCheckPrice:!0,merchant:"",merchantId:"",msrp:"",price:"",productKey:"",rawMsrp:0,rawPrice:0,savingLabel:"",url:t.sourceArticleUrl||t.documentUrl||t.url}))}function I2(e){return Z2.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{})}function qv(e){return!!((e.isBuyingGuideProduct||e.isReviewProduct)&&e.hawkModelName)}function J2(e){return e.model_image_url||e.model_image||e.product_image||e.image_url||e.image||""}function Fv(e){return e.link||e.url||e.offer_link||""}function $2(e,t){let n=String(t.model_id||t.id||"");return n&&e[n]?e[n]:Object.values(e).find(a=>String(a?.model_id||a?.id||"")===n)||{}}function eS(e,t,n){let a=e.map(i=>{let r=kf(i),o=Of(i,t),u=Fv(i),c=ee(String(o.merchant||"")).trim();return!u||!c||r.rawPrice<=0||!Pv(n,r.currency)?null:{merchant:c,merchantId:typeof i.merchant=="object"?String(i.merchant?.id||""):"",modelId:String(i.model_id||""),offer:i,productKey:String(i.product_key||""),rawPrice:r.rawPrice,url:u}}).filter(i=>i!==null).sort((i,r)=>i.rawPrice-r.rawPrice||i.merchant.localeCompare(r.merchant)),l=new Set;return a.filter(i=>{let r=i.merchant.toLocaleLowerCase();return l.has(r)?!1:(l.add(r),!0)}).slice(0,4)}async function zv(e,t,n){let a=`${t}|${Hf(e)}`;return Lf.has(a)||Lf.set(a,(async()=>{let l;try{let i=new AbortController;l=setTimeout(()=>i.abort(),Q2);let r=await n(Bv({query:e,region:t,resultCount:12}).toString(),{signal:i.signal});if(!r.ok)return null;let o=await r.json(),u=Ov(Nv(o)),c=Hf(e),s=u.filter(A=>Hf(A.model_name||A.model)===c),f=s.length?s:u,d=f[0]||null;if(!d)return null;let m=kv(o),v=$2(m,d);return{brand:String(v?.brand||d.brand||"").trim(),modelInfo:m,offer:d,offers:f}}catch{return null}finally{l&&clearTimeout(l)}})()),Lf.get(a)}function Uv(e,t,n){return e.map(a=>{let l=String(a.hawkModelName);if(!qv(a)||!t.has(l))return a;let i=t.get(l);if(!i)return{...a,hawkPricePending:!1};let{offer:r}=i.lookup,o=kf(r),u=Of(r,i.lookup.modelInfo),c=J2(r),s=Fv(r),f=ee(String(r.model_name||r.model||a.hawkModelName||a.productName||a.title||"").trim()),d=!!(i.region===n&&s&&Pv(n,o.currency)),m=i.region===n?eS(i.lookup.offers,i.lookup.modelInfo,n).map(({offer:v,...A})=>A):[];return d?{...a,brand:i.lookup.brand||r.brand||a.brand,currency:o.currency||a.currency,fallbackImage:c?a.image:a.fallbackImage,hasCommerceOffer:!0,hawkPricePending:!1,hawkListings:m,image:c||a.image,isCheckPrice:o.isCheckPrice,merchant:u.merchant||a.merchant,merchantId:typeof r.merchant=="object"&&r.merchant?.id||"",modelId:r.model_id||"",msrp:o.rawMsrp>0?String(o.rawMsrp):"",price:o.rawPrice>0?String(o.rawPrice):"",productKey:r.product_key||"",productName:f||a.productName,rawMsrp:o.rawMsrp,rawPrice:o.rawPrice,savingLabel:o.savingLabel,title:f||a.title,url:s||a.url}:{...a,brand:i.lookup.brand||a.brand,fallbackImage:c?a.image:a.fallbackImage,hawkPricePending:!1,image:c||a.image,productName:f||a.productName,title:f||a.title}})}async function vi(e,t,n=fetch,a,l=[],i){let r=Gv(t),o=new Map,u=e.filter(qv).map(f=>String(f.hawkModelName)),c=new Set(u),s=Array.from(new Set([...l.filter(f=>c.has(f)),...u])).slice(0,a);for(let f=0;f<s.length;f+=Lv)await Promise.all(s.slice(f,f+Lv).map(async d=>{let m=await zv(d,r,n),v=m||r==="GB"?null:await zv(d,"GB",n);o.set(d,m?{lookup:m,region:r}:v?{lookup:v,region:"GB"}:null),i?.(Uv(e,o,r))}));return Uv(e,o,r)}async function jv(e,t=fetch){let n=W2(e),a=await Promise.all(K2.map(async i=>[i,await vi(n,i,t)])),l=new Map;return a.forEach(([i,r])=>{r.forEach((o,u)=>{if(!o.hasCommerceOffer)return;let c=Hv(o,u),s=l.get(c)||{};s[i]=I2(o),l.set(c,s)})}),e.map((i,r)=>{let o=l.get(Hv(i,r));return o?{...i,hawkRegionalCommerce:o}:i})}function zf(e,t){let n=Gv(t);return e.map(a=>{let l=a.hawkRegionalCommerce?.[n];return l?{...a,...l,hawkPricePending:!1}:a})}function Yv(e,t){let n=Array.from(new Set(e.map(i=>i.merchant).filter(Boolean))),a={};if(n.forEach(i=>{a[i]="loading"}),n.length===0)return{merchants:n,couponMap:a,couponUrl:null};let l=new URL("https://search-api.fie.future.net.uk/widget.php");return l.searchParams.append("model_name","Everything"),l.searchParams.append("filter_merchant_name",n.join(",")),l.searchParams.append("filter_product_types","vouchers,offer_deals,newsletter"),l.searchParams.append("sort","voucher"),l.searchParams.append("rows","120"),l.searchParams.append("origin","widgets-clientside"),l.searchParams.append("combine_product_types","1"),l.searchParams.append("language","en-GB"),l.searchParams.append("all_filters","false"),l.searchParams.append("exclude_unlabelled","false"),l.searchParams.append("include_specs","false"),t&&t!=="auto"&&l.searchParams.append("area",t),{merchants:n,couponMap:a,couponUrl:l}}function Vv(e,t){let n=new URL("https://search-api.fie.future.net.uk/widget.php");return n.searchParams.append("model_name","Everything"),n.searchParams.append("language","en-GB"),t&&t!=="auto"&&n.searchParams.append("area",t),n.searchParams.append("combine_product_types","1"),n.searchParams.append("filter_merchant_name",e),n.searchParams.append("all_filters","false"),n.searchParams.append("exclude_unlabelled","false"),n.searchParams.append("include_specs","false"),n.searchParams.append("sort","voucher"),n.searchParams.append("distinct_merchants","natural"),n.searchParams.append("filter_product_types","vouchers,offer_deals,newsletter"),n.searchParams.append("rows","50"),n.searchParams.append("origin","widgets-clientside"),n}function Uf(e,t,n=!0){if(!e?.length)return e||[];if(t==="date_desc"&&!n)return e;let a=[...e];return ln(a,t,n),a}function uc(e,t,n,a=!0){if(n!=="date_desc"||!e?.length)return t;let l=(c,s)=>String(c.id||s),i=new Map(t.map((c,s)=>[l(c,s),c])),r=new Set,o=e.flatMap((c,s)=>{let f=l(c,s);r.add(f);let d=i.get(f);return d?[d]:[]}),u=t.filter((c,s)=>!r.has(l(c,s)));return a?[...o.filter(nl),...u.filter(nl),...o.filter(c=>!nl(c)),...u.filter(c=>!nl(c))]:[...o,...u]}function Xv({activeDealTag:e,activeFreeformTag:t,clickedAuthorOverride:n,compactEmbed:a,compactInventoryExplored:l,compactLoadRequested:i,initialActiveDealTag:r,initialActiveFreeformTag:o,reviewInventoryBaked:u}){return!!(a&&u&&!n&&!i&&!l&&(!e||e===r)&&(!t||t===o))}var Qv=[0,50,100,150,200,250,300,350,400,450],Gf=4;function Kv(e){return(Array.isArray(e)?e:[e]).reduce((n,a)=>{if(typeof a!="string"||!a.trim())return n;let l=a.trim();return n.some(i=>i.toLowerCase()===l.toLowerCase())?n:[...n,l]},[])}function nS(e,t){return e.length===t.length&&e.every((n,a)=>n===t[a])}function Pf(e){return e.map(t=>t.trim().toLowerCase()).sort().join("|")}function qf(e){let t=e.initialData,n=Fu(e),a=!!(e.preloadReviewInventory&&!n),l=!!(e.preloadReviewInventory&&e.includeReviewProducts&&!e.compactEmbed),i=n?Number(e.resultCount)||12:100,r=n?!1:e.prioritiseCommercialProducts,o=wt(e.region),u=zf(t?.allDeals||t?.deals||[],o).filter(_=>P0(_,o)),c=wa(n?"date_desc":e.sort,!Or(e)),s=!!(e.priceRange&&e.priceRange!=="all")||!!(e.discountAmount&&e.discountAmount!=="0"&&e.discountAmount!=="all"),f=tl(t?.authorArticles||[],void 0,Number(e.editorialMaxAgeMonths)||0),d=tl(t?.authorInteractionArticles||[],void 0,Number(e.editorialMaxAgeMonths)||0),[m,v]=(0,N.useState)(()=>Uf(u,c,r)),[A,b]=(0,N.useState)(t?.totalDealCount??t?.allDeals?.length??t?.deals?.length??0),[h,g]=(0,N.useState)(t?.totalAuthorCount??t?.authors?.length??0),[p,y]=(0,N.useState)(!t),[C,R]=(0,N.useState)(!1),[T,M]=(0,N.useState)(!1),[w,D]=(0,N.useState)(!1),[k,se]=(0,N.useState)(t?.couponMap||{}),[I,j]=(0,N.useState)(f),[He,ze]=(0,N.useState)(f),[St,Ie]=(0,N.useState)(t?.tags||[]),[rn,Be]=(0,N.useState)(t?.tagCounts||{}),[Je,nt]=(0,N.useState)(t?.freeformTags||[]),[X,de]=(0,N.useState)(t?.freeformTagCounts||{}),[$e,Z]=(0,N.useState)(t?.brands||[]),[x,P]=(0,N.useState)(()=>{let _=t?.activeDealTag||e.query;return _&&_.toLowerCase()!=="everything"?_:null}),[Q,Vn]=(0,N.useState)(()=>Kv(t?.activeFreeformTags||t?.activeFreeformTag)),[jr,bi]=(0,N.useState)(f),[sc,ll]=(0,N.useState)(null),[at,Yr]=(0,N.useState)(!1),[il,Vr]=(0,N.useState)(""),[rl,Xr]=(0,N.useState)(""),[f1,g1]=(0,N.useState)(0),[Wt,dc]=(0,N.useState)(e.resultCount?parseInt(e.resultCount):12),[Xf,fc]=(0,N.useState)(!1),[m1,Qr]=(0,N.useState)(null),[gc,h1]=(0,N.useState)(!1),[mc,p1]=(0,N.useState)([0]),Kr=(0,N.useRef)(t?`${e.website||"tomsguide"}|${e.authorHandle||""}|${e.authorName||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}`:""),hc=(0,N.useRef)(t?`${e.website||"tomsguide"}|${e.authorHandle||""}|${e.authorName||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}|age-${e.editorialMaxAgeMonths||"none"}`:""),y1=(0,N.useRef)(e.website||"tomsguide"),pc=(0,N.useRef)(e.website||"tomsguide"),Qf=(0,N.useRef)(u.length>0),Kf=(0,N.useRef)(null),ol=(0,N.useRef)(new Map),v1=(0,N.useRef)({activeDealTag:String(x||"").trim().toLowerCase(),freeformTags:Pf(Kv(t?.activeFreeformTags||t?.activeFreeformTag)),discountAmount:e.discountAmount,priceRange:e.priceRange}),Xn=(0,N.useRef)(!1),De=(0,N.useRef)(!1),Ai=(0,N.useRef)(!1),Zf=(_,oe,ne=at?il:e.authorHandle,we=at?rl:e.authorName)=>[e.website||"tomsguide",ne||"",we||"",wt(e.region),String(_||"").trim().toLowerCase(),Pf(oe),e.priceRange,e.discountAmount,e.includeBuyingGuideProducts?"guides":"",e.includeReviewProducts?"reviews":"",e.includeDeals===!1?"no-deals":"deals",e.includeCollections===!1?"no-collections":"collections"].join("|"),Wf=(_,oe)=>{let ne=v1.current;return!!(e.compactEmbed&&t?.brands?.length&&String(_||"").trim().toLowerCase()===ne.activeDealTag&&Pf(oe)===ne.freeformTags&&e.priceRange===ne.priceRange&&e.discountAmount===ne.discountAmount)},Zr=(_,oe)=>{let ne=ol.current.get(Zf(_,oe));if(ne){Z(ne);return}if(Wf(_,oe)){Z(t?.brands||[]);return}},ul=()=>Xn.current||n?void 0:e.productSelection;(0,N.useEffect)(()=>{ll(null)},[e.authorName,e.authorHandle]),(0,N.useLayoutEffect)(()=>{let _=e.website||"tomsguide";pc.current!==_&&(pc.current=_,v(()=>[]),j(()=>[]),ze(()=>[]),bi(()=>[]),Ie(()=>[]),Be({}),nt(()=>[]),de({}),Z(()=>[]),ol.current.clear(),se({}),Yr(!1),Vr(""),Xr(""),ll(null),P(null),Vn([]),g(0),b(0),M(!1),fc(!1),Qr(null),Ai.current=!1,R(!0),y(!0))},[e.website]),(0,N.useEffect)(()=>{e.compactEmbed||typeof document>"u"||setTimeout(()=>{document.dispatchEvent(new CustomEvent("processArticle"))},100)},[m,Wt,e.query,x,Q]),(0,N.useEffect)(()=>{e.resultCount&&(dc(parseInt(e.resultCount,10)||12),Qr(null))},[e.resultCount]),(0,N.useEffect)(()=>{Qr(null)},[x,Q,e.authorHandle,e.authorName,e.discountAmount,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.priceRange,e.region,e.selectedBrands,e.sort]),(0,N.useEffect)(()=>{if(!t||!e.includeBuyingGuideProducts&&!e.includeReviewProducts||e.compactEmbed&&(De.current||e.refreshDealsOnViewport))return;let _=wt(e.region),oe=zf(t.allDeals||t.deals||[],_);if(_==="unavailable"){let It=oe.map(on=>(on.isBuyingGuideProduct||on.isReviewProduct)&&on.hawkModelName?{...on,hawkPricePending:!1}:on);ln(It,c,r),v(yn(It,ul(),c));return}let ne=al(oe,e.selectedBrands),we=Number(e.resultCount)||12,Ta=typeof navigator>"u"?void 0:navigator.connection,Ea=!Ta?.saveData&&!Ta?.effectiveType?.includes("2g")&&(!e.compactEmbed||!!e.warmInventory),Si=s?ne:t.reviewInventoryBaked?ne.slice(0,Wt+(Ea?we:0)):oe;if(!Si.some(It=>(It.isBuyingGuideProduct||It.isReviewProduct)&&It.hawkModelName))return;let sl=!0;return M(!0),vi(Si,_).then(It=>{if(!sl)return;let on=t.reviewInventoryBaked?lv(oe,It):It,Ir=al(on,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange}).map(lt=>(lt.isBuyingGuideProduct||lt.isReviewProduct)&&lt.hawkModelName?{...lt,hawkPricePending:!1}:lt);ln(Ir,c,r),v(yn(Ir,ul(),c)),Z(lt=>t?.brands?.length?lt:hf(lt,It))}).finally(()=>{sl&&M(!1)}),()=>{sl=!1}},[t,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.region,e.selectedBrands,e.discountAmount,e.priceRange,c,e.productSelection,Wt,e.resultCount,e.compactEmbed,e.warmInventory,e.refreshDealsOnViewport,x,Q]),(0,N.useEffect)(()=>{let _=!0,oe=new AbortController,ne=Ai.current,we=!e.refreshDealsOnViewport&&Xv({activeDealTag:x,activeFreeformTag:Q[0]||null,clickedAuthorOverride:at,compactEmbed:e.compactEmbed,compactInventoryExplored:De.current,compactLoadRequested:gc,initialActiveDealTag:t?.activeDealTag,initialActiveFreeformTag:t?.activeFreeformTag,reviewInventoryBaked:t?.reviewInventoryBaked}),Ta=u.length>0,Ea=!!(n&&e.compactEmbed&&!De.current),Si=!!(Ea&&e.warmInventory&&I.length===0&&m.length>0),sl=!!(we||e.compactEmbed&&Ta&&I.length===0&&!at&&!gc&&!De.current&&!e.refreshDealsOnViewport&&(!n||!e.warmInventory));return!sl&&!ne&&!Si&&(R(!0),e.compactEmbed&&De.current&&v([])),(async()=>{D(!1),M(!1);let on=m.length>0||St.length>0||Je.length>0||$e.length>0,Ir=sl;try{if(!e.authorName&&!e.authorHandle){v([]),j([]),bi([]),Ie([]),nt([]),Z([]),ll(null),P(null),Vn([]),y(!0);return}let lt=at?il:e.authorHandle,Jr=at?rl:e.authorName,$r=`${e.website||"tomsguide"}|${lt||""}|${Jr||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}`,yc=`${$r}|${e.compactEmbed&&x||""}|${e.compactEmbed?Q.join(","):""}|${e.compactEmbed&&De.current?"expanded":e.refreshDealsOnViewport?"viewport-refresh":"initial"}|lightweight-pages-${Ea?mc.join(","):"all"}|age-${e.editorialMaxAgeMonths||"none"}`,Jt=I,$f=St,U1=ev(Je,Q.length===1?Q[0]:null),eg=()=>({activeDealTag:x,activeFreeformTag:Q[0]||null,activeFreeformTags:Q,preserveFreeformTagSelection:!!(e.compactEmbed&&Q.length),authorHandle:lt,authorName:Jr,discountAmount:e.discountAmount,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,priceRange:e.priceRange,prioritiseCommercialProducts:r,productSelection:ul(),query:e.query,region:e.region,selectedArticleId:sc,selectedBrands:e.selectedBrands,sort:c,website:e.website}),tg=hc.current!==yc||Jt.length===0,Da=[],vc=!1,ng=(me,zt=!1)=>{if(!_||zt&&vc)return;let bn=al(me,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange});ln(bn,c,r);let Di=yn(bn,ul(),c);v(uc(Da,Di,c,r))};if(Ir){y(!1),R(!1);return}if(tg){let me=Kr.current.split("|")[0],zt=e.website||"tomsguide",bn=!!(Kr.current&&me!==zt);!ne&&!Si&&R(!!e.compactEmbed||!on),bn&&(Jt=[],$f=[],v(()=>[]),j(()=>[]),ze(()=>[]),bi(()=>[]),Ie(()=>[]),Be({}),nt(()=>[]),de({}),Z(()=>[]),se({}),Yr(!1),Vr(""),Xr(""),y(!0));let Di=Qf.current&&Kr.current===$r&&Jt.length===0&&!De.current;Qf.current=!1,!Di&&!on&&y(!0);let lo=Ba=>{if(!_||Ba.length===0)return;let fe=eg(),it=Cf(Ba,fe),{displayedDeals:io}=ic(it.targetArticles,fe,it.activeRegionCode,it.targetIso);io.length!==0&&(Da=io,v(Da),y(!1),e.includeReviewProducts&&Nf(it.targetArticles,e.website||"tomsguide",Math.min(Wt,Gf),c).then(()=>{if(!_||vc)return;let An=ic(it.targetArticles,fe,it.activeRegionCode,it.targetIso);Da=An.displayedDeals,v(Da);let xi=An.displayedDeals.filter(dt=>dt.isReviewProduct&&dt.hawkModelName).slice(0,Gf).map(dt=>String(dt.hawkModelName));vi(An.extractedDeals,it.activeRegionCode,void 0,Gf,xi,dt=>ng(dt,!0))}))};if(Jt=await _v({authorHandle:lt,authorName:Jr,fallbackAuthorName:e.authorName,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,articleCategory:e.compactEmbed&&x||void 0,articleTag:e.compactEmbed?U1:void 0,pageStarts:e.compactEmbed&&!e.warmInventory&&!De.current?[0]:void 0,reviewPageStarts:e.includeReviewProducts?Ea?mc:!e.compactEmbed||De.current?Qv:void 0:void 0,loadAllReviewPages:!Ea,throwOnFailure:!!(e.compactEmbed&&De.current),onBackgroundRefresh:Ba=>{if(!_||hc.current!==yc)return;let fe=tl(Ba,void 0,Number(e.editorialMaxAgeMonths)||0);j(fe),at||ze(fe),g1(it=>it+1)},onProgress:lo,signal:oe.signal,website:e.website}),!_)return;if(Jt=tl(Jt,void 0,Number(e.editorialMaxAgeMonths)||0),Kr.current=$r,hc.current=yc,Di&&Jt.length===0){y(!1);return}_&&(j(Jt),at||ze(Jt),R(!1))}let eo=eg(),G1=Cf(Jt,eo),{activeDealTag:xa,activeRegionCode:Ci,authorArticles:ag,activeFreeformTags:Ma,freeformTagCounts:lg,freeformTags:to,tagCounts:ig,tags:Ri,targetArticles:_a,targetIso:P1}=G1,Ti=e.compactEmbed&&x&&!xa?x:xa,Ei=e.compactEmbed&&Q.length>0&&Ma.length===0?Q:Ma,q1=Ri.length>0?Ri:Ti?[Ti]:Ri,F1=to.length>0?to:Ei.length>0?t?.freeformTags?.filter(me=>Ei.includes(me.handle))||[]:to,j1={...ig,...Ti&&!xa?{[Ti]:0}:{}},Y1={...lg,...Object.fromEntries(Ma.length===0?Ei.map(me=>[me,0]):[])},no=Zf(xa,Ma,lt,Jr),rg=[$r,Ci,xa||"",Ma.join(","),e.selectedBrands.join(","),e.priceRange,e.discountAmount,e.includeBuyingGuideProducts?"guides":"",e.includeReviewProducts?"reviews":"",e.includeDeals===!1?"no-deals":"deals",e.includeCollections===!1?"no-collections":"collections"].join("|"),dl=null,fl=null;if(!at){let me=Kf.current;if(me?.key===rg&&me.articleCount===_a.length)dl=me.deals.length,fl=me.authorCount;else{let zt=dv(_a,eo);dl=zt.deals.length,fl=zt.authorCount,Kf.current={articleCount:_a.length,authorCount:fl,deals:zt.deals,key:rg}}}$f=Ri;let Ht;_&&(Ie(q1),Be(j1),nt(F1),de(Y1)),e.includeReviewProducts&&await Nf(_a,e.website||"tomsguide",l?Math.min(_a.length,i):Wt,c);let{brands:bc,displayedDeals:Ac,extractedDeals:ao}=ic(_a,eo,Ci,P1),{merchants:V1,couponMap:wc,couponUrl:X1}=Yv(Ac,e.region);_&&se(wc);let Q1=me=>{!_||!Ht||(Ht={...Ht,couponMap:me},window.__AUTHOR_PRELOAD_DATA__=Ht,e.onDataLoaded&&e.onDataLoaded(Ht))};if(hv({couponMap:wc,couponUrl:X1,merchants:V1}).then(me=>{_&&(se(me),Q1(me))}),_){tg&&P(Ti),nS(Q,Ei)||Vn(Ei),bi(ag);let me=uc(Da,Ac,c,r);if(vc=!0,v(me),dl!==null){let zt=t?.totalDealCount||0,bn=Ea&&zt>dl;b(bn?zt:dl),g(bn?Math.max(t?.totalAuthorCount||0,fl||0):fl||0)}!ol.current.has(no)&&Wf(xa,Ma)&&ol.current.set(no,t?.brands||[]),Z(ol.current.get(no)||bc),y(!1),Ht=fv({allArticles:Jt,authorArticles:ag,bakeReviewInventory:a&&!e.compactEmbed,brands:bc,couponMap:wc,currentDealTag:xa,currentFreeformTags:Ma,displayedDeals:me,inventoryArticles:_a,options:eo,resultCount:e.resultCount,tagCounts:ig,tags:Ri,freeformTagCounts:lg,freeformTags:to,totalAuthorCount:fl??h,totalDealCount:dl??A}),window.__AUTHOR_PRELOAD_DATA__=Ht,e.onDataLoaded&&e.onDataLoaded(Ht)}if((e.includeBuyingGuideProducts||e.includeReviewProducts)&&Ci!=="unavailable"){let me=Wt,zt=l?ao.filter(fe=>fe.isReviewProduct&&fe.hawkModelName).slice(0,i).map(fe=>String(fe.hawkModelName)):[],bn=Ac.filter(fe=>(fe.isBuyingGuideProduct||fe.isReviewProduct)&&fe.hawkModelName).map(fe=>String(fe.hawkModelName));ao.some(fe=>(fe.isBuyingGuideProduct||fe.isReviewProduct)&&fe.hawkModelName)&&M(!0);let lo=vi(ao,Ci,void 0,s?void 0:e.includeReviewProducts?l?i:me:void 0,[...zt,...bn],ng).then(async fe=>{if(!_)return;let it=al(fe,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange}).map(dt=>(dt.isBuyingGuideProduct||dt.isReviewProduct)&&dt.hawkModelName?{...dt,hawkPricePending:!1}:dt);ln(it,c,r);let io=yn(it,ul(),c),An=uc(Da,io,c,r),xi=hf(bc,fe);if(ol.current.set(no,xi),v(An),Z(xi),s&&b(it.length),Ht){let dt=a&&!e.compactEmbed,og=l,ug=dt?ac(An,Number(e.resultCount)||12):og?An.slice(0,i):An,K1=og?await jv(ug):ug;if(!_)return;let Sc={...Ht,allDeals:K1,deals:An.slice(0,me),brands:xi,totalDealCount:s?it.length:Ht.totalDealCount};Ht=Sc,window.__AUTHOR_PRELOAD_DATA__=Sc,e.onDataLoaded&&e.onDataLoaded(Sc)}}).finally(()=>{_&&M(!1)}),Ba=ao.slice(me,me+(Number(e.resultCount)||12));e.includeReviewProducts&&e.warmInventory&&!s&&!ne&&Ba.some(fe=>fe.hawkModelName)&&lo.then(()=>{_&&vi(Ba,Ci)}),ne&&await lo}}catch(lt){_&&D(!0)}finally{_&&(y(!1),R(!1),fc(!1),Ai.current=!1)}})(),()=>{_=!1,oe.abort()}},[e.query,e.region,e.selectedBrands,e.website,e.resultCount,Wt,c,e.priceRange,e.discountAmount,x,Q,e.authorName,e.authorHandle,e.website,e.authorBioLength,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,s,a,l,i,r,n,mc,e.productSelection,e.compactEmbed,e.warmInventory,e.refreshDealsOnViewport,e.editorialMaxAgeMonths,sc,at,il,rl,f1,gc]);let Wr=e.website||"tomsguide",st=pc.current!==Wr,Ra=(0,N.useMemo)(()=>st?[]:y1.current===Wr&&t?.authors?t.authors:Lr(He.length>0?He:I,Wr),[I,Wr,He,t?.authors,st]),b1=at?il:e.authorHandle,A1=at?rl:e.authorName,w1=Ra.find(_=>_.handle===b1||_.fullName===A1),cl=He.length>0?He:I,If=(0,N.useMemo)(()=>{if(cl.length===0)return Ra;let _=wt(e.region),oe=an(_),ne=hi(Pr(cl,x),Q),we=Sf(Ra,ne,{activeRegionCode:_,targetIso:oe,selectedBrands:e.selectedBrands,priceRange:e.priceRange,discountAmount:e.discountAmount,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,website:e.website});return Yu(Ra,we)},[x,Q,Ra,cl,e.discountAmount,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.priceRange,e.region,e.selectedBrands]),S1=(0,N.useMemo)(()=>{if(st)return[];if(cl.length===0&&t?.authors?.length||e.compactEmbed&&!x&&Q.length===0&&t?.authors?.length)return Ra;let _=wt(e.region),oe=an(_),ne=hi(Pr(cl,x),Q).filter(we=>mi([we],{activeRegionCode:_,targetIso:oe,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,website:e.website}).length>0);return kr(If,ne)},[x,Q,cl,st,at,t?.authors?.length,e.compactEmbed,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.region,If,e.website]),Jf=(_,oe)=>{let ne=He.length>0?He:I.length>0?I:d;if(ne.length===0)return;let we=yv(ne,{authorHandle:_,authorName:oe,discountAmount:e.discountAmount,priceRange:e.priceRange,region:e.region,selectedBrands:e.selectedBrands,sort:c,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,prioritiseCommercialProducts:r,website:e.website,productSelection:void 0});ll(null),P(null),Vn([]),bi(we.authorArticles),Ie(we.tags),Be(we.tagCounts),nt(we.freeformTags),de(we.freeformTagCounts),Z(we.brands),v(we.deals),y(!1)},C1=()=>{!e.compactEmbed||!t||(v(yn(Uf(t.deals||t.allDeals||[],c,r),ul(),c)),Ie(t.tags||[]),Be(t.tagCounts||{}),nt(t.freeformTags||[]),de(t.freeformTagCounts||{}),Z(t.brands||[]),se(t.couponMap||{}),g(t.totalAuthorCount??t.authors?.length??0),b(t.totalDealCount??t.deals?.length??t.allDeals?.length??0))},R1=_=>{Xn.current=!0,De.current=!0,R(!0),at&&(il===_.handle||rl===_.fullName)?(e.compactEmbed&&t?C1():Jf(e.authorHandle,e.authorName),Yr(!1),Vr(""),Xr("")):(Jf(_.handle,_.fullName),Yr(!0),Vr(_.handle),Xr(_.fullName)),e.onQueryChange?.("")},T1=_=>{Xn.current=!0,De.current=!0,R(!0);let oe=x===_?null:_;Zr(oe,Q),P(oe),e.onQueryChange?.("")},E1=()=>{Xn.current=!0,De.current=!0,R(!0)},D1=()=>{Xn.current=!0,De.current=!0,R(!0),Zr(null,Q),P(null),e.onQueryChange?.("")},x1=_=>{Xn.current=!0,De.current=!0,R(!0);let oe=Q.some(ne=>ne.toLowerCase()===_.toLowerCase())?Q.filter(ne=>ne.toLowerCase()!==_.toLowerCase()):[...Q,_];Zr(x,oe),Vn(oe)},M1=()=>{Xn.current=!0,De.current=!0,R(!0),Zr(x,[]),Vn([])},_1=_=>{Xn.current=!0,De.current=!0,R(!0),ll(_)},B1=()=>{if(Ai.current)return;Ai.current=!0,fc(!0);let _=Wt+(e.resultCount?parseInt(e.resultCount,10):12);!!(n&&e.compactEmbed&&!De.current)&&I.length>0&&m.length<_&&p1(we=>{let Ta=Qv[we.length];return Ta===void 0?we:[...we,Ta]}),dc(we=>(Qr(we),we+(e.resultCount?parseInt(e.resultCount,10):12)));let ne=!!(t?.reviewInventoryBaked&&m.length>Wt);e.compactEmbed&&I.length===0&&!ne&&(R(!0),h1(!0))},wi=e.compactEmbed&&!e.refreshDealsOnViewport,N1=wi&&t?.tags?.length?t.tags:St,O1=wi&&t?.tags?.length?t.tagCounts||{}:rn,k1=wi&&!De.current&&t?.brands?.length?t.brands:$e,L1=wi&&t?.freeformTags?.length&&(!De.current||Q.length===1)?t.freeformTags:Je,H1=wi&&t?.freeformTags?.length&&(!De.current||Q.length===1)?t.freeformTagCounts||{}:X,z1=pv({enrichingBuyingGuides:T,error:w,loading:p,loadingMore:Xf,refreshingFeed:C});return{activeDealTag:x,activeFreeformTags:Q,airedaleBrands:st?[]:k1,airedaleTagCounts:st?{}:O1,airedaleTags:st?[]:N1,airedaleFreeformTagCounts:st?{}:H1,airedaleFreeformTags:st?[]:L1,allAuthorsList:S1,authorArticlesList:st?[]:jr,clickedAuthorOverride:at,couponMap:k,deals:st?[]:m,displayCount:Wt,error:w,enrichingBuyingGuides:T,effectiveAuthorProfile:st?void 0:w1,loading:p,loadingMore:Xf,loadMoreStartCount:m1,markProductSelectionInteracted:E1,hasMore:m.length>Wt||!!e.compactEmbed&&A>m.length,loadMore:B1,refreshingFeed:C,overriddenAuthorHandle:il,overriddenAuthorName:rl,selectedArticleId:sc,setActiveDealTag:P,clearDealTag:D1,clearFreeformTags:M1,selectArticle:_1,setDisplayCount:dc,setSelectedArticleId:ll,status:z1,toggleAuthorOverride:R1,toggleDealTag:T1,toggleFreeformTag:x1,totalAuthorCount:st?0:h,totalDealCount:st?0:A}}var aS=B(ft(),1);var Fr=B(ft(),1);function Zv(e){let[t,n]=(0,Fr.useState)(null),[a,l]=(0,Fr.useState)([]),[i,r]=(0,Fr.useState)(!1),[o,u]=(0,Fr.useState)(!1);return{close:()=>n(null),error:o,loading:i,merchant:t,open:async f=>{n(f),r(!0),u(!1),l([]);try{let d=Vv(f,e),m=await fetch(d.toString());if(!m.ok)throw new Error("API Error");l(mv(await m.json()))}catch(d){u(!0)}finally{r(!1)}},vouchers:a}}var je=B(O(),1);function lS(e){return new Set(e.map(t=>Array.isArray(t.authorName)?t.authorName[0]:t.authorName).map(t=>String(t||"").trim().toLowerCase()).filter(Boolean)).size}var iS=new Map,rS=()=>{};function Iv({data:e,editorBar:t,editorMode:n=!1,props:a,selectedDeals:l=iS,setSelectedDeals:i=rS}){let r=Zv(a.region),[o,u]=(0,Wv.useState)(new Set),c=p0[a.website||""]||"#1F69FF",s=a.backgroundColor?a.backgroundColor==="white"?"#ffffff":a.backgroundColor==="transparent"?"transparent":a.backgroundColor==="light_blue"?"#E7F0FF":void 0:void 0,f=Vu(a.authorHandle,a.authorName),d=Or(a),m=Fu(a),v=wa(m?"date_desc":a.sort,!d),A=!!(a.showReviewSort&&a.includeReviewProducts),b=a.showPriceDiscountFilters!==!1||A,h=!a.authorFullBleed,g=!e.clickedAuthorOverride,p=e.totalDealCount||e.deals.length,y=e.totalAuthorCount||lS(e.deals),C=e.status==="loading_inventory"||e.status==="refreshing_inventory"||e.status==="enriching_visible_cards",R=e.status==="loading_inventory"||(e.status==="refreshing_inventory"||e.status==="enriching_visible_cards")&&e.deals.length===0,M=!!(a.showReviewSort&&a.includeReviewProducts&&(e.status==="refreshing_inventory"||e.status==="enriching_visible_cards"))?"Loading and sorting available review products":e.status==="enriching_visible_cards"?"Adding live product images and prices":e.status==="refreshing_inventory"?"Updating products":`Loading ${a.website||"site"} authors and products`,w=j=>{e.markProductSelectionInteracted(),a.onBrandToggle?.(j)},D=j=>{e.markProductSelectionInteracted(),a.onBrandSelect?.(j)},k=j=>{e.markProductSelectionInteracted(),a.onPriceRangeChange?.(j)},se=j=>{e.markProductSelectionInteracted(),a.onDiscountAmountChange?.(j)},I=j=>{e.markProductSelectionInteracted(),a.onSortChange?.(j)};return(0,je.jsx)("div",{className:"tg-df-widget-host",style:{"--tg-df-blue":c.toUpperCase()==="#FFFFFF"?"#000000":c},"data-vizualizer-embed":"true","data-tg-df-full-bleed":a.authorFullBleed?"true":"false","data-tg-df-mobile-dropdowns":a.mobileDropdowns?"true":"false","data-tg-df-sticky-mobile-filters":a.stickyMobileFilters===!1?"false":"true",children:(0,je.jsxs)("div",{className:"tg-df-container article-body",style:a.backgroundColor?{backgroundColor:s}:void 0,children:[(a.showAuthorIdentity!==!1||a.showAuthorBio!==!1)&&(0,je.jsx)("div",{className:"tg-df-author-embed",style:{width:"100%",fontFamily:"inherit"},children:(0,je.jsx)("div",{className:"tg-df-author-section",style:{display:"block",opacity:1,overflow:"visible",background:"transparent",border:"none"},children:(0,je.jsx)(U0,{authorArticlesList:e.authorArticlesList,authorBioLength:a.authorBioLength,customBio:g?a.customBio:void 0,customHeaderKicker:a.customHeaderKicker,customHeaderTitle:a.customHeaderTitle,effectiveAuthorHandle:e.clickedAuthorOverride?e.overriddenAuthorHandle:a.authorHandle,effectiveAuthorName:e.clickedAuthorOverride?e.overriddenAuthorName:a.authorName,isReviewWidget:d,onBioChange:g?a.onBioChange:void 0,onHeaderKickerChange:a.onHeaderKickerChange,onHeaderTitleChange:a.onHeaderTitleChange,selectedProfile:e.effectiveAuthorProfile,showAuthorBio:a.showAuthorBio,showAuthorIdentity:a.showAuthorIdentity,showSocialButtons:a.showSocialButtons,stabilizeBio:f,authorCount:y,totalDealCount:p,website:a.website})})}),t,a.showCollectionsDropdown&&(0,je.jsx)(r0,{articles:e.authorArticlesList,authorHandle:a.authorHandle,authorName:a.authorName||a.author,onChange:e.selectArticle,selectedArticleId:e.selectedArticleId,shortenedHeadlines:a.shortenedHeadlines}),C&&(0,je.jsxs)("div",{role:"status","aria-live":"polite","aria-label":M,style:{alignItems:"center",display:"flex",justifyContent:"center",marginBottom:"16px",minHeight:"72px"},children:[(0,je.jsx)("span",{className:"tg-df-coupon-spinner","aria-hidden":"true",style:{borderWidth:"3px",height:"24px",width:"24px"}}),(0,je.jsxs)("span",{style:{color:"#4B5563",fontSize:"14px",marginLeft:"10px"},children:[M,"\u2026"]})]}),(0,je.jsx)(_0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleBrands:e.airedaleBrands,airedaleTagCounts:e.airedaleTagCounts,airedaleTags:e.airedaleTags,freeformTagCounts:e.airedaleFreeformTagCounts,freeformTags:e.airedaleFreeformTags,allAuthorsList:e.allAuthorsList,brands:a.brands,clickedAuthorOverride:e.clickedAuthorOverride,loading:e.loading,refreshing:e.refreshingFeed,onAuthorClick:e.toggleAuthorOverride,onBrandToggle:w,onFreeformTagClick:e.toggleFreeformTag,onTagClick:e.toggleDealTag,overriddenAuthorHandle:e.overriddenAuthorHandle,overriddenAuthorName:e.overriddenAuthorName,selectedBrands:a.selectedBrands,showAuthorRail:f&&a.showAuthorRail!==!1,showAuthorCounters:a.showAuthorCounters,showBrandRail:a.showBrandRail,showCategoryRail:a.showCategoryRail,showFreeformTagRail:a.showFreeformTagRail,website:a.website}),(0,je.jsx)(k0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleBrands:e.airedaleBrands,airedaleTagCounts:e.airedaleTagCounts,airedaleTags:e.airedaleTags,brands:a.brands,discountAmount:a.discountAmount,enabled:a.mobileDropdowns||h,freeformTagCounts:e.airedaleFreeformTagCounts,freeformTags:e.airedaleFreeformTags,onBrandSelect:D,onBrandToggle:w,onDiscountAmountChange:se,onFreeformTagClear:e.clearFreeformTags,onFreeformTagToggle:e.toggleFreeformTag,onPriceRangeChange:k,onReviewSortChange:I,onTagClear:e.clearDealTag,onTagClick:e.toggleDealTag,priceRange:a.priceRange,reviewSort:v,selectedBrands:a.selectedBrands||[],showCounters:a.showAuthorCounters,showBrandRail:a.showBrandRail,showCategoryRail:a.showCategoryRail,showFreeformTagRail:a.showFreeformTagRail,showPriceDiscountFilters:a.showPriceDiscountFilters,showReviewSort:A,includeScoredFirst:!d}),b&&(0,je.jsx)(L0,{airedaleBrands:e.airedaleBrands,airedaleTags:e.airedaleTags,discountAmount:a.discountAmount,hidden:!!e.selectedArticleId,onDiscountAmountChange:se,onPriceRangeChange:k,onReviewSortChange:I,priceRange:a.priceRange,reviewSort:v,showPriceDiscountFilters:a.showPriceDiscountFilters,showReviewSort:A,includeScoredFirst:!d}),(0,je.jsx)(i0,{articles:e.authorArticlesList,selectedArticleId:e.selectedArticleId}),(a.showCategoryRail!==!1||a.showFreeformTagRail!==!1||a.showBrandRail!==!1)&&(0,je.jsx)(a0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleTags:e.airedaleTags,freeformTags:e.airedaleFreeformTags,discountAmount:a.discountAmount,onBrandSelect:D,onBrandToggle:w,onDiscountAmountChange:se,onPriceRangeChange:k,onTagClear:e.clearDealTag,onFreeformTagClear:e.clearFreeformTags,onFreeformTagToggle:e.toggleFreeformTag,priceRange:a.priceRange,selectedBrands:a.selectedBrands||[]}),(0,je.jsx)(w0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,couponMap:e.couponMap,deals:e.deals,displayCount:e.displayCount,editorMode:n,error:e.error,expandedDealIds:o,hasMore:e.hasMore,hideHawkPrices:a.hideHawkPrices,loading:R,loadingMore:e.loadingMore,loadMoreStartCount:e.loadMoreStartCount,onDescriptionToggle:j=>u(He=>{let ze=new Set(He);return ze.has(j)?ze.delete(j):ze.add(j),ze}),onLoadMore:e.loadMore,onOpenVouchers:r.open,query:a.query,recentDealsOnly:!!(a.includeDeals&&!a.includeCollections&&!a.includeBuyingGuideProducts&&!a.includeReviewProducts),selectedBrands:a.selectedBrands,selectedDeals:l,setSelectedDeals:i,website:a.website}),(0,je.jsx)(G0,{error:r.error,loading:r.loading,merchant:r.merchant,onClose:r.close,vouchers:r.vouchers})]})})}var $v=B(O(),1),Jv=e=>{let t={...e,editorMode:!1},n=qf(t);return(0,$v.jsx)(Iv,{data:n,props:t})};var U={authorBioLength:"short",authorFullBleed:!0,authorHandle:"all-authors",authorName:"All authors",backgroundColor:"transparent",customBio:"",customHeaderKicker:void 0,customHeaderTitle:void 0,discountAmount:"0",editorMode:!1,editorialMaxAgeMonths:"12",includeBuyingGuideProducts:!0,includeCollections:!0,includeDeals:!0,includeReviewProducts:!1,mobileDropdowns:!0,stickyMobileFilters:!0,offerType:"",preloadReviewInventory:!1,lightweightReviewDelivery:!1,hideHawkPrices:!1,prioritiseCommercialProducts:!0,priceRange:"all",productSelection:"latest",query:"Everything",region:"auto",resultCount:"12",retailer:"",selectedBrands:[],showAuthorBio:!0,showAuthorCounters:!0,showAuthorIdentity:!0,showAuthorRail:!0,showBrandRail:!0,showCategoryRail:!0,showCollectionsDropdown:!1,showPriceDiscountFilters:!0,showReviewSort:!1,showSocialButtons:!0,showCountdown:!1,showHeaderDetails:!0,showFreeformTagRail:!0,sort:"date_desc",viewMode:"author",website:"whowhatwear",widgetSubtitle:"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.",widgetTitle:"Top Deals Handpicked by Our Editors"};function We(e,t){return typeof e=="string"?e:t}function Ae(e,t){return typeof e=="boolean"?e:t}function e1(e){let t=e||{},n=t.authorBioLength==="long"?"long":"short",a=t.productSelection==="mix"?"mix":"latest";return{...U,...t,authorBioLength:n,authorFullBleed:Ae(t.authorFullBleed,U.authorFullBleed),authorHandle:We(t.authorHandle,U.authorHandle),authorName:We(t.authorName,U.authorName),backgroundColor:We(t.backgroundColor,U.backgroundColor),customBio:We(t.customBio,U.customBio),customHeaderKicker:typeof t.customHeaderKicker=="string"?t.customHeaderKicker:void 0,customHeaderTitle:typeof t.customHeaderTitle=="string"?t.customHeaderTitle:void 0,discountAmount:We(t.discountAmount,U.discountAmount),editorMode:Ae(t.editorMode,U.editorMode),editorialMaxAgeMonths:We(t.editorialMaxAgeMonths,U.editorialMaxAgeMonths),includeBuyingGuideProducts:Ae(t.includeBuyingGuideProducts,U.includeBuyingGuideProducts),includeCollections:Ae(t.includeCollections,U.includeCollections),includeDeals:Ae(t.includeDeals,U.includeDeals),includeReviewProducts:Ae(t.includeReviewProducts,U.includeReviewProducts),mobileDropdowns:Ae(t.mobileDropdowns,U.mobileDropdowns),stickyMobileFilters:Ae(t.stickyMobileFilters,U.stickyMobileFilters),offerType:We(t.offerType,U.offerType),preloadReviewInventory:Ae(t.preloadReviewInventory,U.preloadReviewInventory),lightweightReviewDelivery:Ae(t.lightweightReviewDelivery,U.lightweightReviewDelivery),hideHawkPrices:Ae(t.hideHawkPrices,U.hideHawkPrices),prioritiseCommercialProducts:Ae(t.prioritiseCommercialProducts,U.prioritiseCommercialProducts),priceRange:We(t.priceRange,U.priceRange),productSelection:a,query:We(t.query,U.query),region:We(t.region,U.region),resultCount:We(t.resultCount,U.resultCount),retailer:We(t.retailer,U.retailer),selectedBrands:Array.isArray(t.selectedBrands)?t.selectedBrands.filter(l=>typeof l=="string"):[],showAuthorBio:Ae(t.showAuthorBio,U.showAuthorBio),showAuthorCounters:Ae(t.showAuthorCounters,U.showAuthorCounters),showAuthorIdentity:Ae(t.showAuthorIdentity,U.showAuthorIdentity),showAuthorRail:Ae(t.showAuthorRail,U.showAuthorRail),showBrandRail:Ae(t.showBrandRail,U.showBrandRail),showCategoryRail:Ae(t.showCategoryRail,U.showCategoryRail),showCollectionsDropdown:Ae(t.showCollectionsDropdown,U.showCollectionsDropdown),showPriceDiscountFilters:Ae(t.showPriceDiscountFilters,U.showPriceDiscountFilters),showReviewSort:Ae(t.showReviewSort,U.showReviewSort),showSocialButtons:Ae(t.showSocialButtons,U.showSocialButtons),showCountdown:Ae(t.showCountdown,U.showCountdown),showHeaderDetails:Ae(t.showHeaderDetails,U.showHeaderDetails),showFreeformTagRail:Ae(t.showFreeformTagRail,U.showFreeformTagRail),sort:We(t.sort,U.sort),viewMode:We(t.viewMode,U.viewMode),website:We(t.website,U.website),widgetSubtitle:We(t.widgetSubtitle,U.widgetSubtitle),widgetTitle:We(t.widgetTitle,U.widgetTitle)}}function t1(e,t={}){return{...e,brands:t.brands,shortenedHeadlines:t.shortenedHeadlines}}function n1(e,t){try{window.hawk?.analytics?.freyr?.push({name:e,data:t}),window.dispatchEvent(new CustomEvent("hawk-analytics-update")),window.freyr?.cmd.push(()=>{window.freyr?.pushAndUpdate?.(e,t)})}catch{}}function a1(){window.dataLayer=window.dataLayer||[],window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.hawk=window.hawk||{},window.hawk.analytics=window.hawk.analytics||{},window.hawk.analytics.freyr=window.hawk.analytics.freyr||[],window.freyr=window.freyr||{cmd:[]},window.freyr.cmd=window.freyr.cmd||[];let e="https://freyr.futurecdn.net/freyr.js",t=window.location.hostname;if(!(window.navigator.webdriver||window.navigator.userAgent.includes("Headless"))&&!!t&&t!=="localhost"&&t!=="127.0.0.1"&&!t.includes("run.app")&&!document.querySelector(`script[src="${e}"]`)){let l=document.createElement("script");l.src=e,l.async=!0,document.head.appendChild(l)}}function oS(e){let t=Number.parseFloat(e.rawPrice||e.price)||null,n=Number.parseFloat(e.rawMsrp||e.msrp)||null;return{product:{primary:{id:e.externalProductId||e.id||e.matchId||null,name:e.productName||e.title||"",type:"deal",price:t,previousPrice:n,currency:e.isoCurrencyCode||e.currency||"USD",preorder:!1,labels:e.modelBrand||e.brand?[{type:"brand",value:e.modelBrand||e.brand}]:[],link:e.url||null,originalLink:e.originalLink||e.url||null,revenueId:e.revenueId||null,startTime:null,endTime:null,voucherCode:null,voucherAudience:null,voucherPercentageSaving:n&&t&&n>t?Math.round((1-t/n)*100):null,voucherMoneySaving:null,voucherType:null,offerExclusive:!1,offerScope:null,globalId:e.productKey||null,inStock:e.inStock!==!1,contractProvider:null,contractMinutes:null,contractTexts:null,contractData:null,contractLength:null,contractMonthlyPrice:null,contractCurrency:e.isoCurrencyCode||e.currency||"USD"}},merchant:{id:e.merchantId||null,name:e.merchant||"Retailer",url:e.merchantUrl||null,network:e.merchantNetwork||null},model:{id:e.modelId||null,brand:e.modelBrand||e.brand||null,name:e.productName||e.title||"",parent:e.modelParent||null}}}var uS=new Set(["subid1","ascsubtag","clickref","u1"]);function cS(e){return e.match(/(?:^|[-_])(\d{10,})(?=$|[-_])/)?.[1]||null}function sS(e){let t=new Set,n=a=>{if(!a||t.has(a))return null;t.add(a);let l;try{l=new URL(a)}catch{return null}for(let[i,r]of l.searchParams)if(uS.has(i.toLowerCase())){let o=cS(r);if(o)return o}for(let i of l.searchParams.values())if(/^https?:\/\//i.test(i)){let r=n(i);if(r)return r}return null};return n(e)}function l1({areaClicked:e,clickType:t,deals:n,index:a,queryName:l}){let i={event:"hawkEvent",category:"Affiliates",affiliate:{action:{type:t,id:"author-widget",event:t==="appeared"?"viewed":"Click from",timestamp:Date.now()},component:{flag:"Editor",product:"deals",category:"Signal Deal Finder Author widget",type:t==="appeared"?"review":"signal product",label:l||n[0]?.productName||n[0]?.title||"",index:a??-1,linkCount:n.length,blockLayout:"",areaClicked:e}},products:n.slice(0,20).map(oS),reviews:[],_clear:!0,"gtm.uniqueEventId":Date.now()%1e4};n1("hawkEvent",i)}function i1(e,t){e.length&&l1({areaClicked:"",clickType:"appeared",deals:e,index:null,queryName:t})}function r1(e,t){if(e?.deals?.length)return e.deals;let n=Number(t)||12;return e?.allDeals?.slice(0,n)||[]}function o1(e){e.addEventListener("click",t=>{let n=t.target;if(!(n instanceof Element))return;let a=n.closest("a[data-fcaw-affiliate-link][href], a.hawk-affiliate-link-deal-widget[href], a.hawk-affiliate-link-container[href], a.hawk-affiliate-link-deal-button[href]"),l=n.closest(".tg-df-card"),i=!!(!a?.dataset.fcawRevenueId&&(a?.hasAttribute("data-hl-processed")||a?.hasAttribute("data-fcaw-hawklinks-requested")));a&&l&&!i&&l1({areaClicked:"Signal Product Card",clickType:"retailer",deals:[{brand:l.dataset.brand,currency:l.dataset.currency,id:l.dataset.dealId,merchant:a.dataset.merchant||l.dataset.merchant,merchantId:a.dataset.merchantId||l.dataset.merchantId,modelId:a.dataset.modelId||l.dataset.modelId,productKey:a.dataset.productKey||l.dataset.productKey,rawMsrp:l.dataset.previousPrice,rawPrice:l.dataset.price,originalLink:a.dataset.fcawOriginalLink||a.href,revenueId:a.dataset.fcawRevenueId||sS(a.href),title:l.dataset.productName,url:a.href}],index:Array.from(e.querySelectorAll(".tg-df-card")).indexOf(l)});let r=n.closest('button, select, [role="button"]');r&&n1("elementInteraction",{element:{action:"click",id:r.id||void 0,class:r.className||void 0,name:r.getAttribute("name")||r.getAttribute("aria-label")||void 0,text:r.textContent?.trim()||void 0,label:r.getAttribute("aria-label")||void 0}})})}var Vf=B(O(),1),dS='fc-author-commerce-widget[data-fcaw-version="1"]',fS="(max-width: 599px)",gS=600,mS='[class*="membership-expandable-banner"]',hS=/^jump\s+to\b/i,jf="data-fcaw-jump-navigation-suppressed",pS=50,yS=1e4,vS=["[data-sticky-header]","[data-header-sticky]",'[role="banner"]',".navigation__container",".site-header",".main-header",".header__container",'[class*="membership-expandable-banner"] [class*="skinny-banner"]','[class*="membership-expandable-banner"] [id="skinnyBanner"]',"nav","header"].join(","),bS=`  :host {    display: block !important;    width: 100% !important;    min-width: 0 !important;    max-width: none !important;    isolation: isolate !important;    contain: style !important;  }  :host([data-fcaw-full-bleed="true"]) {    width: min(      1200px,      var(--fcaw-viewport-width, 100vw)    ) !important;    max-width: 1200px !important;    margin-left: var(      --fcaw-full-bleed-offset,      calc(50% - min(600px, 50vw))    ) !important;    margin-right: 0 !important;    position: relative !important;  }  :host([data-fcaw-full-bleed="true"]) #tg-df-spreadsheet-filters {    width: min(      1500px,      var(--fcaw-viewport-width, 100vw)    ) !important;    max-width: 1500px !important;    margin-left: calc(      (        100% -        min(1500px, var(--fcaw-viewport-width, 100vw))      ) / 2    ) !important;    margin-right: 0 !important;  }  :host, :host *, :host *::before, :host *::after {    box-sizing: border-box;  }`,Ff=new WeakMap;function AS(){if(document.querySelector("style[data-fcaw-jump-navigation-protection]"))return;let e=document.createElement("style");e.setAttribute("data-fcaw-jump-navigation-protection",""),e.textContent=`    [${jf}="true"] {      opacity: 0 !important;      pointer-events: none !important;      visibility: hidden !important;    }  `,document.head.appendChild(e)}function wS(){let e=Array.from(document.querySelectorAll("span, p, div, strong, b")).filter(n=>n.childElementCount===0&&hS.test(n.textContent?.trim()||"")),t=new Set;for(let n of e)for(let a=n.parentElement;a&&a!==document.body;a=a.parentElement)if(getComputedStyle(a).position==="sticky"){t.add(a);break}return[...t]}function SS(e,t,n){let a=Ff.get(e)||new Set;n?a.add(t):a.delete(t),a.size>0?(Ff.set(e,a),e.setAttribute(jf,"true")):(Ff.delete(e),e.removeAttribute(jf))}function CS(e){if(e.dataset.fcawFullBleed!=="true"||typeof IntersectionObserver>"u")return;let t=wS().filter(a=>!a.contains(e));if(t.length===0)return;AS(),new IntersectionObserver(([a])=>{t.forEach(l=>SS(l,e,a.isIntersecting))},{threshold:0}).observe(e)}function RS({host:e,initialData:t,initialProps:n}){let[a]=(0,Lt.useState)(d1),l=DS(t,a),[i,r]=(0,Lt.useState)(n.query),[o,u]=(0,Lt.useState)(n.selectedBrands),[c,s]=(0,Lt.useState)(n.priceRange),[f,d]=(0,Lt.useState)(n.discountAmount),[m,v]=(0,Lt.useState)(n.sort),[A,b]=(0,Lt.useState)(!1),h=!!(A&&n.compactEmbed&&n.includeDeals!==!1),g=(0,Lt.useRef)(!1);return(0,Lt.useEffect)(()=>{let p=()=>{g.current||(g.current=!0,i1(r1(l,n.resultCount),n.query))};if(typeof IntersectionObserver>"u"){p();return}let y=new IntersectionObserver(([C])=>{C?.isIntersecting&&(p(),y.disconnect())},{threshold:.1});return y.observe(e),()=>y.disconnect()},[e,l,n.query]),(0,Lt.useEffect)(()=>{if(typeof IntersectionObserver>"u"){b(!0);return}let p=new IntersectionObserver(([y])=>{y?.isIntersecting&&(b(!0),p.disconnect())},{rootMargin:"800px 0px"});return p.observe(e),()=>p.disconnect()},[e]),(0,Vf.jsx)(Jv,{...n,region:a||"unavailable",initialData:l,warmInventory:A,refreshDealsOnViewport:h,query:i,selectedBrands:o,priceRange:c,discountAmount:f,sort:m,editorMode:!1,onQueryChange:r,onBrandSelect:u,onBrandToggle:p=>u(y=>y.includes(p)?y.filter(C=>C!==p):[...y,p]),onPriceRangeChange:s,onDiscountAmountChange:d,onSortChange:v})}function TS(e){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${e}=([^;]*)`));return t?decodeURIComponent(t[1]):void 0}catch{return}}function cc(e){let n=String(e||"").trim().toUpperCase().replace("_","-").split("-").at(-1);return n==="UK"?"GB":["US","GB","AU","CA","DE","FR","IT","ES","NL"].includes(n||"")?n:void 0}function d1(){let e=new URLSearchParams(window.location.search).get("area");return cc(e)||cc(TS("FTR_Country_Code"))||cc(document.documentElement.getAttribute("data-locale"))||cc(window.navigator.language)}function u1(e,t){let n=e.querySelector(t);if(n?.textContent)try{return JSON.parse(n.textContent)}catch(a){console.warn("Author widget configuration could not be parsed.",a);return}}function ES(e){return e?.reviewInventoryFormat!==nv||!e.allDeals?e:{...e,allDeals:av(e.allDeals)}}function DS(e,t){let n=t?e?.regionalDealManifests?.[t]:void 0;if(!n)return e;let a=e?.regionalDealRailData?.[t];return{...e,allDeals:void 0,deals:n,...a}}function c1(e){e.querySelectorAll("a[href]").forEach(t=>{(t.hasAttribute("data-fcaw-affiliate-link")||t.classList.contains("hawk-affiliate-link-deal-widget")||t.classList.contains("hawk-affiliate-link-container")||t.classList.contains("hawk-affiliate-link-deal-button"))&&(t.rel="sponsored nofollow noopener")})}function xS(e){let t=e.closest(".tg-df-card"),n=t?.dataset.fcawRevenueId||e.dataset.fcawRevenueId;if(n)return n;let a=[window.location.href,t?.dataset.productName||"",t?.dataset.merchant||"",t?.dataset.modelId||"",new Date().toDateString(),"tomsguide"].join("|"),l=0;for(let r=0;r<a.length;r+=1)l=(l<<5)-l+a.charCodeAt(r),l|=0;let i=String(Math.abs(l));for(;i.length<19;)l=(l<<5)-l+i.length,l|=0,i+=String(Math.abs(l));return i=i.slice(0,19),t&&(t.dataset.fcawRevenueId=i),i}function MS(e){let t=e.dataset.fcawOriginalLink||e.href;if(!t.includes("hawk-custom-tracking"))return!1;let n=d1();if(!n)return!1;let a=xS(e);return e.dataset.fcawOriginalLink=t,e.dataset.fcawRevenueId=a,e.href=t.replaceAll("hawk-custom-tracking",`tomsguide-${n.toLowerCase()}-${a}`),e.setAttribute("data-fcaw-hawklinks-requested","true"),!0}function _S(){return!!window.hawklinks?.version}function BS(e){let t=!1,n,a,l=()=>Array.from(e.querySelectorAll(".article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-deal-widget[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested]), .article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-container[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested]), .article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-deal-button[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested])")),i=()=>{t=!1;let u=l();if(u.length===0)return;let c=u.filter(s=>!MS(s));if(c.length!==0){if(!_S()){let s=Date.now();a??=s,!n&&s-a<yS&&(n=window.setTimeout(()=>{n=void 0,r()},pS));return}a=void 0,c.forEach(s=>s.setAttribute("data-fcaw-hawklinks-requested","true")),document.dispatchEvent(new CustomEvent("processArticle",{detail:{element:e}}))}},r=()=>{t||(t=!0,window.setTimeout(i,0))},o=new MutationObserver(r);return o.observe(e,{attributes:!0,attributeFilter:["href"],childList:!0,subtree:!0}),r(),()=>{o.disconnect(),n&&window.clearTimeout(n)}}function NS(e){if(e.dataset.fcawFullBleed!=="true")return;let t=()=>{let n=document.documentElement.clientWidth||window.innerWidth,a=Math.min(1200,n),l=Math.max(0,(n-a)/2),i=e.parentElement?.getBoundingClientRect().left||0;e.style.setProperty("--fcaw-full-bleed-offset",`${l-i}px`),e.style.setProperty("--fcaw-viewport-width",`${n}px`)};t(),window.addEventListener("resize",t,{passive:!0}),typeof ResizeObserver<"u"&&e.parentElement&&new ResizeObserver(t).observe(e.parentElement)}function OS(e){let t=window.matchMedia(fS),n=!1,a=new Set,l=new Map,i,r=()=>t.matches||e.getBoundingClientRect().width<gS,o=()=>{n||(n=!0,window.requestAnimationFrame(s))},u=()=>{if(typeof MutationObserver>"u")return;let f=new Set(Array.from(document.querySelectorAll(mS)));l.forEach((d,m)=>{f.has(m)&&m.isConnected||(d.disconnect(),l.delete(m))}),f.forEach(d=>{if(l.has(d))return;let m=new MutationObserver(o);m.observe(d,{attributes:!0,attributeFilter:["class","style"],childList:!0,subtree:!0}),l.set(d,m)})},c=f=>{let d=new Set(f);a.forEach(m=>{d.has(m)||(i?.unobserve(m),m.removeEventListener("transitionend",o),a.delete(m))}),f.forEach(m=>{a.has(m)||(i?.observe(m),m.addEventListener("transitionend",o),a.add(m))})},s=()=>{if(n=!1,u(),!r()){c([]),e.style.removeProperty("--fcaw-mobile-sticky-offset");return}let f=Number.parseFloat(getComputedStyle(e).getPropertyValue("--fcaw-publisher-sticky-offset"));if(Number.isFinite(f)&&f>=0){c([]),e.style.setProperty("--fcaw-mobile-sticky-offset",`${f}px`);return}let d=Array.from(document.querySelectorAll(vS)).filter(v=>{if(v.contains(e))return!1;let A=getComputedStyle(v).position;return A==="fixed"||A==="sticky"});c(d);let m=d.reduce((v,A)=>{let b=A.getBoundingClientRect();return b.top>2||b.bottom<=0||b.height<=0||b.height>window.innerHeight*.5?v:Math.max(v,b.bottom)},0);e.style.setProperty("--fcaw-mobile-sticky-offset",`${Math.ceil(m)}px`)};return typeof ResizeObserver<"u"&&(i=new ResizeObserver(o),i.observe(e)),s(),window.addEventListener("scroll",o,{capture:!0,passive:!0}),window.addEventListener("resize",o,{passive:!0}),t.addEventListener?.("change",o),()=>{window.removeEventListener("scroll",o,!0),window.removeEventListener("resize",o),t.removeEventListener?.("change",o),i?.disconnect(),a.forEach(f=>f.removeEventListener("transitionend",o)),a.clear(),l.forEach(f=>f.disconnect()),l.clear()}}function kS(e){if(e.dataset.fcawEnhanced==="true")return;let t=u1(e,"script[data-fcaw-config]");if(!t)return;let n={...t1(e1(t),{brands:t.brands,shortenedHeadlines:t.shortenedHeadlines}),compactEmbed:t.compactEmbed,editorMode:!1,warmInventory:t.warmInventory},a=u1(e,"script[data-fcaw-preload]"),l=ES(a),i=e.querySelector("[data-fcaw-fallback]");if(!i)return;NS(e),CS(e),n.stickyMobileFilters!==!1&&OS(e),c1(i);let r=e.shadowRoot||e.attachShadow({mode:"open"}),o=e.querySelector(":scope > style[data-fcaw-host-protection]");if(o&&r.appendChild(o),!r.querySelector("style[data-fcaw-shadow-protection]")){let c=document.createElement("style");c.setAttribute("data-fcaw-shadow-protection",""),c.textContent=bS,r.appendChild(c)}i.querySelectorAll(":scope > style").forEach(c=>{r.appendChild(c)});let u=document.createElement("div");for(u.setAttribute("data-fcaw-mount","");i.firstChild;)u.appendChild(i.firstChild);i.remove(),r.appendChild(u),e.dataset.fcawEnhanced="true",a1(),e.dataset.fcawAnalyticsReady="true",o1(r),BS(r),(0,s1.createRoot)(u).render((0,Vf.jsx)(RS,{host:e,initialData:l,initialProps:n})),window.setTimeout(()=>c1(r),0)}function Yf(){document.querySelectorAll(dS).forEach(kS)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Yf,{once:!0}):Yf();new MutationObserver(Yf).observe(document.documentElement,{childList:!0,subtree:!0});})();/*! Bundled license information:react/cjs/react.production.js:  (**   * @license React   * react.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)scheduler/cjs/scheduler.production.js:  (**   * @license React   * scheduler.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react-dom/cjs/react-dom.production.js:  (**   * @license React   * react-dom.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react-dom/cjs/react-dom-client.production.js:  (**   * @license React   * react-dom-client.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react/cjs/react-jsx-runtime.production.js:  (**   * @license React   * react-jsx-runtime.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)*/</script></div><ul><li><a href="#main"><strong>Back to top ^</strong></a></li></ul><h2 class="article-body__section" id="section-black-friday-gaming-mouse-deals-in-the-uk"><span>Black Friday gaming mouse deals in the UK</span></h2><h2 id="where-are-the-best-black-friday-gaming-keyboard-mouse-and-controller-deals-in-the-uk">Where are the best Black Friday gaming keyboard, mouse, and controller deals in the UK?</h2><ul><li><strong>Amazon: </strong><a href="https://www.amazon.co.uk/s?k=gaming+mice&crid=LB80KGTDLNUC&sprefix=gaming+mice%2Caps%2C142&ref=nb_sb_noss_1" target="_blank">Big discounts on top-brand gaming mice</a></li><li><strong>Overclockers:</strong> <a href="https://www.overclockers.co.uk/peripherals/mice/gaming-mice" target="_blank">Over 100 gaming mice to choose from</a></li><li><strong>Scan:</strong> <a href="https://www.scan.co.uk/search?q=gaming+mice" target="_blank">Gaming mice from just £18</a></li><li><strong>Box: </strong><a href="https://box.co.uk/gaming-mice" target="_blank">Gaming mice from Asus, Logitech, and Razer</a></li><li><strong>Currys:</strong> <a href="https://www.currys.co.uk/search?q=gaming%20mice" target="_blank">Mice from as little as £15</a></li><li><strong>Argos: </strong><a href="https://www.argos.co.uk/search/gaming-mice/?clickOrigin=searchbar:search:term:gaming+mice" target="_blank">Good prices on budget to high-end mice</a></li></ul><div class="product"><a data-dimension112="a8b4b2ac-cd64-11f1-b0ff-df14948e07b9" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="£22.99" href="https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1401px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="qgFqUinn2HCKHEThJ47QpC" name="1636734797.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC-1920-80.jpg" mos="" align="middle" fullscreen="" width="1401" height="1401" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/" target="_blank" rel="nofollow" data-dimension112="a8b4b2ac-cd64-11f1-b0ff-df14948e07b9" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="£22.99">G203 | Wired: was £30.99 now £22.99</a></strong><br>Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.</p><p><strong>Key specs: Wired | 8,000 DPI | Right-handed</strong><a class="view-deal button" href="https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/" target="_blank" rel="nofollow" data-dimension112="a8b4b2ac-cd64-11f1-b0ff-df14948e07b9" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="£22.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4b45a-cd64-11f1-8c43-2d4d930869c9" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="£69.97" href="https://www.amazon.co.uk/Corsair-SABRE-Ultralight-Wireless-Gaming/dp/B0FPDBK2M6" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="4AaJcaYRutRHqs8C5qjfye" name="Sabre V2 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4AaJcaYRutRHqs8C5qjfye-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Corsair-SABRE-Ultralight-Wireless-Gaming/dp/B0FPDBK2M6" target="_blank" rel="nofollow" data-dimension112="a8b4b45a-cd64-11f1-8c43-2d4d930869c9" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="£69.97">Sabre V2 Pro: was £89.99 now £69.97</a></strong><br>Getting a <a href="https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/" target="_blank">92% from our Jacob Fox</a> last year, this ultra-light gaming mouse is a bit of a beast. It's light, sturdy and comes with a great sensor too. </p><p><strong>Key specs: 33K sensor | Wireless | 36 g weight | 8,000 Hz</strong><a class="view-deal button" href="https://www.amazon.co.uk/Corsair-SABRE-Ultralight-Wireless-Gaming/dp/B0FPDBK2M6" target="_blank" rel="nofollow" data-dimension112="a8b4b45a-cd64-11f1-8c43-2d4d930869c9" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="£69.97">View Deal</a></p></div><div class="product"><a data-dimension112="040d729c-cd6a-11f1-8eaa-133f6273298d" data-action="Deal Block" data-label="Viper V3 Pro SE | Wireless" data-dimension48="Viper V3 Pro SE | Wireless" data-dimension25="£69.97" href="https://www.amazon.co.uk/Razer-Viper-Pro-Ultra-lightweight-lightweight/dp/B0FT8DX8CD" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1509px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="xR8QJpjHGx27FS3pZnYBj7" name="1790601520.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xR8QJpjHGx27FS3pZnYBj7-1920-80.jpg" mos="" align="middle" fullscreen="" width="1509" height="1509" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Razer-Viper-Pro-Ultra-lightweight-lightweight/dp/B0FT8DX8CD" target="_blank" rel="nofollow" data-dimension112="040d729c-cd6a-11f1-8eaa-133f6273298d" data-action="Deal Block" data-label="Viper V3 Pro SE | Wireless" data-dimension48="Viper V3 Pro SE | Wireless" data-dimension25="£69.97">Viper V3 Pro SE | Wireless: was £99.99 now £69.97</a></strong><br>Razer doesn't play around with its compact Viper line-up. The V3 Pro SE is pretty light, feels great in hand, and tracks your movement like any other high-end mouse. This is identical to the standard Viper V3 Pro except that it only comes with a 1,000 Hz dongle out of the box, and you need to purchase a separate dongle if you want battery sapping 8K polling. It's still top-tier and a lot cheaper than the newer V4 Pro now.</p><p><strong>Key specs: 6 buttons | 35K DPI | 8,000 Hz | 70 g</strong><a class="view-deal button" href="https://www.amazon.co.uk/Razer-Viper-Pro-Ultra-lightweight-lightweight/dp/B0FT8DX8CD" target="_blank" rel="nofollow" data-dimension112="040d729c-cd6a-11f1-8eaa-133f6273298d" data-action="Deal Block" data-label="Viper V3 Pro SE | Wireless" data-dimension48="Viper V3 Pro SE | Wireless" data-dimension25="£69.97">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4b3ba-cd64-11f1-877c-7bc99d0c542b" data-action="Deal Block" data-label="Aerox 3 | Wireless" data-dimension48="Aerox 3 | Wireless" data-dimension25="£86.40" href="https://www.amazon.co.uk/SteelSeries-Aerox-Wireless-TrueMove-Optical/dp/B0GNMGXRF8/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1433px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="43md8LJJA69Nb4NXj4Aq6f" name="1790601815.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/43md8LJJA69Nb4NXj4Aq6f-1920-80.jpg" mos="" align="middle" fullscreen="" width="1433" height="1433" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/SteelSeries-Aerox-Wireless-TrueMove-Optical/dp/B0GNMGXRF8/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4b3ba-cd64-11f1-877c-7bc99d0c542b" data-action="Deal Block" data-label="Aerox 3 | Wireless" data-dimension48="Aerox 3 | Wireless" data-dimension25="£86.40">Aerox 3 | Wireless: was £99.99 now £86.40</a></strong><br>The SteelSeries Aerox 3 might be lightweight with its honeycombed design, but it's certainly not light on features. With a 200-hour battery life, dual connectivity, and AquaBarrier protection to ensure water, dust and dirt resistance, this is a mouse designed to take some abuse and keep on trucking.</p><p><strong>Key specs: Wireless | 18,000 DPI | Right-handed</strong><a class="view-deal button" href="https://www.amazon.co.uk/SteelSeries-Aerox-Wireless-TrueMove-Optical/dp/B0GNMGXRF8/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4b3ba-cd64-11f1-877c-7bc99d0c542b" data-action="Deal Block" data-label="Aerox 3 | Wireless" data-dimension48="Aerox 3 | Wireless" data-dimension25="£86.40">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4b4f0-cd64-11f1-9f40-fb4d8c519f5d" data-action="Deal Block" data-label="G Pro 2 Lightspeed | Wireless" data-dimension48="G Pro 2 Lightspeed | Wireless" data-dimension25="£97.4" href="https://www.amazon.co.uk/Logitech-Lightspeed-Left-Handed-Customisable-Switchable-Black/dp/B0DBZGCQHX/ref=sr_1_5" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1206px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="8LsAaks2QtDi5D9rVtv4Yc" name="1781520515.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/8LsAaks2QtDi5D9rVtv4Yc-1920-80.jpg" mos="" align="middle" fullscreen="" width="1206" height="1206" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Logitech-Lightspeed-Left-Handed-Customisable-Switchable-Black/dp/B0DBZGCQHX/ref=sr_1_5" target="_blank" rel="nofollow" data-dimension112="a8b4b4f0-cd64-11f1-9f40-fb4d8c519f5d" data-action="Deal Block" data-label="G Pro 2 Lightspeed | Wireless" data-dimension48="G Pro 2 Lightspeed | Wireless" data-dimension25="£97.4">G Pro 2 Lightspeed | Wireless: was £119.99 now £97.4</a></strong><br>A great 44K DPI sensor with an ambidextrous shape, the G Pro was our first love before the Superlight showed up. It's still a wicked shape and plenty capable for gaming. This one may drop further as while it is a good price today, it has been a touch cheaper in recent months.</p><p><strong>Key specs: Ambidextrous | 44K DPI | Wireless</strong><a class="view-deal button" href="https://www.amazon.co.uk/Logitech-Lightspeed-Left-Handed-Customisable-Switchable-Black/dp/B0DBZGCQHX/ref=sr_1_5" target="_blank" rel="nofollow" data-dimension112="a8b4b4f0-cd64-11f1-9f40-fb4d8c519f5d" data-action="Deal Block" data-label="G Pro 2 Lightspeed | Wireless" data-dimension48="G Pro 2 Lightspeed | Wireless" data-dimension25="£97.4">View Deal</a></p></div><ul><li><a href="#main"><strong>Back to top ^</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/gaming-mice/black-friday-gaming-mouse-deals/</link>
                                                                            <description>
                            <![CDATA[ Black Friday is a-coming and the deals wheels will are already rolling in earnest. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VWyjvvEmrwELsR9QuS493Y</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/vDeC9HgEe7PTUZpcvkb8v9-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 16:11:02 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 09:43:19 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Mice]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                                                                <author><![CDATA[ dave.james@futurenet.com (Dave James) ]]></author>                    <dc:creator><![CDATA[ Dave James ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-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/vDeC9HgEe7PTUZpcvkb8v9-1920-80.jpg">
                                                            <media:credit><![CDATA[Razer]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Razer Viper V4 Pro on an abstract background with the words Black Friday on either side of it]]></media:description>                                                            <media:text><![CDATA[Razer Viper V4 Pro on an abstract background with the words Black Friday on either side of it]]></media:text>
                                <media:title type="plain"><![CDATA[Razer Viper V4 Pro on an abstract background with the words Black Friday on either side of it]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/vDeC9HgEe7PTUZpcvkb8v9-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Black Friday is on its way and, while I wouldn't expect to see graphics cards dropping below MSRP or memory suddenly becoming a sensibly priced, I am feeling rather more positive about the posibility of genuine Black Friday gaming mouse deals cropping up. We've had a slew of new mice over the past year, and that means last years still-excellent rodents may well be on sale for a song over the November period. Here's hoping.</p><p><strong>👉</strong><a href="https://www.pcgamer.com/black-friday-pc-gaming-deals/" target="_blank"><strong>All our favorite Black Friday PC gaming deals</strong></a><strong>👈</strong></p><p>We're PC gamers, so the <a href="https://www.pcgamer.com/the-best-gaming-mouse/" target="_blank">best gaming mice</a> are our bread and butter. We spend a lot of time through the year testing the latest mice and the latest tech, so check out our guide to get an idea of what might be the right one for you. In the meantime, though, there are lots of tempting options below.</p><h2 id="where-to-find-the-best-black-friday-gaming-mice-deals">Where to find the best Black Friday gaming mice deals</h2><ul><li><strong>Amazon: </strong><a href="https://www.amazon.com/s?k=gaming+mice&crid=2J6G5VPFKFEZ6&sprefix=gaming+mice%2Caps%2C210&ref=nb_sb_noss_1" target="_blank"><strong>All the gaming mice you could ever want</strong></a></li><li><strong>Walmart:</strong> <a href="https://www.walmart.com/search?q=gaming+mice" target="_blank">Speedy gaming mice, superb savings</a></li><li><strong>Best Buy:</strong> <a href="https://www.bestbuy.com/site/searchpage.jsp?id=pcat17071&st=gaming%20mice" target="_blank">Big name meeces with big value discounts</a></li><li><strong>Newegg:</strong> <a href="https://www.newegg.com/Gaming-Mouse/SubCategory/ID-3527?cm_sp=Cat_Keyboard-Mice_3-_-VisNav-_-Gaming-Mice" target="_blank">Big savings on big brand gaming mice</a></li></ul><div class="vizualizer-embed"><iframe   srcdoc="<!DOCTYPE html><html><head>  <style>    #widget-1bec2uw *:not(svg):not(path) { box-sizing: border-box; }    #widget-1bec2uw h1, #widget-1bec2uw p, #widget-1bec2uw h3 { margin: 0; line-height: normal; }    body { margin: 0; background: transparent; font-family: ui-sans-serif, system-ui, sans-serif; }  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {  *, ::before, ::after, ::backdrop { --tw-translate-x: 0; --tw-translate-y: 0; --tw-translate-z: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scale-z: 1; --tw-rotate-x: initial; --tw-rotate-y: initial; --tw-rotate-z: initial; --tw-skew-x: initial; --tw-skew-y: initial; --tw-scroll-snap-strictness: proximity; --tw-space-y-reverse: 0; --tw-space-x-reverse: 0; --tw-divide-y-reverse: 0; --tw-border-style: solid; --tw-gradient-position: initial; --tw-gradient-from: #0000; --tw-gradient-via: #0000; --tw-gradient-to: #0000; --tw-gradient-stops: initial; --tw-gradient-via-stops: initial; --tw-gradient-from-position: 0%; --tw-gradient-via-position: 50%; --tw-gradient-to-position: 100%; --tw-leading: initial; --tw-font-weight: initial; --tw-tracking: initial; --tw-ordinal: initial; --tw-slashed-zero: initial; --tw-numeric-figure: initial; --tw-numeric-spacing: initial; --tw-numeric-fraction: initial; --tw-shadow: 0 0 #0000; --tw-shadow-color: initial; --tw-shadow-alpha: 100%; --tw-inset-shadow: 0 0 #0000; --tw-inset-shadow-color: initial; --tw-inset-shadow-alpha: 100%; --tw-ring-color: initial; --tw-ring-shadow: 0 0 #0000; --tw-inset-ring-color: initial; --tw-inset-ring-shadow: 0 0 #0000; --tw-ring-inset: initial; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 #0000; --tw-outline-style: solid; --tw-blur: initial; --tw-brightness: initial; --tw-contrast: initial; --tw-grayscale: initial; --tw-hue-rotate: initial; --tw-invert: initial; --tw-opacity: initial; --tw-saturate: initial; --tw-sepia: initial; --tw-drop-shadow: initial; --tw-drop-shadow-color: initial; --tw-drop-shadow-alpha: 100%; --tw-drop-shadow-size: initial; --tw-backdrop-blur: initial; --tw-backdrop-brightness: initial; --tw-backdrop-contrast: initial; --tw-backdrop-grayscale: initial; --tw-backdrop-hue-rotate: initial; --tw-backdrop-invert: initial; --tw-backdrop-opacity: initial; --tw-backdrop-saturate: initial; --tw-backdrop-sepia: initial; --tw-duration: initial; --tw-ease: initial; }}#widget-1bec2uw, :host { --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-50: oklch(97.1% .013 17.38); --color-red-100: oklch(93.6% .032 17.717); --color-red-400: oklch(70.4% .191 22.216); --color-red-500: oklch(63.7% .237 25.331); --color-red-600: oklch(57.7% .245 27.325); --color-red-700: oklch(50.5% .213 27.518); --color-orange-50: oklch(98% .016 73.684); --color-orange-600: oklch(64.6% .222 41.116); --color-orange-700: oklch(55.3% .195 38.402); --color-amber-50: oklch(98.7% .022 95.277); --color-amber-600: oklch(66.6% .179 58.318); --color-amber-700: oklch(55.5% .163 48.998); --color-yellow-50: oklch(98.7% .026 102.212); --color-yellow-300: oklch(90.5% .182 98.111); --color-yellow-500: oklch(79.5% .184 86.047); --color-yellow-600: oklch(68.1% .162 75.834); --color-yellow-700: oklch(55.4% .135 66.442); --color-yellow-800: oklch(47.6% .114 61.907); --color-lime-700: oklch(53.2% .157 131.589); --color-green-50: oklch(98.2% .018 155.826); --color-green-100: oklch(96.2% .044 156.743); --color-green-400: oklch(79.2% .209 151.711); --color-green-500: oklch(72.3% .219 149.579); --color-green-600: oklch(62.7% .194 149.214); --color-green-700: oklch(52.7% .154 150.069); --color-teal-50: oklch(98.4% .014 180.72); --color-teal-600: oklch(60% .118 184.704); --color-teal-700: oklch(51.1% .096 186.391); --color-blue-50: oklch(97% .014 254.604); --color-blue-500: oklch(62.3% .214 259.815); --color-blue-600: oklch(54.6% .245 262.881); --color-blue-700: oklch(48.8% .243 264.376); --color-indigo-50: oklch(96.2% .018 272.314); --color-indigo-600: oklch(51.1% .262 276.966); --color-purple-50: oklch(97.7% .014 308.299); --color-purple-400: oklch(71.4% .203 305.504); --color-purple-600: oklch(55.8% .288 302.321); --color-purple-700: oklch(49.6% .265 301.924); --color-pink-600: oklch(59.2% .249 .584); --color-rose-50: oklch(96.9% .015 12.422); --color-rose-100: oklch(94.1% .03 12.58); --color-rose-500: oklch(64.5% .246 16.439); --color-rose-600: oklch(58.6% .253 17.585); --color-slate-50: oklch(98.4% .003 247.858); --color-slate-400: oklch(70.4% .04 256.788); --color-slate-500: oklch(55.4% .046 257.417); --color-slate-600: oklch(44.6% .043 257.281); --color-slate-900: oklch(20.8% .042 265.755); --color-gray-50: oklch(98.5% .002 247.839); --color-gray-100: oklch(96.7% .003 264.542); --color-gray-200: oklch(92.8% .006 264.531); --color-gray-300: oklch(87.2% .01 258.338); --color-gray-400: oklch(70.7% .022 261.325); --color-gray-500: oklch(55.1% .027 264.364); --color-gray-600: oklch(44.6% .03 256.802); --color-gray-700: oklch(37.3% .034 259.733); --color-gray-800: oklch(27.8% .033 256.848); --color-gray-900: oklch(21% .034 264.665); --color-gray-950: oklch(13% .028 261.692); --color-zinc-300: oklch(87.1% .006 286.286); --color-zinc-800: oklch(27.4% .006 286.033); --color-zinc-900: oklch(21% .006 285.885); --color-neutral-50: oklch(98.5% 0 0); --color-neutral-100: oklch(97% 0 0); --color-neutral-200: oklch(92.2% 0 0); --color-neutral-300: oklch(87% 0 0); --color-neutral-400: oklch(70.8% 0 0); --color-neutral-500: oklch(55.6% 0 0); --color-neutral-600: oklch(43.9% 0 0); --color-neutral-700: oklch(37.1% 0 0); --color-neutral-800: oklch(26.9% 0 0); --color-neutral-900: oklch(20.5% 0 0); --color-neutral-950: oklch(14.5% 0 0); --color-black: #000; --color-white: #fff; --spacing: 4px; --breakpoint-xl: 1280px; --container-sm: 384px; --container-md: 448px; --container-lg: 512px; --container-xl: 576px; --container-2xl: 672px; --container-4xl: 896px; --container-6xl: 1152px; --container-7xl: 1280px; --text-xs: 12px; --text-xs--line-height: calc(1 / .75); --text-sm: 14px; --text-sm--line-height: calc(1.25 / .875); --text-base: 16px; --text-base--line-height: 1.5; --text-lg: 18px; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 20px; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 24px; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 30px; --text-3xl--line-height: 1.2; --text-4xl: 36px; --text-4xl--line-height: calc(2.5 / 2.25); --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; --font-weight-black: 900; --tracking-tight: -.025em; --tracking-normal: 0em; --tracking-wide: .025em; --tracking-wider: .05em; --tracking-widest: .1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --radius-xs: 2px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-xl: 12px; --radius-2xl: 16px; --radius-3xl: 24px; --radius-4xl: 32px; --ease-in: cubic-bezier(.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, .2, 1); --ease-in-out: cubic-bezier(.4, 0, .2, 1); --animate-spin: spin 1s linear infinite; --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; --blur-sm: 8px; --default-transition-duration: .15s; --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1); --default-font-family: var(--font-sans); --default-mono-font-family: var(--font-mono); }*, ::after, ::before, ::backdrop { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }::file-selector-button { box-sizing: border-box; border: 0px solid; margin: 0px; padding: 0px; }html, :host { text-size-adjust: 100%; tab-size: 4; line-height: 1.5; font-family: var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); font-feature-settings: var(--default-font-feature-settings,normal); font-variation-settings: var(--default-font-variation-settings,normal); -webkit-tap-highlight-color: transparent; }hr { height: 0px; color: inherit; border-top-width: 1px; }abbr:where([title]) { text-decoration: underline dotted; }h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }a { color: inherit; text-decoration: inherit; }b, strong { font-weight: bolder; }code, kbd, samp, pre { font-family: var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); font-feature-settings: var(--default-mono-font-feature-settings,normal); font-variation-settings: var(--default-mono-font-variation-settings,normal); font-size: 1em; }small { font-size: 80%; }sub, sup { vertical-align: baseline; font-size: 75%; line-height: 0; position: relative; }sub { bottom: -0.25em; }sup { top: -0.5em; }table { text-indent: 0px; border-color: inherit; border-collapse: collapse; }progress { vertical-align: baseline; }summary { display: list-item; }ol, ul, menu { list-style: none; }img, svg, video, canvas, audio, iframe, embed, object { vertical-align: middle; display: block; }img, video { max-width: 100%; height: auto; }button, input, select, optgroup, textarea { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }::file-selector-button { font: inherit; letter-spacing: inherit; color: inherit; opacity: 1; background-color: rgba(0, 0, 0, 0); border-radius: 0px; }:where(select:is([multiple], [size])) optgroup { font-weight: bolder; }:where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; }::file-selector-button { margin-inline-end: 4px; }::placeholder { opacity: 1; }@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {  ::placeholder { color: currentcolor; }  @supports (color:color-mix(in lab,red,red)) {  ::placeholder { color: color-mix(currentcolor, transparent); }}}textarea { resize: vertical; }::-webkit-search-decoration { appearance: none; }::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; }::-webkit-datetime-edit { display: inline-flex; }::-webkit-datetime-edit-fields-wrapper { padding: 0px; }::-webkit-datetime-edit { padding-block: 0px; }::-webkit-datetime-edit-year-field { padding-block: 0px; }::-webkit-datetime-edit-month-field { padding-block: 0px; }::-webkit-datetime-edit-day-field { padding-block: 0px; }::-webkit-datetime-edit-hour-field { padding-block: 0px; }::-webkit-datetime-edit-minute-field { padding-block: 0px; }::-webkit-datetime-edit-second-field { padding-block: 0px; }::-webkit-datetime-edit-millisecond-field { padding-block: 0px; }::-webkit-datetime-edit-meridiem-field { padding-block: 0px; }::-webkit-calendar-picker-indicator { line-height: 1; }button, input:where([type="button"], [type="reset"], [type="submit"]) { appearance: button; }::file-selector-button { appearance: button; }::-webkit-inner-spin-button { height: auto; }::-webkit-outer-spin-button { height: auto; }[hidden]:where(:not([hidden="until-found"])) { display: none !important; }@layer components;.\@container { container-type: inline-size; }.pointer-events-auto { pointer-events: auto; }.pointer-events-none { pointer-events: none; }.collapse { visibility: collapse; }.invisible { visibility: hidden; }.visible { visibility: visible; }.sr-only { clip-path: inset(50%); white-space: nowrap; border-width: 0px; width: 1px; height: 1px; margin: -1px; padding: 0px; position: absolute; overflow: hidden; }.absolute { position: absolute; }.fixed { position: fixed; }.relative { position: relative; }.static { position: static; }.sticky { position: sticky; }.inset-0 { inset: calc(var(--spacing) * 0); }.top-0 { top: calc(var(--spacing) * 0); }.top-1 { top: calc(var(--spacing) * 1); }.top-1\/2 { top: 50%; }.top-3 { top: calc(var(--spacing) * 3); }.top-4 { top: calc(var(--spacing) * 4); }.top-\[76px\] { top: 76px; }.top-\[80px\] { top: 80px; }.top-auto { top: auto; }.top-full { top: 100%; }.-right-0, .right-0 { right: calc(var(--spacing) * 0); }.right-1 { right: calc(var(--spacing) * 1); }.right-2 { right: calc(var(--spacing) * 2); }.right-3 { right: calc(var(--spacing) * 3); }.right-4 { right: calc(var(--spacing) * 4); }.right-full { right: 100%; }.-bottom-0, .bottom-0 { bottom: calc(var(--spacing) * 0); }.bottom-3 { bottom: calc(var(--spacing) * 3); }.bottom-4 { bottom: calc(var(--spacing) * 4); }.bottom-full { bottom: 100%; }.-left-2 { left: calc(var(--spacing) * -2); }.left-0 { left: calc(var(--spacing) * 0); }.left-1 { left: calc(var(--spacing) * 1); }.left-1\/2 { left: 50%; }.left-2 { left: calc(var(--spacing) * 2); }.left-3 { left: calc(var(--spacing) * 3); }.left-4 { left: calc(var(--spacing) * 4); }.left-auto { left: auto; }.left-full { left: 100%; }.isolate { isolation: isolate; }.z-10 { z-index: 10; }.z-20 { z-index: 20; }.z-50 { z-index: 50; }.z-\[60\] { z-index: 60; }.z-\[99\] { z-index: 99; }.z-\[100\] { z-index: 100; }.z-\[9999\] { z-index: 9999; }.z-\[10000\] { z-index: 10000; }.z-\[10001\] { z-index: 10001; }.z-\[var\(--burger-btn-z-index\,1\)\] { z-index: var(--burger-btn-z-index,1); }.order-first { order: -9999; }.col-span-2 { grid-column: span 2 / span 2; }.col-span-3 { grid-column: span 3 / span 3; }.col-span-7 { grid-column: span 7 / span 7; }.col-span-10 { grid-column: span 10 / span 10; }.row-3 { grid-row: 3; }.row-4 { grid-row: 4; }.float-end { float: inline-end; }.float-left { float: left; }.float-start { float: inline-start; }.clear-both { clear: both; }.clear-left { clear: left; }.container { width: 100%; }@media (min-width: 640px) {  .container { max-width: 640px; }}@media (min-width: 768px) {  .container { max-width: 768px; }}@media (min-width: 1024px) {  .container { max-width: 1024px; }}@media (min-width: 1280px) {  .container { max-width: 1280px; }}@media (min-width: 1536px) {  .container { max-width: 1536px; }}.m-0 { margin: calc(var(--spacing) * 0); }.m-1 { margin: calc(var(--spacing) * 1); }.m-4 { margin: calc(var(--spacing) * 4); }.m-auto { margin: auto; }.-mx-4 { margin-inline: calc(var(--spacing) * -4); }.mx-0 { margin-inline: calc(var(--spacing) * 0); }.mx-1 { margin-inline: calc(var(--spacing) * 1); }.mx-2 { margin-inline: calc(var(--spacing) * 2); }.mx-4 { margin-inline: calc(var(--spacing) * 4); }.mx-auto { margin-inline: auto; }.-my-2 { margin-block: calc(var(--spacing) * -2); }.my-0 { margin-block: calc(var(--spacing) * 0); }.my-1 { margin-block: calc(var(--spacing) * 1); }.my-2 { margin-block: calc(var(--spacing) * 2); }.my-3 { margin-block: calc(var(--spacing) * 3); }.my-4 { margin-block: calc(var(--spacing) * 4); }.my-5 { margin-block: calc(var(--spacing) * 5); }.my-6 { margin-block: calc(var(--spacing) * 6); }.my-7 { margin-block: calc(var(--spacing) * 7); }.my-8 { margin-block: calc(var(--spacing) * 8); }.my-10 { margin-block: calc(var(--spacing) * 10); }.my-auto { margin-block: auto; }.ms-4 { margin-inline-start: calc(var(--spacing) * 4); }.me-2 { margin-inline-end: calc(var(--spacing) * 2); }.prose { color: var(--tw-prose-#widget-1bec2uw); max-width: 65ch; }.prose :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }.prose :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-lead); margin-top: 1.2em; margin-bottom: 1.2em; font-size: 1.25em; line-height: 1.6; }.prose :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-links); font-weight: 500; text-decoration: underline; }.prose :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600; }.prose :where(a strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(blockquote strong):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(thead th strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; list-style-type: decimal; }.prose :where(ol[type="A"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where(ol[type="a"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-alpha; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-alpha; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-alpha; }.prose :where(ol[type="I"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-roman; }.prose :where(ol[type="i"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-roman; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: upper-roman; }.prose :where():not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: lower-roman; }.prose :where(ol[type="1"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { list-style-type: decimal; }.prose :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; list-style-type: disc; }.prose :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { color: var(--tw-prose-counters); font-weight: 400; }.prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { color: var(--tw-prose-bullets); }.prose :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.25em; font-weight: 600; }.prose :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-top: 3em; margin-bottom: 3em; }.prose :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-quotes); border-inline-start-width: 4px; border-inline-start-color: var(--tw-prose-quote-borders); quotes: "“" "”" "‘" "’"; margin-top: 1.6em; margin-bottom: 1.6em; padding-inline-start: 1em; font-style: italic; font-weight: 500; }.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::before { content: open-quote; }.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: close-quote; }.prose :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 0px; margin-bottom: 0.888889em; font-size: 2.25em; font-weight: 800; line-height: 1.11111; }.prose :where(h1 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 900; }.prose :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 2em; margin-bottom: 1em; font-size: 1.5em; font-weight: 700; line-height: 1.33333; }.prose :where(h2 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 800; }.prose :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.6em; margin-bottom: 0.6em; font-size: 1.25em; font-weight: 600; line-height: 1.6; }.prose :where(h3 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 700; }.prose :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); margin-top: 1.5em; margin-bottom: 0.5em; font-weight: 600; line-height: 1.5; }.prose :where(h4 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-weight: 700; }.prose :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; display: block; }.prose :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-kbd); box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows); padding-top: 0.1875em; padding-inline: 0.375em; padding-bottom: 0.1875em; border-radius: 5px; font-family: inherit; font-size: 0.875em; font-weight: 500; }.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-code); font-size: 0.875em; font-weight: 600; }.prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: "`"; }.prose :where(a code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h1 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-size: 0.875em; }.prose :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; font-size: 0.9em; }.prose :where(h4 code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(blockquote code):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(thead th code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: inherit; }.prose :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-pre-code); background-color: var(--tw-prose-pre-bg); padding-top: 0.857143em; padding-inline: 1.14286em; padding-bottom: 0.857143em; border-radius: 6px; margin-top: 1.71429em; margin-bottom: 1.71429em; font-size: 0.875em; font-weight: 400; line-height: 1.71429; overflow-x: auto; }.prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit; background-color: rgba(0, 0, 0, 0); border-width: 0px; border-radius: 0px; padding: 0px; }.prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::before, .prose :where(pre code):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { content: none; }.prose :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { table-layout: auto; width: 100%; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.71429; }.prose :where(thead):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders); }.prose :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-headings); vertical-align: bottom; padding-inline: 0.571429em; padding-bottom: 0.571429em; font-weight: 600; }.prose :where(t#widget-1bec2uw tr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); }.prose :where(t#widget-1bec2uw tr:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-bottom-width: 0px; }.prose :where(t#widget-1bec2uw td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { vertical-align: baseline; }.prose :where(tfoot):not(:where([class~="not-prose"], [class~="not-prose"] *)) { border-top-width: 1px; border-top-color: var(--tw-prose-th-borders); }.prose :where(tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { vertical-align: top; }.prose :where(th, td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { text-align: start; }.prose :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--tw-prose-captions); margin-top: 0.857143em; font-size: 0.875em; line-height: 1.42857; }.prose { --tw-prose-#widget-1bec2uw: oklch(37.3% .034 259.733); --tw-prose-headings: oklch(21% .034 264.665); --tw-prose-lead: oklch(44.6% .03 256.802); --tw-prose-links: oklch(21% .034 264.665); --tw-prose-bold: oklch(21% .034 264.665); --tw-prose-counters: oklch(55.1% .027 264.364); --tw-prose-bullets: oklch(87.2% .01 258.338); --tw-prose-hr: oklch(92.8% .006 264.531); --tw-prose-quotes: oklch(21% .034 264.665); --tw-prose-quote-borders: oklch(92.8% .006 264.531); --tw-prose-captions: oklch(55.1% .027 264.364); --tw-prose-kbd: oklch(21% .034 264.665); --tw-prose-kbd-shadows: oklab(21% -.00316127 -.0338527/.1); --tw-prose-code: oklch(21% .034 264.665); --tw-prose-pre-code: oklch(92.8% .006 264.531); --tw-prose-pre-bg: oklch(27.8% .033 256.848); --tw-prose-th-borders: oklch(87.2% .01 258.338); --tw-prose-td-borders: oklch(92.8% .006 264.531); --tw-prose-invert-#widget-1bec2uw: oklch(87.2% .01 258.338); --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: oklch(70.7% .022 261.325); --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: oklch(70.7% .022 261.325); --tw-prose-invert-bullets: oklch(44.6% .03 256.802); --tw-prose-invert-hr: oklch(37.3% .034 259.733); --tw-prose-invert-quotes: oklch(96.7% .003 264.542); --tw-prose-invert-quote-borders: oklch(37.3% .034 259.733); --tw-prose-invert-captions: oklch(70.7% .022 261.325); --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: #ffffff1a; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: oklch(87.2% .01 258.338); --tw-prose-invert-pre-bg: #00000080; --tw-prose-invert-th-borders: oklch(44.6% .03 256.802); --tw-prose-invert-td-borders: oklch(37.3% .034 259.733); font-size: 16px; line-height: 1.75; }.prose :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; }.prose :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0.375em; }.prose :where(.prose > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; }.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; }.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.25em; }.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }.prose :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }.prose :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.5em; padding-inline-start: 1.625em; }.prose :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose :where(t#widget-1bec2uw td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.571429em; padding-inline: 0.571429em; padding-bottom: 0.571429em; }.prose :where(t#widget-1bec2uw td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose :where(t#widget-1bec2uw td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }.prose :where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose :where(.prose > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 0px; }.prose-lg { font-size: 18px; line-height: 1.77778; }.prose-lg :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }.prose-lg :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.09091em; margin-bottom: 1.09091em; font-size: 1.22222em; line-height: 1.45455; }.prose-lg :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 1.66667em; padding-inline-start: 1em; }.prose-lg :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0.833333em; font-size: 2.66667em; line-height: 1; }.prose-lg :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.86667em; margin-bottom: 1.06667em; font-size: 1.66667em; line-height: 1.33333; }.prose-lg :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 0.666667em; font-size: 1.33333em; line-height: 1.5; }.prose-lg :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 0.444444em; line-height: 1.55556; }.prose-lg :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose-lg :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.222222em; padding-inline: 0.444444em; padding-bottom: 0.222222em; border-radius: 5px; font-size: 0.888889em; }.prose-lg :where(code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.888889em; }.prose-lg :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.866667em; }.prose-lg :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.875em; }.prose-lg :where(pre):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 1em; padding-inline: 1.5em; padding-bottom: 1em; border-radius: 6px; margin-top: 2em; margin-bottom: 2em; font-size: 0.888889em; line-height: 1.75; }.prose-lg :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; padding-inline-start: 1.55556em; }.prose-lg :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.666667em; margin-bottom: 0.666667em; }.prose-lg :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0.444444em; }.prose-lg :where(.prose-lg > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }.prose-lg :where(.prose-lg > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(.prose-lg > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.33333em; }.prose-lg :where(.prose-lg > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(.prose-lg > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 1.33333em; }.prose-lg :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }.prose-lg :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }.prose-lg :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.33333em; }.prose-lg :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0.666667em; padding-inline-start: 1.55556em; }.prose-lg :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 3.11111em; margin-bottom: 3.11111em; }.prose-lg :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-lg :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose-lg :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-size: 0.888889em; line-height: 1.5; }.prose-lg :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline: 0.75em; padding-bottom: 0.75em; }.prose-lg :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose-lg :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose-lg :where(t#widget-1bec2uw td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-top: 0.75em; padding-inline: 0.75em; padding-bottom: 0.75em; }.prose-lg :where(t#widget-1bec2uw td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-start: 0px; }.prose-lg :where(t#widget-1bec2uw td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { padding-inline-end: 0px; }.prose-lg :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }.prose-lg :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }.prose-lg :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 1em; font-size: 0.888889em; line-height: 1.5; }.prose-lg :where(.prose-lg > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-top: 0px; }.prose-lg :where(.prose-lg > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { margin-bottom: 0px; }.mt-0 { margin-top: calc(var(--spacing) * 0); }.mt-1 { margin-top: calc(var(--spacing) * 1); }.mt-2 { margin-top: calc(var(--spacing) * 2); }.mt-3 { margin-top: calc(var(--spacing) * 3); }.mt-4 { margin-top: calc(var(--spacing) * 4); }.mt-5 { margin-top: calc(var(--spacing) * 5); }.mt-6 { margin-top: calc(var(--spacing) * 6); }.mt-7 { margin-top: calc(var(--spacing) * 7); }.mt-8 { margin-top: calc(var(--spacing) * 8); }.mt-10 { margin-top: calc(var(--spacing) * 10); }.mt-auto { margin-top: auto; }.-mr-1 { margin-right: calc(var(--spacing) * -1); }.mr-0 { margin-right: calc(var(--spacing) * 0); }.mr-1 { margin-right: calc(var(--spacing) * 1); }.mr-1\.5 { margin-right: calc(var(--spacing) * 1.5); }.mr-2 { margin-right: calc(var(--spacing) * 2); }.mr-3 { margin-right: calc(var(--spacing) * 3); }.mr-4 { margin-right: calc(var(--spacing) * 4); }.mr-5 { margin-right: calc(var(--spacing) * 5); }.mr-8 { margin-right: calc(var(--spacing) * 8); }.mr-auto { margin-right: auto; }.mb-0 { margin-bottom: calc(var(--spacing) * 0); }.mb-1 { margin-bottom: calc(var(--spacing) * 1); }.mb-2 { margin-bottom: calc(var(--spacing) * 2); }.mb-3 { margin-bottom: calc(var(--spacing) * 3); }.mb-4 { margin-bottom: calc(var(--spacing) * 4); }.mb-5 { margin-bottom: calc(var(--spacing) * 5); }.mb-6 { margin-bottom: calc(var(--spacing) * 6); }.mb-7 { margin-bottom: calc(var(--spacing) * 7); }.mb-8 { margin-bottom: calc(var(--spacing) * 8); }.mb-10 { margin-bottom: calc(var(--spacing) * 10); }.-ml-1 { margin-left: calc(var(--spacing) * -1); }.-ml-2 { margin-left: calc(var(--spacing) * -2); }.-ml-5 { margin-left: calc(var(--spacing) * -5); }.ml-0 { margin-left: calc(var(--spacing) * 0); }.ml-0\.5 { margin-left: calc(var(--spacing) * .5); }.ml-1 { margin-left: calc(var(--spacing) * 1); }.ml-2 { margin-left: calc(var(--spacing) * 2); }.ml-3 { margin-left: calc(var(--spacing) * 3); }.ml-4 { margin-left: calc(var(--spacing) * 4); }.ml-6 { margin-left: calc(var(--spacing) * 6); }.ml-8 { margin-left: calc(var(--spacing) * 8); }.ml-auto { margin-left: auto; }.box-border { box-sizing: border-box; }.line-clamp-2 { -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }.line-clamp-3 { -webkit-line-clamp: 3; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; }.block { display: block; }.contents { display: contents; }.flex { display: flex; }.flow-root { display: flow-root; }.grid { display: grid; }.hidden { display: none; }.inline { display: inline; }.inline-block { display: inline-block; }.inline-flex { display: inline-flex; }.table { display: table; }.table-row { display: table-row; }.aspect-square { aspect-ratio: 1 / 1; }.size-1 { width: calc(var(--spacing) * 1); height: calc(var(--spacing) * 1); }.size-1\.5 { width: calc(var(--spacing) * 1.5); height: calc(var(--spacing) * 1.5); }.size-2 { width: calc(var(--spacing) * 2); height: calc(var(--spacing) * 2); }.size-3 { width: calc(var(--spacing) * 3); height: calc(var(--spacing) * 3); }.size-4 { width: calc(var(--spacing) * 4); height: calc(var(--spacing) * 4); }.size-5 { width: calc(var(--spacing) * 5); height: calc(var(--spacing) * 5); }.size-6 { width: calc(var(--spacing) * 6); height: calc(var(--spacing) * 6); }.size-7 { width: calc(var(--spacing) * 7); height: calc(var(--spacing) * 7); }.size-8 { width: calc(var(--spacing) * 8); height: calc(var(--spacing) * 8); }.size-9 { width: calc(var(--spacing) * 9); height: calc(var(--spacing) * 9); }.size-10 { width: calc(var(--spacing) * 10); height: calc(var(--spacing) * 10); }.size-12 { width: calc(var(--spacing) * 12); height: calc(var(--spacing) * 12); }.size-16 { width: calc(var(--spacing) * 16); height: calc(var(--spacing) * 16); }.size-20 { width: calc(var(--spacing) * 20); height: calc(var(--spacing) * 20); }.size-40 { width: calc(var(--spacing) * 40); height: calc(var(--spacing) * 40); }.size-full { width: 100%; height: 100%; }.h-1 { height: calc(var(--spacing) * 1); }.h-1\.5 { height: calc(var(--spacing) * 1.5); }.h-2 { height: calc(var(--spacing) * 2); }.h-3 { height: calc(var(--spacing) * 3); }.h-4 { height: calc(var(--spacing) * 4); }.h-5 { height: calc(var(--spacing) * 5); }.h-6 { height: calc(var(--spacing) * 6); }.h-7 { height: calc(var(--spacing) * 7); }.h-8 { height: calc(var(--spacing) * 8); }.h-9 { height: calc(var(--spacing) * 9); }.h-10 { height: calc(var(--spacing) * 10); }.h-12 { height: calc(var(--spacing) * 12); }.h-14 { height: calc(var(--spacing) * 14); }.h-16 { height: calc(var(--spacing) * 16); }.h-20 { height: calc(var(--spacing) * 20); }.h-24 { height: calc(var(--spacing) * 24); }.h-28 { height: calc(var(--spacing) * 28); }.h-64 { height: calc(var(--spacing) * 64); }.h-\[30px\] { height: 30px; }.h-\[40px\] { height: 40px; }.h-\[44px\] { height: 44px; }.h-\[76px\] { height: 76px; }.h-\[600px\] { height: 600px; }.h-\[var\(--logo-height-mobile\,25px\)\] { height: var(--logo-height-mobile,25px); }.h-\[var\(--site-header-height\,60px\)\] { height: var(--site-header-height,60px); }.h-auto { height: auto; }.h-fit { height: fit-content; }.h-full { height: 100%; }.h-min { height: min-content; }.h-px { height: 1px; }.h-screen { height: 100vh; }.max-h-0 { max-height: calc(var(--spacing) * 0); }.max-h-6 { max-height: calc(var(--spacing) * 6); }.max-h-12 { max-height: calc(var(--spacing) * 12); }.max-h-32 { max-height: calc(var(--spacing) * 32); }.max-h-80 { max-height: calc(var(--spacing) * 80); }.max-h-\[90vh\] { max-height: 90vh; }.max-h-\[var\(--logo-height-mobile\,25px\)\] { max-height: var(--logo-height-mobile,25px); }.min-h-8 { min-height: calc(var(--spacing) * 8); }.min-h-10 { min-height: calc(var(--spacing) * 10); }.min-h-\[400px\] { min-height: 400px; }.min-h-full { min-height: 100%; }.min-h-screen { min-height: 100vh; }.w-0 { width: calc(var(--spacing) * 0); }.w-1 { width: calc(var(--spacing) * 1); }.w-1\.5 { width: calc(var(--spacing) * 1.5); }.w-1\/3 { width: 33.3333%; }.w-1\/4 { width: 25%; }.w-2 { width: calc(var(--spacing) * 2); }.w-3 { width: calc(var(--spacing) * 3); }.w-4 { width: calc(var(--spacing) * 4); }.w-5 { width: calc(var(--spacing) * 5); }.w-6 { width: calc(var(--spacing) * 6); }.w-8 { width: calc(var(--spacing) * 8); }.w-9 { width: calc(var(--spacing) * 9); }.w-10 { width: calc(var(--spacing) * 10); }.w-12 { width: calc(var(--spacing) * 12); }.w-16 { width: calc(var(--spacing) * 16); }.w-20 { width: calc(var(--spacing) * 20); }.w-24 { width: calc(var(--spacing) * 24); }.w-28 { width: calc(var(--spacing) * 28); }.w-32 { width: calc(var(--spacing) * 32); }.w-36 { width: calc(var(--spacing) * 36); }.w-40 { width: calc(var(--spacing) * 40); }.w-44 { width: calc(var(--spacing) * 44); }.w-48 { width: calc(var(--spacing) * 48); }.w-56 { width: calc(var(--spacing) * 56); }.w-64 { width: calc(var(--spacing) * 64); }.w-\[140px\] { width: 140px; }.w-auto { width: auto; }.w-fit { width: fit-content; }.w-full { width: 100%; }.w-max { width: max-content; }.w-px { width: 1px; }.w-screen { width: 100vw; }.max-w-2xl { max-width: var(--container-2xl); }.max-w-4xl { max-width: var(--container-4xl); }.max-w-6xl { max-width: var(--container-6xl); }.max-w-7xl { max-width: var(--container-7xl); }.max-w-32 { max-width: calc(var(--spacing) * 32); }.max-w-40 { max-width: calc(var(--spacing) * 40); }.max-w-64 { max-width: calc(var(--spacing) * 64); }.max-w-\[960px\] { max-width: 960px; }.max-w-\[65ch\] { max-width: 65ch; }.max-w-\[1200px\] { max-width: 1200px; }.max-w-\[min\(var\(--site-header-max-width\,970px\)\,98dvw\)\] { max-width: min(var(--site-header-max-width,970px),98dvw); }.max-w-full { max-width: 100%; }.max-w-lg { max-width: var(--container-lg); }.max-w-md { max-width: var(--container-md); }.max-w-none { max-width: none; }.max-w-screen-xl { max-width: var(--breakpoint-xl); }.max-w-sm { max-width: var(--container-sm); }.max-w-xl { max-width: var(--container-xl); }.min-w-0 { min-width: calc(var(--spacing) * 0); }.min-w-8 { min-width: calc(var(--spacing) * 8); }.min-w-10 { min-width: calc(var(--spacing) * 10); }.min-w-16 { min-width: calc(var(--spacing) * 16); }.min-w-20 { min-width: calc(var(--spacing) * 20); }.min-w-36 { min-width: calc(var(--spacing) * 36); }.min-w-40 { min-width: calc(var(--spacing) * 40); }.min-w-52 { min-width: calc(var(--spacing) * 52); }.min-w-\[800px\] { min-width: 800px; }.min-w-\[var\(--tray-bell-min-width\,40px\)\] { min-width: var(--tray-bell-min-width,40px); }.min-w-full { min-width: 100%; }.flex-0 { flex: 0 1 0%; }.flex-1 { flex: 1 1 0%; }.flex-none { flex: 0 0 auto; }.flex-shrink { flex-shrink: 1; }.flex-shrink-0 { flex-shrink: 0; }.shrink { flex-shrink: 1; }.shrink-0 { flex-shrink: 0; }.flex-grow, .grow { flex-grow: 1; }.grow-0 { flex-grow: 0; }.basis-1 { flex-basis: calc(var(--spacing) * 1); }.basis-2 { flex-basis: calc(var(--spacing) * 2); }.basis-3 { flex-basis: calc(var(--spacing) * 3); }.basis-11 { flex-basis: calc(var(--spacing) * 11); }.basis-13 { flex-basis: calc(var(--spacing) * 13); }.basis-auto { flex-basis: auto; }.basis-full { flex-basis: 100%; }.border-collapse { border-collapse: collapse; }.origin-center { transform-origin: 50% center; }.origin-top-right { transform-origin: 100% 0px; }.-translate-x-1 { --tw-translate-x: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-x-1\/2 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-x-2 { --tw-translate-x: calc(var(--spacing) * -2); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-x-0 { --tw-translate-x: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-x-4 { --tw-translate-x: calc(var(--spacing) * 4); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-1 { --tw-translate-y: calc(var(--spacing) * -1); translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-1\/2 { --tw-translate-y: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }.-translate-y-full { --tw-translate-y: -100%; translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-0 { --tw-translate-y: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-4 { --tw-translate-y: calc(var(--spacing) * 4); translate: var(--tw-translate-x) var(--tw-translate-y); }.translate-y-full { --tw-translate-y: 100%; translate: var(--tw-translate-x) var(--tw-translate-y); }.scale-95 { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); }.scale-100 { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); }.-rotate-90 { rotate: -90deg; }.rotate-90 { rotate: 90deg; }.rotate-180 { rotate: 180deg; }.transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); }.animate-pulse { animation: var(--animate-pulse); }.animate-spin { animation: var(--animate-spin); }.cursor-default { cursor: default; }.cursor-not-allowed { cursor: not-allowed; }.cursor-pointer { cursor: pointer; }.resize { resize: both; }.resize-y { resize: vertical; }.snap-x { scroll-snap-type: x var(--tw-scroll-snap-strictness); }.snap-mandatory { --tw-scroll-snap-strictness: mandatory; }.snap-start { scroll-snap-align: start; }.list-outside { list-style-position: outside; }.list-disc { list-style-type: disc; }.list-none { list-style-type: none; }.appearance-none { appearance: none; }.grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }.grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }.grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }.grid-rows-2 { grid-template-rows: repeat(2, minmax(0px, 1fr)); }.flex-col { flex-direction: column; }.flex-row { flex-direction: row; }.flex-row-reverse { flex-direction: row-reverse; }.flex-nowrap { flex-wrap: nowrap; }.flex-wrap { flex-wrap: wrap; }.place-items-center { place-items: center; }.content-around { align-content: space-around; }.content-center { align-content: center; }.content-stretch { align-content: stretch; }.items-baseline { align-items: baseline; }.items-center { align-items: center; }.items-end { align-items: flex-end; }.items-start { align-items: flex-start; }.items-stretch { align-items: stretch; }.justify-between { justify-content: space-between; }.justify-center { justify-content: center; }.justify-end { justify-content: flex-end; }.justify-start { justify-content: flex-start; }.gap-0 { gap: calc(var(--spacing) * 0); }.gap-1 { gap: calc(var(--spacing) * 1); }.gap-1\.5 { gap: calc(var(--spacing) * 1.5); }.gap-2 { gap: calc(var(--spacing) * 2); }.gap-2\.5 { gap: calc(var(--spacing) * 2.5); }.gap-3 { gap: calc(var(--spacing) * 3); }.gap-4 { gap: calc(var(--spacing) * 4); }.gap-5 { gap: calc(var(--spacing) * 5); }.gap-6 { gap: calc(var(--spacing) * 6); }.gap-8 { gap: calc(var(--spacing) * 8); }.gap-\[var\(--site-header-gap\,0\10.4px\)\] { gap: var(--site-header-gap,10.4px); }.gap-px { gap: 1px; }:where(.space-y-1 > :not(:last-child)) { --tw-space-y-reverse: 0; margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))); }.gap-x-1 { column-gap: calc(var(--spacing) * 1); }.gap-x-3 { column-gap: calc(var(--spacing) * 3); }.gap-x-4 { column-gap: calc(var(--spacing) * 4); }.gap-x-5 { column-gap: calc(var(--spacing) * 5); }.gap-x-8 { column-gap: calc(var(--spacing) * 8); }.gap-x-10 { column-gap: calc(var(--spacing) * 10); }:where(.space-x-3 > :not(:last-child)) { --tw-space-x-reverse: 0; margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse)); margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse))); }.gap-y-1 { row-gap: calc(var(--spacing) * 1); }.gap-y-2 { row-gap: calc(var(--spacing) * 2); }.gap-y-3 { row-gap: calc(var(--spacing) * 3); }.gap-y-4 { row-gap: calc(var(--spacing) * 4); }.gap-y-6 { row-gap: calc(var(--spacing) * 6); }.gap-y-12 { row-gap: calc(var(--spacing) * 12); }:where(.divide-y > :not(:last-child)) { --tw-divide-y-reverse: 0; border-bottom-style: var(--tw-border-style); border-top-style: var(--tw-border-style); border-top-width: calc(1px * var(--tw-divide-y-reverse)); border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); }:where(.divide-neutral-100 > :not(:last-child)) { border-color: var(--color-neutral-100); }:where(.divide-white > :not(:last-child)) { border-color: var(--color-white); }.self-center { align-self: center; }.self-start { align-self: flex-start; }.truncate { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }.overflow-auto { overflow: auto; }.overflow-hidden { overflow: hidden; }.overflow-visible { overflow: visible; }.overflow-x-auto { overflow-x: auto; }.overflow-x-hidden { overflow-x: hidden; }.overflow-x-scroll { overflow-x: scroll; }.overflow-y-auto { overflow-y: auto; }.overflow-y-clip { overflow-y: clip; }.overflow-y-hidden { overflow-y: hidden; }.overflow-y-visible { overflow-y: visible; }.overscroll-x-contain { overscroll-behavior-x: contain; }.scroll-smooth { scroll-behavior: smooth; }.rounded { border-radius: 4px; }.rounded-2xl { border-radius: var(--radius-2xl); }.rounded-3xl { border-radius: var(--radius-3xl); }.rounded-4xl { border-radius: var(--radius-4xl); }.rounded-\[50\%\] { border-radius: 50%; }.rounded-\[var\(--image--border-radius\,0\)\] { border-radius: var(--image--border-radius,0); }.rounded-full { border-radius: 3.40282e+38px; }.rounded-lg { border-radius: var(--radius-lg); }.rounded-md { border-radius: var(--radius-md); }.rounded-none { border-radius: 0px; }.rounded-sm { border-radius: var(--radius-sm); }.rounded-xl { border-radius: var(--radius-xl); }.rounded-xs { border-radius: var(--radius-xs); }.rounded-t-2xl { border-top-left-radius: var(--radius-2xl); border-top-right-radius: var(--radius-2xl); }.rounded-l-full { border-top-left-radius: 3.40282e+38px; border-bottom-left-radius: 3.40282e+38px; }.rounded-tl-lg { border-top-left-radius: var(--radius-lg); }.rounded-r-full { border-top-right-radius: 3.40282e+38px; border-bottom-right-radius: 3.40282e+38px; }.rounded-tr-lg { border-top-right-radius: var(--radius-lg); }.rounded-b-none { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; }.rounded-br-lg { border-bottom-right-radius: var(--radius-lg); }.rounded-bl-lg { border-bottom-left-radius: var(--radius-lg); }.border { border-style: var(--tw-border-style); border-width: 1px; }.border-0 { border-style: var(--tw-border-style); border-width: 0px; }.border-1 { border-style: var(--tw-border-style); border-width: 1px; }.border-2 { border-style: var(--tw-border-style); border-width: 2px; }.border-8 { border-style: var(--tw-border-style); border-width: 8px; }.border-x-0 { border-inline-style: var(--tw-border-style); border-inline-width: 0px; }.border-y { border-block-style: var(--tw-border-style); border-block-width: 1px; }.border-y-0 { border-block-style: var(--tw-border-style); border-block-width: 0px; }.border-y-2 { border-block-style: var(--tw-border-style); border-block-width: 2px; }.border-t { border-top-style: var(--tw-border-style); border-top-width: 1px; }.border-t-2 { border-top-style: var(--tw-border-style); border-top-width: 2px; }.border-r { border-right-style: var(--tw-border-style); border-right-width: 1px; }.border-r-0 { border-right-style: var(--tw-border-style); border-right-width: 0px; }.border-b { border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; }.border-b-0 { border-bottom-style: var(--tw-border-style); border-bottom-width: 0px; }.border-b-2 { border-bottom-style: var(--tw-border-style); border-bottom-width: 2px; }.border-l { border-left-style: var(--tw-border-style); border-left-width: 1px; }.border-dashed { --tw-border-style: dashed; border-style: dashed; }.border-none { --tw-border-style: none; border-style: none; }.border-solid { --tw-border-style: solid; border-style: solid; }.border-\(--footer-nav-border-color\) { border-color: var(--footer-nav-border-color); }.border-\[\#DC1F26\] { border-color: rgb(220, 31, 38); }.border-black { border-color: var(--color-black); }.border-gray-100 { border-color: var(--color-gray-100); }.border-gray-200 { border-color: var(--color-gray-200); }.border-gray-300 { border-color: var(--color-gray-300); }.border-gray-400 { border-color: var(--color-gray-400); }.border-gray-500 { border-color: var(--color-gray-500); }.border-gray-600 { border-color: var(--color-gray-600); }.border-gray-700 { border-color: var(--color-gray-700); }.border-gray-800 { border-color: var(--color-gray-800); }.border-green-600 { border-color: var(--color-green-600); }.border-neutral-100 { border-color: var(--color-neutral-100); }.border-neutral-200 { border-color: var(--color-neutral-200); }.border-neutral-300 { border-color: var(--color-neutral-300); }.border-red-600 { border-color: var(--color-red-600); }.border-rose-100 { border-color: var(--color-rose-100); }.border-slate-600 { border-color: var(--color-slate-600); }.border-transparent { border-color: rgba(0, 0, 0, 0); }.border-white { border-color: var(--color-white); }.border-yellow-300 { border-color: var(--color-yellow-300); }.border-yellow-500 { border-color: var(--color-yellow-500); }.border-t-black { border-top-color: var(--color-black); }.border-t-neutral-500 { border-top-color: var(--color-neutral-500); }.border-r-neutral-100 { border-right-color: var(--color-neutral-100); }.border-r-neutral-200 { border-right-color: var(--color-neutral-200); }.border-b-black { border-bottom-color: var(--color-black); }.border-b-neutral-200 { border-bottom-color: var(--color-neutral-200); }.border-b-neutral-300 { border-bottom-color: var(--color-neutral-300); }.border-l-neutral-200 { border-left-color: var(--color-neutral-200); }.bg-\(--footer-bg-color\) { background-color: var(--footer-bg-color); }.bg-\[\#33333370\] { background-color: rgba(51, 51, 51, 0.44); }.bg-\[\#DC1F26\] { background-color: rgb(220, 31, 38); }.bg-\[\#ededed\] { background-color: rgb(237, 237, 237); }.bg-\[var\(--region-redirect-banner-background\,var\(--brand-color-1\)\)\] { background-color: var(--region-redirect-banner-background,var(--brand-color-1)); }.bg-\[var\(--site-header-background-color\,white\)\] { background-color: var(--site-header-background-color,white); }.bg-amber-50 { background-color: var(--color-amber-50); }.bg-black { background-color: var(--color-black); }.bg-blue-50 { background-color: var(--color-blue-50); }.bg-gray-50 { background-color: var(--color-gray-50); }.bg-gray-100 { background-color: var(--color-gray-100); }.bg-gray-200 { background-color: var(--color-gray-200); }.bg-gray-300 { background-color: var(--color-gray-300); }.bg-gray-500 { background-color: var(--color-gray-500); }.bg-gray-500\/75 { background-color: rgba(106, 114, 130, 0.75); }@supports (color:color-mix(in lab,red,red)) {  .bg-gray-500\/75 { background-color: color-mix(in oklab,var(--color-gray-500) 75%,transparent); }}.bg-gray-800 { background-color: var(--color-gray-800); }.bg-gray-900 { background-color: var(--color-gray-900); }.bg-gray-950 { background-color: var(--color-gray-950); }.bg-green-50 { background-color: var(--color-green-50); }.bg-green-100 { background-color: var(--color-green-100); }.bg-green-500 { background-color: var(--color-green-500); }.bg-green-600 { background-color: var(--color-green-600); }.bg-inherit { background-color: inherit; }.bg-neutral-50 { background-color: var(--color-neutral-50); }.bg-neutral-50\/50 { background-color: rgba(250, 250, 250, 0.5); }@supports (color:color-mix(in lab,red,red)) {  .bg-neutral-50\/50 { background-color: color-mix(in oklab,var(--color-neutral-50) 50%,transparent); }}.bg-neutral-100 { background-color: var(--color-neutral-100); }.bg-neutral-200 { background-color: var(--color-neutral-200); }.bg-neutral-300 { background-color: var(--color-neutral-300); }.bg-neutral-500 { background-color: var(--color-neutral-500); }.bg-neutral-600 { background-color: var(--color-neutral-600); }.bg-neutral-800 { background-color: var(--color-neutral-800); }.bg-neutral-900 { background-color: var(--color-neutral-900); }.bg-neutral-900\/40 { background-color: rgba(23, 23, 23, 0.4); }@supports (color:color-mix(in lab,red,red)) {  .bg-neutral-900\/40 { background-color: color-mix(in oklab,var(--color-neutral-900) 40%,transparent); }}.bg-neutral-950 { background-color: var(--color-neutral-950); }.bg-orange-50 { background-color: var(--color-orange-50); }.bg-purple-50 { background-color: var(--color-purple-50); }.bg-red-50 { background-color: var(--color-red-50); }.bg-red-100 { background-color: var(--color-red-100); }.bg-red-500 { background-color: var(--color-red-500); }.bg-red-600 { background-color: var(--color-red-600); }.bg-rose-50 { background-color: var(--color-rose-50); }.bg-rose-500 { background-color: var(--color-rose-500); }.bg-slate-50 { background-color: var(--color-slate-50); }.bg-slate-500 { background-color: var(--color-slate-500); }.bg-slate-900 { background-color: var(--color-slate-900); }.bg-teal-50 { background-color: var(--color-teal-50); }.bg-transparent { background-color: rgba(0, 0, 0, 0); }.bg-white { background-color: var(--color-white); }.bg-yellow-50 { background-color: var(--color-yellow-50); }.bg-yellow-500 { background-color: var(--color-yellow-500); }.bg-zinc-300 { background-color: var(--color-zinc-300); }.bg-zinc-800 { background-color: var(--color-zinc-800); }.bg-zinc-900 { background-color: var(--color-zinc-900); }.bg-gradient-to-l { --tw-gradient-position: to left in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }.bg-gradient-to-t { --tw-gradient-position: to top in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); }.bg-none { background-image: none; }.from-gray-100 { --tw-gradient-from: var(--color-gray-100); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.from-gray-950 { --tw-gradient-from: var(--color-gray-950); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.from-white { --tw-gradient-from: var(--color-white); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-gray-200 { --tw-gradient-to: var(--color-gray-200); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-gray-800 { --tw-gradient-to: var(--color-gray-800); --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.to-transparent { --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); }.bg-cover { background-size: cover; }.bg-center { background-position: 50% center; }.bg-repeat { background-repeat: repeat; }.fill-gray-500 { fill: var(--color-gray-500); }.fill-white { fill: var(--color-white); }.object-contain { object-fit: contain; }.object-cover { object-fit: cover; }.object-center { object-position: center center; }.p-0 { padding: calc(var(--spacing) * 0); }.p-1 { padding: calc(var(--spacing) * 1); }.p-1\.5 { padding: calc(var(--spacing) * 1.5); }.p-2 { padding: calc(var(--spacing) * 2); }.p-3 { padding: calc(var(--spacing) * 3); }.p-4 { padding: calc(var(--spacing) * 4); }.p-5 { padding: calc(var(--spacing) * 5); }.p-6 { padding: calc(var(--spacing) * 6); }.p-8 { padding: calc(var(--spacing) * 8); }.px-0 { padding-inline: calc(var(--spacing) * 0); }.px-1 { padding-inline: calc(var(--spacing) * 1); }.px-2 { padding-inline: calc(var(--spacing) * 2); }.px-2\.5 { padding-inline: calc(var(--spacing) * 2.5); }.px-3 { padding-inline: calc(var(--spacing) * 3); }.px-4 { padding-inline: calc(var(--spacing) * 4); }.px-5 { padding-inline: calc(var(--spacing) * 5); }.px-6 { padding-inline: calc(var(--spacing) * 6); }.px-8 { padding-inline: calc(var(--spacing) * 8); }.px-12 { padding-inline: calc(var(--spacing) * 12); }.py-0 { padding-block: calc(var(--spacing) * 0); }.py-0\.5 { padding-block: calc(var(--spacing) * .5); }.py-1 { padding-block: calc(var(--spacing) * 1); }.py-1\.5 { padding-block: calc(var(--spacing) * 1.5); }.py-2 { padding-block: calc(var(--spacing) * 2); }.py-2\.5 { padding-block: calc(var(--spacing) * 2.5); }.py-3 { padding-block: calc(var(--spacing) * 3); }.py-4 { padding-block: calc(var(--spacing) * 4); }.py-5 { padding-block: calc(var(--spacing) * 5); }.py-6 { padding-block: calc(var(--spacing) * 6); }.py-7 { padding-block: calc(var(--spacing) * 7); }.py-8 { padding-block: calc(var(--spacing) * 8); }.py-10 { padding-block: calc(var(--spacing) * 10); }.py-12 { padding-block: calc(var(--spacing) * 12); }.py-24 { padding-block: calc(var(--spacing) * 24); }.pt-1 { padding-top: calc(var(--spacing) * 1); }.pt-2 { padding-top: calc(var(--spacing) * 2); }.pt-3 { padding-top: calc(var(--spacing) * 3); }.pt-4 { padding-top: calc(var(--spacing) * 4); }.pt-5 { padding-top: calc(var(--spacing) * 5); }.pt-6 { padding-top: calc(var(--spacing) * 6); }.pt-7 { padding-top: calc(var(--spacing) * 7); }.pt-8 { padding-top: calc(var(--spacing) * 8); }.pr-0 { padding-right: calc(var(--spacing) * 0); }.pr-1 { padding-right: calc(var(--spacing) * 1); }.pr-2 { padding-right: calc(var(--spacing) * 2); }.pr-3 { padding-right: calc(var(--spacing) * 3); }.pr-4 { padding-right: calc(var(--spacing) * 4); }.pr-5 { padding-right: calc(var(--spacing) * 5); }.pr-6 { padding-right: calc(var(--spacing) * 6); }.pr-8 { padding-right: calc(var(--spacing) * 8); }.pr-10 { padding-right: calc(var(--spacing) * 10); }.pr-12 { padding-right: calc(var(--spacing) * 12); }.pb-0 { padding-bottom: calc(var(--spacing) * 0); }.pb-1 { padding-bottom: calc(var(--spacing) * 1); }.pb-2 { padding-bottom: calc(var(--spacing) * 2); }.pb-3 { padding-bottom: calc(var(--spacing) * 3); }.pb-4 { padding-bottom: calc(var(--spacing) * 4); }.pb-5 { padding-bottom: calc(var(--spacing) * 5); }.pb-6 { padding-bottom: calc(var(--spacing) * 6); }.pb-8 { padding-bottom: calc(var(--spacing) * 8); }.pb-12 { padding-bottom: calc(var(--spacing) * 12); }.pb-\[var\(--strapline-padding-bottom\,12px\)\] { padding-bottom: var(--strapline-padding-bottom,12px); }.pl-0 { padding-left: calc(var(--spacing) * 0); }.pl-1 { padding-left: calc(var(--spacing) * 1); }.pl-1\.5 { padding-left: calc(var(--spacing) * 1.5); }.pl-2 { padding-left: calc(var(--spacing) * 2); }.pl-3 { padding-left: calc(var(--spacing) * 3); }.pl-4 { padding-left: calc(var(--spacing) * 4); }.pl-8 { padding-left: calc(var(--spacing) * 8); }.pl-9 { padding-left: calc(var(--spacing) * 9); }.pl-12 { padding-left: calc(var(--spacing) * 12); }.text-center { text-align: center; }.text-left { text-align: left; }.text-right { text-align: right; }.-indent-0 { text-indent: calc(var(--spacing) * 0); }.align-middle { vertical-align: middle; }.align-text-top { vertical-align: text-top; }.align-top { vertical-align: top; }.font-mono { font-family: var(--font-mono); }.font-sans { font-family: var(--font-sans); }.font-serif { font-family: var(--font-serif); }.text-2xl { font-size: var(--text-2xl); line-height: var(--tw-leading,var(--text-2xl--line-height)); }.text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }.text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }.text-base { font-size: var(--text-base); line-height: var(--tw-leading,var(--text-base--line-height)); }.text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }.text-sm { font-size: var(--text-sm); line-height: var(--tw-leading,var(--text-sm--line-height)); }.text-xl { font-size: var(--text-xl); line-height: var(--tw-leading,var(--text-xl--line-height)); }.text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }.text-\[10px\] { font-size: 10px; }.text-\[11px\] { font-size: 11px; }.text-\[length\:var\(--strapline-font-size\,13px\)\] { font-size: var(--strapline-font-size,13px); }.leading-2 { --tw-leading: calc(var(--spacing) * 2); line-height: calc(var(--spacing) * 2); }.leading-3 { --tw-leading: calc(var(--spacing) * 3); line-height: calc(var(--spacing) * 3); }.leading-4 { --tw-leading: calc(var(--spacing) * 4); line-height: calc(var(--spacing) * 4); }.leading-5 { --tw-leading: calc(var(--spacing) * 5); line-height: calc(var(--spacing) * 5); }.leading-6 { --tw-leading: calc(var(--spacing) * 6); line-height: calc(var(--spacing) * 6); }.leading-7 { --tw-leading: calc(var(--spacing) * 7); line-height: calc(var(--spacing) * 7); }.leading-8 { --tw-leading: calc(var(--spacing) * 8); line-height: calc(var(--spacing) * 8); }.leading-10 { --tw-leading: calc(var(--spacing) * 10); line-height: calc(var(--spacing) * 10); }.leading-none { --tw-leading: 1; line-height: 1; }.leading-normal { --tw-leading: var(--leading-normal); line-height: var(--leading-normal); }.leading-relaxed { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }.leading-snug { --tw-leading: var(--leading-snug); line-height: var(--leading-snug); }.leading-tight { --tw-leading: var(--leading-tight); line-height: var(--leading-tight); }.font-black { --tw-font-weight: var(--font-weight-black); font-weight: var(--font-weight-black); }.font-bold { --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); }.font-extrabold { --tw-font-weight: var(--font-weight-extrabold); font-weight: var(--font-weight-extrabold); }.font-medium { --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); }.font-normal { --tw-font-weight: var(--font-weight-normal); font-weight: var(--font-weight-normal); }.font-semibold { --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); }.tracking-normal { --tw-tracking: var(--tracking-normal); letter-spacing: var(--tracking-normal); }.tracking-tight { --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); }.tracking-wide { --tw-tracking: var(--tracking-wide); letter-spacing: var(--tracking-wide); }.tracking-wider { --tw-tracking: var(--tracking-wider); letter-spacing: var(--tracking-wider); }.tracking-widest { --tw-tracking: var(--tracking-widest); letter-spacing: var(--tracking-widest); }.text-nowrap { text-wrap: nowrap; }.text-wrap { text-wrap: wrap; }.break-words { overflow-wrap: break-word; }.text-ellipsis { text-overflow: ellipsis; }.whitespace-break-spaces { white-space: break-spaces; }.whitespace-normal { white-space: normal; }.whitespace-nowrap { white-space: nowrap; }.whitespace-pre { white-space: pre; }.text-\(--footer-text-color\) { color: var(--footer-text-color); }.text-\[\#DC1F26\] { color: rgb(220, 31, 38); }.text-\[var\(--site-header-text-color\,\#333\)\] { color: var(--site-header-text-color,#333); }.text-amber-700 { color: var(--color-amber-700); }.text-black { color: var(--color-black); }.text-blue-500 { color: var(--color-blue-500); }.text-blue-700 { color: var(--color-blue-700); }.text-current { color: currentcolor; }.text-gray-50 { color: var(--color-gray-50); }.text-gray-100 { color: var(--color-gray-100); }.text-gray-200 { color: var(--color-gray-200); }.text-gray-300 { color: var(--color-gray-300); }.text-gray-400 { color: var(--color-gray-400); }.text-gray-500 { color: var(--color-gray-500); }.text-gray-600 { color: var(--color-gray-600); }.text-gray-700 { color: var(--color-gray-700); }.text-gray-800 { color: var(--color-gray-800); }.text-gray-900 { color: var(--color-gray-900); }.text-green-50 { color: var(--color-green-50); }.text-green-400 { color: var(--color-green-400); }.text-green-500 { color: var(--color-green-500); }.text-green-600 { color: var(--color-green-600); }.text-green-700 { color: var(--color-green-700); }.text-inherit { color: inherit; }.text-lime-700 { color: var(--color-lime-700); }.text-neutral-100 { color: var(--color-neutral-100); }.text-neutral-200 { color: var(--color-neutral-200); }.text-neutral-300 { color: var(--color-neutral-300); }.text-neutral-400 { color: var(--color-neutral-400); }.text-neutral-500 { color: var(--color-neutral-500); }.text-neutral-600 { color: var(--color-neutral-600); }.text-neutral-700 { color: var(--color-neutral-700); }.text-neutral-800 { color: var(--color-neutral-800); }.text-neutral-900 { color: var(--color-neutral-900); }.text-orange-700 { color: var(--color-orange-700); }.text-pink-600 { color: var(--color-pink-600); }.text-purple-700 { color: var(--color-purple-700); }.text-red-50 { color: var(--color-red-50); }.text-red-500 { color: var(--color-red-500); }.text-red-600 { color: var(--color-red-600); }.text-red-700 { color: var(--color-red-700); }.text-rose-600 { color: var(--color-rose-600); }.text-slate-50 { color: var(--color-slate-50); }.text-slate-500 { color: var(--color-slate-500); }.text-teal-700 { color: var(--color-teal-700); }.text-white { color: var(--color-white); }.text-yellow-700 { color: var(--color-yellow-700); }.text-yellow-800 { color: var(--color-yellow-800); }.\[text-transform\:var\(--strapline-text-transform\,uppercase\)\] { text-transform: var(--strapline-text-transform,uppercase); }.capitalize { text-transform: capitalize; }.lowercase { text-transform: lowercase; }.normal-case { text-transform: none; }.uppercase { text-transform: uppercase; }.italic { font-style: italic; }.ordinal { --tw-ordinal: ordinal; font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); }.line-through { text-decoration-line: line-through; }.no-underline { text-decoration-line: none; }.underline { text-decoration-line: underline; }.decoration-current { text-decoration-color: currentcolor; }.decoration-transparent { text-decoration-color: rgba(0, 0, 0, 0); }.decoration-solid { text-decoration-style: solid; }.underline-offset-2 { text-underline-offset: 2px; }.placeholder-neutral-500::placeholder { color: var(--color-neutral-500); }.opacity-0 { opacity: 0; }.opacity-30 { opacity: 0.3; }.opacity-40 { opacity: 0.4; }.opacity-50 { opacity: 0.5; }.opacity-80 { opacity: 0.8; }.opacity-100 { opacity: 1; }.shadow { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-2xl { --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color,#00000040); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.4\)\] { --tw-shadow: 0 20px 60px -15px var(--tw-shadow-color,#0006); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-inner { --tw-shadow: inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-lg { --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-md { --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-none { --tw-shadow: 0 0 #0000; box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-sm { --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-xl { --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.shadow-xs { --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color,#0000000d); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-0 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-1 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-4 { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.ring-amber-600 { --tw-ring-color: var(--color-amber-600); }.ring-black { --tw-ring-color: var(--color-black); }.ring-blue-600 { --tw-ring-color: var(--color-blue-600); }.ring-gray-300 { --tw-ring-color: var(--color-gray-300); }.ring-green-600 { --tw-ring-color: var(--color-green-600); }.ring-orange-600 { --tw-ring-color: var(--color-orange-600); }.ring-purple-400 { --tw-ring-color: var(--color-purple-400); }.ring-purple-600 { --tw-ring-color: var(--color-purple-600); }.ring-red-600 { --tw-ring-color: var(--color-red-600); }.ring-slate-600 { --tw-ring-color: var(--color-slate-600); }.ring-teal-600 { --tw-ring-color: var(--color-teal-600); }.ring-white { --tw-ring-color: var(--color-white); }.ring-yellow-600 { --tw-ring-color: var(--color-yellow-600); }.outline-hidden { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .outline-hidden { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.outline, .outline-1 { outline-style: var(--tw-outline-style); outline-width: 1px; }.outline-transparent { outline-color: rgba(0, 0, 0, 0); }.blur { --tw-blur: blur(8px); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.brightness-0 { --tw-brightness: brightness(0%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.contrast-100 { --tw-contrast: contrast(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.grayscale { --tw-grayscale: grayscale(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.invert { --tw-invert: invert(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.filter { filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); }.backdrop-blur-sm { --tw-backdrop-blur: blur(var(--blur-sm)); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }.backdrop-filter { backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); }.transition { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-all { transition-property: all; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-colors { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-opacity { transition-property: opacity; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-shadow { transition-property: box-shadow; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.transition-transform { transition-property: transform, translate, scale, rotate; transition-timing-function: var(--tw-ease,var(--default-transition-timing-function)); transition-duration: var(--tw-duration,var(--default-transition-duration)); }.duration-75 { --tw-duration: 75ms; transition-duration: 75ms; }.duration-100 { --tw-duration: .1s; transition-duration: 0.1s; }.duration-150 { --tw-duration: .15s; transition-duration: 0.15s; }.duration-200 { --tw-duration: .2s; transition-duration: 0.2s; }.duration-300 { --tw-duration: .3s; transition-duration: 0.3s; }.duration-500 { --tw-duration: .5s; transition-duration: 0.5s; }.ease-in { --tw-ease: var(--ease-in); transition-timing-function: var(--ease-in); }.ease-in-out { --tw-ease: var(--ease-in-out); transition-timing-function: var(--ease-in-out); }.ease-out { --tw-ease: var(--ease-out); transition-timing-function: var(--ease-out); }.prose-neutral { --tw-prose-#widget-1bec2uw: oklch(37.1% 0 0); --tw-prose-headings: oklch(20.5% 0 0); --tw-prose-lead: oklch(43.9% 0 0); --tw-prose-links: oklch(20.5% 0 0); --tw-prose-bold: oklch(20.5% 0 0); --tw-prose-counters: oklch(55.6% 0 0); --tw-prose-bullets: oklch(87% 0 0); --tw-prose-hr: oklch(92.2% 0 0); --tw-prose-quotes: oklch(20.5% 0 0); --tw-prose-quote-borders: oklch(92.2% 0 0); --tw-prose-captions: oklch(55.6% 0 0); --tw-prose-kbd: oklch(20.5% 0 0); --tw-prose-kbd-shadows: oklab(20.5% 0 0/.1); --tw-prose-code: oklch(20.5% 0 0); --tw-prose-pre-code: oklch(92.2% 0 0); --tw-prose-pre-bg: oklch(26.9% 0 0); --tw-prose-th-borders: oklch(87% 0 0); --tw-prose-td-borders: oklch(92.2% 0 0); --tw-prose-invert-#widget-1bec2uw: oklch(87% 0 0); --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: oklch(70.8% 0 0); --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: oklch(70.8% 0 0); --tw-prose-invert-bullets: oklch(43.9% 0 0); --tw-prose-invert-hr: oklch(37.1% 0 0); --tw-prose-invert-quotes: oklch(97% 0 0); --tw-prose-invert-quote-borders: oklch(37.1% 0 0); --tw-prose-invert-captions: oklch(70.8% 0 0); --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: #ffffff1a; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: oklch(87% 0 0); --tw-prose-invert-pre-bg: #00000080; --tw-prose-invert-th-borders: oklch(43.9% 0 0); --tw-prose-invert-td-borders: oklch(37.1% 0 0); }.outline-none { --tw-outline-style: none; outline-style: none; }.select-none { user-select: none; }.ring-inset { --tw-ring-inset: inset; }:is(.\*\:pointer-events-auto > *) { pointer-events: auto; }@media (hover: hover) {  .group-hover\:text-\[\#DC1F26\]:is(:where(.group):hover *) { color: rgb(220, 31, 38); }  .group-hover\:opacity-100:is(:where(.group):hover *) { opacity: 1; }}.visited\:text-inherit:visited { color: inherit; }.empty\:border-none:empty { --tw-border-style: none; border-style: none; }@media (hover: hover) {  .hover\:border-black:hover { border-color: var(--color-black); }  .hover\:border-neutral-300:hover { border-color: var(--color-neutral-300); }  .hover\:bg-\[\#b8181e\]:hover { background-color: rgb(184, 24, 30); }  .hover\:bg-black:hover { background-color: var(--color-black); }  .hover\:bg-blue-50:hover { background-color: var(--color-blue-50); }  .hover\:bg-green-50:hover { background-color: var(--color-green-50); }  .hover\:bg-green-700:hover { background-color: var(--color-green-700); }  .hover\:bg-indigo-50:hover { background-color: var(--color-indigo-50); }  .hover\:bg-neutral-50:hover { background-color: var(--color-neutral-50); }  .hover\:bg-neutral-100:hover { background-color: var(--color-neutral-100); }  .hover\:bg-neutral-200:hover { background-color: var(--color-neutral-200); }  .hover\:bg-neutral-800:hover { background-color: var(--color-neutral-800); }  .hover\:bg-red-50:hover { background-color: var(--color-red-50); }  .hover\:bg-red-700:hover { background-color: var(--color-red-700); }  .hover\:text-\[\#DC1F26\]:hover { color: rgb(220, 31, 38); }  .hover\:text-blue-600:hover { color: var(--color-blue-600); }  .hover\:text-gray-500:hover { color: var(--color-gray-500); }  .hover\:text-indigo-600:hover { color: var(--color-indigo-600); }  .hover\:text-inherit:hover { color: inherit; }  .hover\:text-neutral-700:hover { color: var(--color-neutral-700); }  .hover\:text-neutral-900:hover { color: var(--color-neutral-900); }  .hover\:text-red-600:hover { color: var(--color-red-600); }  .hover\:no-underline:hover { text-decoration-line: none; }  .hover\:underline:hover { text-decoration-line: underline; }  .hover\:decoration-transparent:hover { text-decoration-color: rgba(0, 0, 0, 0); }  .hover\:underline-offset-2:hover { text-underline-offset: 2px; }}.focus\:border-rose-500:focus { border-color: var(--color-rose-500); }.focus\:text-inherit:focus { color: inherit; }.focus\:decoration-transparent:focus { text-decoration-color: rgba(0, 0, 0, 0); }.focus\:ring-1:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-2:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-4:focus { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus\:ring-\[\#DC1F26\]:focus { --tw-ring-color: #dc1f26; }.focus\:ring-\[\#DC1F26\]\/20:focus { --tw-ring-color: oklab(57.3239% .195826 .0976754/.2); }.focus\:ring-rose-500:focus { --tw-ring-color: var(--color-rose-500); }.focus\:ring-offset-1:focus { --tw-ring-offset-width: 1px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); }.focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); }.focus\:outline-hidden:focus { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .focus\:outline-hidden:focus { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.focus\:outline-1:focus { outline-style: var(--tw-outline-style); outline-width: 1px; }.focus\:outline-none:focus { --tw-outline-style: none; outline-style: none; }.focus\:\[outline-style\:auto\]:focus { outline-style: auto; }.focus-visible\:ring-2:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor); box-shadow: var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow); }.focus-visible\:ring-gray-900:focus-visible { --tw-ring-color: var(--color-gray-900); }.focus-visible\:outline-hidden:focus-visible { --tw-outline-style: none; outline-style: none; }@media (forced-colors: active) {  .focus-visible\:outline-hidden:focus-visible { outline-offset: 2px; outline: rgba(0, 0, 0, 0) solid 2px; }}.active\:text-inherit:active { color: inherit; }@media not all and (min-width: 640px) {  .max-sm\:top-full { top: 100%; }  .max-sm\:left-2\/4 { left: 50%; }  .max-sm\:hidden { display: none; }  .max-sm\:min-w-\[300px\] { min-width: 300px; }  .max-sm\:-translate-x-2\/4 { --tw-translate-x: -50%; translate: var(--tw-translate-x) var(--tw-translate-y); }}@media (min-width: 640px) {  .sm\:visible { visibility: visible; }  .sm\:relative { position: relative; }  .sm\:top-4 { top: calc(var(--spacing) * 4); }  .sm\:top-\[88px\] { top: 88px; }  .sm\:top-\[92px\] { top: 92px; }  .sm\:right-3 { right: calc(var(--spacing) * 3); }  .sm\:right-4 { right: calc(var(--spacing) * 4); }  .sm\:left-3 { left: calc(var(--spacing) * 3); }  .sm\:order-3 { order: 3; }  .sm\:mx-auto { margin-inline: auto; }  .sm\:my-8 { margin-block: calc(var(--spacing) * 8); }  .sm\:mt-5 { margin-top: calc(var(--spacing) * 5); }  .sm\:mt-6 { margin-top: calc(var(--spacing) * 6); }  .sm\:mb-6 { margin-bottom: calc(var(--spacing) * 6); }  .sm\:mb-8 { margin-bottom: calc(var(--spacing) * 8); }  .sm\:block { display: block; }  .sm\:flex { display: flex; }  .sm\:hidden { display: none; }  .sm\:inline { display: inline; }  .sm\:h-6 { height: calc(var(--spacing) * 6); }  .sm\:h-12 { height: calc(var(--spacing) * 12); }  .sm\:h-\[50px\] { height: 50px; }  .sm\:h-\[var\(--logo-height-desktop\,auto\)\] { height: var(--logo-height-desktop,auto); }  .sm\:max-h-full { max-height: 100%; }  .sm\:w-6 { width: calc(var(--spacing) * 6); }  .sm\:w-12 { width: calc(var(--spacing) * 12); }  .sm\:w-64 { width: calc(var(--spacing) * 64); }  .sm\:w-\[480px\] { width: 480px; }  .sm\:max-w-full { max-width: 100%; }  .sm\:max-w-sm { max-width: var(--container-sm); }  .sm\:min-w-auto { min-width: auto; }  .sm\:translate-y-0 { --tw-translate-y: calc(var(--spacing) * 0); translate: var(--tw-translate-x) var(--tw-translate-y); }  .sm\:scale-95 { --tw-scale-x: 95%; --tw-scale-y: 95%; --tw-scale-z: 95%; scale: var(--tw-scale-x) var(--tw-scale-y); }  .sm\:scale-100 { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); }  .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }  .sm\:flex-row { flex-direction: row; }  .sm\:items-center { align-items: center; }  .sm\:border-r { border-right-style: var(--tw-border-style); border-right-width: 1px; }  .sm\:border-solid { --tw-border-style: solid; border-style: solid; }  .sm\:border-gray-300 { border-color: var(--color-gray-300); }  .sm\:p-0 { padding: calc(var(--spacing) * 0); }  .sm\:p-3 { padding: calc(var(--spacing) * 3); }  .sm\:p-6 { padding: calc(var(--spacing) * 6); }  .sm\:p-8 { padding: calc(var(--spacing) * 8); }  .sm\:px-0 { padding-inline: calc(var(--spacing) * 0); }  .sm\:px-4 { padding-inline: calc(var(--spacing) * 4); }  .sm\:py-4 { padding-block: calc(var(--spacing) * 4); }  .sm\:pl-14 { padding-left: calc(var(--spacing) * 14); }  .sm\:text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading,var(--text-3xl--line-height)); }  .sm\:text-base { font-size: var(--text-base); line-height: var(--tw-leading,var(--text-base--line-height)); }}@media (min-width: 768px) {  .md\:visible { visibility: visible; }  .md\:inline { display: inline; }  .md\:h-screen { height: 100vh; }  .md\:w-80 { width: calc(var(--spacing) * 80); }  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }  .md\:flex-row { flex-direction: row; }  .md\:overflow-hidden { overflow: hidden; }  .md\:overflow-y-auto { overflow-y: auto; }  .md\:p-12 { padding: calc(var(--spacing) * 12); }  .md\:text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading,var(--text-4xl--line-height)); }  .md\:text-lg { font-size: var(--text-lg); line-height: var(--tw-leading,var(--text-lg--line-height)); }  .md\:text-xs { font-size: var(--text-xs); line-height: var(--tw-leading,var(--text-xs--line-height)); }}.prose-headings\:font-serif :where(h1, h2, h3, h4, h5, h6, th):not(:where([class~="not-prose"], [class~="not-prose"] *)), .prose-p\:font-serif :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { font-family: var(--font-serif); }.prose-p\:leading-relaxed :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); }.prose-p\:text-neutral-700 :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { color: var(--color-neutral-700); }@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }@property --tw-rotate-x { syntax: "*"; inherits: false; }@property --tw-rotate-y { syntax: "*"; inherits: false; }@property --tw-rotate-z { syntax: "*"; inherits: false; }@property --tw-skew-x { syntax: "*"; inherits: false; }@property --tw-skew-y { syntax: "*"; inherits: false; }@property --tw-scroll-snap-strictness { syntax: "*"; inherits: false; initial-value: proximity; }@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-space-x-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-divide-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }@property --tw-gradient-position { syntax: "*"; inherits: false; }@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }@property --tw-gradient-stops { syntax: "*"; inherits: false; }@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }@property --tw-leading { syntax: "*"; inherits: false; }@property --tw-font-weight { syntax: "*"; inherits: false; }@property --tw-tracking { syntax: "*"; inherits: false; }@property --tw-ordinal { syntax: "*"; inherits: false; }@property --tw-slashed-zero { syntax: "*"; inherits: false; }@property --tw-numeric-figure { syntax: "*"; inherits: false; }@property --tw-numeric-spacing { syntax: "*"; inherits: false; }@property --tw-numeric-fraction { syntax: "*"; inherits: false; }@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-shadow-color { syntax: "*"; inherits: false; }@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-ring-color { syntax: "*"; inherits: false; }@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-inset-ring-color { syntax: "*"; inherits: false; }@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-ring-inset { syntax: "*"; inherits: false; }@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0; }@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }@property --tw-outline-style { syntax: "*"; inherits: false; initial-value: solid; }@property --tw-blur { syntax: "*"; inherits: false; }@property --tw-brightness { syntax: "*"; inherits: false; }@property --tw-contrast { syntax: "*"; inherits: false; }@property --tw-grayscale { syntax: "*"; inherits: false; }@property --tw-hue-rotate { syntax: "*"; inherits: false; }@property --tw-invert { syntax: "*"; inherits: false; }@property --tw-opacity { syntax: "*"; inherits: false; }@property --tw-saturate { syntax: "*"; inherits: false; }@property --tw-sepia { syntax: "*"; inherits: false; }@property --tw-drop-shadow { syntax: "*"; inherits: false; }@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }@property --tw-backdrop-blur { syntax: "*"; inherits: false; }@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }@property --tw-backdrop-invert { syntax: "*"; inherits: false; }@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }@property --tw-duration { syntax: "*"; inherits: false; }@property --tw-ease { syntax: "*"; inherits: false; }@keyframes spin {   100% { transform: rotate(360deg); }}@keyframes pulse {   50% { opacity: 0.5; }}      .pcg-results-list { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }      .pcg-result-item { margin: 0; padding: 0; list-style: none; }      .pcg-result-btn { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 1rem; border: none; background: transparent; cursor: pointer; text-align: left; transition: background 0.2s; height: 76px; }      .pcg-result-btn.hovered { background-color: #f9fafb; }      .pcg-result-border { border-bottom: 1px solid #f5f5f5; }      .pcg-result-content { display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding-right: 1rem; flex: 1; }      .pcg-result-meta-row { display: flex; align-items: center; gap: 0.5rem; overflow: hidden; }      .pcg-result-title { color: #000000; font-weight: bold; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }      .pcg-meta-date { color: #737373; font-size: 0.75rem; text-transform: uppercase; letter-spacing: -0.025em; flex-shrink: 0; }      .pcg-result-summary { color: #737373; font-size: 0.75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 0.25rem; }      .pcg-result-actions { display: flex; align-items: center; gap: 1rem; flex: none; }      .pcg-score { color: #DC1F26; font-weight: 900; font-size: 1.25rem; font-style: italic; }      .pcg-result-arrow { color: #d4d4d4; transition: color 0.2s; }      .pcg-reader-msg { text-align: center; padding: 2rem; color: #737373; }      .pcg-reader-loading { display: flex; justify-content: center; align-items: center; height: 100%; min-height: 400px; }      .pcg-reader-loading p { color: #DC1F26; }      .pcg-prose-content { max-width: 65ch; margin: 0 auto; padding: 0 0.5rem; }      .pcg-reader-header { margin-bottom: 2rem; }      .pcg-reader-title { font-size: 1.75rem; font-weight: bold; line-height: 1.2; margin-bottom: 1rem; }      .pcg-reader-meta { display: flex; gap: 0.75rem; align-items: center; font-size: 0.875rem; font-weight: 500; color: #52525b; text-transform: uppercase; letter-spacing: 0.05em; }      .pcg-reader-meta-divider { color: #d4d4d8; }      .pcg-reader-body { line-height: 1.6; color: #262626; font-size: 1.125rem; }      .pcg-prose-content img { width: 100%; height: auto; margin: 1.5rem 0; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); border-radius: 0.5rem; }       .pcg-prose-content a { color: #e11d48; text-decoration: none; font-weight: 500; }       .pcg-prose-content a:hover { text-decoration: underline; }       .pcg-prose-content p { margin-bottom: 1.5em !important; display: block !important; }    </style></head><body style="margin:0; padding:0; background:transparent;">  <div style="position: relative;">    <div class="w-full max-w-2xl mx-auto flex justify-center" id="widget-1bec2uw"><div class="w-full max-w-2xl mx-auto font-sans relative"><div id="pcg-search-container" class="bg-[#ededed] p-2 sm:p-3 rounded-full shadow-sm relative z-20 flex items-center"><div class="relative w-full text-sm sm:text-base md:text-lg"><div class="absolute left-4 top-1/2 -translate-y-1/2 text-[#DC1F26]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search w-5 h-5 sm:w-6 sm:h-6" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></div><input id="pcg-search" placeholder="Search our 104 gaming mouse reviews" class="w-full bg-white border-2 border-[#DC1F26] rounded-full py-3 sm:py-4 pl-12 sm:pl-14 pr-10 outline-none text-black placeholder-neutral-500 shadow-inner focus:ring-4 focus:ring-[#DC1F26]/20 transition-all font-medium text-ellipsis overflow-hidden" type="text" value=""></div></div><div id="pcg-footer-stats" class="mt-4 text-center text-sm sm:text-base font-semibold text-neutral-600 px-4">PC Gamer has reviewed <span id="pcg-total-reviews">1336</span> PC gaming goodies since 2020</div></div>      <section id="pcg-dropdown-container" class="absolute top-[76px] sm:top-[88px] left-2 right-2 sm:left-3 sm:right-3 z-50 bg-white border-2 border-[#DC1F26] rounded-2xl shadow-xl flex-col overflow-hidden" style="display: none; max-height: 380px;">        <header style="display: flex; align-items: center; justify-content: space-between; background: #fafafa; padding: 0.75rem 1rem; border-bottom: 1px solid #f5f5f5;">          <h3 id="pcg-dropdown-title" style="font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #737373; margin: 0;">Latest Reviews</h3>          <div style="display: flex; align-items: center;">            <span style="font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #737373; margin-right: 1.25rem; user-select: none;">Score</span>            <button id="pcg-close-btn" aria-label="Close" style="color: #a3a3a3; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;">               <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="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>            </button>          </div>        </header>        <nav aria-label="Search Results" id="pcg-results" style="overflow-y: auto;">        </nav>      </section>            <article id="pcg-reader-container" class="absolute top-[80px] sm:top-[92px] left-2 right-2 sm:left-3 sm:right-3 z-[100] bg-white border-2 border-[#DC1F26] rounded-2xl shadow-[0_20px_60px_-15px_rgba(0,0,0,0.4)] flex-col overflow-hidden" style="display: none; height: 600px;">        <header style="display: flex; align-items: center; justify-content: space-between; padding: 1rem; border-bottom: 1px solid #f5f5f5; flex: none; background: white; position: relative;">          <div style="flex: 1;">            <span style="font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #a3a3a3;">Reader view</span>          </div>                    <div style="position: absolute; left: 50%; transform: translateX(-50%); text-align: center;" id="pcg-reader-link-container">          </div>          <div style="flex: 1; display: flex; justify-content: flex-end;">            <button id="pcg-reader-close" aria-label="Close Reader" style="color: #a3a3a3; background: transparent; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0;">              <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="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>            </button>          </div>        </header>        <div id="pcg-reader-content" style="flex: 1; padding: 1rem 1rem 3rem; overflow-y: auto; background: white; font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;">        </div>      </article>    </div>  </div>        <script>        const API_BASE = "https://airedale-version-review-widget-builder.ai.studio";        const CATEGORY = "Gaming Mice";        const INITIALLY_OPEN = false;        // Embedded complete category data        let LOCAL_REVIEWS = JSON.parse(decodeURIComponent("%5B%7B%22id%22%3A%22WMXAonUQQtoWEioUkjrHQ9%22%2C%22title%22%3A%22AngryMiao%20AM%20Infinity.97%20mouse%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fangrymiao-am-infinity-97-mouse-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-19T12%3A20%3A28Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FJFKjNACJuiQRvtSxGHrSRo.jpg%22%2C%22strapline%22%3A%22Flagship%20speed%2C%20boutique%20flair.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22gaming%20mouse%22%2C%22Asus%22%5D%2C%22score%22%3A88%2C%22summary%22%3A%22Flagship%20speed%2C%20boutique%20flair.%22%7D%2C%7B%22id%22%3A%22VoC7Nefyvxfz8vx7DkQY6G%22%2C%22title%22%3A%22Razer%20Naga%20V3%20Pro%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Frazer-naga-v3-pro-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-18T09%3A18%3A44Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FbxiLAwj2yKPCob3YQrKmwP.jpg%22%2C%22strapline%22%3A%22An%20upgrade%20in%20pretty%20much%20every%20way%20(if%20you%20ignore%20the%20audible%20ping%20of%20the%20switches).%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22gaming%20mouse%22%2C%22Asus%22%5D%2C%22score%22%3A84%2C%22summary%22%3A%22An%20upgrade%20in%20pretty%20much%20every%20way%20(if%20you%20ignore%20the%20audible%20ping%20of%20the%20switches).%22%7D%2C%7B%22id%22%3A%229rH2aY9tFgUwQt6sayPTuA%22%2C%22title%22%3A%22Asus%20ROG%20Harpe%20II%20Extreme%20Edition%2020%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fasus-rog-harpe-ii-extreme-edition-20-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-14T12%3A04%3A08Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2F5Z5HG6hDyVtLXotzVznxzd.jpg%22%2C%22strapline%22%3A%22The%20most%20luxurious%20gaming%20mouse%20I've%20managed%20to%20get%20grubby.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22gaming%20mouse%22%2C%22Asus%22%2C%22Asus%20ROG%20Harpe%20II%20Extreme%20Edition%2020%22%5D%2C%22score%22%3A72%2C%22summary%22%3A%22The%20most%20luxurious%20gaming%20mouse%20I've%20managed%20to%20get%20grubby.%22%7D%2C%7B%22id%22%3A%227Ck8uEtqvvSPUEMBEB3WBL%22%2C%22title%22%3A%22Pulsar%20Feinmann%20F01%20Noctua%20Edition%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fpulsar-feinmann-f01-noctua-edition-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-08-11T14%3A22%3A21Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FVwUWxAQNqmnvcuJzK3zznH.jpg%22%2C%22strapline%22%3A%22Breezy%20and%20comfortable%2C%20but%20I'm%20not%20a%20fan%20of%20its%20price%20and%20battery.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22budget%20gaming%20mice%22%2C%22gaming%20mouse%22%2C%22budget%20gaming%20mouse%22%2C%22Noctua%22%5D%2C%22score%22%3A73%2C%22summary%22%3A%22Breezy%20and%20comfortable%2C%20but%20I'm%20not%20a%20fan%20of%20its%20price%20and%20battery.%22%7D%2C%7B%22id%22%3A%22oFURMEnCZ5FiByvBsJjKtG%22%2C%22title%22%3A%22Mchose%20K7%20V2%20Ultra%2B%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fmchose-k7-v2-ultra-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-07-31T11%3A12%3A44Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FJPWDDosBpyPGimW3CEGTPg.jpg%22%2C%22strapline%22%3A%22Great%20specs%20with%20a%20Viper%20V3%2FV4%20Pro's%20shape%2C%20for%20less.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22gaming%20mice%22%2C%22MCHOSE%22%2C%22Mchose%20K7%20V2%20Ultra%2B%22%2C%22Razer%20Viper%20V4%20Pro%22%5D%2C%22score%22%3A89%2C%22summary%22%3A%22Great%20specs%20with%20a%20Viper%20V3%2FV4%20Pro's%20shape%2C%20for%20less.%22%7D%2C%7B%22id%22%3A%2274wWM4f8JebSDZj7RERSUU%22%2C%22title%22%3A%22Asus%20ProArt%20Mouse%20MD301%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fasus-proart-mouse-md301%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-07-08T16%3A12%3A04Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FCDsLPYCyTeZscFLF2sjGHQ.jpg%22%2C%22strapline%22%3A%22A%20professional%20design%2C%20but%20with%20enough%20quirks%20to%20give%20me%20pause.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Asus%22%2C%22ergonomic%20mouse%22%2C%22Logitech%20MX%20Master%204%22%2C%22mouse%22%2C%22polling%20rate%22%2C%22mouse%20sensor%22%2C%22Asus%20ProArt%20Mouse%20MD301%22%5D%2C%22score%22%3A71%2C%22summary%22%3A%22A%20professional%20design%2C%20but%20with%20enough%20quirks%20to%20give%20me%20pause.%22%7D%2C%7B%22id%22%3A%22K53srydpKdGNFuLaqCTAra%22%2C%22title%22%3A%22Logitech%20Mobi%20Fold%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Flogitech-mobi-fold-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-07-07T11%3A41%3A33Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FFgQTQfXDfPekUFgZ9dwEZ7.jpg%22%2C%22strapline%22%3A%22Is%20that%20a%20mouse%20in%20your%20pocket%20or%20do%20you%20need%20to%20see%20a%20doctor%3F%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22gaming%20mouse%22%2C%22travel%20mouse%22%2C%22Logitech%22%2C%22Mobi%20Fold%22%5D%2C%22score%22%3A65%2C%22summary%22%3A%22Is%20that%20a%20mouse%20in%20your%20pocket%20or%20do%20you%20need%20to%20see%20a%20doctor%3F%22%7D%2C%7B%22id%22%3A%22CpybdgtNoaxnCfqj8qUD36%22%2C%22title%22%3A%22Logitech%20G305%20X%20Superlight%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Flogitech-g305-x-superlight-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-06-19T15%3A37%3A08Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FpTZdszAGGB42CfodWGhPqb.jpg%22%2C%22strapline%22%3A%22A%20solid%20and%20fairly%20plain%20upgrade%20on%20the%20original%2C%20but%20not%20wholly%20better%20either.%20%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22Mice%22%2C%22gaming%20mice%22%2C%22budget%20gaming%20mice%22%2C%22gaming%20mouse%22%2C%22budget%20gaming%20mouse%22%5D%2C%22score%22%3A70%2C%22summary%22%3A%22A%20solid%20and%20fairly%20plain%20upgrade%20on%20the%20original%2C%20but%20not%20wholly%20better%20either.%20%22%7D%2C%7B%22id%22%3A%229yFaBcP8M4acKy3vvNHd3S%22%2C%22title%22%3A%22MSI%20Versa%20300%20Wireless%208K%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fmsi-versa-300-wireless-8k-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-06-15T15%3A35%3A37Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FJBmtjZP3tFxWBytcBD26Jb.jpg%22%2C%22strapline%22%3A%22Surprisingly%20potent.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22MSI%22%2C%22gaming%20mouse%22%2C%228K%22%2C%22mouse%22%2C%22gaming%20mice%22%5D%2C%22score%22%3A72%2C%22summary%22%3A%22Surprisingly%20potent.%22%7D%2C%7B%22id%22%3A%22PnfkWCANTGjwi9CK2iZQBN%22%2C%22title%22%3A%22ProtoArc%20EM25%20ergonomic%20mouse%22%2C%22url%22%3A%22https%3A%2F%2Fwww.pcgamer.com%2Fhardware%2Fgaming-mice%2Fprotoarc-em25-ergonomic-mouse-review%22%2C%22author%22%3A%22PC%20Gamer%22%2C%22publishDate%22%3A%222026-06-12T16%3A31%3A51Z%22%2C%22image%22%3A%22https%3A%2F%2Fcdn.mos.cms.futurecdn.net%2FZwZJejJtPeZcajbcwMNWfX.jpg%22%2C%22strapline%22%3A%22Rough%20around%20the%20edges.%22%2C%22categories%22%3A%5B%22Gaming%20Mice%22%2C%22Hardware%22%5D%2C%22tags%22%3A%5B%22Hardware%22%2C%22ergonomic%20mouse%22%2C%22ProtoArc%22%2C%22ProtoArc%20EM25%22%2C%22RF%202.4%20GHz%22%2C%22Bluetooth%22%2C%22wireless%20mouse%22%5D%2C%22score%22%3A40%2C%22summary%22%3A%22Rough%20around%20the%20edges.%22%7D%5D"));                const searchInput = document.getElementById("pcg-search");        const resultsContainer = document.getElementById("pcg-results");        const dropdownContainer = document.getElementById("pcg-dropdown-container");        const closeBtn = document.getElementById("pcg-close-btn");        const titleSpan = document.getElementById("pcg-dropdown-title");                const readerContainer = document.getElementById("pcg-reader-container");        const readerContent = document.getElementById("pcg-reader-content");        const readerCloseBtn = document.getElementById("pcg-reader-close");                let debounceTimer;                function updateIframeHeight(isDropdownOpen, isReaderOpen = false) {          let newHeight = '140px';          if (isReaderOpen) {            newHeight = '720px';          } else if (isDropdownOpen) {            newHeight = '500px';          }                    let resizedSuccessfully = false;          try {            if (window.frameElement) {              window.frameElement.style.height = newHeight;              resizedSuccessfully = true;            }          } catch (e) {            // Ignore cross-origin error when accessing frameElement          }                    if (!resizedSuccessfully && window.parent && window.parent !== window) {            try {              // Send message to parent only for cross-origin resizing               // using '*' to avoid target origin mismatch errors              window.parent.postMessage({ type: 'pcg-widget-resize', height: newHeight }, '*');            } catch (e) {}          }        }        function closeReader() {          readerContainer.style.display = 'none';          readerContent.innerHTML = '';          updateIframeHeight(dropdownContainer.style.display === 'flex', false);        }        if (readerCloseBtn) readerCloseBtn.addEventListener('click', closeReader);                function closeDropdown() {          dropdownContainer.style.display = 'none';          updateIframeHeight(false, readerContainer.style.display === 'flex');        }                function openDropdown() {          dropdownContainer.style.display = 'flex';          closeReader();          updateIframeHeight(true, false);        }                if (closeBtn) closeBtn.addEventListener("click", closeDropdown);                document.addEventListener("click", (e) => {           if (!searchInput.contains(e.target) && !dropdownContainer.contains(e.target) && !readerContainer.contains(e.target)) {               closeDropdown();           }        });                const TOTAL_COUNT = 1336;        const CATEGORY_COUNT = 76;        function initializeStats() {           const totalSpan = document.getElementById("pcg-total-reviews");           if (totalSpan) totalSpan.textContent = TOTAL_COUNT;                      if (searchInput && CATEGORY_COUNT > 0) {             function formatCat(cat) {               if (cat === "PC gaming hardware") return "PC gaming hardware";               if (cat === "Handheld Gaming PCs") return "handheld gaming PC";                if (cat === "Gaming PCs") return "gaming PC";               if (cat === "Gaming Mice") return "gaming mouse";               if (cat === "Memory" || cat === "Cooling" || cat === "Lighting" || cat === "Hardware") return cat.toLowerCase();               if (cat === "Earbuds & Headphones") return "earbud & headphone";               return cat.replace(/s$/i, '').toLowerCase();             }             const formattedCat = formatCat(CATEGORY);             searchInput.placeholder = CATEGORY_COUNT > 50 ? "Search our " + CATEGORY_COUNT + " " + formattedCat + " reviews" : "Search our " + formattedCat + " reviews";           }        }                initializeStats();        function fetchResults(q) {          if (q) {             titleSpan.textContent = "Search Results";          } else {             titleSpan.textContent = "Latest " + (CATEGORY === "PC gaming hardware" ? "PC gaming hardware" : CATEGORY) + " Reviews";          }                     if (!q) {            renderResults(LOCAL_REVIEWS);            return;          }                    resultsContainer.innerHTML = '<p style="padding:2rem;text-align:center;color:#737373;">Loading...</p>';                    fetch(API_BASE + "/api/reviews?category=" + encodeURIComponent(CATEGORY) + "&q=" + encodeURIComponent(q) + "&limit=20")            .then(res => res.json())            .then(data => {               renderResults(data.results || []);            })            .catch(err => {               console.error("Search failed:", err);               resultsContainer.innerHTML = '<p style="padding:2rem;text-align:center;color:#DC1F26;">Error searching reviews.</p>';            });        }                function renderResults(results) {          if(!results || results.length === 0) {            resultsContainer.innerHTML = '<p class="pcg-reader-msg">No results found.</p>';            return;          }          let html = '<ul class="pcg-results-list">';          results.forEach((res, i) => {            let scoreHtml = res.score ? '<div class="pcg-score" aria-label="Score: ' + res.score + '">' + res.score + '</div>' : '';                        // Format URL properly            let targetUrl = res.url.startsWith("http") ? res.url : "https://www.pcgamer.com" + res.url;                        let borderClass = i < results.length - 1 ? 'pcg-result-border' : '';                        let dateHtml = '';            if (res.publishDate) {              try {                let dateStr = new Date(res.publishDate).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });                dateHtml = '<span class="pcg-meta-date">' + dateStr + '</span>';              } catch(e) {}            }                        let subHtml = '<span class="pcg-result-summary">' + (res.summary || "") + '</span>';                        html += '<li class="pcg-result-item"><button aria-label="Read ' + (res.title || "Review").replace(/"/g, '&quot;') + '" onclick="openReaderInPage(\'' + targetUrl + '\')" class="pcg-result-btn ' + borderClass + '" onmouseover="this.classList.add(\'hovered\')" onmouseout="this.classList.remove(\'hovered\')" >' +                  '<div class="pcg-result-content">' +                    '<div class="pcg-result-meta-row">' +                       '<span class="pcg-result-title">' + (res.title || "Review") + '</span>' +                      dateHtml +                     '</div>' +                    subHtml +                  '</div>' +                  '<div class="pcg-result-actions">' +                    scoreHtml +                    '<span class="pcg-result-arrow" aria-hidden="true">→</span>' +                  '</div>' +              '</button></li>';          });          html += '</ul>';          resultsContainer.innerHTML = html;                    updateJSONLD(results);        }        function updateJSONLD(results) {          let ldScript = document.getElementById('pcg-json-ld');          if (!ldScript) {            ldScript = document.createElement('script');            ldScript.type = 'application/ld+json';            ldScript.id = 'pcg-json-ld';            document.head.appendChild(ldScript);          }                    const itemListElements = results.slice(0, 50).map((res, index) => {            let targetUrl = res.url.startsWith("http") ? res.url : "https://www.pcgamer.com" + res.url;            let itemName = (res.title || "Product").replace(/\s+review$/i, '');            let schemaItem = {              "@type": "Product",              "name": itemName,              "image": res.image || targetUrl,              "review": {                "@type": "Review",                "url": targetUrl,                "name": res.title || "Review",                "datePublished": res.publishDate || new Date().toISOString().split('T')[0],                "author": {                  "@type": "Organization",                  "name": "PC Gamer"                },                "publisher": {                  "@type": "Organization",                  "name": "PC Gamer"                }              }            };            if (res.score) {              schemaItem.review.reviewRating = {                "@type": "Rating",                "ratingValue": res.score,                "bestRating": "100",                "worstRating": "1"              };            }            return {              "@type": "ListItem",              "position": index + 1,              "item": schemaItem            };          });          const schema = {            "@context": "https://schema.org",            "@type": "ItemList",            "itemListElement": itemListElements          };          ldScript.textContent = JSON.stringify(schema);        }        function openReaderInPage(targetUrl) {          closeDropdown();          readerContainer.style.display = 'flex';          updateIframeHeight(false, true);          const readerLinkContainer = document.getElementById("pcg-reader-link-container");          if (readerLinkContainer) {            readerLinkContainer.innerHTML = '<a href="' + targetUrl + '" target="_blank" rel="noopener noreferrer" class="bg-[#DC1F26] text-white px-3 py-1.5 rounded-full font-sans text-[11px] md:text-xs font-bold hover:bg-black transition-colors border-2 border-[#DC1F26] hover:border-black shadow-sm inline-block" style="text-decoration: none;">Read full review</a>';          }          readerContent.innerHTML = '<div class="pcg-reader-loading"><p>Loading article...</p></div>';          fetch(API_BASE + "/api/content?q=" + btoa(targetUrl))            .then(res => res.json())            .then(data => {               if(!data || !data.content) {                 readerContent.innerHTML = '<div class="pcg-reader-msg">Could not load article content.</div>';                 return;               }               let html = '<div class="pcg-prose-content">';               html += '<header class="pcg-reader-header">';               html += '<h1 class="pcg-reader-title">' + (data.title || '') + '</h1>';                              if (data.byline || data.date) {                 html += '<div class="pcg-reader-meta">';                 if (data.byline) {                   html += '<span>BY ' + data.byline + '</span>';                 }                 if (data.byline && data.date) {                   html += '<span class="pcg-reader-meta-divider">|</span>';                 }                 if (data.date) {                   html += '<span>PUBLISHED ' + data.date + '</span>';                 }                 html += '</div>';               }               html += '</header>';                              html += '<div class="pcg-reader-body">';               html += data.content;               html += '</div></div>';                              readerContent.innerHTML = html;            })            .catch(err => {               console.error(err);               readerContent.innerHTML = '<div class="pcg-reader-msg">An error occurred loading the article.</div>';            });        }        const searchBoxContainer = document.getElementById("pcg-search-container");        if (searchBoxContainer) {           searchBoxContainer.addEventListener("click", () => {              openDropdown();           });        }                if (searchInput) {          searchInput.addEventListener("focus", () => {             openDropdown();          });          searchInput.addEventListener("click", () => {             openDropdown();          });          searchInput.addEventListener("input", (e) => {            openDropdown();            clearTimeout(debounceTimer);            debounceTimer = setTimeout(() => fetchResults(e.target.value), 500);          });                    // Initial render with embedded cache          fetchResults("");                    if (INITIALLY_OPEN) {            openDropdown();          }                    // Background revalidate          fetch(API_BASE + "/api/reviews?category=" + encodeURIComponent(CATEGORY) + "&limit=10")            .then(res => res.json())            .then(data => {               if (data && data.results && data.results.length > 0) {                 LOCAL_REVIEWS = data.results;                 // If the user hasn't typed anything yet, refresh the UI silently                 if (!searchInput.value) {                   fetchResults("");                 }               }            })            .catch(err => console.error("Background refresh failed:", err));        }      </script>    </body></html>"   width="100%"   height="140"   style="border: none; width: 100%; max-width: 1024px; margin: 0 auto; display: block; background: transparent; transition: height 0.3s ease-out;"   title="PC Gamer Gaming Mice Widget"></iframe></div><h2 class="article-body__section" id="section-black-friday-gaming-mouse-deals"><span>Black Friday gaming mouse deals</span></h2><div class="product"><a data-dimension112="a8b4aa14-cd64-11f1-a53e-2fb60877bcff" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="$26.99" href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1401px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="qgFqUinn2HCKHEThJ47QpC" name="1636734797.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC-1920-80.jpg" mos="" align="middle" fullscreen="" width="1401" height="1401" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" target="_blank" rel="nofollow" data-dimension112="a8b4aa14-cd64-11f1-a53e-2fb60877bcff" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="$26.99">G203 | Wired: was $34.99 now $26.99</a></strong><br>This rodent is perfect as a starter or low-budget option, with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software. This mouse proves that you don't need to go fancy to get a great gaming peripheral.</p><p><strong>Key specs: Wired | 8,000 DPI | Right-handed</strong></p><p><strong>Price check:</strong> <a href="https://www.bestbuy.com/site/logitech-g203-lightsync-wired-optical-gaming-mouse-with-8000-dpi-sensor-white/6409362.p?skuId=6409362" target="_blank">Best Buy $29.95</a><a class="view-deal button" href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" target="_blank" rel="nofollow" data-dimension112="a8b4aa14-cd64-11f1-a53e-2fb60877bcff" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="$26.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4aa78-cd64-11f1-aee3-4961995ae782" data-action="Deal Block" data-label="G305 Lightspeed | Wireless" data-dimension48="G305 Lightspeed | Wireless" data-dimension25="$29.99" href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:212px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="krHdzSvvW5EskC6Keg74P9" name="1700740513.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9-1920-80.jpg" mos="" align="middle" fullscreen="" width="212" height="212" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4aa78-cd64-11f1-aee3-4961995ae782" data-action="Deal Block" data-label="G305 Lightspeed | Wireless" data-dimension48="G305 Lightspeed | Wireless" data-dimension25="$29.99">G305 Lightspeed | Wireless: was $49.99 now $29.99</a></strong><br>The Logitech G305 Lightspeed is our<a href="https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse" target="_blank"> favorite budget wireless mouse</a>—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily <em>that </em>out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills.</p><p><strong>Key specs: Wireless | 12,000 DPI | Right-handed</strong></p><p><strong>Price check: </strong><a href="https://www.bestbuy.com/product/logitech-g305-lightspeed-wireless-optical-6-programmable-button-gaming-mouse-with-12000-dpi-hero-sensor-wireless-white/J7H7ZY2ZYR" target="_blank">Best Buy $36.99</a><a class="view-deal button" href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4aa78-cd64-11f1-aee3-4961995ae782" data-action="Deal Block" data-label="G305 Lightspeed | Wireless" data-dimension48="G305 Lightspeed | Wireless" data-dimension25="$29.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4ab40-cd64-11f1-b17a-a94c7990eaa8" data-action="Deal Block" data-label="Model O Eternal | Wired" data-dimension48="Model O Eternal | Wired" data-dimension25="$29.99" href="https://www.bestbuy.com/product/glorious-model-o-eternal-lightweight-wired-optical-gaming-mouse-with-dual-zone-rgb-lighting-wired-matte-white/J39TGZ8SRL" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="xuXRzZ72Wy2yQ9oAS9r3A4" name="Model O Eternal | Wired" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xuXRzZ72Wy2yQ9oAS9r3A4-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.bestbuy.com/product/glorious-model-o-eternal-lightweight-wired-optical-gaming-mouse-with-dual-zone-rgb-lighting-wired-matte-white/J39TGZ8SRL" target="_blank" rel="nofollow" data-dimension112="a8b4ab40-cd64-11f1-b17a-a94c7990eaa8" data-action="Deal Block" data-label="Model O Eternal | Wired" data-dimension48="Model O Eternal | Wired" data-dimension25="$29.99">Model O Eternal | Wired: $29.99</a></strong><br>You aren't packing an incredibly high DPI or polling rate with this mouse, but you are getting strong performance for the price, as well as a lightweight, comfortable build, and solid software. Cheap and cheerful is the aim here.</p><p><strong>Key specs: 12,000 DPI | 300 IPS |  1,000 Hz | 55 g</strong></p><p><strong>Price check: </strong><a href="https://www.amazon.com/dp/B0F9B79WBR" target="_blank">Amazon $39.99</a><strong></strong><a class="view-deal button" href="https://www.bestbuy.com/product/glorious-model-o-eternal-lightweight-wired-optical-gaming-mouse-with-dual-zone-rgb-lighting-wired-matte-white/J39TGZ8SRL" target="_blank" rel="nofollow" data-dimension112="a8b4ab40-cd64-11f1-b17a-a94c7990eaa8" data-action="Deal Block" data-label="Model O Eternal | Wired" data-dimension48="Model O Eternal | Wired" data-dimension25="$29.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4aadc-cd64-11f1-80ca-331a4b79dc87" data-action="Deal Block" data-label="G502 Hero | Wired" data-dimension48="G502 Hero | Wired" data-dimension25="$37.99" href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="SaXBHtPWoMGvzcyvsLNQQX" name="1698934268.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="1000" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" target="_blank" rel="nofollow" data-dimension112="a8b4aadc-cd64-11f1-80ca-331a4b79dc87" data-action="Deal Block" data-label="G502 Hero | Wired" data-dimension48="G502 Hero | Wired" data-dimension25="$37.99">G502 Hero | Wired: was $69.99 now $37.99</a></strong><br>This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. </p><p><strong>Key specs: Wired | 25,600 DPI | Right-handed</strong></p><p><strong>Price check:</strong> <a href="https://www.bestbuy.com/site/logitech-g502-hero-wired-optical-gaming-mouse-with-rgb-lighting-black/6265133.p?skuId=6265133" target="_blank">Best Buy $37.99</a><a class="view-deal button" href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" target="_blank" rel="nofollow" data-dimension112="a8b4aadc-cd64-11f1-80ca-331a4b79dc87" data-action="Deal Block" data-label="G502 Hero | Wired" data-dimension48="G502 Hero | Wired" data-dimension25="$37.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4abae-cd64-11f1-ad69-8f26d7d00642" data-action="Deal Block" data-label="Retro R8 | Wireless" data-dimension48="Retro R8 | Wireless" data-dimension25="$44.99" href="https://www.amazon.com/Charging-Optical-Wireless-Programmable-Switches/dp/B0F37BTPPH" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="6ftyiD7DphdvJ2Z5PfoAKh" name="PCGamer Deal Block (1)" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6ftyiD7DphdvJ2Z5PfoAKh-1920-80.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Charging-Optical-Wireless-Programmable-Switches/dp/B0F37BTPPH" target="_blank" rel="nofollow" data-dimension112="a8b4abae-cd64-11f1-ad69-8f26d7d00642" data-action="Deal Block" data-label="Retro R8 | Wireless" data-dimension48="Retro R8 | Wireless" data-dimension25="$44.99">Retro R8 | Wireless: was $49.99 now $44.99</a></strong><br>Our James <a href="https://www.pcgamer.com/hardware/gaming-mice/8bitdo-retro-r8-gaming-mouse-review/" target="_blank">reviewed the 8BitDo Retro R8</a>, giving it an 87%, and for good reason. It's a mouse with a super unique look, good specs for the price, and it even comes with a cute charging stand. The retro feel is definitely something to get used to, with buttons that are sunken into the mouse itself, but it's a joy to use regardless. <strong>The 10% discount comes in at checkout.</strong></p><p><strong>Key specs: up to 8,000 Hz polling | 26,000 DPI | 77 g | up to 100-hour battery life</strong></p><p><strong>Price check: </strong><a href="https://www.newegg.com/p/32K-00R0-00033" target="_blank">Newegg $49.99</a><em><strong></strong></em><a class="view-deal button" href="https://www.amazon.com/Charging-Optical-Wireless-Programmable-Switches/dp/B0F37BTPPH" target="_blank" rel="nofollow" data-dimension112="a8b4abae-cd64-11f1-ad69-8f26d7d00642" data-action="Deal Block" data-label="Retro R8 | Wireless" data-dimension48="Retro R8 | Wireless" data-dimension25="$44.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4ac12-cd64-11f1-bf3b-890006427546" data-action="Deal Block" data-label="Burst II Air | Wireless" data-dimension48="Burst II Air | Wireless" data-dimension25="$54.99" href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1504px;"><p class="vanilla-image-block" style="padding-top:99.34%;"><img id="oHpVvSDqMgFC5rnRe2pUnQ" name="1790601251.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1504" height="1494" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4ac12-cd64-11f1-bf3b-890006427546" data-action="Deal Block" data-label="Burst II Air | Wireless" data-dimension48="Burst II Air | Wireless" data-dimension25="$54.99">Burst II Air | Wireless: was $99.99 now $54.99</a></strong><br>We gave this mouse an 85% in <a href="https://www.pcgamer.com/hardware/gaming-mice/turtle-beach-burst-ii-air-review/" target="_blank">our review</a>, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price.</p><p><strong>Key specs: Wireless | 26,000 DPI | Symmetrical</strong></p><p><strong>Price check:</strong> <a href="https://www.bestbuy.com/site/turtle-beach-burst-ii-air-ultra-lightweight-wireless-symmetrical-gaming-mouse-with-bluetooth-120-hour-battery-black/6579301.p?skuId=6579301" target="_blank">Best Buy $99.99</a><a class="view-deal button" href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4ac12-cd64-11f1-bf3b-890006427546" data-action="Deal Block" data-label="Burst II Air | Wireless" data-dimension48="Burst II Air | Wireless" data-dimension25="$54.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4acda-cd64-11f1-a2d5-e3dd542acdae" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="$66.99" href="https://www.amazon.com/dp/B0FKJ2J2R8" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="4AaJcaYRutRHqs8C5qjfye" name="Sabre V2 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4AaJcaYRutRHqs8C5qjfye-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/dp/B0FKJ2J2R8" target="_blank" rel="nofollow" data-dimension112="a8b4acda-cd64-11f1-a2d5-e3dd542acdae" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="$66.99">Sabre V2 Pro: was $99.99 now $66.99</a></strong><br>Earning a <a href="https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/" target="_blank">92% score from our Jacob Fox</a> last year, this ultra-light gaming mouse is a bit of a beast. It's light, sturdy and comes with a great sensor too. </p><p><strong>Key specs: 33K sensor | Wireless | 36 g weight | 8,000 Hz</strong><a class="view-deal button" href="https://www.amazon.com/dp/B0FKJ2J2R8" target="_blank" rel="nofollow" data-dimension112="a8b4acda-cd64-11f1-a2d5-e3dd542acdae" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="$66.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4ae7e-cd64-11f1-adad-213dd2fda4f5" data-action="Deal Block" data-label="Viper V3 Pro | Wireless" data-dimension48="Viper V3 Pro | Wireless" data-dimension25="$99.27" href="https://www.amazon.com/Razer-Viper-Wireless-Esports-Gaming/dp/B0CVRGCGWJ/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1509px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="xR8QJpjHGx27FS3pZnYBj7" name="1790601520.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xR8QJpjHGx27FS3pZnYBj7-1920-80.jpg" mos="" align="middle" fullscreen="" width="1509" height="1509" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Razer-Viper-Wireless-Esports-Gaming/dp/B0CVRGCGWJ/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4ae7e-cd64-11f1-adad-213dd2fda4f5" data-action="Deal Block" data-label="Viper V3 Pro | Wireless" data-dimension48="Viper V3 Pro | Wireless" data-dimension25="$99.27">Viper V3 Pro | Wireless: was $159.99 now $99.27</a></strong><br>Razer doesn't play around with its compact Viper line-up. The V3 Pro is pretty light, feels great in hand, and tracks your movement like any other high-end mouse. It's top-tier and a little cheaper than the newer V4 Pro now.</p><p><strong>Key specs: 6 buttons | 35K DPI | 8,000 Hz | 70 g</strong><a class="view-deal button" href="https://www.amazon.com/Razer-Viper-Wireless-Esports-Gaming/dp/B0CVRGCGWJ/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4ae7e-cd64-11f1-adad-213dd2fda4f5" data-action="Deal Block" data-label="Viper V3 Pro | Wireless" data-dimension48="Viper V3 Pro | Wireless" data-dimension25="$99.27">View Deal</a></p></div><h2 id="check-out-all-our-latest-deals-in-any-category">Check out all our latest deals in any category:</h2><div class="vizualizer-embed"><fc-author-commerce-widget data-fcaw-version="1" data-fcaw-full-bleed="false">  <style data-fcaw-host-protection>fc-author-commerce-widget[data-fcaw-version="1"] {  display: block !important;  width: 100% !important;  min-width: 0 !important;  max-width: none !important;  isolation: isolate !important;  contain: style !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]{  width: min(    1200px,    var(--fcaw-viewport-width, 100vw)  ) !important;  max-width: 1200px !important;  margin-left: var(    --fcaw-full-bleed-offset,    calc(50% - min(600px, 50vw))  ) !important;  margin-right: 0 !important;  position: relative !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]  #tg-df-spreadsheet-filters {  width: min(    1500px,    var(--fcaw-viewport-width, 100vw)  ) !important;  max-width: 1500px !important;  margin-left: calc(    (      100% -      min(1500px, var(--fcaw-viewport-width, 100vw))    ) / 2  ) !important;  margin-right: 0 !important;}fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::before,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::after {  box-sizing: border-box;}</style>  <div data-fcaw-fallback class="fcaw-v1-fallback">    <style>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with 'tg-df-' to prevent CMS style leakage.    */    .tg-df-container { user-select: text; -webkit-user-select: text;      container-type: inline-size;      container-name: tg-df;                  --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-widget-host[data-tg-df-full-bleed="true"]    {      width: min(        1200px,        var(--fcaw-viewport-width, 100vw)      ) !important;      max-width: 1200px !important;      margin-left: calc(        (          100% -          min(1200px, var(--fcaw-viewport-width, 100vw))        ) / 2      ) !important;      margin-right: 0 !important;      position: relative !important;    }    .tg-df-widget-host[data-tg-df-full-bleed="true"]      #tg-df-spreadsheet-filters {      width: min(        1500px,        var(--fcaw-viewport-width, 100vw)      ) !important;      max-width: 1500px !important;      margin-left: calc(        (          100% -          min(1500px, var(--fcaw-viewport-width, 100vw))        ) / 2      ) !important;      margin-right: 0 !important;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;      position: relative;      z-index: 20;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      margin: 0 auto;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: var(--tg-df-blue);    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters-container {      position: relative;      width: 100%;      max-width: 42rem;    }    .tg-df-scroll-btn {      display: none;      position: absolute;      top: 50%;      transform: translateY(-50%);      width: 32px;      height: 32px;      background: white;      border: 1px solid var(--tg-df-border);      border-radius: 50%;      align-items: center;      justify-content: center;      cursor: pointer;      z-index: 10;      box-shadow: 0 2px 8px rgba(0,0,0,0.1);      color: var(--tg-df-text-primary);      padding: 0;    }    .tg-df-scroll-btn svg {      width: 16px;      height: 16px;    }    .tg-df-scroll-btn:hover {      background: #f4f4f4;    }    .tg-df-scroll-btn.left {      left: 0px;    }    .tg-df-scroll-btn.right {      right: 0px;    }        .tg-df-filters {      display: flex;      justify-content: center;      width: 100%;      gap: 12px;      margin: 0 auto;      max-width: 42rem;    }                 .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;      width: 100%;      max-width: 280px;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      width: 100%;      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }    .tg-df-scroll-btn {      position: absolute;      top: 50%;      transform: translateY(-50%);      width: 32px;      height: 32px;      background: white;      border: 1px solid var(--tg-df-border);      border-radius: 50%;      align-items: center;      justify-content: center;      cursor: pointer;      z-index: 10;      box-shadow: 0 2px 8px rgba(0,0,0,0.1);      color: var(--tg-df-text-primary);      padding: 0;    }    .tg-df-scroll-btn svg {      width: 16px;      height: 16px;    }    .tg-df-scroll-btn:hover {      background: #f4f4f4;    }    .tg-df-scroll-btn.left {      left: 4px;    }    .tg-df-scroll-btn.right {      right: 4px;    }    @container tg-df (max-width: 768px) {      .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; }      .tg-df-filters-container {      position: relative;      width: 100%;      max-width: 42rem;      margin: 0 auto;    }    .tg-df-filters {        justify-content: center;        width: 100%;        margin: 0 auto;        margin-bottom: -320px;        padding: 0 0 320px 0;        display: flex;        flex-wrap: nowrap;        gap: 8px;        overflow-x: auto;        overflow-y: hidden;        pointer-events: none;        scrollbar-width: none;        -webkit-overflow-scrolling: touch;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }      .tg-df-sort-wrapper {        pointer-events: auto;        flex: 0 0 auto;        width: 175px;        min-width: 175px;      }    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: calc(100% + 32px);      max-width: none;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;      margin: 0 -16px -16px -16px;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }    .tg-df-buying-guide-badge {      left: auto;      right: 12px;      max-width: calc(100% - 24px);      overflow: hidden;      text-overflow: ellipsis;      white-space: nowrap;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges { position: absolute; bottom: 8px; left: 8px; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 0; z-index: 10; }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-card-listings {      margin: 0 0 12px;    }    .tg-df-card-listings-title {      display: block;      color: var(--tg-df-text-muted);      font-size: 11px;      font-weight: 700;      letter-spacing: 0.45px;      line-height: 1.2;      margin-bottom: 4px;      text-transform: uppercase;    }    .tg-df-card-listings-links {      border-top: 1px solid var(--tg-df-border);    }    .tg-df-container .tg-df-card-listing-link {      align-items: center;      border-bottom: 1px solid var(--tg-df-border);      box-sizing: border-box;      color: var(--tg-df-blue);      display: flex;      font-size: 13px;      font-weight: 700;      justify-content: space-between;      line-height: 1.2;      min-height: 34px;      padding: 5px 2px;      text-decoration: none;    }    .tg-df-container .tg-df-card-listing-link::after {      content: '↗';      font-size: 14px;      font-weight: 600;      margin-left: 8px;    }    .tg-df-container .tg-df-card-listing-link:hover,    .tg-df-container .tg-df-card-listing-link:focus-visible {      background: #f8fafc;      color: var(--tg-df-blue);      outline: 2px solid var(--tg-df-blue);      outline-offset: -2px;      text-decoration: none;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: calc(100% + 32px);      max-width: none;      box-sizing: border-box;      background-color: var(--tg-df-blue);      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;      margin: 0 -16px -16px -16px;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      filter: brightness(0.85);    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 120px;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /* Optional mobile 2x2 filter grid */    .tg-df-mobile-2x2-container {      display: none;      width: 100%;      margin: 0 0 16px 0;      position: relative;      z-index: 30;    }    .tg-df-mobile-2x2-grid {      display: grid;      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);      width: 100%;      border: 1px solid var(--tg-df-border, #e2e8f0);      background: var(--tg-df-bg, #ffffff);    }    .tg-df-container .tg-df-mobile-grid-cell {      appearance: none;      display: flex;      align-items: center;      justify-content: space-between;      min-width: 0;      padding: 12px 14px;      font-family: inherit;      font-size: 11px;      font-weight: 600;      line-height: 1.2;      text-transform: uppercase;      letter-spacing: 0.5px;      text-align: left;      color: var(--tg-df-text-muted, #64748b);      background: var(--tg-df-bg, #ffffff);      border: 0;      border-radius: 0;      cursor: pointer;      box-shadow: none;    }    .tg-df-mobile-grid-cell > span {      overflow: hidden;      text-overflow: ellipsis;      white-space: nowrap;    }    .tg-df-mobile-grid-cell > svg {      flex: 0 0 auto;      margin-left: 8px;      transition: transform 0.15s ease;    }    .tg-df-mobile-grid-cell > svg.is-open {      transform: rotate(180deg);    }    .tg-df-mobile-grid-cell {      border-bottom: 1px solid var(--tg-df-border, #e2e8f0);    }    .tg-df-mobile-grid-cell:nth-child(odd) {      border-right: 1px solid var(--tg-df-border, #e2e8f0);    }    .tg-df-mobile-2x2-grid--even .tg-df-mobile-grid-cell:nth-last-child(-n + 2) {      border-bottom: 0;    }    .tg-df-mobile-2x2-grid--odd .tg-df-mobile-grid-cell:last-child {      grid-column: 1 / -1;      border-right: 0;      border-bottom: 0;    }    .tg-df-container .tg-df-mobile-grid-cell.active,    .tg-df-container .tg-df-mobile-grid-cell:hover {      background: var(--tg-df-bg-secondary, #f8fafc);      color: var(--tg-df-text, #0f172a);    }    .tg-df-container .tg-df-mobile-grid-cell.has-active-filter {      background: var(--tg-df-blue, #1f69ff);      color: #ffffff;    }    .tg-df-mobile-menu-drawer {      width: 100%;      max-height: 260px;      overflow-y: auto;      overscroll-behavior: contain;      border: 1px solid var(--tg-df-border, #e2e8f0);      border-top: 0;      background: var(--tg-df-bg, #ffffff);      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);    }    .tg-df-container .tg-df-mobile-menu-item {      appearance: none;      display: flex;      align-items: center;      justify-content: space-between;      width: 100%;      min-height: 42px;      padding: 12px 16px;      font-family: inherit;      font-size: 12px;      font-weight: 500;      line-height: 1.3;      text-align: left;      color: var(--tg-df-text, #0f172a);      background: var(--tg-df-bg, #ffffff);      border: 0;      border-bottom: 1px solid #f1f5f9;      border-radius: 0;      cursor: pointer;      box-shadow: none;    }    .tg-df-container .tg-df-mobile-menu-item:last-child {      border-bottom: 0;    }    .tg-df-container .tg-df-mobile-menu-item.selected {      color: var(--tg-df-blue, #1f69ff);      background: rgba(31, 105, 255, 0.08);      font-weight: 600;    }    .tg-df-container .tg-df-mobile-menu-item:hover {      background: var(--tg-df-bg-secondary, #f8fafc);    }    .tg-df-mobile-cell-badge {      display: inline-flex;      align-items: center;      justify-content: center;      padding: 2px 6px;      margin-left: 4px;      color: var(--tg-df-blue, #1f69ff);      background: rgba(31, 105, 255, 0.1);      border-radius: 9999px;      font-size: 10px;      font-weight: 700;    }    @container tg-df (max-width: 599px) {      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-mobile-2x2-container {        display: block !important;        z-index: 50;        background: var(--tg-df-bg, #ffffff);        box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"]        .tg-df-mobile-2x2-container {        position: sticky !important;        top: var(--fcaw-mobile-sticky-offset, 0px);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-controls {        display: none !important;      }    }    @media (max-width: 599px) {      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-mobile-2x2-container {        display: block !important;        z-index: 50;        background: var(--tg-df-bg, #ffffff);        box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"]        .tg-df-mobile-2x2-container {        position: sticky !important;        top: var(--fcaw-mobile-sticky-offset, 0px);      }      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"]        .tg-df-controls {        display: none !important;      }    }    /* A non-full-bleed desktop embed is constrained to the article column.       Reuse the compact filter grid there instead of squeezing the rails. */    @container tg-df (min-width: 600px) {      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-mobile-2x2-container {        display: block !important;      }      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-controls {        display: none !important;      }    }    @media (min-width: 600px) {      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-mobile-2x2-container {        display: block !important;      }      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-categories-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-freeform-tags-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-brands-row-container,      .tg-df-widget-host[data-tg-df-full-bleed="false"]        .tg-df-controls {        display: none !important;      }    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-mobile-authors { gap: 16px !important; }      .tg-df-mobile-authors .tg-df-author-row-item { width: 56px !important; }      .tg-df-mobile-authors .tg-df-author-img-wrapper { width: 48px !important; height: 48px !important; }      .tg-df-mobile-authors .tg-df-author-brand-logo { width: 18px !important; height: 18px !important; bottom: -2px !important; right: -2px !important; }      .tg-df-mobile-authors .tg-df-author-row-name { font-size: 11px !important; }      .tg-df-mobile-authors .tg-df-author-row-role { font-size: 10px !important; }            .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; }      .tg-df-controls {        padding: 16px 0 8px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }                  .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;        width: auto;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 8px;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 5px 12px !important;        font-size: 11px !important;        height: 30px !important;        min-height: 30px !important;        border-radius: 0 !important;        flex: 0 0 auto;        text-align: center;        white-space: nowrap;        line-height: 1.2;        margin: 8px 0 0;      }    }    @media (max-width: 599px) {      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 5px 12px !important;        font-size: 11px !important;        height: 30px !important;        min-height: 30px !important;        border-radius: 0 !important;        flex: 0 0 auto;        text-align: center;        white-space: nowrap;        line-height: 1.2;        margin: 8px 0 0;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;      width: 100vw;      max-width: 1200px;      position: relative;      left: 50%;      transform: translateX(-50%);    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: var(--tg-df-blue);      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }        .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: var(--tg-df-blue);      position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }      .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: var(--tg-df-blue);      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 14px;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }        .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;      scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }    .tg-df-container .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-carousel-scroll-left {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: rgba(255, 255, 255, 0.4);      color: var(--tg-df-blue);      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);      border: none;      cursor: pointer;      transition: background-color 0.2s;      margin-top: -4px;      z-index: 10;    }    .tg-df-container .tg-df-carousel-scroll-right {      right: 0;    }    .tg-df-container .tg-df-carousel-scroll-left {      left: 0;    }    .tg-df-container .tg-df-carousel-scroll-right:hover,    .tg-df-container .tg-df-carousel-scroll-left:hover {      background-color: rgba(255, 255, 255, 0.6);    }    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left {       height: 30px;       width: 30px;       background-color: rgba(255, 255, 255, 0.8);       box-shadow: 0 2px 4px rgba(0,0,0,0.1);       margin-top: 0;       color: #0f4098;    }    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right:hover,    .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left:hover {       background-color: white;    }    .tg-df-container .tg-df-grid-wrapper {       position: relative;    }    .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-right,    .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-left {       background-color: white;       box-shadow: 0 4px 12px rgba(0,0,0,0.15);       top: 40%;       width: 44px;       height: 44px;       color: #0f4098;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue);    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue);    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }            .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn {      display: inline-flex;      align-items: center;    }    .tg-df-container .tg-df-carousel-filter-btn:hover, .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      width: calc(100% + 24px);      border-radius: 0;      padding: 8px 10px;      margin: auto -12px -12px -12px;      background-color: var(--tg-df-blue);    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.40);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; padding-right: 12px; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @media (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }      .tg-df-container .hawk-deal-widget-title-product-title,      .tg-df-container .hawk-deal-widget-title-price,      .tg-df-container .hawk-deal-widget-title-retailer {        font-size: 14px !important;        line-height: 1.35 !important;        font-weight: 700 !important;      }      .tg-df-container .hawk-deal-widget-title-was-price {        font-size: 13px !important;        line-height: 1.35 !important;      }      .tg-df-container .hawk-deal-widget-text-body-main {        font-size: 14px !important;        line-height: 1.35 !important;        margin-bottom: 8px !important;      }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    /* BESPOKE AUTHOR HEADER STYLES - MAX ISOLATION PROTECTION */    .tg-df-author-embed {      width: 100% !important;      font-family: inherit !important;      background: transparent !important;      margin: 0 !important;      padding: 0 !important;      border: none !important;    }    .tg-df-author-section {      display: block !important;      width: 100% !important;      max-width: 100% !important;      opacity: 1 !important;      overflow: visible !important;      background: transparent !important;      border: none !important;      margin: 0 auto !important;      padding: 0 !important;      box-shadow: none !important;    }    .tg-df-author-card {      text-align: center !important;      padding: 1.75rem 1rem 1.25rem 1rem !important;      margin: 0 auto !important;      max-width: 48rem !important;      background: transparent !important;      border: none !important;      border-radius: 0 !important;      box-sizing: border-box !important;      box-shadow: none !important;    }    .tg-df-author-image {      width: 180px !important;      height: 180px !important;      border-radius: 50% !important;      object-fit: cover !important;      margin: 0 auto 0.75rem auto !important;      display: block !important;      border: none !important;      box-shadow: none !important;      max-width: 100% !important;    }    .tg-df-author-media-slot {      width: 100% !important;      height: 180px !important;      min-height: 180px !important;      margin: 0 auto 0.75rem auto !important;      display: flex !important;      align-items: center !important;      justify-content: center !important;    }    .tg-df-author-media-slot .tg-df-author-image {      margin: 0 auto !important;    }    .tg-df-author-profile-image-wrapper {      position: relative !important;      width: 180px !important;      height: 180px !important;      margin: 0 auto 0.75rem auto !important;      flex: 0 0 auto !important;    }    .tg-df-author-profile-brand-logo {      position: absolute !important;      right: 12px !important;      bottom: 12px !important;      width: 42px !important;      height: 42px !important;      padding: 0 !important;      border: 3px solid var(--tg-df-bg, #fff) !important;      border-radius: 50% !important;      background: #000 !important;      object-fit: contain !important;      box-sizing: border-box !important;    }    .tg-df-author-curated-by {      font-size: 0.875rem !important;      color: #6B7280 !important;      font-style: normal !important;      margin: 0 0 0.25rem 0 !important;      padding: 0 !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;      letter-spacing: normal !important;      line-height: 1.4 !important;    }    .tg-df-author-name {      font-size: 2rem !important;      font-weight: 300 !important;      color: #111827 !important;      margin: 0 0 0.25rem 0 !important;      padding: 0 !important;      line-height: 1.1 !important;      letter-spacing: -0.02em !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;    }    .tg-df-author-role {      font-size: 0.9375rem !important;      font-weight: 500 !important;      color: var(--tg-df-blue, #1F69FF) !important;      margin: 0 0 1.25rem 0 !important;      padding: 0 !important;      line-height: 1.3 !important;      border: none !important;      background: none !important;      font-family: inherit !important;      text-transform: none !important;    }    .tg-df-author-meta-slot {      width: 100% !important;      min-height: 88px !important;      display: flex !important;      flex-direction: column !important;      align-items: center !important;      justify-content: flex-start !important;    }    .tg-df-author-meta-slot--site {      padding-top: 1rem !important;    }    .tg-df-author-meta-slot--no-social {      min-height: 0 !important;    }    .tg-df-author-meta-slot--no-social .tg-df-author-role {      margin-bottom: 0.5rem !important;    }    .tg-df-author-social-links {      display: flex !important;      flex-wrap: wrap !important;      align-items: center !important;      justify-content: center !important;      gap: 1rem !important;      margin: 0 auto 1.25rem auto !important;      padding: 0 !important;      max-width: 42rem !important;      width: 100% !important;      list-style: none !important;      background: none !important;      border: none !important;      box-shadow: none !important;    }    .tg-df-author-social-btn {      display: inline-flex !important;      align-items: center !important;      justify-content: center !important;      padding: 0 !important;      border-radius: 50% !important;      background-color: #f2f2f2 !important;      color: #111111 !important;      font-size: 0.8125rem !important;      font-weight: 500 !important;      text-decoration: none !important;      transition: all 0.2s ease !important;      border: 0 !important;      line-height: 1 !important;      box-shadow: none !important;      cursor: pointer !important;      outline: none !important;      margin: 0 !important;      height: 34px !important;      width: 34px !important;      min-width: 34px !important;      box-sizing: border-box !important;    }    .tg-df-author-social-btn:hover {      background-color: #dedede !important;      color: #111111 !important;      transform: translateY(-1px) !important;    }    .tg-df-author-social-btn > svg {      width: 19px !important;      height: 19px !important;      flex-shrink: 0 !important;      display: block !important;      margin: 0 !important;    }    .tg-df-author-social-btn[data-social-key="facebook"] > svg {      transform: scale(1.25) !important;    }    .tg-df-author-social-btn[data-social-key="pinterest"] > svg,    .tg-df-author-social-btn[data-social-key="tiktok"] > svg {      transform: scale(1.2) !important;    }    .tg-df-author-bio {      max-width: 42rem !important;      margin: 0 auto 1.25rem auto !important;      padding: 0 0.5rem !important;      color: #4b5563 !important;      line-height: 1.6 !important;      font-weight: 300 !important;      font-size: 0.9375rem !important;      text-align: center !important;      background: none !important;      border: none !important;      border-radius: 0 !important;      box-shadow: none !important;      display: block !important;      height: auto !important;      overflow: visible !important;    }    .tg-df-author-bio-shell--stable {      width: 100% !important;      box-sizing: border-box !important;    }    .tg-df-author-bio--clamped {      min-height: 4.8em !important;      height: 4.8em !important;      max-height: 4.8em !important;      display: -webkit-box !important;      -webkit-box-orient: vertical !important;      -webkit-line-clamp: 3 !important;      overflow: hidden !important;    }    .tg-df-author-bio--expanded {      min-height: 4.8em !important;      height: auto !important;      max-height: none !important;      display: block !important;      overflow: visible !important;    }    .tg-df-author-bio--static,    .tg-df-author-bio--static:hover,    .tg-df-author-bio--static:focus,    .tg-df-author-bio--static:focus-visible {      outline: none !important;      box-shadow: none !important;      cursor: default !important;    }    .tg-df-author-bio-toggle-slot {      height: 28px !important;      display: flex !important;      align-items: center !important;      justify-content: center !important;      margin: 0.125rem 0 0 !important;    }    .tg-df-author-bio-toggle {      appearance: none !important;      border: 0 !important;      border-bottom: 1px solid currentColor !important;      border-radius: 0 !important;      padding: 0.125rem 0 !important;      margin: 0 !important;      background: transparent !important;      color: #4b5563 !important;      box-shadow: none !important;      font: inherit !important;      font-size: 0.75rem !important;      font-weight: 600 !important;      line-height: 1.2 !important;      text-decoration: none !important;      text-transform: none !important;      cursor: pointer !important;    }    .tg-df-author-bio a {      color: var(--tg-df-blue, #1F69FF) !important;      text-decoration: underline !important;      font-weight: 400 !important;      background: none !important;      border: none !important;      padding: 0 !important;      margin: 0 !important;      border-radius: 0 !important;      display: inline !important;      box-shadow: none !important;    }    .tg-df-author-bio p,    .tg-df-author-bio div,    .tg-df-author-bio span {      margin: 0 !important;      padding: 0 !important;      color: inherit !important;      font: inherit !important;      line-height: inherit !important;      text-align: inherit !important;      text-transform: none !important;      letter-spacing: normal !important;      background: none !important;      border: none !important;      box-shadow: none !important;    }    .tg-df-author-bio strong,    .tg-df-author-bio b {      font-weight: 600 !important;    }    .tg-df-author-bio em,    .tg-df-author-bio i {      font-style: italic !important;    }    @container tg-df (min-width: 600px) {      .tg-df-author-image {        width: 180px !important;        height: 180px !important;      }      .tg-df-author-name {        font-size: 2.5rem !important;      }    }    @media (min-width: 600px) {      .tg-df-author-image {        width: 180px !important;        height: 180px !important;      }      .tg-df-author-name {        font-size: 2.5rem !important;      }    }    @container tg-df (max-width: 768px) {      .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; }    }    @media (max-width: 768px) {      .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; }    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; }      .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; }      .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; }      .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; }      .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }    }    @media (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; }      .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; }      .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; }      .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; }      .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; }    }        .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button {      align-items: center; background-color: var(--tg-df-blue); box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;    }    .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button:hover { filter: brightness(0.85); text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }    .tg-df-active-badges-row {      display: flex;      flex-wrap: wrap;      gap: 8px;      align-items: center;      margin-top: 12px;      margin-bottom: 16px;      width: 100%;    }    .tg-df-active-badge {      display: inline-flex;      align-items: center;      gap: 6px;      padding: 8px 14px;      background-color: var(--tg-df-blue, #1f69ff);      color: #ffffff;      border: 1px solid var(--tg-df-blue, #1f69ff);      border-radius: 0px;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      line-height: 1;    }    .tg-df-badge-remove {      display: inline-flex;      align-items: center;      justify-content: center;      width: 16px;      height: 16px;      border-radius: 0px;      border: none;      background: rgba(255, 255, 255, 0.25);      color: #ffffff;      cursor: pointer;      padding: 0;      margin-left: 4px;      transition: background-color 0.15s, color 0.15s;    }    .tg-df-badge-remove:hover {      background: rgba(255, 255, 255, 0.45);      color: #ffffff;    }    .tg-df-badge-clear-all {      display: inline-flex;      align-items: center;      justify-content: center;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      line-height: 1;      padding: 8px 14px;      color: var(--tg-df-text-muted, #64748b);      cursor: pointer;      background: #ffffff;      border: 1px solid var(--tg-df-border, #e2e8f0);      border-radius: 0px;      transition: all 0.15s ease;    }    .tg-df-badge-clear-all:hover {      background: var(--tg-df-blue, #1f69ff);      color: #ffffff;      border-color: var(--tg-df-blue, #1f69ff);    }    .tg-df-savings-squad-header {      margin-bottom: 24px;      text-align: center;    }    .tg-df-banner-img-desktop {      display: block;      width: 100%;      height: auto;      margin-bottom: 32px;    }    .tg-df-banner-img-mobile {      display: none;      width: 100%;      height: auto;      margin-bottom: 32px;    }    @container tg-df (max-width: 600px) {      .tg-df-banner-img-desktop {        display: none;      }      .tg-df-banner-img-mobile {        display: block;      }    }    .tg-df-header-title {      font-size: 28px;      font-weight: 700;      color: var(--tg-df-text);      margin: 32px 0 12px 0;      line-height: 1.3;    }    .tg-df-header-subtitle {      font-size: 16px;      color: var(--tg-df-text-muted);      margin: 0 0 32px 0;      line-height: 1.5;    }    @container tg-df (max-width: 599px) {      .tg-df-filters-container { display: none !important; }      #tg-df-controls { display: none !important; }      .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; }      .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; }      .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; }    }    @media (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-filters-container { display: none !important; }      #tg-df-controls { display: none !important; }      .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; }      .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; }      .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; }    }    /* Article Intro Content Styling */    .tg-df-article-content {      font-size: 1rem;      line-height: 1.7;      color: #334155;    }    .tg-df-article-content p {      margin-bottom: 1.25rem;      line-height: 1.7;      font-size: 1rem;      color: #334155;    }    .tg-df-article-content > p:first-of-type::first-letter {      font-size: 3.25rem;      font-weight: 700;      float: left;      line-height: 0.85;      margin-right: 0.5rem;      margin-top: 0.15rem;      color: #0f172a;      font-family: inherit;    }    .tg-df-article-content a {      color: #0066cc;      text-decoration: underline;      font-weight: 500;    }    .tg-df-article-content a:hover {      color: #004499;    }    .tg-df-article-content strong, .tg-df-article-content b {      font-weight: 700;      color: #0f172a;    }    .tg-df-article-section-banner {      border-bottom: 2px solid #e6007e;      margin: 2.25rem 0 1.25rem 0;      position: relative;      clear: both;    }    .tg-df-article-section-banner span {      background-color: #e6007e;      color: #ffffff;      padding: 6px 16px;      font-weight: 700;      font-size: 0.875rem;      text-transform: uppercase;      letter-spacing: 0.05em;      display: inline-block;    }  </style><div class="tg-df-widget-host" data-vizualizer-embed="true" data-tg-df-full-bleed="false" data-tg-df-mobile-dropdowns="true" data-tg-df-sticky-mobile-filters="false" style="--tg-df-blue: #DC191B;"><div class="tg-df-container article-body" style="background-color: transparent;"><div id="tg-df-spreadsheet-filters" style="display: block; margin-bottom: 16px;"><div class="tg-df-categories-row-container" style="border-bottom: 1px solid var(--tg-df-border); position: relative;"><button aria-label="Scroll left" class="tg-df-scroll-btn left tg-df-desktop-only" type="button" style="display: none;"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M15 18l-6-6 6-6"></path></svg></button><button aria-label="Scroll right" class="tg-df-scroll-btn right tg-df-desktop-only" type="button" style="display: none;"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M9 18l6-6-6-6"></path></svg></button><div class="tg-df-categories-row" style="display: flex; overflow-x: auto; scrollbar-width: none;"><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Hardware <span style="color: var(--tg-df-blue); font-size: 10px;">66</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Monitors <span style="color: var(--tg-df-blue); font-size: 10px;">9</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming PCs <span style="color: var(--tg-df-blue); font-size: 10px;">7</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Mice <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Headsets <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Audio <span style="color: var(--tg-df-blue); font-size: 10px;">6</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">SSDs <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Storage <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Gaming Laptops <span style="color: var(--tg-df-blue); font-size: 10px;">4</span></button><button class="tg-df-category-row-item" style="border-top-width: medium; border-right: 1px solid var(--tg-df-border); border-bottom-width: medium; border-left-width: medium; border-top-style: none; border-bottom-style: none; border-left-style: none; border-top-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; padding: 12px 20px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; background: var(--tg-df-bg); color: var(--tg-df-text-muted); font-weight: 500;">Controllers <span style="color: var(--tg-df-blue); font-size: 10px;">1</span></button></div></div></div><div class="tg-df-mobile-2x2-container"><div class="tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--odd"><button type="button" class="tg-df-mobile-grid-cell" aria-expanded="false"><span>CATEGORIES</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button><button type="button" class="tg-df-mobile-grid-cell" aria-expanded="false"><span>PRICES</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button><button type="button" class="tg-df-mobile-grid-cell has-active-filter" aria-expanded="false"><span>DISCOUNTS (25%+)</span><svg aria-hidden="true" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="m6 9 6 6 6-6"></path></svg></button></div></div><div class="tg-df-controls" id="tg-df-controls" style="display: flex; margin-top: 12px; margin-bottom: 16px; justify-content: center;"><div class="tg-df-filters-container" style="position: relative; width: 100%; max-width: 800px; margin: 0px auto;"><button class="tg-df-scroll-btn left" style="display: none;"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"></path></svg></button><button class="tg-df-scroll-btn right" style="display: none;"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"></path></svg></button><div class="tg-df-filters"><div class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper" style="display: flex;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path></svg><select class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices"><option value="all">All Prices</option><option value="under50">Under $50</option><option value="50_100">$50 - $100</option><option value="100_200">$100 - $200</option><option value="200_500">$200 - $500</option><option value="over500">Over $500</option></select></div><div class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper" style="display: flex;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path></svg><select class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount"><option value="all">Any discount</option><option value="5">Min 5%</option><option value="10">Min 10%</option><option value="15">Min 15%</option><option value="20">Min 20%</option><option value="25">Min 25%</option><option value="30">Min 30%</option><option value="40">Min 40%</option><option value="50">Min 50%</option><option value="60">Min 60%</option><option value="70">Min 70%</option></select></div><div class="tg-df-sort-wrapper" id="tg-df-review-sort-wrapper" style="display: none;"><svg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 7h16M7 12h10m-7 5h4"></path></svg><select class="tg-df-filter-select" id="tg-df-review-sort" aria-label="Sort Reviews"><option value="date_desc">Most recent</option><option value="rating_desc">Highest rating</option><option value="scored_first">Scored products first</option></select></div></div></div></div><div class="tg-df-active-badges-row" style="display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-top: 10px; margin-bottom: 16px;"><span class="tg-df-active-badge">Min 25% off<button type="button" class="tg-df-badge-remove" aria-label="Remove Min 25% off"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 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></span></div><div class="tg-df-grid-wrapper"><div class="tg-df-grid article-body tg-df-grid-auto" id="tg-df-grid"><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-0" data-merchant="Amazon" data-previous-price="34.99" data-price="25.99" data-product-name="G203 | Wired"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $9</span><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G203 | Wired" class="tg-df-card-image" loading="lazy" src="http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G203 | Wired"><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G203 | Wired</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>25.99</span></span><span class="tg-df-card-msrp">$34.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Glorious" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-0" data-merchant="Amazon" data-previous-price="59.99" data-price="26.31" data-product-name="GHS Eternal | 40 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $33.68</span><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="GHS Eternal | 40 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="GHS Eternal | 40 mm drivers"><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Glorious GHS Eternal | 40 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>26.31</span></span><span class="tg-df-card-msrp">$59.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-1" data-merchant="Amazon" data-previous-price="49.99" data-price="29.99" data-product-name="G305 Lightspeed | Wireless"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G305 Lightspeed | Wireless" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G305 Lightspeed | Wireless"><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G305 Lightspeed | Wireless</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>29.99</span></span><span class="tg-df-card-msrp">$49.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-86" data-merchant="Amazon" data-previous-price="49.99" data-price="29.99" data-product-name="G305 Lightspeed"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G305 Lightspeed" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G305 Lightspeed"><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G305 Lightspeed</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>29.99</span></span><span class="tg-df-card-msrp">$49.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/dp/B07CMS5Q6P" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-87" data-merchant="Bestbuy" data-previous-price="69.99" data-price="34.98" data-product-name="Basilisk V3"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $35.01</span><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Basilisk V3" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Basilisk V3"><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer Basilisk V3</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>34.98</span></span><span class="tg-df-card-msrp">$69.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Bestbuy</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-3" data-merchant="Amazon" data-previous-price="69.99" data-price="37.99" data-product-name="G502 Hero | Wired"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $32</span><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G502 Hero | Wired" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G502 Hero | Wired"><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G502 Hero | Wired</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>37.99</span></span><span class="tg-df-card-msrp">$69.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-80" data-merchant="Amazon" data-previous-price="59.99" data-price="39.79" data-product-name="BlackShark V2 X"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20.2</span><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="BlackShark V2 X" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="BlackShark V2 X"><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer BlackShark V2 X</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>39.79</span></span><span class="tg-df-card-msrp">$59.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Logitech" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-1" data-merchant="Amazon" data-previous-price="79.99" data-price="39.99" data-product-name="G432 | 50 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $40</span><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="G432 | 50 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="G432 | 50 mm drivers"><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Logitech G432 | 50 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>39.99</span></span><span class="tg-df-card-msrp">$79.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Razer" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-2" data-merchant="Amazon" data-previous-price="79.99" data-price="44.99" data-product-name="Kraken V4 X | 40 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $35</span><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Kraken V4 X | 40 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Kraken V4 X | 40 mm drivers"><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Razer Kraken V4 X | 40 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>44.99</span></span><span class="tg-df-card-msrp">$79.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Turtle Beach" data-currency="$" data-deal-id="airedale-DpQ8P8QRZKyquhjyAvtzVT-5" data-merchant="Amazon" data-previous-price="99.99" data-price="54.99" data-product-name="Burst II Air | Wireless"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $45</span><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Burst II Air | Wireless" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Burst II Air | Wireless"><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Turtle Beach Burst II Air | Wireless</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>54.99</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Dave James" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Dave James</a></strong> • Editor-in-Chief, Hardware<span style="color: var(--tg-df-text-muted);"> • 56 mins ago</span></div></div></div></div><a href="https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="HyperX" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-5" data-merchant="Amazon" data-previous-price="99.99" data-price="57.99" data-product-name="Cloud III | 53 mm drivers"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $42</span><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Cloud III | 53 mm drivers" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Cloud III | 53 mm drivers"><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>HyperX Cloud III | 53 mm drivers</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>57.99</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Nothing" data-currency="$" data-deal-id="airedale-3XCZfpsYgsNo9mNRWv4oSg-15" data-merchant="Amazon" data-previous-price="79" data-price="59" data-product-name="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $20</span><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)"><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Nothing Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>59</span></span><span class="tg-df-card-msrp">$79</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Andy Edser" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Andy Edser</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="KTC" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-40" data-merchant="Newegg" data-previous-price="99.99" data-price="62.49" data-product-name="H24V27"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $37.5</span><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="H24V27" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="H24V27"><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>KTC H24V27</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code &quot;LDSF246&quot; for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>62.49</span></span><span class="tg-df-card-msrp">$99.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Newegg</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.newegg.com/p/3D4-007C-00016" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Scuf" data-currency="$" data-deal-id="airedale-A97h9Ug45WeF5xPLdcoJyf-0" data-merchant="Amazon" data-previous-price="109.99" data-price="76.99" data-product-name="Valor Pro"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $33</span><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="Valor Pro" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="Valor Pro"><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Scuf Valor Pro</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>76.99</span></span><span class="tg-df-card-msrp">$109.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="Jess Kinghorn" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/hardware/controllers/the-best-wired-pc-controller-has-been-knocked-down-to-usd77-so-long-as-you-dont-mind-it-in-white" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">Jess Kinghorn</a></strong> • Hardware Writer<span style="color: var(--tg-df-text-muted);"> • 24 days ago</span></div></div></div></div><a href="https://www.amazon.com/dp/B0DTB3QCS5" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Acer" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-41" data-merchant="Newegg" data-previous-price="129.99" data-price="79.99" data-product-name="AOpen 24KG1Y X3bip"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50</span><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="AOpen 24KG1Y X3bip" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="AOpen 24KG1Y X3bip"><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Acer AOpen 24KG1Y X3bip</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>79.99</span></span><span class="tg-df-card-msrp">$129.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Newegg</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.newegg.com/p/N82E16824011533" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="Asus" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-82" data-merchant="Amazon" data-previous-price="129.99" data-price="79.99" data-product-name="ROG Pelta"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50</span><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="ROG Pelta" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="ROG Pelta"><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>Asus ROG Pelta</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>79.99</span></span><span class="tg-df-card-msrp">$129.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Amazon</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="MSI" data-currency="$" data-deal-id="airedale-vCxWr8kxLPhtdqNjq9cgjZ-43" data-merchant="Bestbuy" data-previous-price="149.99" data-price="97.49" data-product-name="MAG 244F"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $52.5</span><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="MAG 244F" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="MAG 244F"><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>MSI MAG 244F</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>97.49</span></span><span class="tg-df-card-msrp">$149.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Bestbuy</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/labor-day-pc-gaming-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 21 days ago</span></div></div></div></div><a href="https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-card" data-brand="MSI" data-currency="$" data-deal-id="airedale-UBBZiFU9BXsLfvbZ8d4awf-1" data-merchant="Walmart" data-previous-price="149.99" data-price="99" data-product-name="MAG 255XFV"><div class="tg-df-card-image-box"><span class="tg-df-card-discount-badge">Save $50.99</span><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" class="hawk-affiliate-link-deal-widget" target="_blank" rel="sponsored nofollow noopener" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;"><img alt="MAG 255XFV" class="tg-df-card-image" loading="lazy" src="https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg"></a><div class="tg-df-card-badges"></div></div><div class="tg-df-card-body"><h3 class="tg-df-card-title" title="MAG 255XFV"><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" class="hawk-affiliate-link-container" target="_blank" rel="sponsored nofollow noopener" style="text-decoration: none; color: inherit;"><strong>MSI MAG 255XFV</strong></a></h3><div style="margin-bottom: 12px; position: relative;"><p style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 0px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;">You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS</p><button type="button" style="display: block; appearance: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: rgb(0, 0, 0); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; font-family: inherit; position: absolute; bottom: 2px; right: 0px; background: linear-gradient(to right, transparent, rgb(255, 255, 255) 20%, rgb(255, 255, 255)); padding: 0px 0px 0px 16px;">READ MORE</button></div><div class="tg-df-card-footer"><div class="tg-df-card-price-group"><span class="tg-df-card-price">$<span>99</span></span><span class="tg-df-card-msrp">$149.99</span></div><div class="tg-df-author-line-desktop" style="padding: 0px 0px 12px;"><div style="display: flex; align-items: center; gap: 10px;"><img alt="James Bentley" class="tg-df-author-img" width="36" height="36" src="https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-480-80.png" style="border-radius: 50%; object-fit: cover; flex-shrink: 0; aspect-ratio: 1 / 1; min-width: 36px; min-height: 36px;"><div style="display: flex; flex-direction: column;"><div style="font-size: 10px; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; font-weight: 600;"><span style="color: rgb(255, 102, 0);">Walmart</span> deal recommended by:</div><div style="font-size: 11px; color: var(--tg-df-text); line-height: 1.2;"><strong><a href="https://www.pcgamer.com/amazon-prime-day-gaming-monitor-deals" target="_blank" rel="noopener" style="text-decoration: none; color: inherit; border-bottom: 1px dotted var(--tg-df-text-muted);">James Bentley</a></strong> • Hardware writer<span style="color: var(--tg-df-text-muted);"> • 2 hrs ago</span></div></div></div></div><a href="https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174" data-fcaw-affiliate-link="" target="_blank" rel="sponsored nofollow noopener" class="tg-df-card-cta hawk-affiliate-link-deal-button" style="text-decoration: none;">VIEW DEAL</a></div></div></div><div class="tg-df-load-more-control" style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1; overflow-anchor: none;"><button type="button" class="tg-df-tag-outline" aria-busy="false" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer;">Load More</button></div><script type="application/ld+json">{"@context":"https://schema.org","@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Product","name":"G203 | Wired","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":25.99,"url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":2,"item":{"@type":"Product","name":"GHS Eternal | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","brand":{"@type":"Brand","name":"Glorious"},"offers":{"@type":"Offer","priceCurrency":"USD","price":26.31,"url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":3,"item":{"@type":"Product","name":"G305 Lightspeed | Wireless","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":4,"item":{"@type":"Product","name":"G305 Lightspeed","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/dp/B07CMS5Q6P","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":5,"item":{"@type":"Product","name":"Basilisk V3","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":34.98,"url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":6,"item":{"@type":"Product","name":"G502 Hero | Wired","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":37.99,"url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":7,"item":{"@type":"Product","name":"BlackShark V2 X","image":"https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg","description":"The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.79,"url":"https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":8,"item":{"@type":"Product","name":"G432 | 50 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg","description":"Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.99,"url":"https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":9,"item":{"@type":"Product","name":"Kraken V4 X | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg","description":"If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":44.99,"url":"https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":10,"item":{"@type":"Product","name":"Burst II Air | Wireless","image":"https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg","description":"We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99","brand":{"@type":"Brand","name":"Turtle Beach"},"offers":{"@type":"Offer","priceCurrency":"USD","price":54.99,"url":"https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":11,"item":{"@type":"Product","name":"Cloud III | 53 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg","description":"We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99","brand":{"@type":"Brand","name":"HyperX"},"offers":{"@type":"Offer","priceCurrency":"USD","price":57.99,"url":"https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":12,"item":{"@type":"Product","name":"Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)","image":"https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png","description":"These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response","brand":{"@type":"Brand","name":"Nothing"},"offers":{"@type":"Offer","priceCurrency":"USD","price":59,"url":"https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":13,"item":{"@type":"Product","name":"H24V27","image":"https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png","description":"This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code "LDSF246" for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA","brand":{"@type":"Brand","name":"KTC"},"offers":{"@type":"Offer","priceCurrency":"USD","price":62.49,"url":"https://www.newegg.com/p/3D4-007C-00016","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":14,"item":{"@type":"Product","name":"Valor Pro","image":"https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png","description":"This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks","brand":{"@type":"Brand","name":"Scuf"},"offers":{"@type":"Offer","priceCurrency":"USD","price":76.99,"url":"https://www.amazon.com/dp/B0DTB3QCS5","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":15,"item":{"@type":"Product","name":"AOpen 24KG1Y X3bip","image":"https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png","description":"With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"Acer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.newegg.com/p/N82E16824011533","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":16,"item":{"@type":"Product","name":"ROG Pelta","image":"https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg","description":"With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life","brand":{"@type":"Brand","name":"Asus"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":17,"item":{"@type":"Product","name":"MAG 244F","image":"https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png","description":"With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":97.49,"url":"https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":18,"item":{"@type":"Product","name":"MAG 255XFV","image":"https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg","description":"You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":99,"url":"https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174","seller":{"@type":"Organization","name":"Walmart"}}}}]}</script></div></div><div class="tg-df-modal-backdrop "><div class="tg-df-modal"><div class="tg-df-modal-header"><h3 class="tg-df-modal-title">Available Coupons & Deals</h3><button class="tg-df-modal-close"><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 class="tg-df-modal-body"><div class="tg-df-message">No active vouchers found for .</div></div></div></div></div></div>  </div>  <script type="application/json" data-fcaw-config>{"authorBioLength":"short","authorFullBleed":false,"authorHandle":"all-authors","authorName":"All authors","backgroundColor":"transparent","customBio":"","discountAmount":"25","editorMode":false,"editorialMaxAgeMonths":"0","includeBuyingGuideProducts":false,"includeCollections":false,"includeDeals":true,"includeReviewProducts":false,"mobileDropdowns":true,"stickyMobileFilters":false,"offerType":"","preloadReviewInventory":false,"lightweightReviewDelivery":false,"hideHawkPrices":false,"prioritiseCommercialProducts":true,"priceRange":"all","productSelection":"mix","query":"","region":"auto","resultCount":"6","retailer":"","selectedBrands":[],"showAuthorBio":false,"showAuthorCounters":true,"showAuthorIdentity":false,"showAuthorRail":false,"showBrandRail":false,"showCategoryRail":true,"showCollectionsDropdown":false,"showPriceDiscountFilters":true,"showReviewSort":false,"showSocialButtons":false,"showCountdown":false,"showHeaderDetails":true,"showFreeformTagRail":false,"sort":"price_asc","viewMode":"author","website":"pcgamer","widgetSubtitle":"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.","widgetTitle":"Top Deals Handpicked by Our Editors","brands":[],"shortenedHeadlines":{},"compactEmbed":true}</script>  <script type="application/json" data-fcaw-preload>{"authors":[{"bioLong":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","bioShort":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","name":"James","fullName":"James Bentley","handle":"james-bentley","role":"Hardware writer","image":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","brandKey":"pcgamer"},{"bioLong":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","bioShort":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","name":"Dave","fullName":"Dave James","handle":"dave-james","role":"Editor-in-Chief, Hardware","image":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/not_the_gk","label":"X (Twitter)"},{"key":"email","href":"mailto:dave.james@futurenet.com","label":"Email"}]},{"bioLong":"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'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's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","bioShort":"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'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's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","name":"Jacob","fullName":"Jacob Fox","handle":"jacob-fox","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/Ee8ZL5rzgTjTNkBFJ4jBnD.png","brandKey":"pcgamer"},{"bioLong":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","bioShort":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","name":"Andy","fullName":"Andy Edser","handle":"andy-edser","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","brandKey":"pcgamer"},{"bioLong":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","bioShort":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","name":"Jess","fullName":"Jess Kinghorn","handle":"jess-kinghorn","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/KoeniginKatze","label":"X (Twitter)"},{"key":"linkedin","href":"https://www.linkedin.com/in/jess-kinghorn","label":"LinkedIn"}]}],"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"activeDealTag":null,"activeFreeformTag":null,"activeFreeformTags":[],"couponMap":{"Amazon":"has","Bestbuy":"none","Newegg":"none","Walmart":"none"},"totalAuthorCount":5,"totalDealCount":56,"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"reviewInventoryBaked":false,"regionalDealManifests":{"US":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-0","url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":25.99,"rawMsrp":34.99,"price":"25.99","msrp":"34.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $9","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g203-lightsync-wired-optical-gaming-mouse-with-8000-dpi-sensor-white/6409362.p?skuId=6409362\" target=\"_blank\"\u003eBest Buy $39.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-0","url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","title":"GHS Eternal | 40 mm drivers","brand":"Glorious","productName":"GHS Eternal | 40 mm drivers","merchant":"Amazon","rawPrice":26.31,"rawMsrp":59.99,"price":"26.31","msrp":"59.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $33.68","savingType":"amount","isPrime":false,"starRating":null,"description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","text":"\u003cp\u003eWith a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20 hz - 20 kHz | 255 g\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-1","url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite budget wireless mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/product/logitech-g305-lightspeed-wireless-optical-6-programmable-button-gaming-mouse-with-12000-dpi-hero-sensor-wireless-white/J7H7ZY2ZYR\" target=\"_blank\"\u003eBest Buy $49.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-86","url":"https://www.amazon.com/dp/B07CMS5Q6P","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","title":"G305 Lightspeed","brand":"Logitech","productName":"G305 Lightspeed","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","text":"\u003cp\u003eAlready reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-87","url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","title":"Basilisk V3","brand":"Razer","productName":"Basilisk V3","merchant":"Bestbuy","rawPrice":34.98,"rawMsrp":69.99,"price":"34.98","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $35.01","savingType":"amount","isPrime":false,"starRating":null,"description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","text":"\u003cp\u003eThis mouse might be a few years old, but we scored it highly in \u003ca href=\"https://www.pcgamer.com/razer-basilisk-v3-gaming-mouse-review/\" target=\"_blank\"\u003eour review\u003c/a\u003e in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to \u003ca href=\"https://www.pcgamer.com/hardware/im-ashamed-to-say-that-this-razer-mouse-has-made-me-actually-take-a-shine-to-rgb-and-now-you-can-be-persuaded-too-for-almost-50-percent-off/\" target=\"_blank\"\u003etempt even those who usually hate RGB lighting\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-3","url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":37.99,"rawMsrp":69.99,"price":"37.99","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $32","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","text":"\u003cp\u003eThis is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g502-hero-wired-optical-gaming-mouse-with-rgb-lighting-black/6265133.p?skuId=6265133\" target=\"_blank\"\u003eBest Buy $69.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true}],"GB":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-10","url":"https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":19.99,"rawMsrp":30.99,"price":"19.99","msrp":"30.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £11","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-11","url":"https://www.amazon.co.uk/Logitech-Wireless-Lightweight-Programmable-compatible/dp/B07CGPZ3ZQ","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":19.99,"rawMsrp":27.99,"price":"19.99","msrp":"27.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £8","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite wireless budget mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays. Key specs: Wireless | 12,000 DPI | Right-handed","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite wireless budget mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-19","url":"https://www.amazon.co.uk/JBL-Quantum-Gaming-Wired-Over-ear-Black/dp/B083X24CFF/","image":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","title":"Quantum 100 | 40 mm drivers","brand":"JBL","productName":"Quantum 100 | 40 mm drivers","merchant":"Amazon","rawPrice":19.99,"rawMsrp":29.99,"price":"19.99","msrp":"29.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £10","savingType":"amount","isPrime":false,"starRating":null,"description":"JBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired","text":"\u003cp\u003eJBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-12","url":"https://www.amazon.co.uk/Logitech-Programmable-Buttons-Computer-Adjustable/dp/B07GS6ZB7T/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":22.01,"rawMsrp":37.79,"price":"22.01","msrp":"37.79","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £15.78","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness. Key specs: Wired | 25,600 DPI | Right-handed","text":"\u003cp\u003eThis is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-23","url":"https://www.amazon.co.uk/Logitech-LIGHTSPEED-Wireless-Bluetooth-Nintendo/dp/B0FL7NNGRG?th=1","image":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","title":"G321 Lightspeed | 40 mm drivers","brand":"Logitech","productName":"G321 Lightspeed | 40 mm drivers","merchant":"Amazon","rawPrice":32.99,"rawMsrp":59.99,"price":"32.99","msrp":"59.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £27","savingType":"amount","isPrime":false,"starRating":null,"description":"This very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in his review. It won't blow you away with bass or features, but at this price it's still worth considering. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless Price check: Currys £42.99","text":"\u003cp\u003eThis very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in \u003ca href=\"https://www.pcgamer.com/hardware/gaming-headsets/logitech-g321-lightspeed-review/\" target=\"_blank\"\u003ehis review\u003c/a\u003e. It won't blow you away with bass or features, but at this price it's still worth considering.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless \u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g321-lightspeed-wireless-bluetooth-gaming-headset-black-10289632.html\" target=\"_blank\"\u003eCurrys £42.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-20","url":"https://www.amazon.co.uk/Logitech-Microphone-Comfortable-Lightweight-PlayStation/dp/B07W6J6TG5/","image":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","title":"G335 | 40 mm drivers","brand":"Logitech","productName":"G335 | 40 mm drivers","merchant":"Amazon","rawPrice":34.99,"rawMsrp":64.99,"price":"34.99","msrp":"64.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £30","savingType":"amount","isPrime":false,"starRating":null,"description":"This Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired Price check: Currys £34.99","text":"\u003cp\u003eThis Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g335-gaming-headset-black-10227173.html\" target=\"_blank\"\u003eCurrys £34.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true}],"AU":[{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-5","url":"https://www.amazon.com.au/JBL-QuantumSOUND-Signature-Comfortable-Breathable/dp/B0D6NLHV8N","image":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","title":"Quantum 100M2","brand":"JBL","productName":"Quantum 100M2","merchant":"Amazon","rawPrice":29,"rawMsrp":59.95,"price":"29","msrp":"59.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$30.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.","text":"\u003cp\u003eIf you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-1","url":"https://www.amazon.com.au/dp/B0CMCPY4VG","image":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","title":"Nova Lite","brand":"GameSir","productName":"Nova Lite","merchant":"Amazon","rawPrice":32,"rawMsrp":45,"price":"32","msrp":"45","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$13","savingType":"amount","isPrime":false,"starRating":null,"description":"Our favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.","text":"\u003cp\u003eOur favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-15","url":"https://www.amazon.com.au/dp/B07MG5547J","image":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","title":"G502 Hero","brand":"Logitech","productName":"G502 Hero","merchant":"Amazon","rawPrice":55.99,"rawMsrp":149.95,"price":"55.99","msrp":"149.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$93.96","savingType":"amount","isPrime":false,"starRating":null,"description":"Logitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;","text":"\u003cp\u003eLogitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-8","url":"https://www.amazon.com.au/CORSAIR-Membrane-Wired-Gaming-Keyboard/dp/B0CP6BR96G","image":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","title":"K55 Core Membrane","brand":"Corsair","productName":"K55 Core Membrane","merchant":"Amazon","rawPrice":59,"rawMsrp":79.95,"price":"59","msrp":"79.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$20.95","savingType":"amount","isPrime":false,"starRating":null,"description":"This discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.","text":"\u003cp\u003eThis discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-11","url":"https://www.amazon.com.au/dp/B01K48R5V4","image":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","fallbackImage":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","title":"G G213 Prodigy","brand":"Logitech","productName":"G G213 Prodigy","merchant":"Amazon","rawPrice":72,"rawMsrp":129.95,"price":"72","msrp":"129.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$57.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.","text":"\u003cp\u003eIf you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-13","url":"https://www.amazon.com.au/CORSAIR-Sabre-Ultralight-Wireless-Gaming/dp/B0FKJ2J2R8/","image":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","title":"Sabre v2 Pro","brand":"Corsair","productName":"Sabre v2 Pro","merchant":"Amazon","rawPrice":79,"rawMsrp":169,"price":"79","msrp":"169","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$90","savingType":"amount","isPrime":false,"starRating":null,"description":"The Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox loved its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life.","text":"\u003cp\u003eThe Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox \u003ca href=\"https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/\"\u003eloved\u003c/a\u003e its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life. \u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true}]},"regionalDealRailData":{"US":{"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"totalAuthorCount":5,"totalDealCount":56},"GB":{"brands":[{"formatted_value":"Logitech","count":6},{"formatted_value":"Steelseries","count":2},{"formatted_value":"EarFun","count":2},{"formatted_value":"Lexar","count":2},{"formatted_value":"AOC","count":2},{"formatted_value":"MSI","count":2},{"formatted_value":"JBL","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Turtle Beach","count":1}],"freeformTagCounts":{"hardware":17,"mouse":5,"gaming-mouse":5,"prime-day":5,"amazon-prime-day-2026":14,"amazon-prime-day":17,"prime-day-deals":8,"deals":17,"deal":17,"big-deal-days":17,"gaming-headset":9,"amazon-prime":3,"ssd":1,"pc-deals":3,"gaming-monitor":2,"monitors":2,"solid-state-drive":1,"solid-state":1,"hdd":1,"hard-drive":1,"storage":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"}],"tagCounts":{"Gaming Mice":5,"Hardware":17,"Gaming Headsets":9,"Gaming Audio":9,"SSDs":1,"Storage":1,"Gaming Monitors":2},"tags":["Hardware","Gaming Headsets","Gaming Audio","Gaming Mice","Gaming Monitors","SSDs","Storage"],"totalAuthorCount":4,"totalDealCount":17},"AU":{"brands":[{"formatted_value":"Logitech","count":7},{"formatted_value":"Corsair","count":4},{"formatted_value":"JBL","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"GameSir","count":1},{"formatted_value":"8BitDo","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Asus","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"SteelSeries","count":1}],"freeformTagCounts":{"hardware":20,"amazon-prime":20,"pc-deals":20,"deals":20,"prime-day-deals":20},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"}],"tagCounts":{"Hardware":20},"tags":["Hardware"],"totalAuthorCount":1,"totalDealCount":20}}}</script></fc-author-commerce-widget><script>(()=>{var Z1=Object.create;var cg=Object.defineProperty;var W1=Object.getOwnPropertyDescriptor;var I1=Object.getOwnPropertyNames;var J1=Object.getPrototypeOf,$1=Object.prototype.hasOwnProperty;var un=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var eb=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of I1(t))!$1.call(e,l)&&l!==n&&cg(e,l,{get:()=>t[l],enumerable:!(a=W1(t,l))||a.enumerable});return e};var B=(e,t,n)=>(n=e!=null?Z1(J1(e)):{},eb(t||!e||!e.__esModule?cg(n,"default",{value:e,enumerable:!0}):n,e));var Ag=un(z=>{"use strict";var Tc=Symbol.for("react.transitional.element"),tb=Symbol.for("react.portal"),nb=Symbol.for("react.fragment"),ab=Symbol.for("react.strict_mode"),lb=Symbol.for("react.profiler"),ib=Symbol.for("react.consumer"),rb=Symbol.for("react.context"),ob=Symbol.for("react.forward_ref"),ub=Symbol.for("react.suspense"),cb=Symbol.for("react.memo"),mg=Symbol.for("react.lazy"),sb=Symbol.for("react.activity"),sg=Symbol.iterator;function db(e){return e===null||typeof e!="object"?null:(e=sg&&e[sg]||e["@@iterator"],typeof e=="function"?e:null)}var hg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pg=Object.assign,yg={};function ml(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}ml.prototype.isReactComponent={};ml.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ml.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function vg(){}vg.prototype=ml.prototype;function Ec(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}var Dc=Ec.prototype=new vg;Dc.constructor=Ec;pg(Dc,ml.prototype);Dc.isPureReactComponent=!0;var dg=Array.isArray;function Rc(){}var he={H:null,A:null,T:null,S:null},bg=Object.prototype.hasOwnProperty;function xc(e,t,n){var a=n.ref;return{$$typeof:Tc,type:e,key:t,ref:a!==void 0?a:null,props:n}}function fb(e,t){return xc(e.type,t,e.props)}function Mc(e){return typeof e=="object"&&e!==null&&e.$$typeof===Tc}function gb(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var fg=/\/+/g;function Cc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?gb(""+e.key):t.toString(36)}function mb(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Rc,Rc):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function gl(e,t,n,a,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var r=!1;if(e===null)r=!0;else switch(i){case"bigint":case"string":case"number":r=!0;break;case"object":switch(e.$$typeof){case Tc:case tb:r=!0;break;case mg:return r=e._init,gl(r(e._payload),t,n,a,l)}}if(r)return l=l(e),r=a===""?"."+Cc(e,0):a,dg(l)?(n="",r!=null&&(n=r.replace(fg,"$&/")+"/"),gl(l,t,n,"",function(c){return c})):l!=null&&(Mc(l)&&(l=fb(l,n+(l.key==null||e&&e.key===l.key?"":(""+l.key).replace(fg,"$&/")+"/")+r)),t.push(l)),1;r=0;var o=a===""?".":a+":";if(dg(e))for(var u=0;u<e.length;u++)a=e[u],i=o+Cc(a,u),r+=gl(a,t,n,i,l);else if(u=db(e),typeof u=="function")for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,i=o+Cc(a,u++),r+=gl(a,t,n,i,l);else if(i==="object"){if(typeof e.then=="function")return gl(mb(e),t,n,a,l);throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.")}return r}function ro(e,t,n){if(e==null)return e;var a=[],l=0;return gl(e,a,"","",function(i){return t.call(n,i,l++)}),a}function hb(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var gg=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},pb={map:ro,forEach:function(e,t,n){ro(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ro(e,function(){t++}),t},toArray:function(e){return ro(e,function(t){return t})||[]},only:function(e){if(!Mc(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};z.Activity=sb;z.Children=pb;z.Component=ml;z.Fragment=nb;z.Profiler=lb;z.PureComponent=Ec;z.StrictMode=ab;z.Suspense=ub;z.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=he;z.__COMPILER_RUNTIME={__proto__:null,c:function(e){return he.H.useMemoCache(e)}};z.cache=function(e){return function(){return e.apply(null,arguments)}};z.cacheSignal=function(){return null};z.cloneElement=function(e,t,n){if(e==null)throw Error("The argument must be a React element, but you passed "+e+".");var a=pg({},e.props),l=e.key;if(t!=null)for(i in t.key!==void 0&&(l=""+t.key),t)!bg.call(t,i)||i==="key"||i==="__self"||i==="__source"||i==="ref"&&t.ref===void 0||(a[i]=t[i]);var i=arguments.length-2;if(i===1)a.children=n;else if(1<i){for(var r=Array(i),o=0;o<i;o++)r[o]=arguments[o+2];a.children=r}return xc(e.type,l,a)};z.createContext=function(e){return e={$$typeof:rb,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:ib,_context:e},e};z.createElement=function(e,t,n){var a,l={},i=null;if(t!=null)for(a in t.key!==void 0&&(i=""+t.key),t)bg.call(t,a)&&a!=="key"&&a!=="__self"&&a!=="__source"&&(l[a]=t[a]);var r=arguments.length-2;if(r===1)l.children=n;else if(1<r){for(var o=Array(r),u=0;u<r;u++)o[u]=arguments[u+2];l.children=o}if(e&&e.defaultProps)for(a in r=e.defaultProps,r)l[a]===void 0&&(l[a]=r[a]);return xc(e,i,l)};z.createRef=function(){return{current:null}};z.forwardRef=function(e){return{$$typeof:ob,render:e}};z.isValidElement=Mc;z.lazy=function(e){return{$$typeof:mg,_payload:{_status:-1,_result:e},_init:hb}};z.memo=function(e,t){return{$$typeof:cb,type:e,compare:t===void 0?null:t}};z.startTransition=function(e){var t=he.T,n={};he.T=n;try{var a=e(),l=he.S;l!==null&&l(n,a),typeof a=="object"&&a!==null&&typeof a.then=="function"&&a.then(Rc,gg)}catch(i){gg(i)}finally{t!==null&&n.types!==null&&(t.types=n.types),he.T=t}};z.unstable_useCacheRefresh=function(){return he.H.useCacheRefresh()};z.use=function(e){return he.H.use(e)};z.useActionState=function(e,t,n){return he.H.useActionState(e,t,n)};z.useCallback=function(e,t){return he.H.useCallback(e,t)};z.useContext=function(e){return he.H.useContext(e)};z.useDebugValue=function(){};z.useDeferredValue=function(e,t){return he.H.useDeferredValue(e,t)};z.useEffect=function(e,t){return he.H.useEffect(e,t)};z.useEffectEvent=function(e){return he.H.useEffectEvent(e)};z.useId=function(){return he.H.useId()};z.useImperativeHandle=function(e,t,n){return he.H.useImperativeHandle(e,t,n)};z.useInsertionEffect=function(e,t){return he.H.useInsertionEffect(e,t)};z.useLayoutEffect=function(e,t){return he.H.useLayoutEffect(e,t)};z.useMemo=function(e,t){return he.H.useMemo(e,t)};z.useOptimistic=function(e,t){return he.H.useOptimistic(e,t)};z.useReducer=function(e,t,n){return he.H.useReducer(e,t,n)};z.useRef=function(e){return he.H.useRef(e)};z.useState=function(e){return he.H.useState(e)};z.useSyncExternalStore=function(e,t,n){return he.H.useSyncExternalStore(e,t,n)};z.useTransition=function(){return he.H.useTransition()};z.version="19.2.8"});var ft=un((zS,wg)=>{"use strict";wg.exports=Ag()});var Bg=un(Se=>{"use strict";function Oc(e,t){var n=e.length;e.push(t);e:for(;0<n;){var a=n-1>>>1,l=e[a];if(0<oo(l,t))e[a]=t,e[n]=l,n=a;else break e}}function cn(e){return e.length===0?null:e[0]}function co(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var a=0,l=e.length,i=l>>>1;a<i;){var r=2*(a+1)-1,o=e[r],u=r+1,c=e[u];if(0>oo(o,n))u<l&&0>oo(c,o)?(e[a]=c,e[u]=n,a=u):(e[a]=o,e[r]=n,a=r);else if(u<l&&0>oo(c,n))e[a]=c,e[u]=n,a=u;else break e}}return t}function oo(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}Se.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Sg=performance,Se.unstable_now=function(){return Sg.now()}):(_c=Date,Cg=_c.now(),Se.unstable_now=function(){return _c.now()-Cg});var Sg,_c,Cg,wn=[],Qn=[],yb=1,Ut=null,et=3,kc=!1,Mi=!1,_i=!1,Lc=!1,Eg=typeof setTimeout=="function"?setTimeout:null,Dg=typeof clearTimeout=="function"?clearTimeout:null,Rg=typeof setImmediate<"u"?setImmediate:null;function uo(e){for(var t=cn(Qn);t!==null;){if(t.callback===null)co(Qn);else if(t.startTime<=e)co(Qn),t.sortIndex=t.expirationTime,Oc(wn,t);else break;t=cn(Qn)}}function Hc(e){if(_i=!1,uo(e),!Mi)if(cn(wn)!==null)Mi=!0,pl||(pl=!0,hl());else{var t=cn(Qn);t!==null&&zc(Hc,t.startTime-e)}}var pl=!1,Bi=-1,xg=5,Mg=-1;function _g(){return Lc?!0:!(Se.unstable_now()-Mg<xg)}function Bc(){if(Lc=!1,pl){var e=Se.unstable_now();Mg=e;var t=!0;try{e:{Mi=!1,_i&&(_i=!1,Dg(Bi),Bi=-1),kc=!0;var n=et;try{t:{for(uo(e),Ut=cn(wn);Ut!==null&&!(Ut.expirationTime>e&&_g());){var a=Ut.callback;if(typeof a=="function"){Ut.callback=null,et=Ut.priorityLevel;var l=a(Ut.expirationTime<=e);if(e=Se.unstable_now(),typeof l=="function"){Ut.callback=l,uo(e),t=!0;break t}Ut===cn(wn)&&co(wn),uo(e)}else co(wn);Ut=cn(wn)}if(Ut!==null)t=!0;else{var i=cn(Qn);i!==null&&zc(Hc,i.startTime-e),t=!1}}break e}finally{Ut=null,et=n,kc=!1}t=void 0}}finally{t?hl():pl=!1}}}var hl;typeof Rg=="function"?hl=function(){Rg(Bc)}:typeof MessageChannel<"u"?(Nc=new MessageChannel,Tg=Nc.port2,Nc.port1.onmessage=Bc,hl=function(){Tg.postMessage(null)}):hl=function(){Eg(Bc,0)};var Nc,Tg;function zc(e,t){Bi=Eg(function(){e(Se.unstable_now())},t)}Se.unstable_IdlePriority=5;Se.unstable_ImmediatePriority=1;Se.unstable_LowPriority=4;Se.unstable_NormalPriority=3;Se.unstable_Profiling=null;Se.unstable_UserBlockingPriority=2;Se.unstable_cancelCallback=function(e){e.callback=null};Se.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):xg=0<e?Math.floor(1e3/e):5};Se.unstable_getCurrentPriorityLevel=function(){return et};Se.unstable_next=function(e){switch(et){case 1:case 2:case 3:var t=3;break;default:t=et}var n=et;et=t;try{return e()}finally{et=n}};Se.unstable_requestPaint=function(){Lc=!0};Se.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=et;et=e;try{return t()}finally{et=n}};Se.unstable_scheduleCallback=function(e,t,n){var a=Se.unstable_now();switch(typeof n=="object"&&n!==null?(n=n.delay,n=typeof n=="number"&&0<n?a+n:a):n=a,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return l=n+l,e={id:yb++,callback:t,priorityLevel:e,startTime:n,expirationTime:l,sortIndex:-1},n>a?(e.sortIndex=n,Oc(Qn,e),cn(wn)===null&&e===cn(Qn)&&(_i?(Dg(Bi),Bi=-1):_i=!0,zc(Hc,n-a))):(e.sortIndex=l,Oc(wn,e),Mi||kc||(Mi=!0,pl||(pl=!0,hl()))),e};Se.unstable_shouldYield=_g;Se.unstable_wrapCallback=function(e){var t=et;return function(){var n=et;et=t;try{return e.apply(this,arguments)}finally{et=n}}}});var Og=un((GS,Ng)=>{"use strict";Ng.exports=Bg()});var Lg=un(ot=>{"use strict";var vb=ft();function kg(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function Kn(){}var rt={d:{f:Kn,r:function(){throw Error(kg(522))},D:Kn,C:Kn,L:Kn,m:Kn,X:Kn,S:Kn,M:Kn},p:0,findDOMNode:null},bb=Symbol.for("react.portal");function Ab(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:bb,key:a==null?null:""+a,children:e,containerInfo:t,implementation:n}}var Ni=vb.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function so(e,t){if(e==="font")return"";if(typeof t=="string")return t==="use-credentials"?t:""}ot.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=rt;ot.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(kg(299));return Ab(e,t,null,n)};ot.flushSync=function(e){var t=Ni.T,n=rt.p;try{if(Ni.T=null,rt.p=2,e)return e()}finally{Ni.T=t,rt.p=n,rt.d.f()}};ot.preconnect=function(e,t){typeof e=="string"&&(t?(t=t.crossOrigin,t=typeof t=="string"?t==="use-credentials"?t:"":void 0):t=null,rt.d.C(e,t))};ot.prefetchDNS=function(e){typeof e=="string"&&rt.d.D(e)};ot.preinit=function(e,t){if(typeof e=="string"&&t&&typeof t.as=="string"){var n=t.as,a=so(n,t.crossOrigin),l=typeof t.integrity=="string"?t.integrity:void 0,i=typeof t.fetchPriority=="string"?t.fetchPriority:void 0;n==="style"?rt.d.S(e,typeof t.precedence=="string"?t.precedence:void 0,{crossOrigin:a,integrity:l,fetchPriority:i}):n==="script"&&rt.d.X(e,{crossOrigin:a,integrity:l,fetchPriority:i,nonce:typeof t.nonce=="string"?t.nonce:void 0})}};ot.preinitModule=function(e,t){if(typeof e=="string")if(typeof t=="object"&&t!==null){if(t.as==null||t.as==="script"){var n=so(t.as,t.crossOrigin);rt.d.M(e,{crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0})}}else t==null&&rt.d.M(e)};ot.preload=function(e,t){if(typeof e=="string"&&typeof t=="object"&&t!==null&&typeof t.as=="string"){var n=t.as,a=so(n,t.crossOrigin);rt.d.L(e,n,{crossOrigin:a,integrity:typeof t.integrity=="string"?t.integrity:void 0,nonce:typeof t.nonce=="string"?t.nonce:void 0,type:typeof t.type=="string"?t.type:void 0,fetchPriority:typeof t.fetchPriority=="string"?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy=="string"?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet=="string"?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes=="string"?t.imageSizes:void 0,media:typeof t.media=="string"?t.media:void 0})}};ot.preloadModule=function(e,t){if(typeof e=="string")if(t){var n=so(t.as,t.crossOrigin);rt.d.m(e,{as:typeof t.as=="string"&&t.as!=="script"?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity=="string"?t.integrity:void 0})}else rt.d.m(e)};ot.requestFormReset=function(e){rt.d.r(e)};ot.unstable_batchedUpdates=function(e,t){return e(t)};ot.useFormState=function(e,t,n){return Ni.H.useFormState(e,t,n)};ot.useFormStatus=function(){return Ni.H.useHostTransitionStatus()};ot.version="19.2.8"});var Ug=un((qS,zg)=>{"use strict";function Hg(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Hg)}catch(e){console.error(e)}}Hg(),zg.exports=Lg()});var Wy=un(Hu=>{"use strict";var Ge=Og(),sh=ft(),wb=Ug();function S(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function dh(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function vr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function fh(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function gh(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Gg(e){if(vr(e)!==e)throw Error(S(188))}function Sb(e){var t=e.alternate;if(!t){if(t=vr(e),t===null)throw Error(S(188));return t!==e?null:e}for(var n=e,a=t;;){var l=n.return;if(l===null)break;var i=l.alternate;if(i===null){if(a=l.return,a!==null){n=a;continue}break}if(l.child===i.child){for(i=l.child;i;){if(i===n)return Gg(l),e;if(i===a)return Gg(l),t;i=i.sibling}throw Error(S(188))}if(n.return!==a.return)n=l,a=i;else{for(var r=!1,o=l.child;o;){if(o===n){r=!0,n=l,a=i;break}if(o===a){r=!0,a=l,n=i;break}o=o.sibling}if(!r){for(o=i.child;o;){if(o===n){r=!0,n=i,a=l;break}if(o===a){r=!0,a=i,n=l;break}o=o.sibling}if(!r)throw Error(S(189))}}if(n.alternate!==a)throw Error(S(190))}if(n.tag!==3)throw Error(S(188));return n.stateNode.current===n?e:t}function mh(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=mh(e),t!==null)return t;e=e.sibling}return null}var ve=Object.assign,Cb=Symbol.for("react.element"),fo=Symbol.for("react.transitional.element"),Pi=Symbol.for("react.portal"),Sl=Symbol.for("react.fragment"),hh=Symbol.for("react.strict_mode"),ys=Symbol.for("react.profiler"),ph=Symbol.for("react.consumer"),Mn=Symbol.for("react.context"),fd=Symbol.for("react.forward_ref"),vs=Symbol.for("react.suspense"),bs=Symbol.for("react.suspense_list"),gd=Symbol.for("react.memo"),Zn=Symbol.for("react.lazy");Symbol.for("react.scope");var As=Symbol.for("react.activity");Symbol.for("react.legacy_hidden");Symbol.for("react.tracing_marker");var Rb=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var Pg=Symbol.iterator;function Oi(e){return e===null||typeof e!="object"?null:(e=Pg&&e[Pg]||e["@@iterator"],typeof e=="function"?e:null)}var Tb=Symbol.for("react.client.reference");function ws(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Tb?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Sl:return"Fragment";case ys:return"Profiler";case hh:return"StrictMode";case vs:return"Suspense";case bs:return"SuspenseList";case As:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case Pi:return"Portal";case Mn:return e.displayName||"Context";case ph:return(e._context.displayName||"Context")+".Consumer";case fd:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case gd:return t=e.displayName||null,t!==null?t:ws(e.type)||"Memo";case Zn:t=e._payload,e=e._init;try{return ws(e(t))}catch{}}return null}var qi=Array.isArray,L=sh.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=wb.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,za={pending:!1,data:null,method:null,action:null},Ss=[],Cl=-1;function mn(e){return{current:e}}function Fe(e){0>Cl||(e.current=Ss[Cl],Ss[Cl]=null,Cl--)}function ge(e,t){Cl++,Ss[Cl]=e.current,e.current=t}var gn=mn(null),lr=mn(null),ra=mn(null),Vo=mn(null);function Xo(e,t){switch(ge(ra,t),ge(lr,e),ge(gn,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Qm(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Qm(t),e=Hy(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Fe(gn),ge(gn,e)}function ql(){Fe(gn),Fe(lr),Fe(ra)}function Cs(e){e.memoizedState!==null&&ge(Vo,e);var t=gn.current,n=Hy(t,e.type);t!==n&&(ge(lr,e),ge(gn,n))}function Qo(e){lr.current===e&&(Fe(gn),Fe(lr)),Vo.current===e&&(Fe(Vo),hr._currentValue=za)}var Uc,qg;function Oa(e){if(Uc===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Uc=t&&t[1]||"",qg=-1<n.stack.indexOf(`    at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return``+Uc+e+qg}var Gc=!1;function Pc(e,t){if(!e||Gc)return"";Gc=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var f=function(){throw Error()};if(Object.defineProperty(f.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(f,[])}catch(m){var d=m}Reflect.construct(e,[],f)}else{try{f.call()}catch(m){d=m}e.call(f.prototype)}}else{try{throw Error()}catch(m){d=m}(f=e())&&typeof f.catch=="function"&&f.catch(function(){})}}catch(m){if(m&&d&&typeof m.stack=="string")return[m.stack,d.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var i=a.DetermineComponentFrameRoot(),r=i[0],o=i[1];if(r&&o){var u=r.split(``),c=o.split(``);for(l=a=0;a<u.length&&!u[a].includes("DetermineComponentFrameRoot");)a++;for(;l<c.length&&!c[l].includes("DetermineComponentFrameRoot");)l++;if(a===u.length||l===c.length)for(a=u.length-1,l=c.length-1;1<=a&&0<=l&&u[a]!==c[l];)l--;for(;1<=a&&0<=l;a--,l--)if(u[a]!==c[l]){if(a!==1||l!==1)do if(a--,l--,0>l||u[a]!==c[l]){var s=``+u[a].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}while(1<=a&&0<=l);break}}}finally{Gc=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Oa(n):""}function Eb(e,t){switch(e.tag){case 26:case 27:case 5:return Oa(e.type);case 16:return Oa("Lazy");case 13:return e.child!==t&&t!==null?Oa("Suspense Fallback"):Oa("Suspense");case 19:return Oa("SuspenseList");case 0:case 15:return Pc(e.type,!1);case 11:return Pc(e.type.render,!1);case 1:return Pc(e.type,!0);case 31:return Oa("Activity");default:return""}}function Fg(e){try{var t="",n=null;do t+=Eb(e,n),n=e,e=e.return;while(e);return t}catch(a){return`Error generating stack: `+a.message+``+a.stack}}var Rs=Object.prototype.hasOwnProperty,md=Ge.unstable_scheduleCallback,qc=Ge.unstable_cancelCallback,Db=Ge.unstable_shouldYield,xb=Ge.unstable_requestPaint,Dt=Ge.unstable_now,Mb=Ge.unstable_getCurrentPriorityLevel,yh=Ge.unstable_ImmediatePriority,vh=Ge.unstable_UserBlockingPriority,Ko=Ge.unstable_NormalPriority,_b=Ge.unstable_LowPriority,bh=Ge.unstable_IdlePriority,Bb=Ge.log,Nb=Ge.unstable_setDisableYieldValue,br=null,xt=null;function ta(e){if(typeof Bb=="function"&&Nb(e),xt&&typeof xt.setStrictMode=="function")try{xt.setStrictMode(br,e)}catch{}}var Mt=Math.clz32?Math.clz32:Lb,Ob=Math.log,kb=Math.LN2;function Lb(e){return e>>>=0,e===0?32:31-(Ob(e)/kb|0)|0}var go=256,mo=262144,ho=4194304;function ka(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Au(e,t,n){var a=e.pendingLanes;if(a===0)return 0;var l=0,i=e.suspendedLanes,r=e.pingedLanes;e=e.warmLanes;var o=a&134217727;return o!==0?(a=o&~i,a!==0?l=ka(a):(r&=o,r!==0?l=ka(r):n||(n=o&~e,n!==0&&(l=ka(n))))):(o=a&~i,o!==0?l=ka(o):r!==0?l=ka(r):n||(n=a&~e,n!==0&&(l=ka(n)))),l===0?0:t!==0&&t!==l&&(t&i)===0&&(i=l&-l,n=t&-t,i>=n||i===32&&(n&4194048)!==0)?t:l}function Ar(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Hb(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ah(){var e=ho;return ho<<=1,(ho&62914560)===0&&(ho=4194304),e}function Fc(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function wr(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function zb(e,t,n,a,l,i){var r=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,u=e.expirationTimes,c=e.hiddenUpdates;for(n=r&~n;0<n;){var s=31-Mt(n),f=1<<s;o[s]=0,u[s]=-1;var d=c[s];if(d!==null)for(c[s]=null,s=0;s<d.length;s++){var m=d[s];m!==null&&(m.lane&=-536870913)}n&=~f}a!==0&&wh(e,a,0),i!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=i&~(r&~t))}function wh(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var a=31-Mt(t);e.entangledLanes|=t,e.entanglements[a]=e.entanglements[a]|1073741824|n&261930}function Sh(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-Mt(n),l=1<<a;l&t|e[a]&t&&(e[a]|=t),n&=~l}}function Ch(e,t){var n=t&-t;return n=(n&42)!==0?1:hd(n),(n&(e.suspendedLanes|t))!==0?0:n}function hd(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function pd(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Rh(){var e=$.p;return e!==0?e:(e=window.event,e===void 0?32:Qy(e.type))}function jg(e,t){var n=$.p;try{return $.p=e,t()}finally{$.p=n}}var ba=Math.random().toString(36).slice(2),Ve="__reactFiber$"+ba,vt="__reactProps$"+ba,Jl="__reactContainer$"+ba,Ts="__reactEvents$"+ba,Ub="__reactListeners$"+ba,Gb="__reactHandles$"+ba,Yg="__reactResources$"+ba,Sr="__reactMarker$"+ba;function yd(e){delete e[Ve],delete e[vt],delete e[Ts],delete e[Ub],delete e[Gb]}function Rl(e){var t=e[Ve];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jl]||n[Ve]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Jm(e);e!==null;){if(n=e[Ve])return n;e=Jm(e)}return t}e=n,n=e.parentNode}return null}function $l(e){if(e=e[Ve]||e[Jl]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Fi(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(S(33))}function kl(e){var t=e[Yg];return t||(t=e[Yg]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function qe(e){e[Sr]=!0}var Th=new Set,Eh={};function Qa(e,t){Fl(e,t),Fl(e+"Capture",t)}function Fl(e,t){for(Eh[e]=t,e=0;e<t.length;e++)Th.add(t[e])}var Pb=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Vg={},Xg={};function qb(e){return Rs.call(Xg,e)?!0:Rs.call(Vg,e)?!1:Pb.test(e)?Xg[e]=!0:(Vg[e]=!0,!1)}function _o(e,t,n){if(qb(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var a=t.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function po(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function Sn(e,t,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+a)}}function Pt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Dh(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Fb(e,t,n){var a=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var l=a.get,i=a.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(r){n=""+r,i.call(this,r)}}),Object.defineProperty(e,t,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(r){n=""+r},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Es(e){if(!e._valueTracker){var t=Dh(e)?"checked":"value";e._valueTracker=Fb(e,t,""+e[t])}}function xh(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Dh(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function Zo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var jb=/[\n"\\]/g;function jt(e){return e.replace(jb,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ds(e,t,n,a,l,i,r,o){e.name="",r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"?e.type=r:e.removeAttribute("type"),t!=null?r==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Pt(t)):e.value!==""+Pt(t)&&(e.value=""+Pt(t)):r!=="submit"&&r!=="reset"||e.removeAttribute("value"),t!=null?xs(e,r,Pt(t)):n!=null?xs(e,r,Pt(n)):a!=null&&e.removeAttribute("value"),l==null&&i!=null&&(e.defaultChecked=!!i),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?e.name=""+Pt(o):e.removeAttribute("name")}function Mh(e,t,n,a,l,i,r,o){if(i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.type=i),t!=null||n!=null){if(!(i!=="submit"&&i!=="reset"||t!=null)){Es(e);return}n=n!=null?""+Pt(n):"",t=t!=null?""+Pt(t):n,o||t===e.value||(e.value=t),e.defaultValue=t}a=a??l,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=o?e.checked:!!a,e.defaultChecked=!!a,r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(e.name=r),Es(e)}function xs(e,t,n){t==="number"&&Zo(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Ll(e,t,n,a){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&a&&(e[n].defaultSelected=!0)}else{for(n=""+Pt(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,a&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function _h(e,t,n){if(t!=null&&(t=""+Pt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+Pt(n):""}function Bh(e,t,n,a){if(t==null){if(a!=null){if(n!=null)throw Error(S(92));if(qi(a)){if(1<a.length)throw Error(S(93));a=a[0]}n=a}n==null&&(n=""),t=n}n=Pt(t),e.defaultValue=n,a=e.textContent,a===n&&a!==""&&a!==null&&(e.value=a),Es(e)}function jl(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Yb=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Qg(e,t,n){var a=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":a?e.setProperty(t,n):typeof n!="number"||n===0||Yb.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function Nh(e,t,n){if(t!=null&&typeof t!="object")throw Error(S(62));if(e=e.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf("--")===0?e.setProperty(a,""):a==="float"?e.cssFloat="":e[a]="");for(var l in t)a=t[l],t.hasOwnProperty(l)&&n[l]!==a&&Qg(e,l,a)}else for(var i in t)t.hasOwnProperty(i)&&Qg(e,i,t[i])}function vd(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Vb=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Xb=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Bo(e){return Xb.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function _n(){}var Ms=null;function bd(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tl=null,Hl=null;function Kg(e){var t=$l(e);if(t&&(e=t.stateNode)){var n=e[vt]||null;e:switch(e=t.stateNode,t.type){case"input":if(Ds(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+jt(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var l=a[vt]||null;if(!l)throw Error(S(90));Ds(a,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(t=0;t<n.length;t++)a=n[t],a.form===e.form&&xh(a)}break e;case"textarea":_h(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Ll(e,!!n.multiple,t,!1)}}}var jc=!1;function Oh(e,t,n){if(jc)return e(t,n);jc=!0;try{var a=e(t);return a}finally{if(jc=!1,(Tl!==null||Hl!==null)&&(Nu(),Tl&&(t=Tl,e=Hl,Hl=Tl=null,Kg(t),e)))for(t=0;t<e.length;t++)Kg(e[t])}}function ir(e,t){var n=e.stateNode;if(n===null)return null;var a=n[vt]||null;if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(S(231,t,typeof n));return n}var Ln=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_s=!1;if(Ln)try{yl={},Object.defineProperty(yl,"passive",{get:function(){_s=!0}}),window.addEventListener("test",yl,yl),window.removeEventListener("test",yl,yl)}catch{_s=!1}var yl,na=null,Ad=null,No=null;function kh(){if(No)return No;var e,t=Ad,n=t.length,a,l="value"in na?na.value:na.textContent,i=l.length;for(e=0;e<n&&t[e]===l[e];e++);var r=n-e;for(a=1;a<=r&&t[n-a]===l[i-a];a++);return No=l.slice(e,1<a?1-a:void 0)}function Oo(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function yo(){return!0}function Zg(){return!1}function bt(e){function t(n,a,l,i,r){this._reactName=n,this._targetInst=l,this.type=a,this.nativeEvent=i,this.target=r,this.currentTarget=null;for(var o in e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?yo:Zg,this.isPropagationStopped=Zg,this}return ve(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=yo)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=yo)},persist:function(){},isPersistent:yo}),t}var Ka={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},wu=bt(Ka),Cr=ve({},Ka,{view:0,detail:0}),Qb=bt(Cr),Yc,Vc,ki,Su=ve({},Cr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:wd,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ki&&(ki&&e.type==="mousemove"?(Yc=e.screenX-ki.screenX,Vc=e.screenY-ki.screenY):Vc=Yc=0,ki=e),Yc)},movementY:function(e){return"movementY"in e?e.movementY:Vc}}),Wg=bt(Su),Kb=ve({},Su,{dataTransfer:0}),Zb=bt(Kb),Wb=ve({},Cr,{relatedTarget:0}),Xc=bt(Wb),Ib=ve({},Ka,{animationName:0,elapsedTime:0,pseudoElement:0}),Jb=bt(Ib),$b=ve({},Ka,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),eA=bt($b),tA=ve({},Ka,{data:0}),Ig=bt(tA),nA={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},aA={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},lA={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function iA(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=lA[e])?!!t[e]:!1}function wd(){return iA}var rA=ve({},Cr,{key:function(e){if(e.key){var t=nA[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Oo(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?aA[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:wd,charCode:function(e){return e.type==="keypress"?Oo(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Oo(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),oA=bt(rA),uA=ve({},Su,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Jg=bt(uA),cA=ve({},Cr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:wd}),sA=bt(cA),dA=ve({},Ka,{propertyName:0,elapsedTime:0,pseudoElement:0}),fA=bt(dA),gA=ve({},Su,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),mA=bt(gA),hA=ve({},Ka,{newState:0,oldState:0}),pA=bt(hA),yA=[9,13,27,32],Sd=Ln&&"CompositionEvent"in window,Vi=null;Ln&&"documentMode"in document&&(Vi=document.documentMode);var vA=Ln&&"TextEvent"in window&&!Vi,Lh=Ln&&(!Sd||Vi&&8<Vi&&11>=Vi),$g=" ",em=!1;function Hh(e,t){switch(e){case"keyup":return yA.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zh(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var El=!1;function bA(e,t){switch(e){case"compositionend":return zh(t);case"keypress":return t.which!==32?null:(em=!0,$g);case"textInput":return e=t.data,e===$g&&em?null:e;default:return null}}function AA(e,t){if(El)return e==="compositionend"||!Sd&&Hh(e,t)?(e=kh(),No=Ad=na=null,El=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Lh&&t.locale!=="ko"?null:t.data;default:return null}}var wA={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function tm(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!wA[e.type]:t==="textarea"}function Uh(e,t,n,a){Tl?Hl?Hl.push(a):Hl=[a]:Tl=a,t=gu(t,"onChange"),0<t.length&&(n=new wu("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Xi=null,rr=null;function SA(e){Oy(e,0)}function Cu(e){var t=Fi(e);if(xh(t))return e}function nm(e,t){if(e==="change")return t}var Gh=!1;Ln&&(Ln?(bo="oninput"in document,bo||(Qc=document.createElement("div"),Qc.setAttribute("oninput","return;"),bo=typeof Qc.oninput=="function"),vo=bo):vo=!1,Gh=vo&&(!document.documentMode||9<document.documentMode));var vo,bo,Qc;function am(){Xi&&(Xi.detachEvent("onpropertychange",Ph),rr=Xi=null)}function Ph(e){if(e.propertyName==="value"&&Cu(rr)){var t=[];Uh(t,rr,e,bd(e)),Oh(SA,t)}}function CA(e,t,n){e==="focusin"?(am(),Xi=t,rr=n,Xi.attachEvent("onpropertychange",Ph)):e==="focusout"&&am()}function RA(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Cu(rr)}function TA(e,t){if(e==="click")return Cu(t)}function EA(e,t){if(e==="input"||e==="change")return Cu(t)}function DA(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Bt=typeof Object.is=="function"?Object.is:DA;function or(e,t){if(Bt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var l=n[a];if(!Rs.call(t,l)||!Bt(e[l],t[l]))return!1}return!0}function lm(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function im(e,t){var n=lm(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=lm(n)}}function qh(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?qh(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fh(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Zo(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Zo(e.document)}return t}function Cd(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var xA=Ln&&"documentMode"in document&&11>=document.documentMode,Dl=null,Bs=null,Qi=null,Ns=!1;function rm(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Ns||Dl==null||Dl!==Zo(a)||(a=Dl,"selectionStart"in a&&Cd(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Qi&&or(Qi,a)||(Qi=a,a=gu(Bs,"onSelect"),0<a.length&&(t=new wu("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Dl)))}function Na(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xl={animationend:Na("Animation","AnimationEnd"),animationiteration:Na("Animation","AnimationIteration"),animationstart:Na("Animation","AnimationStart"),transitionrun:Na("Transition","TransitionRun"),transitionstart:Na("Transition","TransitionStart"),transitioncancel:Na("Transition","TransitionCancel"),transitionend:Na("Transition","TransitionEnd")},Kc={},jh={};Ln&&(jh=document.createElement("div").style,"AnimationEvent"in window||(delete xl.animationend.animation,delete xl.animationiteration.animation,delete xl.animationstart.animation),"TransitionEvent"in window||delete xl.transitionend.transition);function Za(e){if(Kc[e])return Kc[e];if(!xl[e])return e;var t=xl[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in jh)return Kc[e]=t[n];return e}var Yh=Za("animationend"),Vh=Za("animationiteration"),Xh=Za("animationstart"),MA=Za("transitionrun"),_A=Za("transitionstart"),BA=Za("transitioncancel"),Qh=Za("transitionend"),Kh=new Map,Os="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Os.push("scrollEnd");function tn(e,t){Kh.set(e,t),Qa(t,[e])}var Wo=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Gt=[],Ml=0,Rd=0;function Ru(){for(var e=Ml,t=Rd=Ml=0;t<e;){var n=Gt[t];Gt[t++]=null;var a=Gt[t];Gt[t++]=null;var l=Gt[t];Gt[t++]=null;var i=Gt[t];if(Gt[t++]=null,a!==null&&l!==null){var r=a.pending;r===null?l.next=l:(l.next=r.next,r.next=l),a.pending=l}i!==0&&Zh(n,l,i)}}function Tu(e,t,n,a){Gt[Ml++]=e,Gt[Ml++]=t,Gt[Ml++]=n,Gt[Ml++]=a,Rd|=a,e.lanes|=a,e=e.alternate,e!==null&&(e.lanes|=a)}function Td(e,t,n,a){return Tu(e,t,n,a),Io(e)}function Wa(e,t){return Tu(e,null,null,t),Io(e)}function Zh(e,t,n){e.lanes|=n;var a=e.alternate;a!==null&&(a.lanes|=n);for(var l=!1,i=e.return;i!==null;)i.childLanes|=n,a=i.alternate,a!==null&&(a.childLanes|=n),i.tag===22&&(e=i.stateNode,e===null||e._visibility&1||(l=!0)),e=i,i=i.return;return e.tag===3?(i=e.stateNode,l&&t!==null&&(l=31-Mt(n),e=i.hiddenUpdates,a=e[l],a===null?e[l]=[t]:a.push(t),t.lane=n|536870912),i):null}function Io(e){if(50<nr)throw nr=0,ed=null,Error(S(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var _l={};function NA(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Tt(e,t,n,a){return new NA(e,t,n,a)}function Ed(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Nn(e,t){var n=e.alternate;return n===null?(n=Tt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Wh(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ko(e,t,n,a,l,i){var r=0;if(a=e,typeof e=="function")Ed(e)&&(r=1);else if(typeof e=="string")r=Lw(e,n,gn.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case As:return e=Tt(31,n,t,l),e.elementType=As,e.lanes=i,e;case Sl:return Ua(n.children,l,i,t);case hh:r=8,l|=24;break;case ys:return e=Tt(12,n,t,l|2),e.elementType=ys,e.lanes=i,e;case vs:return e=Tt(13,n,t,l),e.elementType=vs,e.lanes=i,e;case bs:return e=Tt(19,n,t,l),e.elementType=bs,e.lanes=i,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Mn:r=10;break e;case ph:r=9;break e;case fd:r=11;break e;case gd:r=14;break e;case Zn:r=16,a=null;break e}r=29,n=Error(S(130,e===null?"null":typeof e,"")),a=null}return t=Tt(r,n,t,l),t.elementType=e,t.type=a,t.lanes=i,t}function Ua(e,t,n,a){return e=Tt(7,e,a,t),e.lanes=n,e}function Zc(e,t,n){return e=Tt(6,e,null,t),e.lanes=n,e}function Ih(e){var t=Tt(18,null,null,0);return t.stateNode=e,t}function Wc(e,t,n){return t=Tt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var om=new WeakMap;function Yt(e,t){if(typeof e=="object"&&e!==null){var n=om.get(e);return n!==void 0?n:(t={value:e,source:t,stack:Fg(t)},om.set(e,t),t)}return{value:e,source:t,stack:Fg(t)}}var Bl=[],Nl=0,Jo=null,ur=0,qt=[],Ft=0,ha=null,sn=1,dn="";function Dn(e,t){Bl[Nl++]=ur,Bl[Nl++]=Jo,Jo=e,ur=t}function Jh(e,t,n){qt[Ft++]=sn,qt[Ft++]=dn,qt[Ft++]=ha,ha=e;var a=sn;e=dn;var l=32-Mt(a)-1;a&=~(1<<l),n+=1;var i=32-Mt(t)+l;if(30<i){var r=l-l%5;i=(a&(1<<r)-1).toString(32),a>>=r,l-=r,sn=1<<32-Mt(t)+l|n<<l|a,dn=i+e}else sn=1<<i|n<<l|a,dn=e}function Dd(e){e.return!==null&&(Dn(e,1),Jh(e,1,0))}function xd(e){for(;e===Jo;)Jo=Bl[--Nl],Bl[Nl]=null,ur=Bl[--Nl],Bl[Nl]=null;for(;e===ha;)ha=qt[--Ft],qt[Ft]=null,dn=qt[--Ft],qt[Ft]=null,sn=qt[--Ft],qt[Ft]=null}function $h(e,t){qt[Ft++]=sn,qt[Ft++]=dn,qt[Ft++]=ha,sn=t.id,dn=t.overflow,ha=e}var Xe=null,ye=null,V=!1,oa=null,Vt=!1,ks=Error(S(519));function pa(e){var t=Error(S(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw cr(Yt(t,e)),ks}function um(e){var t=e.stateNode,n=e.type,a=e.memoizedProps;switch(t[Ve]=e,t[vt]=a,n){case"dialog":q("cancel",t),q("close",t);break;case"iframe":case"object":case"embed":q("load",t);break;case"video":case"audio":for(n=0;n<gr.length;n++)q(gr[n],t);break;case"source":q("error",t);break;case"img":case"image":case"link":q("error",t),q("load",t);break;case"details":q("toggle",t);break;case"input":q("invalid",t),Mh(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":q("invalid",t);break;case"textarea":q("invalid",t),Bh(t,a.value,a.defaultValue,a.children)}n=a.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||a.suppressHydrationWarning===!0||Ly(t.textContent,n)?(a.popover!=null&&(q("beforetoggle",t),q("toggle",t)),a.onScroll!=null&&q("scroll",t),a.onScrollEnd!=null&&q("scrollend",t),a.onClick!=null&&(t.onclick=_n),t=!0):t=!1,t||pa(e,!0)}function cm(e){for(Xe=e.return;Xe;)switch(Xe.tag){case 5:case 31:case 13:Vt=!1;return;case 27:case 3:Vt=!0;return;default:Xe=Xe.return}}function vl(e){if(e!==Xe)return!1;if(!V)return cm(e),V=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||id(e.type,e.memoizedProps)),n=!n),n&&ye&&pa(e),cm(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(317));ye=Im(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(317));ye=Im(e)}else t===27?(t=ye,Aa(e.type)?(e=cd,cd=null,ye=e):ye=t):ye=Xe?Qt(e.stateNode.nextSibling):null;return!0}function Fa(){ye=Xe=null,V=!1}function Ic(){var e=oa;return e!==null&&(pt===null?pt=e:pt.push.apply(pt,e),oa=null),e}function cr(e){oa===null?oa=[e]:oa.push(e)}var Ls=mn(null),Ia=null,Bn=null;function In(e,t,n){ge(Ls,t._currentValue),t._currentValue=n}function On(e){e._currentValue=Ls.current,Fe(Ls)}function Hs(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function zs(e,t,n,a){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var i=l.dependencies;if(i!==null){var r=l.child;i=i.firstContext;e:for(;i!==null;){var o=i;i=l;for(var u=0;u<t.length;u++)if(o.context===t[u]){i.lanes|=n,o=i.alternate,o!==null&&(o.lanes|=n),Hs(i.return,n,e),a||(r=null);break e}i=o.next}}else if(l.tag===18){if(r=l.return,r===null)throw Error(S(341));r.lanes|=n,i=r.alternate,i!==null&&(i.lanes|=n),Hs(r,n,e),r=null}else r=l.child;if(r!==null)r.return=l;else for(r=l;r!==null;){if(r===e){r=null;break}if(l=r.sibling,l!==null){l.return=r.return,r=l;break}r=r.return}l=r}}function ei(e,t,n,a){e=null;for(var l=t,i=!1;l!==null;){if(!i){if((l.flags&524288)!==0)i=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var r=l.alternate;if(r===null)throw Error(S(387));if(r=r.memoizedProps,r!==null){var o=l.type;Bt(l.pendingProps.value,r.value)||(e!==null?e.push(o):e=[o])}}else if(l===Vo.current){if(r=l.alternate,r===null)throw Error(S(387));r.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(hr):e=[hr])}l=l.return}e!==null&&zs(t,e,n,a),t.flags|=262144}function $o(e){for(e=e.firstContext;e!==null;){if(!Bt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ja(e){Ia=e,Bn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Qe(e){return ep(Ia,e)}function Ao(e,t){return Ia===null&&ja(e),ep(e,t)}function ep(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Bn===null){if(e===null)throw Error(S(308));Bn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Bn=Bn.next=t;return n}var OA=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,a){e.push(a)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},kA=Ge.unstable_scheduleCallback,LA=Ge.unstable_NormalPriority,ke={$$typeof:Mn,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Md(){return{controller:new OA,data:new Map,refCount:0}}function Rr(e){e.refCount--,e.refCount===0&&kA(LA,function(){e.controller.abort()})}var Ki=null,Us=0,Yl=0,zl=null;function HA(e,t){if(Ki===null){var n=Ki=[];Us=0,Yl=ef(),zl={status:"pending",value:void 0,then:function(a){n.push(a)}}}return Us++,t.then(sm,sm),t}function sm(){if(--Us===0&&Ki!==null){zl!==null&&(zl.status="fulfilled");var e=Ki;Ki=null,Yl=0,zl=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function zA(e,t){var n=[],a={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){a.status="fulfilled",a.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(a.status="rejected",a.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),a}var dm=L.S;L.S=function(e,t){my=Dt(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&HA(e,t),dm!==null&&dm(e,t)};var Ga=mn(null);function _d(){var e=Ga.current;return e!==null?e:ue.pooledCache}function Lo(e,t){t===null?ge(Ga,Ga.current):ge(Ga,t.pool)}function tp(){var e=_d();return e===null?null:{parent:ke._currentValue,pool:e}}var ti=Error(S(460)),Bd=Error(S(474)),Eu=Error(S(542)),eu={then:function(){}};function fm(e){return e=e.status,e==="fulfilled"||e==="rejected"}function np(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(_n,_n),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mm(e),e;default:if(typeof t.status=="string")t.then(_n,_n);else{if(e=ue,e!==null&&100<e.shellSuspendCounter)throw Error(S(482));e=t,e.status="pending",e.then(function(a){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=a}},function(a){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=a}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,mm(e),e}throw Pa=t,ti}}function La(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Pa=n,ti):n}}var Pa=null;function gm(){if(Pa===null)throw Error(S(459));var e=Pa;return Pa=null,e}function mm(e){if(e===ti||e===Eu)throw Error(S(483))}var Ul=null,sr=0;function wo(e){var t=sr;return sr+=1,Ul===null&&(Ul=[]),np(Ul,e,t)}function Li(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function So(e,t){throw t.$$typeof===Cb?Error(S(525)):(e=Object.prototype.toString.call(t),Error(S(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function ap(e){function t(h,g){if(e){var p=h.deletions;p===null?(h.deletions=[g],h.flags|=16):p.push(g)}}function n(h,g){if(!e)return null;for(;g!==null;)t(h,g),g=g.sibling;return null}function a(h){for(var g=new Map;h!==null;)h.key!==null?g.set(h.key,h):g.set(h.index,h),h=h.sibling;return g}function l(h,g){return h=Nn(h,g),h.index=0,h.sibling=null,h}function i(h,g,p){return h.index=p,e?(p=h.alternate,p!==null?(p=p.index,p<g?(h.flags|=67108866,g):p):(h.flags|=67108866,g)):(h.flags|=1048576,g)}function r(h){return e&&h.alternate===null&&(h.flags|=67108866),h}function o(h,g,p,y){return g===null||g.tag!==6?(g=Zc(p,h.mode,y),g.return=h,g):(g=l(g,p),g.return=h,g)}function u(h,g,p,y){var C=p.type;return C===Sl?s(h,g,p.props.children,y,p.key):g!==null&&(g.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zn&&La(C)===g.type)?(g=l(g,p.props),Li(g,p),g.return=h,g):(g=ko(p.type,p.key,p.props,null,h.mode,y),Li(g,p),g.return=h,g)}function c(h,g,p,y){return g===null||g.tag!==4||g.stateNode.containerInfo!==p.containerInfo||g.stateNode.implementation!==p.implementation?(g=Wc(p,h.mode,y),g.return=h,g):(g=l(g,p.children||[]),g.return=h,g)}function s(h,g,p,y,C){return g===null||g.tag!==7?(g=Ua(p,h.mode,y,C),g.return=h,g):(g=l(g,p),g.return=h,g)}function f(h,g,p){if(typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint")return g=Zc(""+g,h.mode,p),g.return=h,g;if(typeof g=="object"&&g!==null){switch(g.$$typeof){case fo:return p=ko(g.type,g.key,g.props,null,h.mode,p),Li(p,g),p.return=h,p;case Pi:return g=Wc(g,h.mode,p),g.return=h,g;case Zn:return g=La(g),f(h,g,p)}if(qi(g)||Oi(g))return g=Ua(g,h.mode,p,null),g.return=h,g;if(typeof g.then=="function")return f(h,wo(g),p);if(g.$$typeof===Mn)return f(h,Ao(h,g),p);So(h,g)}return null}function d(h,g,p,y){var C=g!==null?g.key:null;if(typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint")return C!==null?null:o(h,g,""+p,y);if(typeof p=="object"&&p!==null){switch(p.$$typeof){case fo:return p.key===C?u(h,g,p,y):null;case Pi:return p.key===C?c(h,g,p,y):null;case Zn:return p=La(p),d(h,g,p,y)}if(qi(p)||Oi(p))return C!==null?null:s(h,g,p,y,null);if(typeof p.then=="function")return d(h,g,wo(p),y);if(p.$$typeof===Mn)return d(h,g,Ao(h,p),y);So(h,p)}return null}function m(h,g,p,y,C){if(typeof y=="string"&&y!==""||typeof y=="number"||typeof y=="bigint")return h=h.get(p)||null,o(g,h,""+y,C);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case fo:return h=h.get(y.key===null?p:y.key)||null,u(g,h,y,C);case Pi:return h=h.get(y.key===null?p:y.key)||null,c(g,h,y,C);case Zn:return y=La(y),m(h,g,p,y,C)}if(qi(y)||Oi(y))return h=h.get(p)||null,s(g,h,y,C,null);if(typeof y.then=="function")return m(h,g,p,wo(y),C);if(y.$$typeof===Mn)return m(h,g,p,Ao(g,y),C);So(g,y)}return null}function v(h,g,p,y){for(var C=null,R=null,T=g,M=g=0,w=null;T!==null&&M<p.length;M++){T.index>M?(w=T,T=null):w=T.sibling;var D=d(h,T,p[M],y);if(D===null){T===null&&(T=w);break}e&&T&&D.alternate===null&&t(h,T),g=i(D,g,M),R===null?C=D:R.sibling=D,R=D,T=w}if(M===p.length)return n(h,T),V&&Dn(h,M),C;if(T===null){for(;M<p.length;M++)T=f(h,p[M],y),T!==null&&(g=i(T,g,M),R===null?C=T:R.sibling=T,R=T);return V&&Dn(h,M),C}for(T=a(T);M<p.length;M++)w=m(T,h,M,p[M],y),w!==null&&(e&&w.alternate!==null&&T.delete(w.key===null?M:w.key),g=i(w,g,M),R===null?C=w:R.sibling=w,R=w);return e&&T.forEach(function(k){return t(h,k)}),V&&Dn(h,M),C}function A(h,g,p,y){if(p==null)throw Error(S(151));for(var C=null,R=null,T=g,M=g=0,w=null,D=p.next();T!==null&&!D.done;M++,D=p.next()){T.index>M?(w=T,T=null):w=T.sibling;var k=d(h,T,D.value,y);if(k===null){T===null&&(T=w);break}e&&T&&k.alternate===null&&t(h,T),g=i(k,g,M),R===null?C=k:R.sibling=k,R=k,T=w}if(D.done)return n(h,T),V&&Dn(h,M),C;if(T===null){for(;!D.done;M++,D=p.next())D=f(h,D.value,y),D!==null&&(g=i(D,g,M),R===null?C=D:R.sibling=D,R=D);return V&&Dn(h,M),C}for(T=a(T);!D.done;M++,D=p.next())D=m(T,h,M,D.value,y),D!==null&&(e&&D.alternate!==null&&T.delete(D.key===null?M:D.key),g=i(D,g,M),R===null?C=D:R.sibling=D,R=D);return e&&T.forEach(function(se){return t(h,se)}),V&&Dn(h,M),C}function b(h,g,p,y){if(typeof p=="object"&&p!==null&&p.type===Sl&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case fo:e:{for(var C=p.key;g!==null;){if(g.key===C){if(C=p.type,C===Sl){if(g.tag===7){n(h,g.sibling),y=l(g,p.props.children),y.return=h,h=y;break e}}else if(g.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zn&&La(C)===g.type){n(h,g.sibling),y=l(g,p.props),Li(y,p),y.return=h,h=y;break e}n(h,g);break}else t(h,g);g=g.sibling}p.type===Sl?(y=Ua(p.props.children,h.mode,y,p.key),y.return=h,h=y):(y=ko(p.type,p.key,p.props,null,h.mode,y),Li(y,p),y.return=h,h=y)}return r(h);case Pi:e:{for(C=p.key;g!==null;){if(g.key===C)if(g.tag===4&&g.stateNode.containerInfo===p.containerInfo&&g.stateNode.implementation===p.implementation){n(h,g.sibling),y=l(g,p.children||[]),y.return=h,h=y;break e}else{n(h,g);break}else t(h,g);g=g.sibling}y=Wc(p,h.mode,y),y.return=h,h=y}return r(h);case Zn:return p=La(p),b(h,g,p,y)}if(qi(p))return v(h,g,p,y);if(Oi(p)){if(C=Oi(p),typeof C!="function")throw Error(S(150));return p=C.call(p),A(h,g,p,y)}if(typeof p.then=="function")return b(h,g,wo(p),y);if(p.$$typeof===Mn)return b(h,g,Ao(h,p),y);So(h,p)}return typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint"?(p=""+p,g!==null&&g.tag===6?(n(h,g.sibling),y=l(g,p),y.return=h,h=y):(n(h,g),y=Zc(p,h.mode,y),y.return=h,h=y),r(h)):n(h,g)}return function(h,g,p,y){try{sr=0;var C=b(h,g,p,y);return Ul=null,C}catch(T){if(T===ti||T===Eu)throw T;var R=Tt(29,T,null,h.mode);return R.lanes=y,R.return=h,R}finally{}}}var Ya=ap(!0),lp=ap(!1),Wn=!1;function Nd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Gs(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ua(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ca(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(J&2)!==0){var l=a.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),a.pending=t,t=Io(e),Zh(e,null,n),t}return Tu(e,a,t,n),Io(e)}function Zi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Sh(e,n)}}function Jc(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var l=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var r={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};i===null?l=i=r:i=i.next=r,n=n.next}while(n!==null);i===null?l=i=t:i=i.next=t}else l=i=t;n={baseState:a.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:a.shared,callbacks:a.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ps=!1;function Wi(){if(Ps){var e=zl;if(e!==null)throw e}}function Ii(e,t,n,a){Ps=!1;var l=e.updateQueue;Wn=!1;var i=l.firstBaseUpdate,r=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var u=o,c=u.next;u.next=null,r===null?i=c:r.next=c,r=u;var s=e.alternate;s!==null&&(s=s.updateQueue,o=s.lastBaseUpdate,o!==r&&(o===null?s.firstBaseUpdate=c:o.next=c,s.lastBaseUpdate=u))}if(i!==null){var f=l.baseState;r=0,s=c=u=null,o=i;do{var d=o.lane&-536870913,m=d!==o.lane;if(m?(Y&d)===d:(a&d)===d){d!==0&&d===Yl&&(Ps=!0),s!==null&&(s=s.next={lane:0,tag:o.tag,payload:o.payload,callback:null,next:null});e:{var v=e,A=o;d=t;var b=n;switch(A.tag){case 1:if(v=A.payload,typeof v=="function"){f=v.call(b,f,d);break e}f=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=A.payload,d=typeof v=="function"?v.call(b,f,d):v,d==null)break e;f=ve({},f,d);break e;case 2:Wn=!0}}d=o.callback,d!==null&&(e.flags|=64,m&&(e.flags|=8192),m=l.callbacks,m===null?l.callbacks=[d]:m.push(d))}else m={lane:d,tag:o.tag,payload:o.payload,callback:o.callback,next:null},s===null?(c=s=m,u=f):s=s.next=m,r|=d;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;m=o,o=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);s===null&&(u=f),l.baseState=u,l.firstBaseUpdate=c,l.lastBaseUpdate=s,i===null&&(l.shared.lanes=0),va|=r,e.lanes=r,e.memoizedState=f}}function ip(e,t){if(typeof e!="function")throw Error(S(191,e));e.call(t)}function rp(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)ip(n[e],t)}var Vl=mn(null),tu=mn(0);function hm(e,t){e=Gn,ge(tu,e),ge(Vl,t),Gn=e|t.baseLanes}function qs(){ge(tu,Gn),ge(Vl,Vl.current)}function Od(){Gn=tu.current,Fe(Vl),Fe(tu)}var Nt=mn(null),Xt=null;function Jn(e){var t=e.alternate;ge(xe,xe.current&1),ge(Nt,e),Xt===null&&(t===null||Vl.current!==null||t.memoizedState!==null)&&(Xt=e)}function Fs(e){ge(xe,xe.current),ge(Nt,e),Xt===null&&(Xt=e)}function op(e){e.tag===22?(ge(xe,xe.current),ge(Nt,e),Xt===null&&(Xt=e)):$n(e)}function $n(){ge(xe,xe.current),ge(Nt,Nt.current)}function Rt(e){Fe(Nt),Xt===e&&(Xt=null),Fe(xe)}var xe=mn(0);function nu(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||od(n)||ud(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Hn=0,G=null,re=null,Ne=null,au=!1,Gl=!1,Va=!1,lu=0,dr=0,Pl=null,UA=0;function Re(){throw Error(S(321))}function kd(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Bt(e[n],t[n]))return!1;return!0}function Ld(e,t,n,a,l,i){return Hn=i,G=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,L.H=e===null||e.memoizedState===null?Up:Xd,Va=!1,i=n(a,l),Va=!1,Gl&&(i=cp(t,n,a,l)),up(e),i}function up(e){L.H=fr;var t=re!==null&&re.next!==null;if(Hn=0,Ne=re=G=null,au=!1,dr=0,Pl=null,t)throw Error(S(300));e===null||Le||(e=e.dependencies,e!==null&&$o(e)&&(Le=!0))}function cp(e,t,n,a){G=e;var l=0;do{if(Gl&&(Pl=null),dr=0,Gl=!1,25<=l)throw Error(S(301));if(l+=1,Ne=re=null,e.updateQueue!=null){var i=e.updateQueue;i.lastEffect=null,i.events=null,i.stores=null,i.memoCache!=null&&(i.memoCache.index=0)}L.H=Gp,i=t(n,a)}while(Gl);return i}function GA(){var e=L.H,t=e.useState()[0];return t=typeof t.then=="function"?Tr(t):t,e=e.useState()[0],(re!==null?re.memoizedState:null)!==e&&(G.flags|=1024),t}function Hd(){var e=lu!==0;return lu=0,e}function zd(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Ud(e){if(au){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}au=!1}Hn=0,Ne=re=G=null,Gl=!1,dr=lu=0,Pl=null}function ut(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ne===null?G.memoizedState=Ne=e:Ne=Ne.next=e,Ne}function Me(){if(re===null){var e=G.alternate;e=e!==null?e.memoizedState:null}else e=re.next;var t=Ne===null?G.memoizedState:Ne.next;if(t!==null)Ne=t,re=e;else{if(e===null)throw G.alternate===null?Error(S(467)):Error(S(310));re=e,e={memoizedState:re.memoizedState,baseState:re.baseState,baseQueue:re.baseQueue,queue:re.queue,next:null},Ne===null?G.memoizedState=Ne=e:Ne=Ne.next=e}return Ne}function Du(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Tr(e){var t=dr;return dr+=1,Pl===null&&(Pl=[]),e=np(Pl,e,t),t=G,(Ne===null?t.memoizedState:Ne.next)===null&&(t=t.alternate,L.H=t===null||t.memoizedState===null?Up:Xd),e}function xu(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Tr(e);if(e.$$typeof===Mn)return Qe(e)}throw Error(S(438,String(e)))}function Gd(e){var t=null,n=G.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var a=G.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=Du(),G.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),a=0;a<e;a++)n[a]=Rb;return t.index++,n}function zn(e,t){return typeof t=="function"?t(e):t}function Ho(e){var t=Me();return Pd(t,re,e)}function Pd(e,t,n){var a=e.queue;if(a===null)throw Error(S(311));a.lastRenderedReducer=n;var l=e.baseQueue,i=a.pending;if(i!==null){if(l!==null){var r=l.next;l.next=i.next,i.next=r}t.baseQueue=l=i,a.pending=null}if(i=e.baseState,l===null)e.memoizedState=i;else{t=l.next;var o=r=null,u=null,c=t,s=!1;do{var f=c.lane&-536870913;if(f!==c.lane?(Y&f)===f:(Hn&f)===f){var d=c.revertLane;if(d===0)u!==null&&(u=u.next={lane:0,revertLane:0,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),f===Yl&&(s=!0);else if((Hn&d)===d){c=c.next,d===Yl&&(s=!0);continue}else f={lane:0,revertLane:c.revertLane,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},u===null?(o=u=f,r=i):u=u.next=f,G.lanes|=d,va|=d;f=c.action,Va&&n(i,f),i=c.hasEagerState?c.eagerState:n(i,f)}else d={lane:f,revertLane:c.revertLane,gesture:c.gesture,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},u===null?(o=u=d,r=i):u=u.next=d,G.lanes|=f,va|=f;c=c.next}while(c!==null&&c!==t);if(u===null?r=i:u.next=o,!Bt(i,e.memoizedState)&&(Le=!0,s&&(n=zl,n!==null)))throw n;e.memoizedState=i,e.baseState=r,e.baseQueue=u,a.lastRenderedState=i}return l===null&&(a.lanes=0),[e.memoizedState,a.dispatch]}function $c(e){var t=Me(),n=t.queue;if(n===null)throw Error(S(311));n.lastRenderedReducer=e;var a=n.dispatch,l=n.pending,i=t.memoizedState;if(l!==null){n.pending=null;var r=l=l.next;do i=e(i,r.action),r=r.next;while(r!==l);Bt(i,t.memoizedState)||(Le=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,a]}function sp(e,t,n){var a=G,l=Me(),i=V;if(i){if(n===void 0)throw Error(S(407));n=n()}else n=t();var r=!Bt((re||l).memoizedState,n);if(r&&(l.memoizedState=n,Le=!0),l=l.queue,qd(gp.bind(null,a,l,e),[e]),l.getSnapshot!==t||r||Ne!==null&&Ne.memoizedState.tag&1){if(a.flags|=2048,Xl(9,{destroy:void 0},fp.bind(null,a,l,n,t),null),ue===null)throw Error(S(349));i||(Hn&127)!==0||dp(a,t,n)}return n}function dp(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=G.updateQueue,t===null?(t=Du(),G.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function fp(e,t,n,a){t.value=n,t.getSnapshot=a,mp(t)&&hp(e)}function gp(e,t,n){return n(function(){mp(t)&&hp(e)})}function mp(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Bt(e,n)}catch{return!0}}function hp(e){var t=Wa(e,2);t!==null&&yt(t,e,2)}function js(e){var t=ut();if(typeof e=="function"){var n=e;if(e=n(),Va){ta(!0);try{n()}finally{ta(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:e},t}function pp(e,t,n,a){return e.baseState=n,Pd(e,re,typeof a=="function"?a:zn)}function PA(e,t,n,a,l){if(_u(e))throw Error(S(485));if(e=t.action,e!==null){var i={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(r){i.listeners.push(r)}};L.T!==null?n(!0):i.isTransition=!1,a(i),n=t.pending,n===null?(i.next=t.pending=i,yp(t,i)):(i.next=n.next,t.pending=n.next=i)}}function yp(e,t){var n=t.action,a=t.payload,l=e.state;if(t.isTransition){var i=L.T,r={};L.T=r;try{var o=n(l,a),u=L.S;u!==null&&u(r,o),pm(e,t,o)}catch(c){Ys(e,t,c)}finally{i!==null&&r.types!==null&&(i.types=r.types),L.T=i}}else try{i=n(l,a),pm(e,t,i)}catch(c){Ys(e,t,c)}}function pm(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){ym(e,t,a)},function(a){return Ys(e,t,a)}):ym(e,t,n)}function ym(e,t,n){t.status="fulfilled",t.value=n,vp(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,yp(e,n)))}function Ys(e,t,n){var a=e.pending;if(e.pending=null,a!==null){a=a.next;do t.status="rejected",t.reason=n,vp(t),t=t.next;while(t!==a)}e.action=null}function vp(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function bp(e,t){return t}function vm(e,t){if(V){var n=ue.formState;if(n!==null){e:{var a=G;if(V){if(ye){t:{for(var l=ye,i=Vt;l.nodeType!==8;){if(!i){l=null;break t}if(l=Qt(l.nextSibling),l===null){l=null;break t}}i=l.data,l=i==="F!"||i==="F"?l:null}if(l){ye=Qt(l.nextSibling),a=l.data==="F!";break e}}pa(a)}a=!1}a&&(t=n[0])}}return n=ut(),n.memoizedState=n.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:bp,lastRenderedState:t},n.queue=a,n=Lp.bind(null,G,a),a.dispatch=n,a=js(!1),i=Vd.bind(null,G,!1,a.queue),a=ut(),l={state:t,dispatch:null,action:e,pending:null},a.queue=l,n=PA.bind(null,G,l,i,n),l.dispatch=n,a.memoizedState=e,[t,n,!1]}function bm(e){var t=Me();return Ap(t,re,e)}function Ap(e,t,n){if(t=Pd(e,t,bp)[0],e=Ho(zn)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var a=Tr(t)}catch(r){throw r===ti?Eu:r}else a=t;t=Me();var l=t.queue,i=l.dispatch;return n!==t.memoizedState&&(G.flags|=2048,Xl(9,{destroy:void 0},qA.bind(null,l,n),null)),[a,i,e]}function qA(e,t){e.action=t}function Am(e){var t=Me(),n=re;if(n!==null)return Ap(t,n,e);Me(),t=t.memoizedState,n=Me();var a=n.queue.dispatch;return n.memoizedState=e,[t,a,!1]}function Xl(e,t,n,a){return e={tag:e,create:n,deps:a,inst:t,next:null},t=G.updateQueue,t===null&&(t=Du(),G.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function wp(){return Me().memoizedState}function zo(e,t,n,a){var l=ut();G.flags|=e,l.memoizedState=Xl(1|t,{destroy:void 0},n,a===void 0?null:a)}function Mu(e,t,n,a){var l=Me();a=a===void 0?null:a;var i=l.memoizedState.inst;re!==null&&a!==null&&kd(a,re.memoizedState.deps)?l.memoizedState=Xl(t,i,n,a):(G.flags|=e,l.memoizedState=Xl(1|t,i,n,a))}function wm(e,t){zo(8390656,8,e,t)}function qd(e,t){Mu(2048,8,e,t)}function FA(e){G.flags|=4;var t=G.updateQueue;if(t===null)t=Du(),G.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Sp(e){var t=Me().memoizedState;return FA({ref:t,nextImpl:e}),function(){if((J&2)!==0)throw Error(S(440));return t.impl.apply(void 0,arguments)}}function Cp(e,t){return Mu(4,2,e,t)}function Rp(e,t){return Mu(4,4,e,t)}function Tp(e,t){if(typeof t=="function"){e=e();var n=t(e);return function(){typeof n=="function"?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Ep(e,t,n){n=n!=null?n.concat([e]):null,Mu(4,4,Tp.bind(null,t,e),n)}function Fd(){}function Dp(e,t){var n=Me();t=t===void 0?null:t;var a=n.memoizedState;return t!==null&&kd(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function xp(e,t){var n=Me();t=t===void 0?null:t;var a=n.memoizedState;if(t!==null&&kd(t,a[1]))return a[0];if(a=e(),Va){ta(!0);try{e()}finally{ta(!1)}}return n.memoizedState=[a,t],a}function jd(e,t,n){return n===void 0||(Hn&1073741824)!==0&&(Y&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=py(),G.lanes|=e,va|=e,n)}function Mp(e,t,n,a){return Bt(n,t)?n:Vl.current!==null?(e=jd(e,n,a),Bt(e,t)||(Le=!0),e):(Hn&42)===0||(Hn&1073741824)!==0&&(Y&261930)===0?(Le=!0,e.memoizedState=n):(e=py(),G.lanes|=e,va|=e,t)}function _p(e,t,n,a,l){var i=$.p;$.p=i!==0&&8>i?i:8;var r=L.T,o={};L.T=o,Vd(e,!1,t,n);try{var u=l(),c=L.S;if(c!==null&&c(o,u),u!==null&&typeof u=="object"&&typeof u.then=="function"){var s=zA(u,a);Ji(e,t,s,_t(e))}else Ji(e,t,a,_t(e))}catch(f){Ji(e,t,{then:function(){},status:"rejected",reason:f},_t())}finally{$.p=i,r!==null&&o.types!==null&&(r.types=o.types),L.T=r}}function jA(){}function Vs(e,t,n,a){if(e.tag!==5)throw Error(S(476));var l=Bp(e).queue;_p(e,l,t,za,n===null?jA:function(){return Np(e),n(a)})}function Bp(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:za,baseState:za,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:za},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Np(e){var t=Bp(e);t.next===null&&(t=e.alternate.memoizedState),Ji(e,t.next.queue,{},_t())}function Yd(){return Qe(hr)}function Op(){return Me().memoizedState}function kp(){return Me().memoizedState}function YA(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=_t();e=ua(n);var a=ca(t,e,n);a!==null&&(yt(a,t,n),Zi(a,t,n)),t={cache:Md()},e.payload=t;return}t=t.return}}function VA(e,t,n){var a=_t();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},_u(e)?Hp(t,n):(n=Td(e,t,n,a),n!==null&&(yt(n,e,a),zp(n,t,a)))}function Lp(e,t,n){var a=_t();Ji(e,t,n,a)}function Ji(e,t,n,a){var l={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(_u(e))Hp(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var r=t.lastRenderedState,o=i(r,n);if(l.hasEagerState=!0,l.eagerState=o,Bt(o,r))return Tu(e,t,l,0),ue===null&&Ru(),!1}catch{}finally{}if(n=Td(e,t,l,a),n!==null)return yt(n,e,a),zp(n,t,a),!0}return!1}function Vd(e,t,n,a){if(a={lane:2,revertLane:ef(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},_u(e)){if(t)throw Error(S(479))}else t=Td(e,n,a,2),t!==null&&yt(t,e,2)}function _u(e){var t=e.alternate;return e===G||t!==null&&t===G}function Hp(e,t){Gl=au=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function zp(e,t,n){if((n&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Sh(e,n)}}var fr={readContext:Qe,use:xu,useCallback:Re,useContext:Re,useEffect:Re,useImperativeHandle:Re,useLayoutEffect:Re,useInsertionEffect:Re,useMemo:Re,useReducer:Re,useRef:Re,useState:Re,useDebugValue:Re,useDeferredValue:Re,useTransition:Re,useSyncExternalStore:Re,useId:Re,useHostTransitionStatus:Re,useFormState:Re,useActionState:Re,useOptimistic:Re,useMemoCache:Re,useCacheRefresh:Re};fr.useEffectEvent=Re;var Up={readContext:Qe,use:xu,useCallback:function(e,t){return ut().memoizedState=[e,t===void 0?null:t],e},useContext:Qe,useEffect:wm,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,zo(4194308,4,Tp.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zo(4194308,4,e,t)},useInsertionEffect:function(e,t){zo(4,2,e,t)},useMemo:function(e,t){var n=ut();t=t===void 0?null:t;var a=e();if(Va){ta(!0);try{e()}finally{ta(!1)}}return n.memoizedState=[a,t],a},useReducer:function(e,t,n){var a=ut();if(n!==void 0){var l=n(t);if(Va){ta(!0);try{n(t)}finally{ta(!1)}}}else l=t;return a.memoizedState=a.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},a.queue=e,e=e.dispatch=VA.bind(null,G,e),[a.memoizedState,e]},useRef:function(e){var t=ut();return e={current:e},t.memoizedState=e},useState:function(e){e=js(e);var t=e.queue,n=Lp.bind(null,G,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Fd,useDeferredValue:function(e,t){var n=ut();return jd(n,e,t)},useTransition:function(){var e=js(!1);return e=_p.bind(null,G,e.queue,!0,!1),ut().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var a=G,l=ut();if(V){if(n===void 0)throw Error(S(407));n=n()}else{if(n=t(),ue===null)throw Error(S(349));(Y&127)!==0||dp(a,t,n)}l.memoizedState=n;var i={value:n,getSnapshot:t};return l.queue=i,wm(gp.bind(null,a,i,e),[e]),a.flags|=2048,Xl(9,{destroy:void 0},fp.bind(null,a,i,n,t),null),n},useId:function(){var e=ut(),t=ue.identifierPrefix;if(V){var n=dn,a=sn;n=(a&~(1<<32-Mt(a)-1)).toString(32)+n,t="_"+t+"R_"+n,n=lu++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=UA++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Yd,useFormState:vm,useActionState:vm,useOptimistic:function(e){var t=ut();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Vd.bind(null,G,!0,n),n.dispatch=t,[e,t]},useMemoCache:Gd,useCacheRefresh:function(){return ut().memoizedState=YA.bind(null,G)},useEffectEvent:function(e){var t=ut(),n={impl:e};return t.memoizedState=n,function(){if((J&2)!==0)throw Error(S(440));return n.impl.apply(void 0,arguments)}}},Xd={readContext:Qe,use:xu,useCallback:Dp,useContext:Qe,useEffect:qd,useImperativeHandle:Ep,useInsertionEffect:Cp,useLayoutEffect:Rp,useMemo:xp,useReducer:Ho,useRef:wp,useState:function(){return Ho(zn)},useDebugValue:Fd,useDeferredValue:function(e,t){var n=Me();return Mp(n,re.memoizedState,e,t)},useTransition:function(){var e=Ho(zn)[0],t=Me().memoizedState;return[typeof e=="boolean"?e:Tr(e),t]},useSyncExternalStore:sp,useId:Op,useHostTransitionStatus:Yd,useFormState:bm,useActionState:bm,useOptimistic:function(e,t){var n=Me();return pp(n,re,e,t)},useMemoCache:Gd,useCacheRefresh:kp};Xd.useEffectEvent=Sp;var Gp={readContext:Qe,use:xu,useCallback:Dp,useContext:Qe,useEffect:qd,useImperativeHandle:Ep,useInsertionEffect:Cp,useLayoutEffect:Rp,useMemo:xp,useReducer:$c,useRef:wp,useState:function(){return $c(zn)},useDebugValue:Fd,useDeferredValue:function(e,t){var n=Me();return re===null?jd(n,e,t):Mp(n,re.memoizedState,e,t)},useTransition:function(){var e=$c(zn)[0],t=Me().memoizedState;return[typeof e=="boolean"?e:Tr(e),t]},useSyncExternalStore:sp,useId:Op,useHostTransitionStatus:Yd,useFormState:Am,useActionState:Am,useOptimistic:function(e,t){var n=Me();return re!==null?pp(n,re,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Gd,useCacheRefresh:kp};Gp.useEffectEvent=Sp;function es(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:ve({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Xs={enqueueSetState:function(e,t,n){e=e._reactInternals;var a=_t(),l=ua(a);l.payload=t,n!=null&&(l.callback=n),t=ca(e,l,a),t!==null&&(yt(t,e,a),Zi(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=_t(),l=ua(a);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=ca(e,l,a),t!==null&&(yt(t,e,a),Zi(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=_t(),a=ua(n);a.tag=2,t!=null&&(a.callback=t),t=ca(e,a,n),t!==null&&(yt(t,e,n),Zi(t,e,n))}};function Sm(e,t,n,a,l,i,r){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,i,r):t.prototype&&t.prototype.isPureReactComponent?!or(n,a)||!or(l,i):!0}function Cm(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&Xs.enqueueReplaceState(t,t.state,null)}function Xa(e,t){var n=t;if("ref"in t){n={};for(var a in t)a!=="ref"&&(n[a]=t[a])}if(e=e.defaultProps){n===t&&(n=ve({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function Pp(e){Wo(e)}function qp(e){console.error(e)}function Fp(e){Wo(e)}function iu(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Rm(e,t,n){try{var a=e.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(l){setTimeout(function(){throw l})}}function Qs(e,t,n){return n=ua(n),n.tag=3,n.payload={element:null},n.callback=function(){iu(e,t)},n}function jp(e){return e=ua(e),e.tag=3,e}function Yp(e,t,n,a){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var i=a.value;e.payload=function(){return l(i)},e.callback=function(){Rm(t,n,a)}}var r=n.stateNode;r!==null&&typeof r.componentDidCatch=="function"&&(e.callback=function(){Rm(t,n,a),typeof l!="function"&&(sa===null?sa=new Set([this]):sa.add(this));var o=a.stack;this.componentDidCatch(a.value,{componentStack:o!==null?o:""})})}function XA(e,t,n,a,l){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=n.alternate,t!==null&&ei(t,n,l,!0),n=Nt.current,n!==null){switch(n.tag){case 31:case 13:return Xt===null?su():n.alternate===null&&Te===0&&(Te=3),n.flags&=-257,n.flags|=65536,n.lanes=l,a===eu?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([a]):t.add(a),ds(e,a,l)),!1;case 22:return n.flags|=65536,a===eu?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([a]):n.add(a)),ds(e,a,l)),!1}throw Error(S(435,n.tag))}return ds(e,a,l),su(),!1}if(V)return t=Nt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,a!==ks&&(e=Error(S(422),{cause:a}),cr(Yt(e,n)))):(a!==ks&&(t=Error(S(423),{cause:a}),cr(Yt(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,a=Yt(a,n),l=Qs(e.stateNode,a,l),Jc(e,l),Te!==4&&(Te=2)),!1;var i=Error(S(520),{cause:a});if(i=Yt(i,n),tr===null?tr=[i]:tr.push(i),Te!==4&&(Te=2),t===null)return!0;a=Yt(a,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Qs(n.stateNode,a,e),Jc(n,e),!1;case 1:if(t=n.type,i=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||i!==null&&typeof i.componentDidCatch=="function"&&(sa===null||!sa.has(i))))return n.flags|=65536,l&=-l,n.lanes|=l,l=jp(l),Yp(l,e,n,a),Jc(n,l),!1}n=n.return}while(n!==null);return!1}var Qd=Error(S(461)),Le=!1;function Ye(e,t,n,a){t.child=e===null?lp(t,null,n,a):Ya(t,e.child,n,a)}function Tm(e,t,n,a,l){n=n.render;var i=t.ref;if("ref"in a){var r={};for(var o in a)o!=="ref"&&(r[o]=a[o])}else r=a;return ja(t),a=Ld(e,t,n,r,i,l),o=Hd(),e!==null&&!Le?(zd(e,t,l),Un(e,t,l)):(V&&o&&Dd(t),t.flags|=1,Ye(e,t,a,l),t.child)}function Em(e,t,n,a,l){if(e===null){var i=n.type;return typeof i=="function"&&!Ed(i)&&i.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=i,Vp(e,t,i,a,l)):(e=ko(n.type,null,a,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!Kd(e,l)){var r=i.memoizedProps;if(n=n.compare,n=n!==null?n:or,n(r,a)&&e.ref===t.ref)return Un(e,t,l)}return t.flags|=1,e=Nn(i,a),e.ref=t.ref,e.return=t,t.child=e}function Vp(e,t,n,a,l){if(e!==null){var i=e.memoizedProps;if(or(i,a)&&e.ref===t.ref)if(Le=!1,t.pendingProps=a=i,Kd(e,l))(e.flags&131072)!==0&&(Le=!0);else return t.lanes=e.lanes,Un(e,t,l)}return Ks(e,t,n,a,l)}function Xp(e,t,n,a){var l=a.children,i=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((t.flags&128)!==0){if(i=i!==null?i.baseLanes|n:n,e!==null){for(a=t.child=e.child,l=0;a!==null;)l=l|a.lanes|a.childLanes,a=a.sibling;a=l&~i}else a=0,t.child=null;return Dm(e,t,i,n,a)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Lo(t,i!==null?i.cachePool:null),i!==null?hm(t,i):qs(),op(t);else return a=t.lanes=536870912,Dm(e,t,i!==null?i.baseLanes|n:n,n,a)}else i!==null?(Lo(t,i.cachePool),hm(t,i),$n(t),t.memoizedState=null):(e!==null&&Lo(t,null),qs(),$n(t));return Ye(e,t,l,n),t.child}function ji(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Dm(e,t,n,a,l){var i=_d();return i=i===null?null:{parent:ke._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},e!==null&&Lo(t,null),qs(),op(t),e!==null&&ei(e,t,a,!0),t.childLanes=l,null}function Uo(e,t){return t=ru({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function xm(e,t,n){return Ya(t,e.child,null,n),e=Uo(t,t.pendingProps),e.flags|=2,Rt(t),t.memoizedState=null,e}function QA(e,t,n){var a=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(V){if(a.mode==="hidden")return e=Uo(t,a),t.lanes=536870912,ji(null,e);if(Fs(t),(e=ye)?(e=Uy(e,Vt),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ha!==null?{id:sn,overflow:dn}:null,retryLane:536870912,hydrationErrors:null},n=Ih(e),n.return=t,t.child=n,Xe=t,ye=null)):e=null,e===null)throw pa(t);return t.lanes=536870912,null}return Uo(t,a)}var i=e.memoizedState;if(i!==null){var r=i.dehydrated;if(Fs(t),l)if(t.flags&256)t.flags&=-257,t=xm(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(S(558));else if(Le||ei(e,t,n,!1),l=(n&e.childLanes)!==0,Le||l){if(a=ue,a!==null&&(r=Ch(a,n),r!==0&&r!==i.retryLane))throw i.retryLane=r,Wa(e,r),yt(a,e,r),Qd;su(),t=xm(e,t,n)}else e=i.treeContext,ye=Qt(r.nextSibling),Xe=t,V=!0,oa=null,Vt=!1,e!==null&&$h(t,e),t=Uo(t,a),t.flags|=4096;return t}return e=Nn(e.child,{mode:a.mode,children:a.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Go(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(S(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Ks(e,t,n,a,l){return ja(t),n=Ld(e,t,n,a,void 0,l),a=Hd(),e!==null&&!Le?(zd(e,t,l),Un(e,t,l)):(V&&a&&Dd(t),t.flags|=1,Ye(e,t,n,l),t.child)}function Mm(e,t,n,a,l,i){return ja(t),t.updateQueue=null,n=cp(t,a,n,l),up(e),a=Hd(),e!==null&&!Le?(zd(e,t,i),Un(e,t,i)):(V&&a&&Dd(t),t.flags|=1,Ye(e,t,n,i),t.child)}function _m(e,t,n,a,l){if(ja(t),t.stateNode===null){var i=_l,r=n.contextType;typeof r=="object"&&r!==null&&(i=Qe(r)),i=new n(a,i),t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=Xs,t.stateNode=i,i._reactInternals=t,i=t.stateNode,i.props=a,i.state=t.memoizedState,i.refs={},Nd(t),r=n.contextType,i.context=typeof r=="object"&&r!==null?Qe(r):_l,i.state=t.memoizedState,r=n.getDerivedStateFromProps,typeof r=="function"&&(es(t,n,r,a),i.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(r=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),r!==i.state&&Xs.enqueueReplaceState(i,i.state,null),Ii(t,a,i,l),Wi(),i.state=t.memoizedState),typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(e===null){i=t.stateNode;var o=t.memoizedProps,u=Xa(n,o);i.props=u;var c=i.context,s=n.contextType;r=_l,typeof s=="object"&&s!==null&&(r=Qe(s));var f=n.getDerivedStateFromProps;s=typeof f=="function"||typeof i.getSnapshotBeforeUpdate=="function",o=t.pendingProps!==o,s||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(o||c!==r)&&Cm(t,i,a,r),Wn=!1;var d=t.memoizedState;i.state=d,Ii(t,a,i,l),Wi(),c=t.memoizedState,o||d!==c||Wn?(typeof f=="function"&&(es(t,n,f,a),c=t.memoizedState),(u=Wn||Sm(t,n,u,a,d,c,r))?(s||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=c),i.props=a,i.state=c,i.context=r,a=u):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,Gs(e,t),r=t.memoizedProps,s=Xa(n,r),i.props=s,f=t.pendingProps,d=i.context,c=n.contextType,u=_l,typeof c=="object"&&c!==null&&(u=Qe(c)),o=n.getDerivedStateFromProps,(c=typeof o=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(r!==f||d!==u)&&Cm(t,i,a,u),Wn=!1,d=t.memoizedState,i.state=d,Ii(t,a,i,l),Wi();var m=t.memoizedState;r!==f||d!==m||Wn||e!==null&&e.dependencies!==null&&$o(e.dependencies)?(typeof o=="function"&&(es(t,n,o,a),m=t.memoizedState),(s=Wn||Sm(t,n,s,a,d,m,u)||e!==null&&e.dependencies!==null&&$o(e.dependencies))?(c||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,m,u),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,m,u)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=m),i.props=a,i.state=m,i.context=u,a=s):(typeof i.componentDidUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||r===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),a=!1)}return i=a,Go(e,t),a=(t.flags&128)!==0,i||a?(i=t.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:i.render(),t.flags|=1,e!==null&&a?(t.child=Ya(t,e.child,null,l),t.child=Ya(t,null,n,l)):Ye(e,t,n,l),t.memoizedState=i.state,e=t.child):e=Un(e,t,l),e}function Bm(e,t,n,a){return Fa(),t.flags|=256,Ye(e,t,n,a),t.child}var ts={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ns(e){return{baseLanes:e,cachePool:tp()}}function as(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=Et),e}function Qp(e,t,n){var a=t.pendingProps,l=!1,i=(t.flags&128)!==0,r;if((r=i)||(r=e!==null&&e.memoizedState===null?!1:(xe.current&2)!==0),r&&(l=!0,t.flags&=-129),r=(t.flags&32)!==0,t.flags&=-33,e===null){if(V){if(l?Jn(t):$n(t),(e=ye)?(e=Uy(e,Vt),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ha!==null?{id:sn,overflow:dn}:null,retryLane:536870912,hydrationErrors:null},n=Ih(e),n.return=t,t.child=n,Xe=t,ye=null)):e=null,e===null)throw pa(t);return ud(e)?t.lanes=32:t.lanes=536870912,null}var o=a.children;return a=a.fallback,l?($n(t),l=t.mode,o=ru({mode:"hidden",children:o},l),a=Ua(a,l,n,null),o.return=t,a.return=t,o.sibling=a,t.child=o,a=t.child,a.memoizedState=ns(n),a.childLanes=as(e,r,n),t.memoizedState=ts,ji(null,a)):(Jn(t),Zs(t,o))}var u=e.memoizedState;if(u!==null&&(o=u.dehydrated,o!==null)){if(i)t.flags&256?(Jn(t),t.flags&=-257,t=ls(e,t,n)):t.memoizedState!==null?($n(t),t.child=e.child,t.flags|=128,t=null):($n(t),o=a.fallback,l=t.mode,a=ru({mode:"visible",children:a.children},l),o=Ua(o,l,n,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,Ya(t,e.child,null,n),a=t.child,a.memoizedState=ns(n),a.childLanes=as(e,r,n),t.memoizedState=ts,t=ji(null,a));else if(Jn(t),ud(o)){if(r=o.nextSibling&&o.nextSibling.dataset,r)var c=r.dgst;r=c,a=Error(S(419)),a.stack="",a.digest=r,cr({value:a,source:null,stack:null}),t=ls(e,t,n)}else if(Le||ei(e,t,n,!1),r=(n&e.childLanes)!==0,Le||r){if(r=ue,r!==null&&(a=Ch(r,n),a!==0&&a!==u.retryLane))throw u.retryLane=a,Wa(e,a),yt(r,e,a),Qd;od(o)||su(),t=ls(e,t,n)}else od(o)?(t.flags|=192,t.child=e.child,t=null):(e=u.treeContext,ye=Qt(o.nextSibling),Xe=t,V=!0,oa=null,Vt=!1,e!==null&&$h(t,e),t=Zs(t,a.children),t.flags|=4096);return t}return l?($n(t),o=a.fallback,l=t.mode,u=e.child,c=u.sibling,a=Nn(u,{mode:"hidden",children:a.children}),a.subtreeFlags=u.subtreeFlags&65011712,c!==null?o=Nn(c,o):(o=Ua(o,l,n,null),o.flags|=2),o.return=t,a.return=t,a.sibling=o,t.child=a,ji(null,a),a=t.child,o=e.child.memoizedState,o===null?o=ns(n):(l=o.cachePool,l!==null?(u=ke._currentValue,l=l.parent!==u?{parent:u,pool:u}:l):l=tp(),o={baseLanes:o.baseLanes|n,cachePool:l}),a.memoizedState=o,a.childLanes=as(e,r,n),t.memoizedState=ts,ji(e.child,a)):(Jn(t),n=e.child,e=n.sibling,n=Nn(n,{mode:"visible",children:a.children}),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function Zs(e,t){return t=ru({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function ru(e,t){return e=Tt(22,e,null,t),e.lanes=0,e}function ls(e,t,n){return Ya(t,e.child,null,n),e=Zs(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Nm(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Hs(e.return,t,n)}function is(e,t,n,a,l,i){var r=e.memoizedState;r===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:l,treeForkCount:i}:(r.isBackwards=t,r.rendering=null,r.renderingStartTime=0,r.last=a,r.tail=n,r.tailMode=l,r.treeForkCount=i)}function Kp(e,t,n){var a=t.pendingProps,l=a.revealOrder,i=a.tail;a=a.children;var r=xe.current,o=(r&2)!==0;if(o?(r=r&1|2,t.flags|=128):r&=1,ge(xe,r),Ye(e,t,a,n),a=V?ur:0,!o&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Nm(e,n,t);else if(e.tag===19)Nm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&nu(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),is(t,!1,l,n,i,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&nu(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}is(t,!0,n,null,i,a);break;case"together":is(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function Un(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),va|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(ei(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(S(153));if(t.child!==null){for(e=t.child,n=Nn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Nn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Kd(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&$o(e)))}function KA(e,t,n){switch(t.tag){case 3:Xo(t,t.stateNode.containerInfo),In(t,ke,e.memoizedState.cache),Fa();break;case 27:case 5:Cs(t);break;case 4:Xo(t,t.stateNode.containerInfo);break;case 10:In(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Fs(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(Jn(t),t.flags|=128,null):(n&t.child.childLanes)!==0?Qp(e,t,n):(Jn(t),e=Un(e,t,n),e!==null?e.sibling:null);Jn(t);break;case 19:var l=(e.flags&128)!==0;if(a=(n&t.childLanes)!==0,a||(ei(e,t,n,!1),a=(n&t.childLanes)!==0),l){if(a)return Kp(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),ge(xe,xe.current),a)break;return null;case 22:return t.lanes=0,Xp(e,t,n,t.pendingProps);case 24:In(t,ke,e.memoizedState.cache)}return Un(e,t,n)}function Zp(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Le=!0;else{if(!Kd(e,n)&&(t.flags&128)===0)return Le=!1,KA(e,t,n);Le=(e.flags&131072)!==0}else Le=!1,V&&(t.flags&1048576)!==0&&Jh(t,ur,t.index);switch(t.lanes=0,t.tag){case 16:e:{var a=t.pendingProps;if(e=La(t.elementType),t.type=e,typeof e=="function")Ed(e)?(a=Xa(e,a),t.tag=1,t=_m(null,t,e,a,n)):(t.tag=0,t=Ks(null,t,e,a,n));else{if(e!=null){var l=e.$$typeof;if(l===fd){t.tag=11,t=Tm(null,t,e,a,n);break e}else if(l===gd){t.tag=14,t=Em(null,t,e,a,n);break e}}throw t=ws(e)||e,Error(S(306,t,""))}}return t;case 0:return Ks(e,t,t.type,t.pendingProps,n);case 1:return a=t.type,l=Xa(a,t.pendingProps),_m(e,t,a,l,n);case 3:e:{if(Xo(t,t.stateNode.containerInfo),e===null)throw Error(S(387));a=t.pendingProps;var i=t.memoizedState;l=i.element,Gs(e,t),Ii(t,a,null,n);var r=t.memoizedState;if(a=r.cache,In(t,ke,a),a!==i.cache&&zs(t,[ke],n,!0),Wi(),a=r.element,i.isDehydrated)if(i={element:a,isDehydrated:!1,cache:r.cache},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){t=Bm(e,t,a,n);break e}else if(a!==l){l=Yt(Error(S(424)),t),cr(l),t=Bm(e,t,a,n);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(ye=Qt(e.firstChild),Xe=t,V=!0,oa=null,Vt=!0,n=lp(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Fa(),a===l){t=Un(e,t,n);break e}Ye(e,t,a,n)}t=t.child}return t;case 26:return Go(e,t),e===null?(n=eh(t.type,null,t.pendingProps,null))?t.memoizedState=n:V||(n=t.type,e=t.pendingProps,a=mu(ra.current).createElement(n),a[Ve]=t,a[vt]=e,Ke(a,n,e),qe(a),t.stateNode=a):t.memoizedState=eh(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Cs(t),e===null&&V&&(a=t.stateNode=Gy(t.type,t.pendingProps,ra.current),Xe=t,Vt=!0,l=ye,Aa(t.type)?(cd=l,ye=Qt(a.firstChild)):ye=l),Ye(e,t,t.pendingProps.children,n),Go(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&V&&((l=a=ye)&&(a=Sw(a,t.type,t.pendingProps,Vt),a!==null?(t.stateNode=a,Xe=t,ye=Qt(a.firstChild),Vt=!1,l=!0):l=!1),l||pa(t)),Cs(t),l=t.type,i=t.pendingProps,r=e!==null?e.memoizedProps:null,a=i.children,id(l,i)?a=null:r!==null&&id(l,r)&&(t.flags|=32),t.memoizedState!==null&&(l=Ld(e,t,GA,null,null,n),hr._currentValue=l),Go(e,t),Ye(e,t,a,n),t.child;case 6:return e===null&&V&&((e=n=ye)&&(n=Cw(n,t.pendingProps,Vt),n!==null?(t.stateNode=n,Xe=t,ye=null,e=!0):e=!1),e||pa(t)),null;case 13:return Qp(e,t,n);case 4:return Xo(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=Ya(t,null,a,n):Ye(e,t,a,n),t.child;case 11:return Tm(e,t,t.type,t.pendingProps,n);case 7:return Ye(e,t,t.pendingProps,n),t.child;case 8:return Ye(e,t,t.pendingProps.children,n),t.child;case 12:return Ye(e,t,t.pendingProps.children,n),t.child;case 10:return a=t.pendingProps,In(t,t.type,a.value),Ye(e,t,a.children,n),t.child;case 9:return l=t.type._context,a=t.pendingProps.children,ja(t),l=Qe(l),a=a(l),t.flags|=1,Ye(e,t,a,n),t.child;case 14:return Em(e,t,t.type,t.pendingProps,n);case 15:return Vp(e,t,t.type,t.pendingProps,n);case 19:return Kp(e,t,n);case 31:return QA(e,t,n);case 22:return Xp(e,t,n,t.pendingProps);case 24:return ja(t),a=Qe(ke),e===null?(l=_d(),l===null&&(l=ue,i=Md(),l.pooledCache=i,i.refCount++,i!==null&&(l.pooledCacheLanes|=n),l=i),t.memoizedState={parent:a,cache:l},Nd(t),In(t,ke,l)):((e.lanes&n)!==0&&(Gs(e,t),Ii(t,null,null,n),Wi()),l=e.memoizedState,i=t.memoizedState,l.parent!==a?(l={parent:a,cache:a},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),In(t,ke,a)):(a=i.cache,In(t,ke,a),a!==l.cache&&zs(t,[ke],n,!0))),Ye(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(S(156,t.tag))}function Cn(e){e.flags|=4}function rs(e,t,n,a,l){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(l&335544128)===l)if(e.stateNode.complete)e.flags|=8192;else if(by())e.flags|=8192;else throw Pa=eu,Bd}else e.flags&=-16777217}function Om(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Fy(t))if(by())e.flags|=8192;else throw Pa=eu,Bd}function Co(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Ah():536870912,e.lanes|=t,Ql|=t)}function Hi(e,t){if(!V)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function pe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags&65011712,a|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,a|=l.subtreeFlags,a|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function ZA(e,t,n){var a=t.pendingProps;switch(xd(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return pe(t),null;case 1:return pe(t),null;case 3:return n=t.stateNode,a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),On(ke),ql(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(vl(t)?Cn(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Ic())),pe(t),null;case 26:var l=t.type,i=t.memoizedState;return e===null?(Cn(t),i!==null?(pe(t),Om(t,i)):(pe(t),rs(t,l,null,a,n))):i?i!==e.memoizedState?(Cn(t),pe(t),Om(t,i)):(pe(t),t.flags&=-16777217):(e=e.memoizedProps,e!==a&&Cn(t),pe(t),rs(t,l,e,a,n)),null;case 27:if(Qo(t),n=ra.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return pe(t),null}e=gn.current,vl(t)?um(t,e):(e=Gy(l,a,n),t.stateNode=e,Cn(t))}return pe(t),null;case 5:if(Qo(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return pe(t),null}if(i=gn.current,vl(t))um(t,i);else{var r=mu(ra.current);switch(i){case 1:i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":i=r.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":i=r.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":i=r.createElement("div"),i.innerHTML="<script><\/scr"+"ipt>",i=i.removeChild(i.firstChild);break;case"select":i=typeof a.is=="string"?r.createElement("select",{is:a.is}):r.createElement("select"),a.multiple?i.multiple=!0:a.size&&(i.size=a.size);break;default:i=typeof a.is=="string"?r.createElement(l,{is:a.is}):r.createElement(l)}}i[Ve]=t,i[vt]=a;e:for(r=t.child;r!==null;){if(r.tag===5||r.tag===6)i.appendChild(r.stateNode);else if(r.tag!==4&&r.tag!==27&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break e;for(;r.sibling===null;){if(r.return===null||r.return===t)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}t.stateNode=i;e:switch(Ke(i,l,a),l){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&Cn(t)}}return pe(t),rs(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&Cn(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(S(166));if(e=ra.current,vl(t)){if(e=t.stateNode,n=t.memoizedProps,a=null,l=Xe,l!==null)switch(l.tag){case 27:case 5:a=l.memoizedProps}e[Ve]=t,e=!!(e.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Ly(e.nodeValue,n)),e||pa(t,!0)}else e=mu(e).createTextNode(a),e[Ve]=t,t.stateNode=e}return pe(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(a=vl(t),n!==null){if(e===null){if(!a)throw Error(S(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(S(557));e[Ve]=t}else Fa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;pe(t),e=!1}else n=Ic(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Rt(t),t):(Rt(t),null);if((t.flags&128)!==0)throw Error(S(558))}return pe(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=vl(t),a!==null&&a.dehydrated!==null){if(e===null){if(!l)throw Error(S(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(S(317));l[Ve]=t}else Fa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;pe(t),l=!1}else l=Ic(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(Rt(t),t):(Rt(t),null)}return Rt(t),(t.flags&128)!==0?(t.lanes=n,t):(n=a!==null,e=e!==null&&e.memoizedState!==null,n&&(a=t.child,l=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(l=a.alternate.memoizedState.cachePool.pool),i=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(i=a.memoizedState.cachePool.pool),i!==l&&(a.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Co(t,t.updateQueue),pe(t),null);case 4:return ql(),e===null&&tf(t.stateNode.containerInfo),pe(t),null;case 10:return On(t.type),pe(t),null;case 19:if(Fe(xe),a=t.memoizedState,a===null)return pe(t),null;if(l=(t.flags&128)!==0,i=a.rendering,i===null)if(l)Hi(a,!1);else{if(Te!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(i=nu(e),i!==null){for(t.flags|=128,Hi(a,!1),e=i.updateQueue,t.updateQueue=e,Co(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Wh(n,e),n=n.sibling;return ge(xe,xe.current&1|2),V&&Dn(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&Dt()>uu&&(t.flags|=128,l=!0,Hi(a,!1),t.lanes=4194304)}else{if(!l)if(e=nu(i),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,Co(t,e),Hi(a,!0),a.tail===null&&a.tailMode==="hidden"&&!i.alternate&&!V)return pe(t),null}else 2*Dt()-a.renderingStartTime>uu&&n!==536870912&&(t.flags|=128,l=!0,Hi(a,!1),t.lanes=4194304);a.isBackwards?(i.sibling=t.child,t.child=i):(e=a.last,e!==null?e.sibling=i:t.child=i,a.last=i)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=Dt(),e.sibling=null,n=xe.current,ge(xe,l?n&1|2:n&1),V&&Dn(t,a.treeForkCount),e):(pe(t),null);case 22:case 23:return Rt(t),Od(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(n&536870912)!==0&&(t.flags&128)===0&&(pe(t),t.subtreeFlags&6&&(t.flags|=8192)):pe(t),n=t.updateQueue,n!==null&&Co(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==n&&(t.flags|=2048),e!==null&&Fe(Ga),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),On(ke),pe(t),null;case 25:return null;case 30:return null}throw Error(S(156,t.tag))}function WA(e,t){switch(xd(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return On(ke),ql(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Qo(t),null;case 31:if(t.memoizedState!==null){if(Rt(t),t.alternate===null)throw Error(S(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Rt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(S(340));Fa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Fe(xe),null;case 4:return ql(),null;case 10:return On(t.type),null;case 22:case 23:return Rt(t),Od(),e!==null&&Fe(Ga),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return On(ke),null;case 25:return null;default:return null}}function Wp(e,t){switch(xd(t),t.tag){case 3:On(ke),ql();break;case 26:case 27:case 5:Qo(t);break;case 4:ql();break;case 31:t.memoizedState!==null&&Rt(t);break;case 13:Rt(t);break;case 19:Fe(xe);break;case 10:On(t.type);break;case 22:case 23:Rt(t),Od(),e!==null&&Fe(Ga);break;case 24:On(ke)}}function Er(e,t){try{var n=t.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var l=a.next;n=l;do{if((n.tag&e)===e){a=void 0;var i=n.create,r=n.inst;a=i(),r.destroy=a}n=n.next}while(n!==l)}}catch(o){le(t,t.return,o)}}function ya(e,t,n){try{var a=t.updateQueue,l=a!==null?a.lastEffect:null;if(l!==null){var i=l.next;a=i;do{if((a.tag&e)===e){var r=a.inst,o=r.destroy;if(o!==void 0){r.destroy=void 0,l=t;var u=n,c=o;try{c()}catch(s){le(l,u,s)}}}a=a.next}while(a!==i)}}catch(s){le(t,t.return,s)}}function Ip(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{rp(t,n)}catch(a){le(e,e.return,a)}}}function Jp(e,t,n){n.props=Xa(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(a){le(e,t,a)}}function $i(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof n=="function"?e.refCleanup=n(a):n.current=a}}catch(l){le(e,t,l)}}function fn(e,t){var n=e.ref,a=e.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(l){le(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(l){le(e,t,l)}else n.current=null}function $p(e){var t=e.type,n=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break e;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(l){le(e,e.return,l)}}function os(e,t,n){try{var a=e.stateNode;pw(a,e.type,n,t),a[vt]=t}catch(l){le(e,e.return,l)}}function ey(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Aa(e.type)||e.tag===4}function us(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ey(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Aa(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ws(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=_n));else if(a!==4&&(a===27&&Aa(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Ws(e,t,n),e=e.sibling;e!==null;)Ws(e,t,n),e=e.sibling}function ou(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(a===27&&Aa(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(ou(e,t,n),e=e.sibling;e!==null;)ou(e,t,n),e=e.sibling}function ty(e){var t=e.stateNode,n=e.memoizedProps;try{for(var a=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);Ke(t,a,n),t[Ve]=e,t[vt]=n}catch(i){le(e,e.return,i)}}var xn=!1,Oe=!1,cs=!1,km=typeof WeakSet=="function"?WeakSet:Set,Pe=null;function IA(e,t){if(e=e.containerInfo,ad=vu,e=Fh(e),Cd(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var l=a.anchorOffset,i=a.focusNode;a=a.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var r=0,o=-1,u=-1,c=0,s=0,f=e,d=null;t:for(;;){for(var m;f!==n||l!==0&&f.nodeType!==3||(o=r+l),f!==i||a!==0&&f.nodeType!==3||(u=r+a),f.nodeType===3&&(r+=f.nodeValue.length),(m=f.firstChild)!==null;)d=f,f=m;for(;;){if(f===e)break t;if(d===n&&++c===l&&(o=r),d===i&&++s===a&&(u=r),(m=f.nextSibling)!==null)break;f=d,d=f.parentNode}f=m}n=o===-1||u===-1?null:{start:o,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ld={focusedElem:e,selectionRange:n},vu=!1,Pe=t;Pe!==null;)if(t=Pe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Pe=e;else for(;Pe!==null;){switch(t=Pe,i=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&i!==null){e=void 0,n=t,l=i.memoizedProps,i=i.memoizedState,a=n.stateNode;try{var v=Xa(n.type,l);e=a.getSnapshotBeforeUpdate(v,i),a.__reactInternalSnapshotBeforeUpdate=e}catch(A){le(n,n.return,A)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)rd(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":rd(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(S(163))}if(e=t.sibling,e!==null){e.return=t.return,Pe=e;break}Pe=t.return}}function ny(e,t,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:Tn(e,n),a&4&&Er(5,n);break;case 1:if(Tn(e,n),a&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(r){le(n,n.return,r)}else{var l=Xa(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(r){le(n,n.return,r)}}a&64&&Ip(n),a&512&&$i(n,n.return);break;case 3:if(Tn(e,n),a&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{rp(e,t)}catch(r){le(n,n.return,r)}}break;case 27:t===null&&a&4&&ty(n);case 26:case 5:Tn(e,n),t===null&&a&4&&$p(n),a&512&&$i(n,n.return);break;case 12:Tn(e,n);break;case 31:Tn(e,n),a&4&&iy(e,n);break;case 13:Tn(e,n),a&4&&ry(e,n),a&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=rw.bind(null,n),Rw(e,n))));break;case 22:if(a=n.memoizedState!==null||xn,!a){t=t!==null&&t.memoizedState!==null||Oe,l=xn;var i=Oe;xn=a,(Oe=t)&&!i?En(e,n,(n.subtreeFlags&8772)!==0):Tn(e,n),xn=l,Oe=i}break;case 30:break;default:Tn(e,n)}}function ay(e){var t=e.alternate;t!==null&&(e.alternate=null,ay(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&yd(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Ce=null,ht=!1;function Rn(e,t,n){for(n=n.child;n!==null;)ly(e,t,n),n=n.sibling}function ly(e,t,n){if(xt&&typeof xt.onCommitFiberUnmount=="function")try{xt.onCommitFiberUnmount(br,n)}catch{}switch(n.tag){case 26:Oe||fn(n,t),Rn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Oe||fn(n,t);var a=Ce,l=ht;Aa(n.type)&&(Ce=n.stateNode,ht=!1),Rn(e,t,n),ar(n.stateNode),Ce=a,ht=l;break;case 5:Oe||fn(n,t);case 6:if(a=Ce,l=ht,Ce=null,Rn(e,t,n),Ce=a,ht=l,Ce!==null)if(ht)try{(Ce.nodeType===9?Ce.body:Ce.nodeName==="HTML"?Ce.ownerDocument.body:Ce).removeChild(n.stateNode)}catch(i){le(n,t,i)}else try{Ce.removeChild(n.stateNode)}catch(i){le(n,t,i)}break;case 18:Ce!==null&&(ht?(e=Ce,Zm(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),Il(e)):Zm(Ce,n.stateNode));break;case 4:a=Ce,l=ht,Ce=n.stateNode.containerInfo,ht=!0,Rn(e,t,n),Ce=a,ht=l;break;case 0:case 11:case 14:case 15:ya(2,n,t),Oe||ya(4,n,t),Rn(e,t,n);break;case 1:Oe||(fn(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"&&Jp(n,t,a)),Rn(e,t,n);break;case 21:Rn(e,t,n);break;case 22:Oe=(a=Oe)||n.memoizedState!==null,Rn(e,t,n),Oe=a;break;default:Rn(e,t,n)}}function iy(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Il(e)}catch(n){le(t,t.return,n)}}}function ry(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Il(e)}catch(n){le(t,t.return,n)}}function JA(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new km),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new km),t;default:throw Error(S(435,e.tag))}}function Ro(e,t){var n=JA(e);t.forEach(function(a){if(!n.has(a)){n.add(a);var l=ow.bind(null,e,a);a.then(l,l)}})}function gt(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var l=n[a],i=e,r=t,o=r;e:for(;o!==null;){switch(o.tag){case 27:if(Aa(o.type)){Ce=o.stateNode,ht=!1;break e}break;case 5:Ce=o.stateNode,ht=!1;break e;case 3:case 4:Ce=o.stateNode.containerInfo,ht=!0;break e}o=o.return}if(Ce===null)throw Error(S(160));ly(i,r,l),Ce=null,ht=!1,i=l.alternate,i!==null&&(i.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)oy(t,e),t=t.sibling}var en=null;function oy(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:gt(t,e),mt(e),a&4&&(ya(3,e,e.return),Er(3,e),ya(5,e,e.return));break;case 1:gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),a&64&&xn&&(e=e.updateQueue,e!==null&&(a=e.callbacks,a!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var l=en;if(gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),a&4){var i=n!==null?n.memoizedState:null;if(a=e.memoizedState,n===null)if(a===null)if(e.stateNode===null){e:{a=e.type,n=e.memoizedProps,l=l.ownerDocument||l;t:switch(a){case"title":i=l.getElementsByTagName("title")[0],(!i||i[Sr]||i[Ve]||i.namespaceURI==="http://www.w3.org/2000/svg"||i.hasAttribute("itemprop"))&&(i=l.createElement(a),l.head.insertBefore(i,l.querySelector("head > title"))),Ke(i,a,n),i[Ve]=e,qe(i),a=i;break e;case"link":var r=nh("link","href",l).get(a+(n.href||""));if(r){for(var o=0;o<r.length;o++)if(i=r[o],i.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&i.getAttribute("rel")===(n.rel==null?null:n.rel)&&i.getAttribute("title")===(n.title==null?null:n.title)&&i.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){r.splice(o,1);break t}}i=l.createElement(a),Ke(i,a,n),l.head.appendChild(i);break;case"meta":if(r=nh("meta","content",l).get(a+(n.content||""))){for(o=0;o<r.length;o++)if(i=r[o],i.getAttribute("content")===(n.content==null?null:""+n.content)&&i.getAttribute("name")===(n.name==null?null:n.name)&&i.getAttribute("property")===(n.property==null?null:n.property)&&i.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&i.getAttribute("charset")===(n.charSet==null?null:n.charSet)){r.splice(o,1);break t}}i=l.createElement(a),Ke(i,a,n),l.head.appendChild(i);break;default:throw Error(S(468,a))}i[Ve]=e,qe(i),a=i}e.stateNode=a}else ah(l,e.type,e.stateNode);else e.stateNode=th(l,a,e.memoizedProps);else i!==a?(i===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):i.count--,a===null?ah(l,e.type,e.stateNode):th(l,a,e.memoizedProps)):a===null&&e.stateNode!==null&&os(e,e.memoizedProps,n.memoizedProps)}break;case 27:gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),n!==null&&a&4&&os(e,e.memoizedProps,n.memoizedProps);break;case 5:if(gt(t,e),mt(e),a&512&&(Oe||n===null||fn(n,n.return)),e.flags&32){l=e.stateNode;try{jl(l,"")}catch(v){le(e,e.return,v)}}a&4&&e.stateNode!=null&&(l=e.memoizedProps,os(e,l,n!==null?n.memoizedProps:l)),a&1024&&(cs=!0);break;case 6:if(gt(t,e),mt(e),a&4){if(e.stateNode===null)throw Error(S(162));a=e.memoizedProps,n=e.stateNode;try{n.nodeValue=a}catch(v){le(e,e.return,v)}}break;case 3:if(Fo=null,l=en,en=hu(t.containerInfo),gt(t,e),en=l,mt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{Il(t.containerInfo)}catch(v){le(e,e.return,v)}cs&&(cs=!1,uy(e));break;case 4:a=en,en=hu(e.stateNode.containerInfo),gt(t,e),mt(e),en=a;break;case 12:gt(t,e),mt(e);break;case 31:gt(t,e),mt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 13:gt(t,e),mt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Bu=Dt()),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 22:l=e.memoizedState!==null;var u=n!==null&&n.memoizedState!==null,c=xn,s=Oe;if(xn=c||l,Oe=s||u,gt(t,e),Oe=s,xn=c,mt(e),a&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||u||xn||Oe||Ha(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){u=n=t;try{if(i=u.stateNode,l)r=i.style,typeof r.setProperty=="function"?r.setProperty("display","none","important"):r.display="none";else{o=u.stateNode;var f=u.memoizedProps.style,d=f!=null&&f.hasOwnProperty("display")?f.display:null;o.style.display=d==null||typeof d=="boolean"?"":(""+d).trim()}}catch(v){le(u,u.return,v)}}}else if(t.tag===6){if(n===null){u=t;try{u.stateNode.nodeValue=l?"":u.memoizedProps}catch(v){le(u,u.return,v)}}}else if(t.tag===18){if(n===null){u=t;try{var m=u.stateNode;l?Wm(m,!0):Wm(u.stateNode,!1)}catch(v){le(u,u.return,v)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=e.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,Ro(e,n))));break;case 19:gt(t,e),mt(e),a&4&&(a=e.updateQueue,a!==null&&(e.updateQueue=null,Ro(e,a)));break;case 30:break;case 21:break;default:gt(t,e),mt(e)}}function mt(e){var t=e.flags;if(t&2){try{for(var n,a=e.return;a!==null;){if(ey(a)){n=a;break}a=a.return}if(n==null)throw Error(S(160));switch(n.tag){case 27:var l=n.stateNode,i=us(e);ou(e,i,l);break;case 5:var r=n.stateNode;n.flags&32&&(jl(r,""),n.flags&=-33);var o=us(e);ou(e,o,r);break;case 3:case 4:var u=n.stateNode.containerInfo,c=us(e);Ws(e,c,u);break;default:throw Error(S(161))}}catch(s){le(e,e.return,s)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function uy(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;uy(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Tn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)ny(e,t.alternate,t),t=t.sibling}function Ha(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:ya(4,t,t.return),Ha(t);break;case 1:fn(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&Jp(t,t.return,n),Ha(t);break;case 27:ar(t.stateNode);case 26:case 5:fn(t,t.return),Ha(t);break;case 22:t.memoizedState===null&&Ha(t);break;case 30:Ha(t);break;default:Ha(t)}e=e.sibling}}function En(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,l=e,i=t,r=i.flags;switch(i.tag){case 0:case 11:case 15:En(l,i,n),Er(4,i);break;case 1:if(En(l,i,n),a=i,l=a.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(c){le(a,a.return,c)}if(a=i,l=a.updateQueue,l!==null){var o=a.stateNode;try{var u=l.shared.hiddenCallbacks;if(u!==null)for(l.shared.hiddenCallbacks=null,l=0;l<u.length;l++)ip(u[l],o)}catch(c){le(a,a.return,c)}}n&&r&64&&Ip(i),$i(i,i.return);break;case 27:ty(i);case 26:case 5:En(l,i,n),n&&a===null&&r&4&&$p(i),$i(i,i.return);break;case 12:En(l,i,n);break;case 31:En(l,i,n),n&&r&4&&iy(l,i);break;case 13:En(l,i,n),n&&r&4&&ry(l,i);break;case 22:i.memoizedState===null&&En(l,i,n),$i(i,i.return);break;case 30:break;default:En(l,i,n)}t=t.sibling}}function Zd(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Rr(n))}function Wd(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rr(e))}function $t(e,t,n,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)cy(e,t,n,a),t=t.sibling}function cy(e,t,n,a){var l=t.flags;switch(t.tag){case 0:case 11:case 15:$t(e,t,n,a),l&2048&&Er(9,t);break;case 1:$t(e,t,n,a);break;case 3:$t(e,t,n,a),l&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Rr(e)));break;case 12:if(l&2048){$t(e,t,n,a),e=t.stateNode;try{var i=t.memoizedProps,r=i.id,o=i.onPostCommit;typeof o=="function"&&o(r,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(u){le(t,t.return,u)}}else $t(e,t,n,a);break;case 31:$t(e,t,n,a);break;case 13:$t(e,t,n,a);break;case 23:break;case 22:i=t.stateNode,r=t.alternate,t.memoizedState!==null?i._visibility&2?$t(e,t,n,a):er(e,t):i._visibility&2?$t(e,t,n,a):(i._visibility|=2,Al(e,t,n,a,(t.subtreeFlags&10256)!==0||!1)),l&2048&&Zd(r,t);break;case 24:$t(e,t,n,a),l&2048&&Wd(t.alternate,t);break;default:$t(e,t,n,a)}}function Al(e,t,n,a,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var i=e,r=t,o=n,u=a,c=r.flags;switch(r.tag){case 0:case 11:case 15:Al(i,r,o,u,l),Er(8,r);break;case 23:break;case 22:var s=r.stateNode;r.memoizedState!==null?s._visibility&2?Al(i,r,o,u,l):er(i,r):(s._visibility|=2,Al(i,r,o,u,l)),l&&c&2048&&Zd(r.alternate,r);break;case 24:Al(i,r,o,u,l),l&&c&2048&&Wd(r.alternate,r);break;default:Al(i,r,o,u,l)}t=t.sibling}}function er(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,a=t,l=a.flags;switch(a.tag){case 22:er(n,a),l&2048&&Zd(a.alternate,a);break;case 24:er(n,a),l&2048&&Wd(a.alternate,a);break;default:er(n,a)}t=t.sibling}}var Yi=8192;function bl(e,t,n){if(e.subtreeFlags&Yi)for(e=e.child;e!==null;)sy(e,t,n),e=e.sibling}function sy(e,t,n){switch(e.tag){case 26:bl(e,t,n),e.flags&Yi&&e.memoizedState!==null&&Hw(n,en,e.memoizedState,e.memoizedProps);break;case 5:bl(e,t,n);break;case 3:case 4:var a=en;en=hu(e.stateNode.containerInfo),bl(e,t,n),en=a;break;case 22:e.memoizedState===null&&(a=e.alternate,a!==null&&a.memoizedState!==null?(a=Yi,Yi=16777216,bl(e,t,n),Yi=a):bl(e,t,n));break;default:bl(e,t,n)}}function dy(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function zi(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];Pe=a,gy(a,e)}dy(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)fy(e),e=e.sibling}function fy(e){switch(e.tag){case 0:case 11:case 15:zi(e),e.flags&2048&&ya(9,e,e.return);break;case 3:zi(e);break;case 12:zi(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Po(e)):zi(e);break;default:zi(e)}}function Po(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var a=t[n];Pe=a,gy(a,e)}dy(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:ya(8,t,t.return),Po(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Po(t));break;default:Po(t)}e=e.sibling}}function gy(e,t){for(;Pe!==null;){var n=Pe;switch(n.tag){case 0:case 11:case 15:ya(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var a=n.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Rr(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,Pe=a;else e:for(n=e;Pe!==null;){a=Pe;var l=a.sibling,i=a.return;if(ay(a),a===n){Pe=null;break e}if(l!==null){l.return=i,Pe=l;break e}Pe=i}}}var $A={getCacheForType:function(e){var t=Qe(ke),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Qe(ke).controller.signal}},ew=typeof WeakMap=="function"?WeakMap:Map,J=0,ue=null,F=null,Y=0,ae=0,Ct=null,aa=!1,ni=!1,Id=!1,Gn=0,Te=0,va=0,qa=0,Jd=0,Et=0,Ql=0,tr=null,pt=null,Is=!1,Bu=0,my=0,uu=1/0,cu=null,sa=null,Ue=0,da=null,Kl=null,kn=0,Js=0,$s=null,hy=null,nr=0,ed=null;function _t(){return(J&2)!==0&&Y!==0?Y&-Y:L.T!==null?ef():Rh()}function py(){if(Et===0)if((Y&536870912)===0||V){var e=mo;mo<<=1,(mo&3932160)===0&&(mo=262144),Et=e}else Et=536870912;return e=Nt.current,e!==null&&(e.flags|=32),Et}function yt(e,t,n){(e===ue&&(ae===2||ae===9)||e.cancelPendingCommit!==null)&&(Zl(e,0),la(e,Y,Et,!1)),wr(e,n),((J&2)===0||e!==ue)&&(e===ue&&((J&2)===0&&(qa|=n),Te===4&&la(e,Y,Et,!1)),hn(e))}function yy(e,t,n){if((J&6)!==0)throw Error(S(327));var a=!n&&(t&127)===0&&(t&e.expiredLanes)===0||Ar(e,t),l=a?aw(e,t):ss(e,t,!0),i=a;do{if(l===0){ni&&!a&&la(e,t,0,!1);break}else{if(n=e.current.alternate,i&&!tw(n)){l=ss(e,t,!1),i=!1;continue}if(l===2){if(i=t,e.errorRecoveryDisabledLanes&i)var r=0;else r=e.pendingLanes&-536870913,r=r!==0?r:r&536870912?536870912:0;if(r!==0){t=r;e:{var o=e;l=tr;var u=o.current.memoizedState.isDehydrated;if(u&&(Zl(o,r).flags|=256),r=ss(o,r,!1),r!==2){if(Id&&!u){o.errorRecoveryDisabledLanes|=i,qa|=i,l=4;break e}i=pt,pt=l,i!==null&&(pt===null?pt=i:pt.push.apply(pt,i))}l=r}if(i=!1,l!==2)continue}}if(l===1){Zl(e,0),la(e,t,0,!0);break}e:{switch(a=e,i=l,i){case 0:case 1:throw Error(S(345));case 4:if((t&4194048)!==t)break;case 6:la(a,t,Et,!aa);break e;case 2:pt=null;break;case 3:case 5:break;default:throw Error(S(329))}if((t&62914560)===t&&(l=Bu+300-Dt(),10<l)){if(la(a,t,Et,!aa),Au(a,0,!0)!==0)break e;kn=t,a.timeoutHandle=zy(Lm.bind(null,a,n,pt,cu,Is,t,Et,qa,Ql,aa,i,"Throttled",-0,0),l);break e}Lm(a,n,pt,cu,Is,t,Et,qa,Ql,aa,i,null,-0,0)}}break}while(!0);hn(e)}function Lm(e,t,n,a,l,i,r,o,u,c,s,f,d,m){if(e.timeoutHandle=-1,f=t.subtreeFlags,f&8192||(f&16785408)===16785408){f={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:_n},sy(t,i,f);var v=(i&62914560)===i?Bu-Dt():(i&4194048)===i?my-Dt():0;if(v=zw(f,v),v!==null){kn=i,e.cancelPendingCommit=v(zm.bind(null,e,t,i,n,a,l,r,o,u,s,f,null,d,m)),la(e,i,r,!c);return}}zm(e,t,i,n,a,l,r,o,u)}function tw(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var l=n[a],i=l.getSnapshot;l=l.value;try{if(!Bt(i(),l))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function la(e,t,n,a){t&=~Jd,t&=~qa,e.suspendedLanes|=t,e.pingedLanes&=~t,a&&(e.warmLanes|=t),a=e.expirationTimes;for(var l=t;0<l;){var i=31-Mt(l),r=1<<i;a[i]=-1,l&=~r}n!==0&&wh(e,n,t)}function Nu(){return(J&6)===0?(Dr(0,!1),!1):!0}function $d(){if(F!==null){if(ae===0)var e=F.return;else e=F,Bn=Ia=null,Ud(e),Ul=null,sr=0,e=F;for(;e!==null;)Wp(e.alternate,e),e=e.return;F=null}}function Zl(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,bw(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),kn=0,$d(),ue=e,F=n=Nn(e.current,null),Y=t,ae=0,Ct=null,aa=!1,ni=Ar(e,t),Id=!1,Ql=Et=Jd=qa=va=Te=0,pt=tr=null,Is=!1,(t&8)!==0&&(t|=t&32);var a=e.entangledLanes;if(a!==0)for(e=e.entanglements,a&=t;0<a;){var l=31-Mt(a),i=1<<l;t|=e[l],a&=~i}return Gn=t,Ru(),n}function vy(e,t){G=null,L.H=fr,t===ti||t===Eu?(t=gm(),ae=3):t===Bd?(t=gm(),ae=4):ae=t===Qd?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Ct=t,F===null&&(Te=1,iu(e,Yt(t,e.current)))}function by(){var e=Nt.current;return e===null?!0:(Y&4194048)===Y?Xt===null:(Y&62914560)===Y||(Y&536870912)!==0?e===Xt:!1}function Ay(){var e=L.H;return L.H=fr,e===null?fr:e}function wy(){var e=L.A;return L.A=$A,e}function su(){Te=4,aa||(Y&4194048)!==Y&&Nt.current!==null||(ni=!0),(va&134217727)===0&&(qa&134217727)===0||ue===null||la(ue,Y,Et,!1)}function ss(e,t,n){var a=J;J|=2;var l=Ay(),i=wy();(ue!==e||Y!==t)&&(cu=null,Zl(e,t)),t=!1;var r=Te;e:do try{if(ae!==0&&F!==null){var o=F,u=Ct;switch(ae){case 8:$d(),r=6;break e;case 3:case 2:case 9:case 6:Nt.current===null&&(t=!0);var c=ae;if(ae=0,Ct=null,Ol(e,o,u,c),n&&ni){r=0;break e}break;default:c=ae,ae=0,Ct=null,Ol(e,o,u,c)}}nw(),r=Te;break}catch(s){vy(e,s)}while(!0);return t&&e.shellSuspendCounter++,Bn=Ia=null,J=a,L.H=l,L.A=i,F===null&&(ue=null,Y=0,Ru()),r}function nw(){for(;F!==null;)Sy(F)}function aw(e,t){var n=J;J|=2;var a=Ay(),l=wy();ue!==e||Y!==t?(cu=null,uu=Dt()+500,Zl(e,t)):ni=Ar(e,t);e:do try{if(ae!==0&&F!==null){t=F;var i=Ct;t:switch(ae){case 1:ae=0,Ct=null,Ol(e,t,i,1);break;case 2:case 9:if(fm(i)){ae=0,Ct=null,Hm(t);break}t=function(){ae!==2&&ae!==9||ue!==e||(ae=7),hn(e)},i.then(t,t);break e;case 3:ae=7;break e;case 4:ae=5;break e;case 7:fm(i)?(ae=0,Ct=null,Hm(t)):(ae=0,Ct=null,Ol(e,t,i,7));break;case 5:var r=null;switch(F.tag){case 26:r=F.memoizedState;case 5:case 27:var o=F;if(r?Fy(r):o.stateNode.complete){ae=0,Ct=null;var u=o.sibling;if(u!==null)F=u;else{var c=o.return;c!==null?(F=c,Ou(c)):F=null}break t}}ae=0,Ct=null,Ol(e,t,i,5);break;case 6:ae=0,Ct=null,Ol(e,t,i,6);break;case 8:$d(),Te=6;break e;default:throw Error(S(462))}}lw();break}catch(s){vy(e,s)}while(!0);return Bn=Ia=null,L.H=a,L.A=l,J=n,F!==null?0:(ue=null,Y=0,Ru(),Te)}function lw(){for(;F!==null&&!Db();)Sy(F)}function Sy(e){var t=Zp(e.alternate,e,Gn);e.memoizedProps=e.pendingProps,t===null?Ou(e):F=t}function Hm(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Mm(n,t,t.pendingProps,t.type,void 0,Y);break;case 11:t=Mm(n,t,t.pendingProps,t.type.render,t.ref,Y);break;case 5:Ud(t);default:Wp(n,t),t=F=Wh(t,Gn),t=Zp(n,t,Gn)}e.memoizedProps=e.pendingProps,t===null?Ou(e):F=t}function Ol(e,t,n,a){Bn=Ia=null,Ud(t),Ul=null,sr=0;var l=t.return;try{if(XA(e,l,t,n,Y)){Te=1,iu(e,Yt(n,e.current)),F=null;return}}catch(i){if(l!==null)throw F=l,i;Te=1,iu(e,Yt(n,e.current)),F=null;return}t.flags&32768?(V||a===1?e=!0:ni||(Y&536870912)!==0?e=!1:(aa=e=!0,(a===2||a===9||a===3||a===6)&&(a=Nt.current,a!==null&&a.tag===13&&(a.flags|=16384))),Cy(t,e)):Ou(t)}function Ou(e){var t=e;do{if((t.flags&32768)!==0){Cy(t,aa);return}e=t.return;var n=ZA(t.alternate,t,Gn);if(n!==null){F=n;return}if(t=t.sibling,t!==null){F=t;return}F=t=e}while(t!==null);Te===0&&(Te=5)}function Cy(e,t){do{var n=WA(e.alternate,e);if(n!==null){n.flags&=32767,F=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){F=e;return}F=e=n}while(e!==null);Te=6,F=null}function zm(e,t,n,a,l,i,r,o,u){e.cancelPendingCommit=null;do ku();while(Ue!==0);if((J&6)!==0)throw Error(S(327));if(t!==null){if(t===e.current)throw Error(S(177));if(i=t.lanes|t.childLanes,i|=Rd,zb(e,n,i,r,o,u),e===ue&&(F=ue=null,Y=0),Kl=t,da=e,kn=n,Js=i,$s=l,hy=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,uw(Ko,function(){return xy(),null})):(e.callbackNode=null,e.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=L.T,L.T=null,l=$.p,$.p=2,r=J,J|=4;try{IA(e,t,n)}finally{J=r,$.p=l,L.T=a}}Ue=1,Ry(),Ty(),Ey()}}function Ry(){if(Ue===1){Ue=0;var e=da,t=Kl,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=L.T,L.T=null;var a=$.p;$.p=2;var l=J;J|=4;try{oy(t,e);var i=ld,r=Fh(e.containerInfo),o=i.focusedElem,u=i.selectionRange;if(r!==o&&o&&o.ownerDocument&&qh(o.ownerDocument.documentElement,o)){if(u!==null&&Cd(o)){var c=u.start,s=u.end;if(s===void 0&&(s=c),"selectionStart"in o)o.selectionStart=c,o.selectionEnd=Math.min(s,o.value.length);else{var f=o.ownerDocument||document,d=f&&f.defaultView||window;if(d.getSelection){var m=d.getSelection(),v=o.textContent.length,A=Math.min(u.start,v),b=u.end===void 0?A:Math.min(u.end,v);!m.extend&&A>b&&(r=b,b=A,A=r);var h=im(o,A),g=im(o,b);if(h&&g&&(m.rangeCount!==1||m.anchorNode!==h.node||m.anchorOffset!==h.offset||m.focusNode!==g.node||m.focusOffset!==g.offset)){var p=f.createRange();p.setStart(h.node,h.offset),m.removeAllRanges(),A>b?(m.addRange(p),m.extend(g.node,g.offset)):(p.setEnd(g.node,g.offset),m.addRange(p))}}}}for(f=[],m=o;m=m.parentNode;)m.nodeType===1&&f.push({element:m,left:m.scrollLeft,top:m.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o<f.length;o++){var y=f[o];y.element.scrollLeft=y.left,y.element.scrollTop=y.top}}vu=!!ad,ld=ad=null}finally{J=l,$.p=a,L.T=n}}e.current=t,Ue=2}}function Ty(){if(Ue===2){Ue=0;var e=da,t=Kl,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=L.T,L.T=null;var a=$.p;$.p=2;var l=J;J|=4;try{ny(e,t.alternate,t)}finally{J=l,$.p=a,L.T=n}}Ue=3}}function Ey(){if(Ue===4||Ue===3){Ue=0,xb();var e=da,t=Kl,n=kn,a=hy;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?Ue=5:(Ue=0,Kl=da=null,Dy(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(sa=null),pd(n),t=t.stateNode,xt&&typeof xt.onCommitFiberRoot=="function")try{xt.onCommitFiberRoot(br,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=L.T,l=$.p,$.p=2,L.T=null;try{for(var i=e.onRecoverableError,r=0;r<a.length;r++){var o=a[r];i(o.value,{componentStack:o.stack})}}finally{L.T=t,$.p=l}}(kn&3)!==0&&ku(),hn(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===ed?nr++:(nr=0,ed=e):nr=0,Dr(0,!1)}}function Dy(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Rr(t)))}function ku(){return Ry(),Ty(),Ey(),xy()}function xy(){if(Ue!==5)return!1;var e=da,t=Js;Js=0;var n=pd(kn),a=L.T,l=$.p;try{$.p=32>n?32:n,L.T=null,n=$s,$s=null;var i=da,r=kn;if(Ue=0,Kl=da=null,kn=0,(J&6)!==0)throw Error(S(331));var o=J;if(J|=4,fy(i.current),cy(i,i.current,r,n),J=o,Dr(0,!1),xt&&typeof xt.onPostCommitFiberRoot=="function")try{xt.onPostCommitFiberRoot(br,i)}catch{}return!0}finally{$.p=l,L.T=a,Dy(e,t)}}function Um(e,t,n){t=Yt(n,t),t=Qs(e.stateNode,t,2),e=ca(e,t,2),e!==null&&(wr(e,2),hn(e))}function le(e,t,n){if(e.tag===3)Um(e,e,n);else for(;t!==null;){if(t.tag===3){Um(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(sa===null||!sa.has(a))){e=Yt(n,e),n=jp(2),a=ca(t,n,2),a!==null&&(Yp(n,a,t,e),wr(a,2),hn(a));break}}t=t.return}}function ds(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new ew;var l=new Set;a.set(t,l)}else l=a.get(t),l===void 0&&(l=new Set,a.set(t,l));l.has(n)||(Id=!0,l.add(n),e=iw.bind(null,e,t,n),t.then(e,e))}function iw(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ue===e&&(Y&n)===n&&(Te===4||Te===3&&(Y&62914560)===Y&&300>Dt()-Bu?(J&2)===0&&Zl(e,0):Jd|=n,Ql===Y&&(Ql=0)),hn(e)}function My(e,t){t===0&&(t=Ah()),e=Wa(e,t),e!==null&&(wr(e,t),hn(e))}function rw(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),My(e,n)}function ow(e,t){var n=0;switch(e.tag){case 31:case 13:var a=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(S(314))}a!==null&&a.delete(t),My(e,n)}function uw(e,t){return md(e,t)}var du=null,wl=null,td=!1,fu=!1,fs=!1,ia=0;function hn(e){e!==wl&&e.next===null&&(wl===null?du=wl=e:wl=wl.next=e),fu=!0,td||(td=!0,sw())}function Dr(e,t){if(!fs&&fu){fs=!0;do for(var n=!1,a=du;a!==null;){if(!t)if(e!==0){var l=a.pendingLanes;if(l===0)var i=0;else{var r=a.suspendedLanes,o=a.pingedLanes;i=(1<<31-Mt(42|e)+1)-1,i&=l&~(r&~o),i=i&201326741?i&201326741|1:i?i|2:0}i!==0&&(n=!0,Gm(a,i))}else i=Y,i=Au(a,a===ue?i:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(i&3)===0||Ar(a,i)||(n=!0,Gm(a,i));a=a.next}while(n);fs=!1}}function cw(){_y()}function _y(){fu=td=!1;var e=0;ia!==0&&vw()&&(e=ia);for(var t=Dt(),n=null,a=du;a!==null;){var l=a.next,i=By(a,t);i===0?(a.next=null,n===null?du=l:n.next=l,l===null&&(wl=n)):(n=a,(e!==0||(i&3)!==0)&&(fu=!0)),a=l}Ue!==0&&Ue!==5||Dr(e,!1),ia!==0&&(ia=0)}function By(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,l=e.expirationTimes,i=e.pendingLanes&-62914561;0<i;){var r=31-Mt(i),o=1<<r,u=l[r];u===-1?((o&n)===0||(o&a)!==0)&&(l[r]=Hb(o,t)):u<=t&&(e.expiredLanes|=o),i&=~o}if(t=ue,n=Y,n=Au(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a=e.callbackNode,n===0||e===t&&(ae===2||ae===9)||e.cancelPendingCommit!==null)return a!==null&&a!==null&&qc(a),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||Ar(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(a!==null&&qc(a),pd(n)){case 2:case 8:n=vh;break;case 32:n=Ko;break;case 268435456:n=bh;break;default:n=Ko}return a=Ny.bind(null,e),n=md(n,a),e.callbackPriority=t,e.callbackNode=n,t}return a!==null&&a!==null&&qc(a),e.callbackPriority=2,e.callbackNode=null,2}function Ny(e,t){if(Ue!==0&&Ue!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(ku()&&e.callbackNode!==n)return null;var a=Y;return a=Au(e,e===ue?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),a===0?null:(yy(e,a,t),By(e,Dt()),e.callbackNode!=null&&e.callbackNode===n?Ny.bind(null,e):null)}function Gm(e,t){if(ku())return null;yy(e,t,!0)}function sw(){Aw(function(){(J&6)!==0?md(yh,cw):_y()})}function ef(){if(ia===0){var e=Yl;e===0&&(e=go,go<<=1,(go&261888)===0&&(go=256)),ia=e}return ia}function Pm(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:Bo(""+e)}function qm(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function dw(e,t,n,a,l){if(t==="submit"&&n&&n.stateNode===l){var i=Pm((l[vt]||null).action),r=a.submitter;r&&(t=(t=r[vt]||null)?Pm(t.formAction):r.getAttribute("formAction"),t!==null&&(i=t,r=null));var o=new wu("action","action",null,a,l);e.push({event:o,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(ia!==0){var u=r?qm(l,r):new FormData(l);Vs(n,{pending:!0,data:u,method:l.method,action:i},null,u)}}else typeof i=="function"&&(o.preventDefault(),u=r?qm(l,r):new FormData(l),Vs(n,{pending:!0,data:u,method:l.method,action:i},i,u))},currentTarget:l}]})}}for(To=0;To<Os.length;To++)Eo=Os[To],Fm=Eo.toLowerCase(),jm=Eo[0].toUpperCase()+Eo.slice(1),tn(Fm,"on"+jm);var Eo,Fm,jm,To;tn(Yh,"onAnimationEnd");tn(Vh,"onAnimationIteration");tn(Xh,"onAnimationStart");tn("dblclick","onDoubleClick");tn("focusin","onFocus");tn("focusout","onBlur");tn(MA,"onTransitionRun");tn(_A,"onTransitionStart");tn(BA,"onTransitionCancel");tn(Qh,"onTransitionEnd");Fl("onMouseEnter",["mouseout","mouseover"]);Fl("onMouseLeave",["mouseout","mouseover"]);Fl("onPointerEnter",["pointerout","pointerover"]);Fl("onPointerLeave",["pointerout","pointerover"]);Qa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Qa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Qa("onBeforeInput",["compositionend","keypress","textInput","paste"]);Qa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Qa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Qa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var gr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),fw=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(gr));function Oy(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],l=a.event;a=a.listeners;e:{var i=void 0;if(t)for(var r=a.length-1;0<=r;r--){var o=a[r],u=o.instance,c=o.currentTarget;if(o=o.listener,u!==i&&l.isPropagationStopped())break e;i=o,l.currentTarget=c;try{i(l)}catch(s){Wo(s)}l.currentTarget=null,i=u}else for(r=0;r<a.length;r++){if(o=a[r],u=o.instance,c=o.currentTarget,o=o.listener,u!==i&&l.isPropagationStopped())break e;i=o,l.currentTarget=c;try{i(l)}catch(s){Wo(s)}l.currentTarget=null,i=u}}}}function q(e,t){var n=t[Ts];n===void 0&&(n=t[Ts]=new Set);var a=e+"__bubble";n.has(a)||(ky(t,e,2,!1),n.add(a))}function gs(e,t,n){var a=0;t&&(a|=4),ky(n,e,a,t)}var Do="_reactListening"+Math.random().toString(36).slice(2);function tf(e){if(!e[Do]){e[Do]=!0,Th.forEach(function(n){n!=="selectionchange"&&(fw.has(n)||gs(n,!1,e),gs(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Do]||(t[Do]=!0,gs("selectionchange",!1,t))}}function ky(e,t,n,a){switch(Qy(t)){case 2:var l=Pw;break;case 8:l=qw;break;default:l=rf}n=l.bind(null,t,n,e),l=void 0,!_s||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),a?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function ms(e,t,n,a,l){var i=a;if((t&1)===0&&(t&2)===0&&a!==null)e:for(;;){if(a===null)return;var r=a.tag;if(r===3||r===4){var o=a.stateNode.containerInfo;if(o===l)break;if(r===4)for(r=a.return;r!==null;){var u=r.tag;if((u===3||u===4)&&r.stateNode.containerInfo===l)return;r=r.return}for(;o!==null;){if(r=Rl(o),r===null)return;if(u=r.tag,u===5||u===6||u===26||u===27){a=i=r;continue e}o=o.parentNode}}a=a.return}Oh(function(){var c=i,s=bd(n),f=[];e:{var d=Kh.get(e);if(d!==void 0){var m=wu,v=e;switch(e){case"keypress":if(Oo(n)===0)break e;case"keydown":case"keyup":m=oA;break;case"focusin":v="focus",m=Xc;break;case"focusout":v="blur",m=Xc;break;case"beforeblur":case"afterblur":m=Xc;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":m=Wg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":m=Zb;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":m=sA;break;case Yh:case Vh:case Xh:m=Jb;break;case Qh:m=fA;break;case"scroll":case"scrollend":m=Qb;break;case"wheel":m=mA;break;case"copy":case"cut":case"paste":m=eA;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":m=Jg;break;case"toggle":case"beforetoggle":m=pA}var A=(t&4)!==0,b=!A&&(e==="scroll"||e==="scrollend"),h=A?d!==null?d+"Capture":null:d;A=[];for(var g=c,p;g!==null;){var y=g;if(p=y.stateNode,y=y.tag,y!==5&&y!==26&&y!==27||p===null||h===null||(y=ir(g,h),y!=null&&A.push(mr(g,y,p))),b)break;g=g.return}0<A.length&&(d=new m(d,v,null,n,s),f.push({event:d,listeners:A}))}}if((t&7)===0){e:{if(d=e==="mouseover"||e==="pointerover",m=e==="mouseout"||e==="pointerout",d&&n!==Ms&&(v=n.relatedTarget||n.fromElement)&&(Rl(v)||v[Jl]))break e;if((m||d)&&(d=s.window===s?s:(d=s.ownerDocument)?d.defaultView||d.parentWindow:window,m?(v=n.relatedTarget||n.toElement,m=c,v=v?Rl(v):null,v!==null&&(b=vr(v),A=v.tag,v!==b||A!==5&&A!==27&&A!==6)&&(v=null)):(m=null,v=c),m!==v)){if(A=Wg,y="onMouseLeave",h="onMouseEnter",g="mouse",(e==="pointerout"||e==="pointerover")&&(A=Jg,y="onPointerLeave",h="onPointerEnter",g="pointer"),b=m==null?d:Fi(m),p=v==null?d:Fi(v),d=new A(y,g+"leave",m,n,s),d.target=b,d.relatedTarget=p,y=null,Rl(s)===c&&(A=new A(h,g+"enter",v,n,s),A.target=p,A.relatedTarget=b,y=A),b=y,m&&v)t:{for(A=gw,h=m,g=v,p=0,y=h;y;y=A(y))p++;y=0;for(var C=g;C;C=A(C))y++;for(;0<p-y;)h=A(h),p--;for(;0<y-p;)g=A(g),y--;for(;p--;){if(h===g||g!==null&&h===g.alternate){A=h;break t}h=A(h),g=A(g)}A=null}else A=null;m!==null&&Ym(f,d,m,A,!1),v!==null&&b!==null&&Ym(f,b,v,A,!0)}}e:{if(d=c?Fi(c):window,m=d.nodeName&&d.nodeName.toLowerCase(),m==="select"||m==="input"&&d.type==="file")var R=nm;else if(tm(d))if(Gh)R=EA;else{R=RA;var T=CA}else m=d.nodeName,!m||m.toLowerCase()!=="input"||d.type!=="checkbox"&&d.type!=="radio"?c&&vd(c.elementType)&&(R=nm):R=TA;if(R&&(R=R(e,c))){Uh(f,R,n,s);break e}T&&T(e,d,c),e==="focusout"&&c&&d.type==="number"&&c.memoizedProps.value!=null&&xs(d,"number",d.value)}switch(T=c?Fi(c):window,e){case"focusin":(tm(T)||T.contentEditable==="true")&&(Dl=T,Bs=c,Qi=null);break;case"focusout":Qi=Bs=Dl=null;break;case"mousedown":Ns=!0;break;case"contextmenu":case"mouseup":case"dragend":Ns=!1,rm(f,n,s);break;case"selectionchange":if(xA)break;case"keydown":case"keyup":rm(f,n,s)}var M;if(Sd)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else El?Hh(e,n)&&(w="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(w="onCompositionStart");w&&(Lh&&n.locale!=="ko"&&(El||w!=="onCompositionStart"?w==="onCompositionEnd"&&El&&(M=kh()):(na=s,Ad="value"in na?na.value:na.textContent,El=!0)),T=gu(c,w),0<T.length&&(w=new Ig(w,e,null,n,s),f.push({event:w,listeners:T}),M?w.data=M:(M=zh(n),M!==null&&(w.data=M)))),(M=vA?bA(e,n):AA(e,n))&&(w=gu(c,"onBeforeInput"),0<w.length&&(T=new Ig("onBeforeInput","beforeinput",null,n,s),f.push({event:T,listeners:w}),T.data=M)),dw(f,e,c,n,s)}Oy(f,t)})}function mr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function gu(e,t){for(var n=t+"Capture",a=[];e!==null;){var l=e,i=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||i===null||(l=ir(e,n),l!=null&&a.unshift(mr(e,l,i)),l=ir(e,t),l!=null&&a.push(mr(e,l,i))),e.tag===3)return a;e=e.return}return[]}function gw(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Ym(e,t,n,a,l){for(var i=t._reactName,r=[];n!==null&&n!==a;){var o=n,u=o.alternate,c=o.stateNode;if(o=o.tag,u!==null&&u===a)break;o!==5&&o!==26&&o!==27||c===null||(u=c,l?(c=ir(n,i),c!=null&&r.unshift(mr(n,c,u))):l||(c=ir(n,i),c!=null&&r.push(mr(n,c,u)))),n=n.return}r.length!==0&&e.push({event:t,listeners:r})}var mw=/\r\n?/g,hw=/\u0000|\uFFFD/g;function Vm(e){return(typeof e=="string"?e:""+e).replace(mw,``).replace(hw,"")}function Ly(e,t){return t=Vm(t),Vm(e)===t}function ie(e,t,n,a,l,i){switch(n){case"children":typeof a=="string"?t==="body"||t==="textarea"&&a===""||jl(e,a):(typeof a=="number"||typeof a=="bigint")&&t!=="body"&&jl(e,""+a);break;case"className":po(e,"class",a);break;case"tabIndex":po(e,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":po(e,n,a);break;case"style":Nh(e,a,i);break;case"data":if(t!=="object"){po(e,"data",a);break}case"src":case"href":if(a===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=Bo(""+a),e.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof i=="function"&&(n==="formAction"?(t!=="input"&&ie(e,t,"name",l.name,l,null),ie(e,t,"formEncType",l.formEncType,l,null),ie(e,t,"formMethod",l.formMethod,l,null),ie(e,t,"formTarget",l.formTarget,l,null)):(ie(e,t,"encType",l.encType,l,null),ie(e,t,"method",l.method,l,null),ie(e,t,"target",l.target,l,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){e.removeAttribute(n);break}a=Bo(""+a),e.setAttribute(n,a);break;case"onClick":a!=null&&(e.onclick=_n);break;case"onScroll":a!=null&&q("scroll",e);break;case"onScrollEnd":a!=null&&q("scrollend",e);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(S(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(S(60));e.innerHTML=n}}break;case"multiple":e.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":e.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){e.removeAttribute("xlink:href");break}n=Bo(""+a),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""+a):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":a===!0?e.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?e.setAttribute(n,a):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?e.setAttribute(n,a):e.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?e.removeAttribute(n):e.setAttribute(n,a);break;case"popover":q("beforetoggle",e),q("toggle",e),_o(e,"popover",a);break;case"xlinkActuate":Sn(e,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":Sn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":Sn(e,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":Sn(e,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":Sn(e,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":Sn(e,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":Sn(e,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":_o(e,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=Vb.get(n)||n,_o(e,n,a))}}function nd(e,t,n,a,l,i){switch(n){case"style":Nh(e,a,i);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(S(61));if(n=a.__html,n!=null){if(l.children!=null)throw Error(S(60));e.innerHTML=n}}break;case"children":typeof a=="string"?jl(e,a):(typeof a=="number"||typeof a=="bigint")&&jl(e,""+a);break;case"onScroll":a!=null&&q("scroll",e);break;case"onScrollEnd":a!=null&&q("scrollend",e);break;case"onClick":a!=null&&(e.onclick=_n);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Eh.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),i=e[vt]||null,i=i!=null?i[n]:null,typeof i=="function"&&e.removeEventListener(t,i,l),typeof a=="function")){typeof i!="function"&&i!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,a,l);break e}n in e?e[n]=a:a===!0?e.setAttribute(n,""):_o(e,n,a)}}}function Ke(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":q("error",e),q("load",e);var a=!1,l=!1,i;for(i in n)if(n.hasOwnProperty(i)){var r=n[i];if(r!=null)switch(i){case"src":a=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(S(137,t));default:ie(e,t,i,r,n,null)}}l&&ie(e,t,"srcSet",n.srcSet,n,null),a&&ie(e,t,"src",n.src,n,null);return;case"input":q("invalid",e);var o=i=r=l=null,u=null,c=null;for(a in n)if(n.hasOwnProperty(a)){var s=n[a];if(s!=null)switch(a){case"name":l=s;break;case"type":r=s;break;case"checked":u=s;break;case"defaultChecked":c=s;break;case"value":i=s;break;case"defaultValue":o=s;break;case"children":case"dangerouslySetInnerHTML":if(s!=null)throw Error(S(137,t));break;default:ie(e,t,a,s,n,null)}}Mh(e,i,o,u,c,r,l,!1);return;case"select":q("invalid",e),a=r=i=null;for(l in n)if(n.hasOwnProperty(l)&&(o=n[l],o!=null))switch(l){case"value":i=o;break;case"defaultValue":r=o;break;case"multiple":a=o;default:ie(e,t,l,o,n,null)}t=i,n=r,e.multiple=!!a,t!=null?Ll(e,!!a,t,!1):n!=null&&Ll(e,!!a,n,!0);return;case"textarea":q("invalid",e),i=l=a=null;for(r in n)if(n.hasOwnProperty(r)&&(o=n[r],o!=null))switch(r){case"value":a=o;break;case"defaultValue":l=o;break;case"children":i=o;break;case"dangerouslySetInnerHTML":if(o!=null)throw Error(S(91));break;default:ie(e,t,r,o,n,null)}Bh(e,a,l,i);return;case"option":for(u in n)if(n.hasOwnProperty(u)&&(a=n[u],a!=null))switch(u){case"selected":e.selected=a&&typeof a!="function"&&typeof a!="symbol";break;default:ie(e,t,u,a,n,null)}return;case"dialog":q("beforetoggle",e),q("toggle",e),q("cancel",e),q("close",e);break;case"iframe":case"object":q("load",e);break;case"video":case"audio":for(a=0;a<gr.length;a++)q(gr[a],e);break;case"image":q("error",e),q("load",e);break;case"details":q("toggle",e);break;case"embed":case"source":case"link":q("error",e),q("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in n)if(n.hasOwnProperty(c)&&(a=n[c],a!=null))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(S(137,t));default:ie(e,t,c,a,n,null)}return;default:if(vd(t)){for(s in n)n.hasOwnProperty(s)&&(a=n[s],a!==void 0&&nd(e,t,s,a,n,void 0));return}}for(o in n)n.hasOwnProperty(o)&&(a=n[o],a!=null&&ie(e,t,o,a,n,null))}function pw(e,t,n,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,i=null,r=null,o=null,u=null,c=null,s=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case"checked":break;case"value":break;case"defaultValue":u=f;default:a.hasOwnProperty(m)||ie(e,t,m,null,a,f)}}for(var d in a){var m=a[d];if(f=n[d],a.hasOwnProperty(d)&&(m!=null||f!=null))switch(d){case"type":i=m;break;case"name":l=m;break;case"checked":c=m;break;case"defaultChecked":s=m;break;case"value":r=m;break;case"defaultValue":o=m;break;case"children":case"dangerouslySetInnerHTML":if(m!=null)throw Error(S(137,t));break;default:m!==f&&ie(e,t,d,m,a,f)}}Ds(e,r,o,u,c,s,i,l);return;case"select":m=r=o=d=null;for(i in n)if(u=n[i],n.hasOwnProperty(i)&&u!=null)switch(i){case"value":break;case"multiple":m=u;default:a.hasOwnProperty(i)||ie(e,t,i,null,a,u)}for(l in a)if(i=a[l],u=n[l],a.hasOwnProperty(l)&&(i!=null||u!=null))switch(l){case"value":d=i;break;case"defaultValue":o=i;break;case"multiple":r=i;default:i!==u&&ie(e,t,l,i,a,u)}t=o,n=r,a=m,d!=null?Ll(e,!!n,d,!1):!!a!=!!n&&(t!=null?Ll(e,!!n,t,!0):Ll(e,!!n,n?[]:"",!1));return;case"textarea":m=d=null;for(o in n)if(l=n[o],n.hasOwnProperty(o)&&l!=null&&!a.hasOwnProperty(o))switch(o){case"value":break;case"children":break;default:ie(e,t,o,null,a,l)}for(r in a)if(l=a[r],i=n[r],a.hasOwnProperty(r)&&(l!=null||i!=null))switch(r){case"value":d=l;break;case"defaultValue":m=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(S(91));break;default:l!==i&&ie(e,t,r,l,a,i)}_h(e,d,m);return;case"option":for(var v in n)if(d=n[v],n.hasOwnProperty(v)&&d!=null&&!a.hasOwnProperty(v))switch(v){case"selected":e.selected=!1;break;default:ie(e,t,v,null,a,d)}for(u in a)if(d=a[u],m=n[u],a.hasOwnProperty(u)&&d!==m&&(d!=null||m!=null))switch(u){case"selected":e.selected=d&&typeof d!="function"&&typeof d!="symbol";break;default:ie(e,t,u,d,a,m)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var A in n)d=n[A],n.hasOwnProperty(A)&&d!=null&&!a.hasOwnProperty(A)&&ie(e,t,A,null,a,d);for(c in a)if(d=a[c],m=n[c],a.hasOwnProperty(c)&&d!==m&&(d!=null||m!=null))switch(c){case"children":case"dangerouslySetInnerHTML":if(d!=null)throw Error(S(137,t));break;default:ie(e,t,c,d,a,m)}return;default:if(vd(t)){for(var b in n)d=n[b],n.hasOwnProperty(b)&&d!==void 0&&!a.hasOwnProperty(b)&&nd(e,t,b,void 0,a,d);for(s in a)d=a[s],m=n[s],!a.hasOwnProperty(s)||d===m||d===void 0&&m===void 0||nd(e,t,s,d,a,m);return}}for(var h in n)d=n[h],n.hasOwnProperty(h)&&d!=null&&!a.hasOwnProperty(h)&&ie(e,t,h,null,a,d);for(f in a)d=a[f],m=n[f],!a.hasOwnProperty(f)||d===m||d==null&&m==null||ie(e,t,f,d,a,m)}function Xm(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function yw(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var l=n[a],i=l.transferSize,r=l.initiatorType,o=l.duration;if(i&&o&&Xm(r)){for(r=0,o=l.responseEnd,a+=1;a<n.length;a++){var u=n[a],c=u.startTime;if(c>o)break;var s=u.transferSize,f=u.initiatorType;s&&Xm(f)&&(u=u.responseEnd,r+=s*(u<o?1:(o-c)/(u-c)))}if(--a,t+=8*(i+r)/(l.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var ad=null,ld=null;function mu(e){return e.nodeType===9?e:e.ownerDocument}function Qm(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Hy(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function id(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var hs=null;function vw(){var e=window.event;return e&&e.type==="popstate"?e===hs?!1:(hs=e,!0):(hs=null,!1)}var zy=typeof setTimeout=="function"?setTimeout:void 0,bw=typeof clearTimeout=="function"?clearTimeout:void 0,Km=typeof Promise=="function"?Promise:void 0,Aw=typeof queueMicrotask=="function"?queueMicrotask:typeof Km<"u"?function(e){return Km.resolve(null).then(e).catch(ww)}:zy;function ww(e){setTimeout(function(){throw e})}function Aa(e){return e==="head"}function Zm(e,t){var n=t,a=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"||n==="/&"){if(a===0){e.removeChild(l),Il(t);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")ar(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,ar(n);for(var i=n.firstChild;i;){var r=i.nextSibling,o=i.nodeName;i[Sr]||o==="SCRIPT"||o==="STYLE"||o==="LINK"&&i.rel.toLowerCase()==="stylesheet"||n.removeChild(i),i=r}}else n==="body"&&ar(e.ownerDocument.body);n=l}while(n);Il(t)}function Wm(e,t){var n=e;e=0;do{var a=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=a}while(n)}function rd(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":rd(n),yd(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Sw(e,t,n,a){for(;e.nodeType===1;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(a){if(!e[Sr])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(i=e.getAttribute("rel"),i==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(i!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(i=e.getAttribute("src"),(i!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&i&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var i=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===i)return e}else return e;if(e=Qt(e.nextSibling),e===null)break}return null}function Cw(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=Qt(e.nextSibling),e===null))return null;return e}function Uy(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Qt(e.nextSibling),e===null))return null;return e}function od(e){return e.data==="$?"||e.data==="$~"}function ud(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function Rw(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var a=function(){t(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),e._reactRetry=a}}function Qt(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var cd=null;function Im(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return Qt(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function Jm(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(t===0)return e;t--}else n!=="/$"&&n!=="/&"||t++}e=e.previousSibling}return null}function Gy(e,t,n){switch(t=mu(n),e){case"html":if(e=t.documentElement,!e)throw Error(S(452));return e;case"head":if(e=t.head,!e)throw Error(S(453));return e;case"body":if(e=t.body,!e)throw Error(S(454));return e;default:throw Error(S(451))}}function ar(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);yd(e)}var Kt=new Map,$m=new Set;function hu(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Pn=$.d;$.d={f:Tw,r:Ew,D:Dw,C:xw,L:Mw,m:_w,X:Nw,S:Bw,M:Ow};function Tw(){var e=Pn.f(),t=Nu();return e||t}function Ew(e){var t=$l(e);t!==null&&t.tag===5&&t.type==="form"?Np(t):Pn.r(e)}var ai=typeof document>"u"?null:document;function Py(e,t,n){var a=ai;if(a&&typeof t=="string"&&t){var l=jt(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),$m.has(l)||($m.add(l),e={rel:e,crossOrigin:n,href:t},a.querySelector(l)===null&&(t=a.createElement("link"),Ke(t,"link",e),qe(t),a.head.appendChild(t)))}}function Dw(e){Pn.D(e),Py("dns-prefetch",e,null)}function xw(e,t){Pn.C(e,t),Py("preconnect",e,t)}function Mw(e,t,n){Pn.L(e,t,n);var a=ai;if(a&&e&&t){var l='link[rel="preload"][as="'+jt(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+jt(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+jt(n.imageSizes)+'"]')):l+='[href="'+jt(e)+'"]';var i=l;switch(t){case"style":i=Wl(e);break;case"script":i=li(e)}Kt.has(i)||(e=ve({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Kt.set(i,e),a.querySelector(l)!==null||t==="style"&&a.querySelector(xr(i))||t==="script"&&a.querySelector(Mr(i))||(t=a.createElement("link"),Ke(t,"link",e),qe(t),a.head.appendChild(t)))}}function _w(e,t){Pn.m(e,t);var n=ai;if(n&&e){var a=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+jt(a)+'"][href="'+jt(e)+'"]',i=l;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":i=li(e)}if(!Kt.has(i)&&(e=ve({rel:"modulepreload",href:e},t),Kt.set(i,e),n.querySelector(l)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Mr(i)))return}a=n.createElement("link"),Ke(a,"link",e),qe(a),n.head.appendChild(a)}}}function Bw(e,t,n){Pn.S(e,t,n);var a=ai;if(a&&e){var l=kl(a).hoistableStyles,i=Wl(e);t=t||"default";var r=l.get(i);if(!r){var o={loading:0,preload:null};if(r=a.querySelector(xr(i)))o.loading=5;else{e=ve({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Kt.get(i))&&nf(e,n);var u=r=a.createElement("link");qe(u),Ke(u,"link",e),u._p=new Promise(function(c,s){u.onload=c,u.onerror=s}),u.addEventListener("load",function(){o.loading|=1}),u.addEventListener("error",function(){o.loading|=2}),o.loading|=4,qo(r,t,a)}r={type:"stylesheet",instance:r,count:1,state:o},l.set(i,r)}}}function Nw(e,t){Pn.X(e,t);var n=ai;if(n&&e){var a=kl(n).hoistableScripts,l=li(e),i=a.get(l);i||(i=n.querySelector(Mr(l)),i||(e=ve({src:e,async:!0},t),(t=Kt.get(l))&&af(e,t),i=n.createElement("script"),qe(i),Ke(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function Ow(e,t){Pn.M(e,t);var n=ai;if(n&&e){var a=kl(n).hoistableScripts,l=li(e),i=a.get(l);i||(i=n.querySelector(Mr(l)),i||(e=ve({src:e,async:!0,type:"module"},t),(t=Kt.get(l))&&af(e,t),i=n.createElement("script"),qe(i),Ke(i,"link",e),n.head.appendChild(i)),i={type:"script",instance:i,count:1,state:null},a.set(l,i))}}function eh(e,t,n,a){var l=(l=ra.current)?hu(l):null;if(!l)throw Error(S(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=Wl(n.href),n=kl(l).hoistableStyles,a=n.get(t),a||(a={type:"style",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=Wl(n.href);var i=kl(l).hoistableStyles,r=i.get(e);if(r||(l=l.ownerDocument||l,r={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},i.set(e,r),(i=l.querySelector(xr(e)))&&!i._p&&(r.instance=i,r.state.loading=5),Kt.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Kt.set(e,n),i||kw(l,e,n,r.state))),t&&a===null)throw Error(S(528,""));return r}if(t&&a!==null)throw Error(S(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=li(n),n=kl(l).hoistableScripts,a=n.get(t),a||(a={type:"script",instance:null,count:0,state:null},n.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(S(444,e))}}function Wl(e){return'href="'+jt(e)+'"'}function xr(e){return'link[rel="stylesheet"]['+e+"]"}function qy(e){return ve({},e,{"data-precedence":e.precedence,precedence:null})}function kw(e,t,n,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ke(t,"link",n),qe(t),e.head.appendChild(t))}function li(e){return'[src="'+jt(e)+'"]'}function Mr(e){return"script[async]"+e}function th(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+jt(n.href)+'"]');if(a)return t.instance=a,qe(a),a;var l=ve({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),qe(a),Ke(a,"style",l),qo(a,n.precedence,e),t.instance=a;case"stylesheet":l=Wl(n.href);var i=e.querySelector(xr(l));if(i)return t.state.loading|=4,t.instance=i,qe(i),i;a=qy(n),(l=Kt.get(l))&&nf(a,l),i=(e.ownerDocument||e).createElement("link"),qe(i);var r=i;return r._p=new Promise(function(o,u){r.onload=o,r.onerror=u}),Ke(i,"link",a),t.state.loading|=4,qo(i,n.precedence,e),t.instance=i;case"script":return i=li(n.src),(l=e.querySelector(Mr(i)))?(t.instance=l,qe(l),l):(a=n,(l=Kt.get(i))&&(a=ve({},n),af(a,l)),e=e.ownerDocument||e,l=e.createElement("script"),qe(l),Ke(l,"link",a),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(S(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,qo(a,n.precedence,e));return t.instance}function qo(e,t,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=a.length?a[a.length-1]:null,i=l,r=0;r<a.length;r++){var o=a[r];if(o.dataset.precedence===t)i=o;else if(i!==l)break}i?i.parentNode.insertBefore(e,i.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function nf(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function af(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var Fo=null;function nh(e,t,n){if(Fo===null){var a=new Map,l=Fo=new Map;l.set(n,a)}else l=Fo,a=l.get(n),a||(a=new Map,l.set(n,a));if(a.has(e))return a;for(a.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var i=n[l];if(!(i[Sr]||i[Ve]||e==="link"&&i.getAttribute("rel")==="stylesheet")&&i.namespaceURI!=="http://www.w3.org/2000/svg"){var r=i.getAttribute(t)||"";r=e+r;var o=a.get(r);o?o.push(i):a.set(r,[i])}}return a}function ah(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Lw(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Fy(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Hw(e,t,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var l=Wl(a.href),i=t.querySelector(xr(l));if(i){t=i._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=pu.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=i,qe(i);return}i=t.ownerDocument||t,a=qy(a),(l=Kt.get(l))&&nf(a,l),i=i.createElement("link"),qe(i);var r=i;r._p=new Promise(function(o,u){r.onload=o,r.onerror=u}),Ke(i,"link",a),n.instance=i}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=pu.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var ps=0;function zw(e,t){return e.stylesheets&&e.count===0&&jo(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var a=setTimeout(function(){if(e.stylesheets&&jo(e,e.stylesheets),e.unsuspend){var i=e.unsuspend;e.unsuspend=null,i()}},6e4+t);0<e.imgBytes&&ps===0&&(ps=62500*yw());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&jo(e,e.stylesheets),e.unsuspend)){var i=e.unsuspend;e.unsuspend=null,i()}},(e.imgBytes>ps?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(l)}}:null}function pu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)jo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var yu=null;function jo(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,yu=new Map,t.forEach(Uw,e),yu=null,pu.call(e))}function Uw(e,t){if(!(t.state.loading&4)){var n=yu.get(e);if(n)var a=n.get(null);else{n=new Map,yu.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i<l.length;i++){var r=l[i];(r.nodeName==="LINK"||r.getAttribute("media")!=="not all")&&(n.set(r.dataset.precedence,r),a=r)}a&&n.set(null,a)}l=t.instance,r=l.getAttribute("data-precedence"),i=n.get(r)||a,i===a&&n.set(null,l),n.set(r,l),this.count++,a=pu.bind(this),l.addEventListener("load",a),l.addEventListener("error",a),i?i.parentNode.insertBefore(l,i.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var hr={$$typeof:Mn,Provider:null,Consumer:null,_currentValue:za,_currentValue2:za,_threadCount:0};function Gw(e,t,n,a,l,i,r,o,u){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Fc(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Fc(0),this.hiddenUpdates=Fc(null),this.identifierPrefix=a,this.onUncaughtError=l,this.onCaughtError=i,this.onRecoverableError=r,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=u,this.incompleteTransitions=new Map}function jy(e,t,n,a,l,i,r,o,u,c,s,f){return e=new Gw(e,t,n,r,u,c,s,f,o),t=1,i===!0&&(t|=24),i=Tt(3,null,null,t),e.current=i,i.stateNode=e,t=Md(),t.refCount++,e.pooledCache=t,t.refCount++,i.memoizedState={element:a,isDehydrated:n,cache:t},Nd(i),e}function Yy(e){return e?(e=_l,e):_l}function Vy(e,t,n,a,l,i){l=Yy(l),a.context===null?a.context=l:a.pendingContext=l,a=ua(t),a.payload={element:n},i=i===void 0?null:i,i!==null&&(a.callback=i),n=ca(e,a,t),n!==null&&(yt(n,e,t),Zi(n,e,t))}function lh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function lf(e,t){lh(e,t),(e=e.alternate)&&lh(e,t)}function Xy(e){if(e.tag===13||e.tag===31){var t=Wa(e,67108864);t!==null&&yt(t,e,67108864),lf(e,67108864)}}function ih(e){if(e.tag===13||e.tag===31){var t=_t();t=hd(t);var n=Wa(e,t);n!==null&&yt(n,e,t),lf(e,t)}}var vu=!0;function Pw(e,t,n,a){var l=L.T;L.T=null;var i=$.p;try{$.p=2,rf(e,t,n,a)}finally{$.p=i,L.T=l}}function qw(e,t,n,a){var l=L.T;L.T=null;var i=$.p;try{$.p=8,rf(e,t,n,a)}finally{$.p=i,L.T=l}}function rf(e,t,n,a){if(vu){var l=sd(a);if(l===null)ms(e,t,a,bu,n),rh(e,a);else if(jw(l,e,t,n,a))a.stopPropagation();else if(rh(e,a),t&4&&-1<Fw.indexOf(e)){for(;l!==null;){var i=$l(l);if(i!==null)switch(i.tag){case 3:if(i=i.stateNode,i.current.memoizedState.isDehydrated){var r=ka(i.pendingLanes);if(r!==0){var o=i;for(o.pendingLanes|=2,o.entangledLanes|=2;r;){var u=1<<31-Mt(r);o.entanglements[1]|=u,r&=~u}hn(i),(J&6)===0&&(uu=Dt()+500,Dr(0,!1))}}break;case 31:case 13:o=Wa(i,2),o!==null&&yt(o,i,2),Nu(),lf(i,2)}if(i=sd(a),i===null&&ms(e,t,a,bu,n),i===l)break;l=i}l!==null&&a.stopPropagation()}else ms(e,t,a,null,n)}}function sd(e){return e=bd(e),of(e)}var bu=null;function of(e){if(bu=null,e=Rl(e),e!==null){var t=vr(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=fh(t),e!==null)return e;e=null}else if(n===31){if(e=gh(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return bu=e,null}function Qy(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Mb()){case yh:return 2;case vh:return 8;case Ko:case _b:return 32;case bh:return 268435456;default:return 32}default:return 32}}var dd=!1,fa=null,ga=null,ma=null,pr=new Map,yr=new Map,ea=[],Fw="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function rh(e,t){switch(e){case"focusin":case"focusout":fa=null;break;case"dragenter":case"dragleave":ga=null;break;case"mouseover":case"mouseout":ma=null;break;case"pointerover":case"pointerout":pr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":yr.delete(t.pointerId)}}function Ui(e,t,n,a,l,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:i,targetContainers:[l]},t!==null&&(t=$l(t),t!==null&&Xy(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function jw(e,t,n,a,l){switch(t){case"focusin":return fa=Ui(fa,e,t,n,a,l),!0;case"dragenter":return ga=Ui(ga,e,t,n,a,l),!0;case"mouseover":return ma=Ui(ma,e,t,n,a,l),!0;case"pointerover":var i=l.pointerId;return pr.set(i,Ui(pr.get(i)||null,e,t,n,a,l)),!0;case"gotpointercapture":return i=l.pointerId,yr.set(i,Ui(yr.get(i)||null,e,t,n,a,l)),!0}return!1}function Ky(e){var t=Rl(e.target);if(t!==null){var n=vr(t);if(n!==null){if(t=n.tag,t===13){if(t=fh(n),t!==null){e.blockedOn=t,jg(e.priority,function(){ih(n)});return}}else if(t===31){if(t=gh(n),t!==null){e.blockedOn=t,jg(e.priority,function(){ih(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Yo(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=sd(e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);Ms=a,n.target.dispatchEvent(a),Ms=null}else return t=$l(n),t!==null&&Xy(t),e.blockedOn=n,!1;t.shift()}return!0}function oh(e,t,n){Yo(e)&&n.delete(t)}function Yw(){dd=!1,fa!==null&&Yo(fa)&&(fa=null),ga!==null&&Yo(ga)&&(ga=null),ma!==null&&Yo(ma)&&(ma=null),pr.forEach(oh),yr.forEach(oh)}function xo(e,t){e.blockedOn===t&&(e.blockedOn=null,dd||(dd=!0,Ge.unstable_scheduleCallback(Ge.unstable_NormalPriority,Yw)))}var Mo=null;function uh(e){Mo!==e&&(Mo=e,Ge.unstable_scheduleCallback(Ge.unstable_NormalPriority,function(){Mo===e&&(Mo=null);for(var t=0;t<e.length;t+=3){var n=e[t],a=e[t+1],l=e[t+2];if(typeof a!="function"){if(of(a||n)===null)continue;break}var i=$l(n);i!==null&&(e.splice(t,3),t-=3,Vs(i,{pending:!0,data:l,method:n.method,action:a},a,l))}}))}function Il(e){function t(u){return xo(u,e)}fa!==null&&xo(fa,e),ga!==null&&xo(ga,e),ma!==null&&xo(ma,e),pr.forEach(t),yr.forEach(t);for(var n=0;n<ea.length;n++){var a=ea[n];a.blockedOn===e&&(a.blockedOn=null)}for(;0<ea.length&&(n=ea[0],n.blockedOn===null);)Ky(n),n.blockedOn===null&&ea.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var l=n[a],i=n[a+1],r=l[vt]||null;if(typeof i=="function")r||uh(n);else if(r){var o=null;if(i&&i.hasAttribute("formAction")){if(l=i,r=i[vt]||null)o=r.formAction;else if(of(l)!==null)continue}else o=r.action;typeof o=="function"?n[a+1]=o:(n.splice(a,3),a-=3),uh(n)}}}function Zy(){function e(i){i.canIntercept&&i.info==="react-transition"&&i.intercept({handler:function(){return new Promise(function(r){return l=r})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var i=navigation.currentEntry;i&&i.url!=null&&navigation.navigate(i.url,{state:i.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),l!==null&&(l(),l=null)}}}function uf(e){this._internalRoot=e}Lu.prototype.render=uf.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(S(409));var n=t.current,a=_t();Vy(n,a,e,t,null,null)};Lu.prototype.unmount=uf.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Vy(e.current,2,null,e,null,null),Nu(),t[Jl]=null}};function Lu(e){this._internalRoot=e}Lu.prototype.unstable_scheduleHydration=function(e){if(e){var t=Rh();e={blockedOn:null,target:e,priority:t};for(var n=0;n<ea.length&&t!==0&&t<ea[n].priority;n++);ea.splice(n,0,e),n===0&&Ky(e)}};var ch=sh.version;if(ch!=="19.2.8")throw Error(S(527,ch,"19.2.8"));$.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(S(188)):(e=Object.keys(e).join(","),Error(S(268,e)));return e=Sb(t),e=e!==null?mh(e):null,e=e===null?null:e.stateNode,e};var Vw={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:L,reconcilerVersion:"19.2.8"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&(Gi=__REACT_DEVTOOLS_GLOBAL_HOOK__,!Gi.isDisabled&&Gi.supportsFiber))try{br=Gi.inject(Vw),xt=Gi}catch{}var Gi;Hu.createRoot=function(e,t){if(!dh(e))throw Error(S(299));var n=!1,a="",l=Pp,i=qp,r=Fp;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(r=t.onRecoverableError)),t=jy(e,1,!1,null,null,n,a,null,l,i,r,Zy),e[Jl]=t.current,tf(e),new uf(t)};Hu.hydrateRoot=function(e,t,n){if(!dh(e))throw Error(S(299));var a=!1,l="",i=Pp,r=qp,o=Fp,u=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(i=n.onUncaughtError),n.onCaughtError!==void 0&&(r=n.onCaughtError),n.onRecoverableError!==void 0&&(o=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=jy(e,1,!0,t,n??null,a,l,u,i,r,o,Zy),t.context=Yy(null),n=t.current,a=_t(),a=hd(a),l=ua(a),l.callback=null,ca(n,l,a),n=a,t.current.lanes=n,wr(t,n),hn(t),e[Jl]=t.current,tf(e),new Lu(t)};Hu.version="19.2.8"});var $y=un((jS,Jy)=>{"use strict";function Iy(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Iy)}catch(e){console.error(e)}}Iy(),Jy.exports=Wy()});var t0=un(zu=>{"use strict";var Xw=Symbol.for("react.transitional.element"),Qw=Symbol.for("react.fragment");function e0(e,t,n){var a=null;if(n!==void 0&&(a=""+n),t.key!==void 0&&(a=""+t.key),"key"in t){n={};for(var l in t)l!=="key"&&(n[l]=t[l])}else n=t;return t=n.ref,{$$typeof:Xw,type:e,key:a,ref:t!==void 0?t:null,props:n}}zu.Fragment=Qw;zu.jsx=e0;zu.jsxs=e0});var O=un((VS,n0)=>{"use strict";n0.exports=t0()});var Lt=B(ft(),1),s1=B($y(),1);var Wv=B(ft(),1);var qn=B(O(),1);function Kw(e){return{under50:"Under $50",over50:"Over $50",over30:"Over $30",over500:"Over $500","50_100":"$50 - $100","100_200":"$100 - $200","200_500":"$200 - $500"}[e]||e}function a0({activeDealTag:e,activeFreeformTags:t,airedaleTags:n,freeformTags:a,discountAmount:l,onBrandSelect:i,onBrandToggle:r,onDiscountAmountChange:o,onPriceRangeChange:u,onTagClear:c,onFreeformTagClear:s,onFreeformTagToggle:f,priceRange:d,selectedBrands:m}){let v=m.map(b=>({type:"brand",value:b,label:b}));if(e){let b=n.find(h=>h.startsWith(e+":::")||h===e);v.push({type:"category",value:e,label:b?b.split(":::")[1]||b.split(":::")[0]:e})}if(t.forEach(b=>{let h=a.find(g=>g.handle===b);v.push({type:"freeform-tag",value:b,label:h?.label||b})}),d&&d!=="all"&&v.push({type:"price",value:d,label:Kw(d)}),l&&l!=="0"&&l!=="all"&&v.push({type:"discount",value:l,label:`Min ${l}% off`}),v.length===0)return null;let A=b=>{b.type==="brand"&&r?.(b.value),b.type==="category"&&c(),b.type==="freeform-tag"&&f(b.value),b.type==="discount"&&o?.("0"),b.type==="price"&&u?.("all")};return(0,qn.jsxs)("div",{className:"tg-df-active-badges-row",style:{display:"flex",flexWrap:"wrap",gap:"4px",alignItems:"center",marginTop:"10px",marginBottom:"16px"},children:[v.map(b=>(0,qn.jsxs)("span",{className:"tg-df-active-badge",children:[b.label,(0,qn.jsx)("button",{type:"button",className:"tg-df-badge-remove","aria-label":`Remove ${b.label}`,onClick:()=>A(b),children:(0,qn.jsxs)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,qn.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,qn.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]},b.type+"-"+b.value)),v.length>1&&(0,qn.jsx)("button",{type:"button",className:"tg-df-badge-clear-all",onClick:()=>{i?.([]),c(),s(),o?.("0"),u?.("all")},children:"Clear all"})]})}function l0(e){if(!e)return null;let t=e.documentname||e.title||"";!t&&e.documentnametext&&(t=Array.isArray(e.documentnametext)?e.documentnametext[0]:e.documentnametext),!t&&e.articlename&&(t=Array.isArray(e.articlename)?e.articlename[0]:e.articlename),!t&&e.articlesocialtitle&&Array.isArray(e.articlesocialtitle)&&(t=e.articlesocialtitle[0]);let n=e.strapline||e.articlestrapline||e.subtitle||e.dek||"";!n&&e.image_thumbnail&&e.image_thumbnail.dek&&(n=e.image_thumbnail.dek),Array.isArray(n)&&(n=n[0]||"");let a="";if(e.articlepage)try{let l=e.articlepage;if(typeof l=="string")try{l=JSON.parse(l)}catch{}if(Array.isArray(l)&&l.length>0){let i=l[0];if(typeof i=="string")try{i=JSON.parse(i)}catch{}if(Array.isArray(i)){let r=[];for(let o of i){if(o.type==="featured-product")break;if(o.type==="text"&&o.data)Array.isArray(o.data.paragraphs)?o.data.paragraphs.forEach(u=>{u&&r.push(u.startsWith("<")?u:`<p>${u}<\/p>`)}):typeof o.data.text=="string"&&o.data.text&&r.push(o.data.text.startsWith("<")?o.data.text:`<p>${o.data.text}<\/p>`);else if(o.type==="section"&&o.data){let u=o.data.text||o.data.heading||o.data.title||"";u&&r.push(`<div class="tg-df-article-section-banner"><span>${u}<\/span><\/div>`)}}r.length>0&&(a=r.join(""))}}}catch(l){console.error("Error parsing articlepage",l)}return!a&&e.content?a=typeof e.content=="string"?e.content:"":!a&&e.intro?a=typeof e.intro=="string"?e.intro:"":!a&&e.paragraphs&&(a=(Array.isArray(e.paragraphs)?e.paragraphs:[e.paragraphs]).map(i=>`<p>${i}<\/p>`).join("")),{headline:t,strapline:n,contentHtml:a}}var ii=B(O(),1);function i0({articles:e,selectedArticleId:t}){if(!t)return null;let n=e.find(l=>l.id===t);if(!n)return null;let a=l0(n);return!a||!a.headline&&!a.strapline&&!a.contentHtml?null:(0,ii.jsxs)("div",{className:"tg-df-article-intro-container",id:"tg-df-article-intro",style:{margin:"0 auto 32px",width:"100%",maxWidth:"800px",textAlign:"left",padding:"0 16px"},children:[a.headline&&(0,ii.jsx)("h2",{className:"tg-df-article-headline",id:"tg-df-article-headline",style:{fontSize:"1.75rem",fontWeight:800,color:"#0f172a",marginBottom:"1rem",lineHeight:1.25},children:a.headline}),a.strapline&&(0,ii.jsx)("p",{className:"tg-df-article-strapline",id:"tg-df-article-strapline",style:{fontSize:"1.125rem",fontWeight:600,color:"#334155",marginBottom:"1.25rem",lineHeight:1.4},children:a.strapline}),a.contentHtml&&(0,ii.jsx)("div",{className:"tg-df-article-content",id:"tg-df-article-content",dangerouslySetInnerHTML:{__html:a.contentHtml}})]})}var Fn=B(O(),1);function Zw({articles:e,authorHandle:t,authorName:n}){let a=n||e.length>0&&(e[0].articleauthortext?.[0]||e[0].articleauthor?.[0])||"Author";(t==="all-authors"||n==="all-authors"||n==="All authors")&&(a="All authors");let l=a.trim().split(" ")[0]||"Author";return a==="All authors"&&(l="All authors"),`Shop all ${l==="All authors"?"authors'":l.endsWith("'s")||l.endsWith("\u2019s")?l:`${l}'s`} collections`}function Ww(e){let t=[];return e.documentnametext&&t.push(e.documentnametext),e.documentname&&t.push(e.documentname),e.articlename&&t.push(Array.isArray(e.articlename)?e.articlename[0]:e.articlename),e.articlesocialtitle&&Array.isArray(e.articlesocialtitle)&&t.push(...e.articlesocialtitle),t.length>0?t.reduce((n,a)=>a&&a.length<n.length?a:n,t[0]):"Article"}function r0({articles:e,authorHandle:t,authorName:n,onChange:a,selectedArticleId:l,shortenedHeadlines:i}){return(0,Fn.jsx)("div",{className:"tg-df-top-bar",id:"tg-df-top-bar",style:{position:"relative",zIndex:100,margin:"0 auto 20px",width:"100%",display:"flex",justifyContent:"center"},children:(0,Fn.jsxs)("div",{className:"tg-df-sort-wrapper",style:{width:"auto",maxWidth:"320px",display:"inline-flex",position:"relative"},children:[(0,Fn.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",style:{position:"absolute",left:"14px",top:"50%",transform:"translateY(-50%)",width:"14px",height:"14px",color:"var(--tg-df-text-muted)",pointerEvents:"none",zIndex:2},children:(0,Fn.jsx)("path",{d:"M12 2l-10 4.5 10 4.5 10-4.5-10-4.5zm0 6.5l-8-3.6 8-3.6 8 3.6-8 3.6zm-10 6l10 4.5 10-4.5v-2.5l-10 4.5-10-4.5v2.5zm0 5l10 4.5 10-4.5v-2.5l-10 4.5-10-4.5v2.5z"})}),(0,Fn.jsxs)("select",{className:"tg-df-filter-select tg-df-article-select",style:{width:"100%",maxWidth:"320px",padding:"10px 36px 10px 38px",fontSize:"14px",fontWeight:500,borderRadius:"100px",border:"1px solid var(--tg-df-border)",color:"var(--tg-df-text)",backgroundColor:"var(--tg-df-bg-secondary)",appearance:"none",backgroundImage:`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E")`,backgroundRepeat:"no-repeat",backgroundPosition:"right 14px center",textAlign:"left",textAlignLast:"left",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap",cursor:"pointer"},value:l||"",onChange:r=>a(r.target.value),children:[(0,Fn.jsx)("option",{value:"",style:{textAlign:"left"},children:Zw({articles:e,authorHandle:t,authorName:n})}),e.map(r=>{let o=i?.[r.id]||Ww(r);return o&&o.length>38&&(o=o.substring(0,36)+"\u2026"),(0,Fn.jsx)("option",{value:r.id,style:{textAlign:"left"},children:o},r.id)})]})]})})}var A0=B(ft(),1);function o0(e,t=new Date){if(!e)return"";let n=new Date(e),a=Math.floor((t.getTime()-n.getTime())/1e3);if(a<60)return"Just now";let l=Math.floor(a/60);if(l<60)return`${l} min${l>1?"s":""} ago`;let i=Math.floor(l/60);if(i<24)return`${i} hr${i>1?"s":""} ago`;let r=Math.floor(i/24);if(r<30)return`${r} day${r>1?"s":""} ago`;let o=Math.floor(r/30);if(o<12)return`${o} mo${o>1?"s":""} ago`;let u=Math.floor(r/365);return`${u} yr${u>1?"s":""} ago`}function Iw(e){return e.replace(/<\/p\s*>/gi," ").replace(/<p[^>]*>/gi," ").replace(/<br\s*\/?>/gi," ").replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function _r(e,t,n){let a="";return n==="short"?a=e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"":a=e.articleauthorlongbio&&e.articleauthorlongbio[t]&&e.articleauthorlongbio[t]!=="null"?e.articleauthorlongbio[t]:e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"",a?Iw(a):""}function u0(e,t){return e.articleauthorrole&&e.articleauthorrole[t]&&e.articleauthorrole[t]!=="null"?e.articleauthorrole[t]:""}function c0(e,t){return e.articleauthormedia&&e.articleauthormedia[t]?e.articleauthormedia[t]:""}function ri(e){if(typeof e!="string"||!e.trim())return"";try{let t=new URL(e);if(t.hostname.toLowerCase()!=="cdn.mos.cms.futurecdn.net")return e;let n=/\.(?:jpe?g|png|webp)$/i;return!n.test(t.pathname)||/-\d+-\d+\.(?:jpe?g|png|webp)$/i.test(t.pathname)?e:(t.pathname=t.pathname.replace(n,"-480-80$&"),t.toString())}catch{return e}}function Uu(e,t=0){if(!e||!e.articleauthorsocialnetworks)return[];let n=e.articleauthorsocialnetworks[t];if(n||(n=e.articleauthorsocialnetworks[0]),!n)return[];let a=null;if(typeof n=="string")try{a=JSON.parse(n)}catch{try{a=JSON.parse(n.replace(/\\"/g,'"'))}catch{}}else typeof n=="object"&&n!==null&&(a=n);if(!a||typeof a!="object")return[];let l=[];for(let[i,r]of Object.entries(a)){if(!r)continue;let o="",u="";if(typeof r=="string"?o=r:typeof r=="object"&&r!==null&&(o=r.url||r.address||r.link||"",u=r.address||""),!o&&!u)continue;let c=i.toLowerCase().trim(),s=o||u;c==="email"?s.startsWith("mailto:")||(s=s.includes("@")?`mailto:${s}`:`mailto:${s}`):!s.startsWith("http://")&&!s.startsWith("https://")&&!s.startsWith("//")&&(s=`https://${s}`);let f=c.charAt(0).toUpperCase()+c.slice(1);c==="linkedin"?f="LinkedIn":c==="youtube"?f="YouTube":c==="tiktok"?f="TikTok":c==="twitch"?f="Twitch":c==="steam"?f="Steam":c==="github"?f="GitHub":c==="rss"?f="RSS":(c==="x"||c==="twitter")&&(f="X (Twitter)"),l.push({key:c,href:s,label:f})}return l}function ee(e){if(!e)return"";let t=String(e);for(let n=0;n<3;n+=1){let a=t.replace(/&/gi,"&").replace(/£/g,"\xA3").replace(/£/gi,"\xA3").replace(/$/g,"$").replace(/&dollar;/gi,"$").replace(/€/g,"\u20AC").replace(/€/gi,"\u20AC").replace(/&#(\d+);/g,(l,i)=>String.fromCharCode(Number(i))).replace(/&#x([0-9a-f]+);/gi,(l,i)=>String.fromCharCode(parseInt(i,16)));if(a===t)break;t=a}return t}var Ee=B(O(),1);function cf({authorUrl:e,deal:t}){if(!t.authorName)return null;let n=ee(String(t.authorName)),a=t.authorRole&&!["null","nul","undefined"].includes(String(t.authorRole).toLowerCase())?` \u2022 ${ee(String(t.authorRole))}`:"";return(0,Ee.jsx)("div",{className:"tg-df-author-line-desktop",style:{padding:"0 0 12px 0"},children:(0,Ee.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[t.authorImage&&(0,Ee.jsx)("img",{src:ri(t.authorImage),alt:n,className:"tg-df-author-img",width:"36",height:"36",style:{borderRadius:"50%",objectFit:"cover",flexShrink:0,aspectRatio:"1 / 1",minWidth:"36px",minHeight:"36px"}}),(0,Ee.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,Ee.jsx)("div",{style:{fontSize:"10px",color:"var(--tg-df-text-muted)",textTransform:"uppercase",letterSpacing:"0.5px",marginBottom:"2px",fontWeight:600},children:t.isReviewProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Product tested by:"}):t.isBuyingGuideProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Expert review by:"}):t.isFeatured?(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:"Top product"})," ","recommended by:"]}):(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:t.merchant})," ","deal recommended by:"]})}),(0,Ee.jsxs)("div",{style:{fontSize:"11px",color:"var(--tg-df-text)",lineHeight:1.2},children:[(0,Ee.jsx)("strong",{children:(0,Ee.jsx)("a",{href:e,target:"_blank",rel:"noopener",style:{textDecoration:"none",color:"inherit",borderBottom:"1px dotted var(--tg-df-text-muted)"},children:n})}),a,t.modifiedDate?(0,Ee.jsxs)("span",{style:{color:"var(--tg-df-text-muted)"},children:[" ","\u2022 ",o0(t.modifiedDate)]}):""]})]})]})})}var K=B(O(),1);function s0({authorUrl:e,deal:t,hideHawkPrices:n,msrpFormatted:a,sourceArticleUrl:l}){let i=ee(String(t.merchant||"")),r=ee(String(t.currency||""));if(t.isBuyingGuideProduct||t.isReviewProduct){let o=!!t.hasCommerceOffer,u=o&&!t.isCheckPrice,c=!!t.hawkPricePending,s=!!t.isReviewProduct&&!c&&!o,f=n&&o&&Array.isArray(t.hawkListings)?t.hawkListings.filter(m=>m?.merchant&&m?.url).slice(0,4):[],d=f.length>0;return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[c?(0,K.jsx)("div",{className:"tg-df-card-price-group","aria-live":"polite",children:(0,K.jsx)("span",{className:"tg-df-card-price",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"Checking live price\u2026"})}):d?(0,K.jsxs)("div",{className:"tg-df-card-listings",children:[(0,K.jsx)("span",{className:"tg-df-card-listings-title",children:"Today's cheapest prices:"}),(0,K.jsx)("div",{className:"tg-df-card-listings-links",children:f.map((m,v)=>{let A=ee(String(m.merchant));return(0,K.jsx)("a",{"aria-label":`View product at ${A}`,className:"tg-df-card-listing-link hawk-affiliate-link-container","data-fcaw-affiliate-link":"","data-merchant":A,"data-merchant-id":m.merchantId||void 0,"data-model-id":m.modelId||void 0,"data-product-key":m.productKey||void 0,href:m.url,rel:"sponsored nofollow noopener",target:"_blank",children:A},`${m.merchant}-${m.url}-${v}`)})})]}):u?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsxs)("div",{className:"tg-df-card-price-group",children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})]}):s?(0,K.jsx)("div",{className:"tg-df-card-price-group",children:(0,K.jsx)("span",{className:"tg-df-card-price tg-df-card-price--unavailable",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"No retail listing found"})}):null,(0,K.jsx)(cf,{authorUrl:e,deal:t}),!d&&(0,K.jsx)("a",{href:o?t.url:l,"data-fcaw-affiliate-link":o?"":void 0,target:"_blank",rel:o?"sponsored nofollow noopener":"noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},children:o?u?"VIEW DEAL":"CHECK PRICE":"READ REVIEW"})]})}return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[!(t.authorName&&!t.isFeatured)&&(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsx)("div",{className:"tg-df-card-price-group",children:t.isCheckPrice?(0,K.jsx)("span",{className:"tg-df-card-price",style:{fontSize:"15px",fontWeight:500,fontStyle:"italic"},children:"See price at retailer"}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})}),(0,K.jsx)(cf,{authorUrl:e,deal:t}),(0,K.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":"",target:"_blank",rel:"sponsored nofollow noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},"data-model-id":t.modelId||void 0,"data-product-key":t.productKey||void 0,"data-merchant-id":t.merchantId||void 0,children:t.isCheckPrice?"CHECK PRICE":t.isFeatured?"SHOP NOW":"VIEW DEAL"})]})}var Ze=B(O(),1);function d0({couponStatus:e,deal:t,onOpenVouchers:n}){let a=!!t.hasCommerceOffer;return(0,Ze.jsxs)("div",{className:"tg-df-card-image-box",children:[t.buyingGuideBadge?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge tg-df-buying-guide-badge",children:t.buyingGuideBadge}):t.savingLabel&&!t.isCheckPrice?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge",children:ee(t.savingLabel)}):null,(0,Ze.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":a?"":void 0,className:a?"hawk-affiliate-link-deal-widget":void 0,target:"_blank",rel:a?"sponsored nofollow noopener":"noopener",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:(0,Ze.jsx)("img",{src:t.image||void 0,alt:ee(String(t.title||"")),className:"tg-df-card-image",loading:"lazy",onError:l=>{t.fallbackImage&&!l.currentTarget.dataset.fb?(l.currentTarget.dataset.fb="1",l.currentTarget.src=t.fallbackImage):l.currentTarget.style.opacity="0"}})}),(0,Ze.jsxs)("div",{className:"tg-df-card-badges",children:[t.isPrime&&(0,Ze.jsxs)("span",{className:"tg-df-tag tg-df-tag-prime",children:[(0,Ze.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,Ze.jsx)("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})})," ","Prime"]}),!t.merchant?.toLowerCase().includes("amazon")&&(e==="loading"||e==="has")&&(0,Ze.jsx)("div",{className:"tg-df-coupon-wrapper",style:{display:"inline-flex",alignItems:"center"},children:e==="loading"?(0,Ze.jsx)("div",{className:"tg-df-coupon-spinner"}):(0,Ze.jsxs)("button",{type:"button",className:"tg-df-tag tg-df-tag-coupons",onClick:l=>{l.preventDefault(),n(t.merchant)},children:[(0,Ze.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Ze.jsx)("path",{d:"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"}),(0,Ze.jsx)("line",{x1:"7",y1:"7",x2:"7.01",y2:"7"})]})," ","Coupons"]})})]})]})}var ct=B(O(),1);function f0({label:e="Tom's Guide:",starRating:t,color:n="#1f69ff"}){if(!t||t<=0)return null;let a=Math.floor(t),l=t-a>=.5?1:0,i=Math.max(0,5-a-l),r=[];for(let o=0;o<a;o++)r.push((0,ct.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:n,stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})},`f${o}`));l&&r.push((0,ct.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"url(#halfGrad)",stroke:n,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,ct.jsx)("defs",{children:(0,ct.jsxs)("linearGradient",{id:"halfGrad",x1:"0",x2:"1",y1:"0",y2:"0",children:[(0,ct.jsx)("stop",{offset:"50%",stopColor:n}),(0,ct.jsx)("stop",{offset:"50%",stopColor:"transparent"})]})}),(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})]},"h"));for(let o=0;o<i;o++)r.push((0,ct.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:n,opacity:"0.35",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,ct.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26"})},`e${o}`));return(0,ct.jsxs)("div",{className:"tg-df-card-stars",style:{display:"flex",alignItems:"center",marginBottom:"8px",fontSize:"13px",fontWeight:600,color:"var(--tg-df-text-muted)"},children:[e&&(0,ct.jsx)("span",{style:{marginRight:"6px"},children:e}),(0,ct.jsx)("div",{style:{display:"flex",gap:"2px"},children:r})]})}var At=B(O(),1);function g0({heading:e,items:t}){return t.length===0?null:(0,At.jsxs)("div",{style:{marginBottom:"10px"},children:[(0,At.jsx)("strong",{style:{display:"block",fontSize:"12px",marginBottom:"3px"},children:e}),(0,At.jsx)("ul",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:0,paddingLeft:"18px"},children:t.map(n=>{let a=ee(String(n));return(0,At.jsx)("li",{children:a},n)})})]})}function m0({cons:e=[],expanded:t,fullReviewUrl:n,onToggle:a,pros:l=[],subtitle:i="",truncateSubtitle:r=!1}){let o=l.length>0||e.length>0,u=ee(i);return!u&&!o?null:(0,At.jsxs)("div",{style:{marginBottom:"12px"},children:[u&&(0,At.jsx)("p",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:"0 0 8px",display:!t&&r?"-webkit-box":"block",WebkitLineClamp:!t&&r?3:void 0,WebkitBoxOrient:!t&&r?"vertical":void 0,overflow:!t&&r?"hidden":void 0},children:u}),t&&o&&(0,At.jsxs)("div",{children:[(0,At.jsx)(g0,{heading:"Pros",items:l}),(0,At.jsx)(g0,{heading:"Cons",items:e})]}),(o||r)&&(0,At.jsxs)("div",{className:"tg-df-review-summary-actions",style:{alignItems:"flex-start",display:"flex",flexDirection:"column",gap:t&&n?"4px":0},children:[t&&n&&(0,At.jsx)("a",{href:n,target:"_blank",rel:"noopener",className:"tg-df-review-full-link",style:{alignItems:"center",color:"var(--tg-df-blue)",display:"flex",fontSize:"12px",fontWeight:700,minHeight:"40px",paddingRight:"12px",textDecoration:"underline"},children:"Read our full review"}),(0,At.jsx)("button",{type:"button",onClick:c=>{c.preventDefault(),c.stopPropagation(),a()},className:"tg-df-review-summary-toggle",style:{appearance:"none",background:"transparent",border:"none",color:"#000000",cursor:"pointer",fontFamily:"inherit",fontSize:"11px",fontWeight:700,minHeight:"40px",padding:"0 12px 0 0",textTransform:"uppercase"},children:t?"LESS":"READ MORE"})]})]})}var oi=B(ft(),1);var Br=B(O(),1);function h0({text:e,expanded:t,onToggle:n}){let[a,l]=(0,oi.useState)(!1),i=(0,oi.useRef)(null),r=ee(e);return(0,oi.useEffect)(()=>{i.current&&l(i.current.scrollHeight>i.current.clientHeight||i.current.scrollHeight>60)},[r]),r?(0,Br.jsxs)("div",{style:{marginBottom:"12px",position:"relative"},children:[(0,Br.jsx)("p",{ref:i,style:{fontSize:"13px",color:"var(--tg-df-text-muted)",marginBottom:"0",lineHeight:"1.4",display:t?"inline":"-webkit-box",WebkitLineClamp:t?"unset":3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:r}),a&&(0,Br.jsx)("button",{type:"button",onClick:o=>{o.preventDefault(),o.stopPropagation(),n()},style:{display:"block",appearance:"none",border:"none",color:"#000000",fontSize:"11px",fontWeight:700,textTransform:"uppercase",cursor:"pointer",fontFamily:"inherit",position:t?"static":"absolute",bottom:"2px",right:0,background:t?"transparent":"linear-gradient(to right, transparent, #fff 20%, #fff)",padding:t?"0":"0 0 0 16px"},children:t?"LESS":"READ MORE"})]}):null}var p0={pcgamer:"#DC191B",space:"#2E4A7F",tomsguide:"#1F69FF",techradar:"#E40784",golfmonthly:"#FFFFFF",androidcentral:"#1CCC3E",cinemablend:"#FFC033",creativebloq:"#DC361A",cyclingnews:"#371B51",cyclingweekly:"#AE1305",decanter:"#1B1B1B",digitalcameraworld:"#CAEBF2",fitandwell:"#BED100",fourfourtwo:"#AE1006",gamesradar:"#DC361A",guitarplayer:"#FFFFFF",guitarworld:"#DC1F26",homesandgardens:"#185A7D",idealhome:"#CAEBF2",imore:"#FFD600",livescience:"#023953",livingetc:"#FFFFFF",loudersound:"#DC0F17",marieclaireus:"#FFFFFF",marieclaireuk:"#FFFFFF",musicradar:"#006EA9",shortlist:"#2853E0",t3:"#DF0A14",theweek:"#DF0A14",theweekjuniorus:"#10A0B0",tomshardware:"#D8373B",wallpaper:"#FFFFFF",whathifi:"#E02928",whowhatwear:"#FFFFFF",windowscentral:"#CE0E5F",womanandhome:"#2F746E"},Nr={tomsguide:"https://proof.vanilla.tools/media/images/brandLogos/tomsguide.png",techradar:"https://proof.vanilla.tools/media/images/brandLogos/techradar.png",tomshardware:"https://proof.vanilla.tools/media/images/brandLogos/tomshardware.png",pcgamer:"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png",gamesradar:"https://proof.vanilla.tools/media/images/brandLogos/gamesradar.png",creativebloq:"https://proof.vanilla.tools/media/images/brandLogos/creativebloq.png",space:"https://proof.vanilla.tools/media/images/brandLogos/space.png",livescience:"https://proof.vanilla.tools/media/images/brandLogos/livescience.png",cinemablend:"https://proof.vanilla.tools/media/images/brandLogos/cinemablend.png",marieclaireus:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireus.png",marieclaireuk:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireuk.png",homesandgardens:"https://proof.vanilla.tools/media/images/brandLogos/homesandgardens.png",whowhatwear:"https://proof.vanilla.tools/media/images/brandLogos/whowhatwear.png",idealhome:"https://proof.vanilla.tools/media/images/brandLogos/idealhome.png",womanandhome:"https://proof.vanilla.tools/media/images/brandLogos/womanandhome.png",livingetc:"https://proof.vanilla.tools/media/images/brandLogos/livingetc.png",t3:"https://proof.vanilla.tools/media/images/brandLogos/t3.png",whathifi:"https://proof.vanilla.tools/media/images/brandLogos/whathifi.png",digitalcameraworld:"https://proof.vanilla.tools/media/images/brandLogos/digitalcameraworld.png",fitandwell:"https://proof.vanilla.tools/media/images/brandLogos/fitandwell.png",golfmonthly:"https://proof.vanilla.tools/media/images/brandLogos/golfmonthly.png",musicradar:"https://proof.vanilla.tools/media/images/brandLogos/musicradar.png",windowscentral:"https://proof.vanilla.tools/media/images/brandLogos/windowscentral.png",cyclingnews:"https://proof.vanilla.tools/media/images/brandLogos/cyclingnews.png",cyclingweekly:"https://proof.vanilla.tools/media/images/brandLogos/cyclingweekly.png",loudersound:"https://proof.vanilla.tools/media/images/brandLogos/loudersound.png",guitarworld:"https://proof.vanilla.tools/media/images/brandLogos/guitarworld.png",guitarplayer:"https://proof.vanilla.tools/media/images/brandLogos/guitarplayer.png",wallpaper:"https://proof.vanilla.tools/media/images/brandLogos/wallpaper.png",fourfourtwo:"https://proof.vanilla.tools/media/images/brandLogos/fourfourtwo.png",shortlist:"https://proof.vanilla.tools/media/images/brandLogos/shortlist.png",advnture:"https://proof.vanilla.tools/media/images/brandLogos/advnture.png",countrylife:"https://proof.vanilla.tools/media/images/brandLogos/countrylife.png",gardeningknowhow:"https://proof.vanilla.tools/media/images/brandLogos/gardeningknowhow.png",gnomesingardens:"https://proof.vanilla.tools/media/images/brandLogos/gnomesingardens.png",kiplinger:"https://proof.vanilla.tools/media/images/brandLogos/kiplinger.png",moneyweek:"https://proof.vanilla.tools/media/images/brandLogos/moneyweek.png",toptenreviews:"https://proof.vanilla.tools/media/images/brandLogos/toptenreviews.png"},Gu={tomsguide:"Tom's Guide",techradar:"TechRadar",tomshardware:"Tom's Hardware",pcgamer:"PC Gamer",gamesradar:"GamesRadar+",creativebloq:"Creative Bloq",space:"Space",livescience:"Live Science",cinemablend:"CinemaBlend",marieclaireus:"Marie Claire US",marieclaireuk:"Marie Claire UK",homesandgardens:"Homes & Gardens",whowhatwear:"Who What Wear",idealhome:"Ideal Home",womanandhome:"Woman & Home",livingetc:"Living Etc",t3:"T3",whathifi:"What Hi-Fi?",digitalcameraworld:"Digital Camera World",fitandwell:"Fit & Well",golfmonthly:"Golf Monthly",musicradar:"MusicRadar",androidcentral:"Android Central",imore:"iMore",windowscentral:"Windows Central",cyclingnews:"Cycling News",cyclingweekly:"Cycling Weekly",loudersound:"Louder Sound",guitarworld:"Guitar World",guitarplayer:"Guitar Player",theweek:"The Week",theweekjuniorus:"The Week Junior US",wallpaper:"Wallpaper",decanter:"Decanter",fourfourtwo:"FourFourTwo",shortlist:"ShortList",advnture:"Advnture",countrylife:"Country Life",gardeningknowhow:"Gardening Know How",gnomesingardens:"Gnomes in Gardens",kiplinger:"Kiplinger",moneyweek:"Money Week",toptenreviews:"Top 10 Reviews"},y0={pcgamer:[{key:"steam",href:"https://steamcommunity.com/groups/pcgamer",label:"PC Gamer on Steam"},{key:"x",href:"https://twitter.com/pcgamer",label:"PC Gamer on X"},{key:"facebook",href:"https://www.facebook.com/pcgamermagazine",label:"PC Gamer on Facebook"},{key:"instagram",href:"https://www.instagram.com/pcgamer_mag/?hl=en",label:"PC Gamer on Instagram"},{key:"youtube",href:"https://www.youtube.com/user/pcgamer",label:"PC Gamer on YouTube"},{key:"twitch",href:"https://www.twitch.tv/pcgamer",label:"PC Gamer on Twitch"},{key:"tiktok",href:"https://www.tiktok.com/@pcgamer_mag?lang=en",label:"PC Gamer on TikTok"}],homesandgardens:[{key:"instagram",href:"https://www.instagram.com/homesandgardensofficial",label:"Homes & Gardens on Instagram"},{key:"facebook",href:"https://www.facebook.com/homesandgardens/",label:"Homes & Gardens on Facebook"},{key:"x",href:"https://x.com/homesandgardens",label:"Homes & Gardens on X"},{key:"tiktok",href:"https://www.tiktok.com/@homesandgardensofficial",label:"Homes & Gardens on TikTok"},{key:"pinterest",href:"https://pinterest.com/homesgardensofficial/",label:"Homes & Gardens on Pinterest"}],whowhatwear:[{key:"x",href:"https://twitter.com/WhoWhatWear",label:"Who What Wear on X"},{key:"instagram",href:"https://www.instagram.com/whowhatwear/",label:"Who What Wear on Instagram"},{key:"facebook",href:"https://www.facebook.com/WhoWhatWear/",label:"Who What Wear on Facebook"},{key:"pinterest",href:"https://www.pinterest.co.uk/whowhatwearuk/",label:"Who What Wear on Pinterest"},{key:"tiktok",href:"https://www.tiktok.com/@whowhatwear.uk",label:"Who What Wear on TikTok"}]};var Ot=B(O(),1);function v0(e){return String(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ").trim().toLowerCase()}function Jw(e){let t=ee(String(e.brand||"")).trim(),n=ee(String(e.productName||e.title||"")).trim(),a=v0(t),l=v0(n);return a.length>0&&l.startsWith(a)&&!/^[a-z0-9]/.test(l.slice(a.length))||!t?n:`${t} ${n}`.trim()}function b0({couponStatus:e,deal:t,editorMode:n,hideHawkPrices:a,isDescriptionExpanded:l,isSelected:i,onDescriptionToggle:r,onOpenVouchers:o,onSelectionChange:u,website:c}){let s=ee(String(t.currency||"")),f=t.rawMsrp?s+t.rawMsrp:null,d=Jw(t),m=ee(String(t.title||"")),v=Gu[c||"tomsguide"]||c||"Tom's Guide",A=(c||"tomsguide").includes(".")?(c||"").startsWith("http")?c:`https://${c}`:`https://www.${c||"tomsguide"}.com`,b=(t.documentUrl||"").replace(/^\/+/,""),h=b.startsWith("http://")||b.startsWith("https://")?b:`${A}/${b}`,g=String(t.sourceArticleUrl||t.documentUrl||t.url||"").replace(/^\/+/,""),p=g.startsWith("http://")||g.startsWith("https://")?g:`${A}/${g}`,y=!!t.hasCommerceOffer;return(0,Ot.jsxs)("div",{className:"tg-df-card","data-brand":t.modelBrand||t.brand||void 0,"data-currency":t.isoCurrencyCode||s||void 0,"data-deal-id":t.externalProductId||t.id||void 0,"data-merchant":t.merchant||void 0,"data-merchant-id":t.merchantId||void 0,"data-model-id":t.modelId||void 0,"data-previous-price":t.rawMsrp||void 0,"data-price":t.rawPrice||void 0,"data-product-key":t.productKey||void 0,"data-product-name":t.productName||t.title||void 0,"data-review-product":t.isReviewProduct?"true":void 0,"data-source-article-url":t.isReviewProduct?p:void 0,children:[n&&(0,Ot.jsx)("input",{type:"checkbox",className:"tg-df-deal-checkbox",checked:i,onChange:C=>u(C.target.checked)}),(0,Ot.jsx)(d0,{couponStatus:e,deal:t,onOpenVouchers:o}),(0,Ot.jsxs)("div",{className:"tg-df-card-body",children:[(0,Ot.jsx)("h3",{className:"tg-df-card-title",title:m,children:(0,Ot.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":y?"":void 0,className:y?"hawk-affiliate-link-container":void 0,target:"_blank",rel:y?"sponsored nofollow noopener":"noopener",style:{textDecoration:"none",color:"inherit"},children:(0,Ot.jsx)("strong",{children:d})})}),(0,Ot.jsx)(f0,{label:t.isBuyingGuideProduct?"":`${v} rating:`,starRating:t.starRating,color:t.isReviewProduct?"var(--tg-df-blue)":void 0}),t.isBuyingGuideProduct||t.isReviewProduct?(0,Ot.jsx)(m0,{cons:t.cons,expanded:l,fullReviewUrl:t.isReviewProduct&&g?p:void 0,onToggle:r,pros:t.pros,subtitle:t.isReviewProduct?t.description:t.subtitle,truncateSubtitle:t.isReviewProduct}):t.description?(0,Ot.jsx)(h0,{text:t.description,expanded:l,onToggle:r}):null,(0,Ot.jsx)(s0,{authorUrl:h,deal:t,hideHawkPrices:a,msrpFormatted:f,sourceArticleUrl:p})]})]})}var ce=B(O(),1);function $w({activeDealTag:e,activeFreeformTags:t=[],query:n,selectedBrands:a=[]}){let l=o=>{let u=String(o||"").trim();return u&&u.toLowerCase()!=="everything"?u:""},r=(t.length>0?t:e?[e]:a.length>0?a:[n]).map(l).filter(Boolean).map(o=>o.replace(/\s+deals?$/i,"").trim()).filter((o,u,c)=>c.findIndex(s=>s.toLowerCase()===o.toLowerCase())===u);return r.length<=1?r[0]||"":`${r.slice(0,-1).join(", ")} or ${r.at(-1)}`}function e2(){return(0,ce.jsx)(ce.Fragment,{children:Array.from({length:6}).map((e,t)=>(0,ce.jsxs)("div",{className:"tg-df-card",children:[(0,ce.jsx)("div",{className:"tg-df-card-image-box tg-df-skeleton"}),(0,ce.jsxs)("div",{className:"tg-df-card-body",children:[(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short",style:{marginBottom:"24px"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title",style:{width:"80%"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short"}),(0,ce.jsx)("div",{className:"tg-df-card-cta tg-df-skeleton",style:{width:"100%",height:"40px",marginTop:"auto",border:"none"}})]})]},t))})}function t2(e,t){return{"@context":"https://schema.org","@type":"ItemList",itemListElement:e.slice(0,t).map((n,a)=>{let l="USD";return n.currency==="\xA3"?l="GBP":n.currency==="\u20AC"?l="EUR":n.currency==="A$"?l="AUD":n.currency==="CA$"&&(l="CAD"),{"@type":"ListItem",position:a+1,item:{"@type":"Product",name:n.title,image:n.image||"",description:n.description||"",brand:{"@type":"Brand",name:n.brand||""},offers:{"@type":"Offer",priceCurrency:l,price:n.rawPrice||0,url:n.url||"",seller:{"@type":"Organization",name:n.merchant||""}}}}}).filter(n=>n.item.name)}}function w0({activeDealTag:e,activeFreeformTags:t,couponMap:n,deals:a,displayCount:l,editorMode:i,error:r,expandedDealIds:o,hasMore:u,hideHawkPrices:c,loading:s,loadingMore:f,loadMoreStartCount:d,onDescriptionToggle:m,onLoadMore:v,onOpenVouchers:A,query:b,recentDealsOnly:h,selectedBrands:g,selectedDeals:p,setSelectedDeals:y,website:C}){let R=$w({activeDealTag:e,activeFreeformTags:t,query:b,selectedBrands:g}),T=f&&d!=null?d:l,M=!f&&d!=null&&d<T?d:null,w=D=>D.map(k=>(0,ce.jsx)(A0.default.Fragment,{children:(0,ce.jsx)(b0,{couponStatus:n[k.merchant],deal:k,editorMode:i,hideHawkPrices:c,isDescriptionExpanded:o.has(k.id),isSelected:p.has(k.id),onDescriptionToggle:()=>m(k.id),onOpenVouchers:A,onSelectionChange:se=>{let I=new Map(p);se?I.set(k.id,k):I.delete(k.id),y(I)},website:C})},k.id));return(0,ce.jsx)("div",{className:"tg-df-grid-wrapper",children:(0,ce.jsx)("div",{className:"tg-df-grid article-body tg-df-grid-auto",id:"tg-df-grid",children:s?(0,ce.jsx)(e2,{}):r?(0,ce.jsx)("div",{className:"tg-df-message",children:"Failed to load deals. Please try again."}):a.length===0?(0,ce.jsx)("div",{className:"tg-df-message",children:h?`No ${R?`${R} `:""}deals found from the last 30 days.`:!b||b.length<=2||b.toLowerCase()==="everything"?"No deals found for this author.":`No savings squad match your search for "${b}".`}):(0,ce.jsxs)(ce.Fragment,{children:[w(a.slice(0,M??T)),M!=null&&(0,ce.jsx)("div",{"aria-live":"polite",className:"tg-df-load-more-boundary",style:{alignItems:"center",color:"var(--tg-df-text-muted)",display:"flex",fontSize:"13px",fontWeight:600,gridColumn:"1 / -1",justifyContent:"center",marginTop:"16px",minHeight:"40px",overflowAnchor:"none"},children:"More products"}),M!=null&&w(a.slice(M,T)),u&&(0,ce.jsx)("div",{className:"tg-df-load-more-control",style:{width:"100%",display:"flex",justifyContent:"center",marginTop:"16px",gridColumn:"1 / -1",overflowAnchor:"none"},children:(0,ce.jsx)("button",{type:"button",className:"tg-df-tag-outline",style:{padding:"8px 24px",borderRadius:"100px",fontWeight:600,fontSize:"14px",cursor:"pointer"},"aria-busy":f,disabled:f,onClick:D=>{D.preventDefault(),D.stopPropagation(),v()},children:f?"Loading more products\u2026":"Load More"})}),a.length>0&&(0,ce.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(t2(a,T))}})]})})})}var S0=B(O(),1);var pn=B(ft(),1),nn=B(O(),1);function Pu({onScrollLeft:e,onScrollRight:t,showLeft:n,showRight:a}){return(0,nn.jsxs)(nn.Fragment,{children:[(0,nn.jsx)("button",{"aria-label":"Scroll left",className:"tg-df-scroll-btn left tg-df-desktop-only",onClick:e,style:{display:n?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,nn.jsx)("button",{"aria-label":"Scroll right",className:"tg-df-scroll-btn right tg-df-desktop-only",onClick:t,style:{display:a?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})}function qu(e){let t=(0,pn.useRef)(null),[n,a]=(0,pn.useState)(!1),[l,i]=(0,pn.useState)(!1),r=(0,pn.useCallback)(()=>{let u=t.current;u&&(a(u.scrollLeft>1),i(Math.ceil(u.scrollLeft+u.clientWidth)<u.scrollWidth-1))},[]);(0,pn.useLayoutEffect)(()=>{let u=t.current;if(!u)return;r();let c=requestAnimationFrame(r),s=typeof ResizeObserver>"u"?null:new ResizeObserver(r);return s?.observe(u),()=>{cancelAnimationFrame(c),s?.disconnect()}},[e,r]);let o=(0,pn.useCallback)(u=>{t.current?.scrollBy({left:u,behavior:"smooth"})},[]);return{onScroll:r,railRef:t,scrollLeft:()=>o(-240),scrollRight:()=>o(240),showLeft:n,showRight:l}}var jn=B(O(),1);function ui({containerClassName:e,itemClassName:t,items:n,loading:a,loadingKey:l,onItemClick:i,rowClassName:r,showCounters:o}){let u=qu(n.length);return n.length===0&&!a?null:(0,jn.jsxs)("div",{className:e,style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[n.length>0&&(0,jn.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,jn.jsx)("div",{className:r,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none"},onScroll:u.onScroll,children:n.length>0?n.map(c=>(0,jn.jsxs)("button",{className:t,onClick:()=>i(c.key),style:{border:"none",borderRight:"1px solid var(--tg-df-border)",padding:"12px 20px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"1px",cursor:"pointer",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:"6px",...t==="tg-df-brand-row-item"?{transition:"all 0.2s ease"}:{},background:c.selected?"var(--tg-df-bg-secondary)":"var(--tg-df-bg)",color:c.selected?"var(--tg-df-text-primary)":"var(--tg-df-text-muted)",fontWeight:c.selected?600:500},children:[c.label," ",l===c.key&&(0,jn.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading",style:{borderWidth:"2px",height:"12px",width:"12px"}}),o!==!1&&(0,jn.jsx)("span",{style:{color:"var(--tg-df-blue)",fontSize:"10px",...t==="tg-df-brand-row-item"?{fontWeight:400}:{}},children:c.count})]},c.key)):[1,2,3,4,5].map(c=>(0,jn.jsx)("div",{className:"tg-df-skeleton",style:{height:"36px",width:"80px",borderRadius:"18px",flexShrink:0,margin:"8px 12px"}},`${r}-skeleton-${c}`))})]})}var R0=B(O(),1);function C0({airedaleBrands:e,brands:t,loading:n,refreshing:a,onBrandToggle:l,selectedBrands:i,showAuthorCounters:r}){let o=e.length>0?e:t||[],u=o.slice(0,15).map(c=>({count:c.count||0,key:c.formatted_value,label:c.formatted_value,selected:i?.includes(c.formatted_value)||!1}));return(0,R0.jsx)(ui,{containerClassName:"tg-df-brands-row-container",itemClassName:"tg-df-brand-row-item",items:u,loading:n&&o.length===0,loadingKey:a?i?.[0]:null,onItemClick:c=>l?.(c),rowClassName:"tg-df-brands-row",showCounters:r})}var E0=B(O(),1);function T0({activeDealTag:e,airedaleTagCounts:t,airedaleTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>{let c=u.split(":::"),s=c[0];return{count:t[u]||0,key:s,label:c[1]||u,selected:e===s}});return(0,E0.jsx)(ui,{containerClassName:"tg-df-categories-row-container",itemClassName:"tg-df-category-row-item",items:o,loading:a&&n.length===0,loadingKey:l?e:null,onItemClick:i,rowClassName:"tg-df-categories-row",showCounters:r})}var x0=B(O(),1);function D0({activeFreeformTags:e,freeformTagCounts:t,freeformTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>({count:t[u.handle]||0,key:u.handle,label:u.label,selected:e.includes(u.handle)}));return(0,x0.jsx)(ui,{containerClassName:"tg-df-freeform-tags-row-container",itemClassName:"tg-df-freeform-tag-row-item",items:o,loading:a&&n.length===0,loadingKey:l&&e.at(-1)||null,onItemClick:i,rowClassName:"tg-df-freeform-tags-row",showCounters:r})}var _e=B(O(),1),n2=4;function M0({authors:e,clickedAuthorOverride:t,loading:n,refreshing:a,onAuthorClick:l,overriddenAuthorHandle:i,overriddenAuthorName:r,website:o}){let u=qu(e.length);return e.length===0&&!n?null:(0,_e.jsxs)("div",{className:"tg-df-authors-row-container",style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[e.length>0&&(0,_e.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,_e.jsx)("div",{className:"tg-df-authors-row tg-df-mobile-authors",onScroll:u.onScroll,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none",gap:"24px",padding:"4px 16px 2px 16px",alignItems:"flex-start"},children:e.length>0?e.map((c,s)=>{let f=Nr[c.brandKey]||Nr[o||"tomsguide"],d=t&&(i===c.handle||r===c.fullName);return(0,_e.jsxs)("div",{className:"tg-df-author-row-item",onClick:()=>l(c),style:{cursor:"pointer",display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px",opacity:t?d?1:.4:1},children:[(0,_e.jsxs)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px",borderRadius:"50%",boxShadow:d?"0 0 0 3px var(--tg-df-blue, #1F69FF)":"none"},children:[(0,_e.jsx)("img",{src:ri(c.image),alt:c.fullName,decoding:"async",loading:s<n2?"eager":"lazy",style:{width:"100%",height:"100%",borderRadius:"50%",objectFit:"cover",filter:t&&!d?"grayscale(100%)":"none"}}),d&&(0,_e.jsx)("span",{"aria-label":`Clear ${c.fullName} selection`,className:"tg-df-author-clear-badge",title:"Click again to clear selection",style:{alignItems:"center",backgroundColor:"#dc2626",border:"2px solid var(--tg-df-bg, #fff)",borderRadius:"50%",boxShadow:"0 1px 3px rgb(0 0 0 / 25%)",color:"#fff",display:"flex",fontSize:"15px",fontWeight:700,height:"20px",justifyContent:"center",lineHeight:1,position:"absolute",right:"-5px",top:"-5px",width:"20px",zIndex:1},children:(0,_e.jsx)("span",{"aria-hidden":"true",style:{display:"block",transform:"translateY(-1px)"},children:"\xD7"})}),f&&(0,_e.jsx)("img",{src:f,alt:"",className:"tg-df-author-brand-logo",decoding:"async",loading:"lazy",style:{position:"absolute",bottom:"-4px",right:"-4px",width:"24px",height:"24px",borderRadius:"50%",border:"2px solid var(--tg-df-bg, #fff)",backgroundColor:"#000",objectFit:"contain",filter:t&&!d?"grayscale(100%)":"none"}})]}),(0,_e.jsxs)("div",{style:{textAlign:"center"},children:[(0,_e.jsxs)("div",{className:"tg-df-author-row-name",style:{fontSize:"13px",fontWeight:700,color:"var(--tg-df-text)",lineHeight:"1.2"},children:[c.name,a&&d&&(0,_e.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading author products",style:{borderWidth:"2px",display:"inline-block",height:"11px",marginLeft:"4px",width:"11px"}})]}),c.role&&(0,_e.jsx)("div",{className:"tg-df-author-row-role",style:{fontSize:"11px",color:"var(--tg-df-text-muted)",lineHeight:"1.2",marginTop:"2px",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",overflow:"hidden",textOverflow:"ellipsis",wordBreak:"break-word"},children:c.role})]})]},c.handle)}):[1,2,3,4].map(c=>(0,_e.jsxs)("div",{className:"tg-df-author-row-item",style:{display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px"},children:[(0,_e.jsx)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px"},children:(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{width:"100%",height:"100%",borderRadius:"50%"}})}),(0,_e.jsxs)("div",{style:{textAlign:"center",width:"100%"},children:[(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"12px",width:"80%",margin:"0 auto 4px auto",borderRadius:"2px"}}),(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"10px",width:"60%",margin:"0 auto",borderRadius:"2px"}})]})]},`author-skeleton-${c}`))})]})}var Ja=B(O(),1);function _0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,freeformTagCounts:i,freeformTags:r,allAuthorsList:o,brands:u,clickedAuthorOverride:c,loading:s,refreshing:f,onAuthorClick:d,onBrandToggle:m,onTagClick:v,onFreeformTagClick:A,overriddenAuthorHandle:b,overriddenAuthorName:h,selectedBrands:g,showAuthorRail:p,showAuthorCounters:y,showBrandRail:C,showCategoryRail:R,showFreeformTagRail:T,website:M}){let w=R!==!1&&l.length>0||T!==!1&&r.length>0||C!==!1&&(n.length>0||!!u?.length)||p&&o.length>0;return!(p||R!==!1||T!==!1||C!==!1)||!w&&!s?null:(0,Ja.jsxs)("div",{id:"tg-df-spreadsheet-filters",style:{display:"block",marginBottom:"16px"},children:[p&&(0,Ja.jsx)(M0,{authors:o,clickedAuthorOverride:c,loading:s&&o.length===0,refreshing:f,onAuthorClick:d,overriddenAuthorHandle:b,overriddenAuthorName:h,website:M}),R!==!1&&(0,Ja.jsx)(T0,{activeDealTag:e,airedaleTagCounts:a,airedaleTags:l,loading:s,refreshing:f,onTagClick:v,showAuthorCounters:y}),T!==!1&&(0,Ja.jsx)(D0,{activeFreeformTags:t,freeformTagCounts:i,freeformTags:r,loading:s,refreshing:f,onTagClick:A,showAuthorCounters:y}),C!==!1&&(0,Ja.jsx)(C0,{airedaleBrands:n,brands:u,loading:s,refreshing:f,onBrandToggle:m,selectedBrands:g,showAuthorCounters:y})]})}var O0=B(ft(),1);var B0=[{value:"date_desc",label:"Most recent"},{value:"rating_desc",label:"Highest rating"},{value:"scored_first",label:"Scored products first"}];function Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}){return!!(a&&e!==!0&&t===!1&&n===!1)}function Fu({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a,lightweightReviewDelivery:l,showPriceDiscountFilters:i,showReviewSort:r}){return!!(l&&i===!1&&r===!1&&Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}))}function ju(e=!0){return e?B0:B0.filter(t=>t.value!=="scored_first")}function wa(e,t=!0){return!t&&e==="scored_first"?"date_desc":e||"date_desc"}var H=B(O(),1),N0=[{value:"all",label:"All Prices",shortLabel:""},{value:"under50",label:"Under $50",shortLabel:"< $50"},{value:"50_100",label:"$50 - $100",shortLabel:"$50-$100"},{value:"100_200",label:"$100 - $200",shortLabel:"$100-$200"},{value:"200_500",label:"$200 - $500",shortLabel:"$200-$500"},{value:"over500",label:"Over $500",shortLabel:"> $500"}],a2=[{value:"0",label:"Any discount"},...[5,10,15,20,25,30,40,50,60,70].map(e=>({value:String(e),label:`Min ${e}% off`}))];function l2({open:e}){return(0,H.jsx)("svg",{"aria-hidden":"true",className:e?"is-open":void 0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("path",{d:"m6 9 6 6 6-6"})})}function Yn(){return(0,H.jsx)("svg",{"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("polyline",{points:"20 6 9 17 4 12"})})}function k0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,brands:i,discountAmount:r,enabled:o,freeformTagCounts:u,freeformTags:c,includeScoredFirst:s,onBrandSelect:f,onBrandToggle:d,onDiscountAmountChange:m,onFreeformTagClear:v,onFreeformTagToggle:A,onPriceRangeChange:b,onReviewSortChange:h,onTagClear:g,onTagClick:p,priceRange:y,reviewSort:C,selectedBrands:R,showCounters:T,showBrandRail:M,showCategoryRail:w,showFreeformTagRail:D,showPriceDiscountFilters:k,showReviewSort:se}){let[I,j]=(0,O0.useState)(null);if(!o)return null;let He=l.map(x=>{let P=x.split(":::");return{count:a[x]||0,handle:P[0],label:P[1]||x}}),ze=n.length>0?n:i||[],St=He.find(x=>x.handle===e),Ie=y||"all",rn=!r||r==="all"?"0":r,Be=N0.find(x=>x.value===Ie),Je=k!==!1,nt=wa(C,s),X=ju(s),de=nt==="rating_desc"?"Highest rating":nt==="scored_first"?"Scored first":"Most recent",$e=x=>{j(P=>P===x?null:x)},Z=[];return w!==!1&&Z.push({active:!!e,label:`CATEGORIES${St?` (${St.label})`:""}`,menu:"categories"}),D!==!1&&Z.push({active:t.length>0,label:`KEYWORDS${t.length>0?` (${t.length})`:""}`,menu:"keywords"}),M!==!1&&Z.push({active:R.length>0,label:`BRANDS${R.length>0?` (${R.length})`:""}`,menu:"brands"}),Je&&Z.push({active:Ie!=="all",label:`PRICES${Be?.shortLabel?` (${Be.shortLabel})`:""}`,menu:"prices"}),(Je||se)&&Z.push({active:se?nt!=="date_desc":rn!=="0",label:se?`SORT REVIEWS (${de})`:`DISCOUNTS${rn!=="0"?` (${rn}%+)`:""}`,menu:se?"review-sort":"discounts"}),(0,H.jsxs)("div",{className:"tg-df-mobile-2x2-container",children:[(0,H.jsx)("div",{className:`tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--${Z.length%2===0?"even":"odd"}`,children:Z.map(x=>(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-grid-cell${x.active?" has-active-filter":""}${I===x.menu?" active":""}`,"aria-expanded":I===x.menu,onClick:()=>$e(x.menu),children:[(0,H.jsx)("span",{children:x.label}),(0,H.jsx)(l2,{open:I===x.menu})]},x.menu))}),w!==!1&&I==="categories"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${e?"":" selected"}`,onClick:()=>{g(),j(null)},children:[(0,H.jsx)("span",{children:"All Categories"}),!e&&(0,H.jsx)(Yn,{})]}),He.map(x=>{let P=e===x.handle;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{p(x.handle),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},x.handle)})]}),M!==!1&&I==="brands"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${R.length===0?" selected":""}`,onClick:()=>f?.([]),children:[(0,H.jsx)("span",{children:"All Brands"}),R.length===0&&(0,H.jsx)(Yn,{})]}),ze.map(x=>{let P=x.formatted_value,Q=R.includes(P);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${Q?" selected":""}`,onClick:()=>d?.(P),children:[(0,H.jsx)("span",{children:P}),Q?(0,H.jsx)(Yn,{}):T!==!1&&x.count?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},P)})]}),D!==!1&&I==="keywords"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${t.length===0?" selected":""}`,onClick:()=>{v(),j(null)},children:[(0,H.jsx)("span",{children:"All Keywords"}),t.length===0&&(0,H.jsx)(Yn,{})]}),c.map(x=>{let P=t.includes(x.handle);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>A(x.handle),children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1&&u[x.handle]?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:u[x.handle]}):null]},x.handle)})]}),I==="prices"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:N0.map(x=>{let P=Ie===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{b?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="discounts"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:a2.map(x=>{let P=rn===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{m?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="review-sort"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:X.map(x=>{let P=nt===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{h?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})})]})}var $a=B(ft(),1);var W=B(O(),1);function L0({airedaleBrands:e,airedaleTags:t,discountAmount:n,hidden:a,includeScoredFirst:l,onDiscountAmountChange:i,onPriceRangeChange:r,onReviewSortChange:o,priceRange:u,reviewSort:c,showReviewSort:s,showPriceDiscountFilters:f}){let d=(0,$a.useRef)(null),[m,v]=(0,$a.useState)(!1),[A,b]=(0,$a.useState)(!1),h=ju(l),g=wa(c,l),p=()=>{if(!d.current)return;let{scrollLeft:y,scrollWidth:C,clientWidth:R}=d.current;v(y>0),b(Math.ceil(y+R)<C-5)};return(0,$a.useEffect)(()=>(p(),window.addEventListener("resize",p),setTimeout(p,100),setTimeout(()=>{document.querySelector(".tg-df-categories-row")?.dispatchEvent(new Event("scroll")),document.querySelector(".tg-df-brands-row")?.dispatchEvent(new Event("scroll"))},150),()=>window.removeEventListener("resize",p)),[t,e]),(0,W.jsx)("div",{className:"tg-df-controls",id:"tg-df-controls",style:{display:a?"none":"flex",marginTop:"12px",marginBottom:"16px",justifyContent:"center"},children:(0,W.jsxs)("div",{className:"tg-df-filters-container",style:{position:"relative",width:"100%",maxWidth:"800px",margin:"0 auto"},children:[(0,W.jsx)("button",{className:"tg-df-scroll-btn left",style:{display:m?"flex":"none"},onClick:()=>d.current?.scrollBy({left:-200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,W.jsx)("button",{className:"tg-df-scroll-btn right",style:{display:A?"flex":"none"},onClick:()=>d.current?.scrollBy({left:200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M9 18l6-6-6-6"})})}),(0,W.jsxs)("div",{className:"tg-df-filters",ref:d,onScroll:p,children:[(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-legacy-price-wrapper",style:{display:f!==!1?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-price-filter","aria-label":"Filter Prices",value:u||"all",onChange:y=>r?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"All Prices"}),(0,W.jsx)("option",{value:"under50",children:"Under $50"}),(0,W.jsx)("option",{value:"50_100",children:"$50 - $100"}),(0,W.jsx)("option",{value:"100_200",children:"$100 - $200"}),(0,W.jsx)("option",{value:"200_500",children:"$200 - $500"}),(0,W.jsx)("option",{value:"over500",children:"Over $500"})]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-discount-filter-wrapper",style:{display:f!==!1&&!s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-discount-filter","aria-label":"Discount Amount",value:n||"all",onChange:y=>i?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"Any discount"}),[5,10,15,20,25,30,40,50,60,70].map(y=>(0,W.jsxs)("option",{value:y,children:["Min ",y,"%"]},y))]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-review-sort-wrapper",style:{display:s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M4 7h16M7 12h10m-7 5h4"})}),(0,W.jsx)("select",{className:"tg-df-filter-select",id:"tg-df-review-sort","aria-label":"Sort Reviews",value:g,onChange:y=>o?.(y.target.value),children:h.map(y=>(0,W.jsx)("option",{value:y.value,children:y.label},y.value))})]})]})]})})}var be=B(ft(),1);function kr(e,t){return e.filter(n=>{let a=n.handle.toLowerCase(),l=n.fullName.toLowerCase(),i=n.name.toLowerCase();return t.some(r=>{let o=r.articleauthorhandle||[],u=r.articleauthor||[],c=r.articleauthortext||[];return[...o,...u,...c].some(s=>{let f=String(s||"").toLowerCase();return f===a||f===l||f===i})})})}function Yu(e,t){return e.map((n,a)=>({index:a,profile:n,productCount:t[n.handle]||0})).sort((n,a)=>a.productCount-n.productCount||n.index-a.index).map(({profile:n})=>n)}function Vu(e,t){return e==="all-authors"||t==="all-authors"||t==="All authors"||!e&&!t}function Xu(e,t,n){let a=e;if((t||n)&&t!=="all-authors"&&n!=="all-authors"&&n!=="All authors"){if(t){let l=t.toLowerCase(),i=e.filter(r=>r.articleauthorhandle&&r.articleauthorhandle.some(o=>o.toLowerCase()===l));if(i.length>0)a=i;else if(n){let r=n.toLowerCase(),o=e.filter(u=>u.articleauthor&&u.articleauthor.some(c=>c.toLowerCase()===r));o.length>0&&(a=o)}}else if(n){let l=n.toLowerCase();a=e.filter(i=>i.articleauthor&&i.articleauthor.some(r=>r.toLowerCase()===l))}}return a}function sf(e,t,n){let a=0;if(t&&e.articleauthorhandle){let l=e.articleauthorhandle.findIndex(i=>i.toLowerCase()===t.toLowerCase());l>=0&&(a=l)}else if(n&&e.articleauthor){let l=e.articleauthor.findIndex(i=>i.toLowerCase()===n.toLowerCase());l>=0&&(a=l)}return a}function Qu(e,t,n){let a=sf(e,t,n),l=i=>typeof i=="string"?ee(i):i||"";return{authorName:e.articleauthortext?l(e.articleauthortext[a]):e.articleauthor?l(e.articleauthor[a]):"",authorRole:e.articleauthorrole?l(e.articleauthorrole[a]):"",authorImage:e.articleauthormedia?e.articleauthormedia[a]:""}}function Lr(e,t){let n=new Map;return e.forEach(a=>{if(!a.articleauthor)return;let l=t;if(a.documenturl)try{let f=new URL(a.documenturl).hostname.replace("www.","").split(".");f.length>0&&(l=f[0].toLowerCase())}catch{}let i=a.articleauthorhandle||[],r=a.articleauthor||[],o=a.articleauthortext||[],u=a.articleauthorrole||[],c=a.articleauthormedia||[];r.forEach((s,f)=>{if(!s||s==="null"||s.toLowerCase()==="all authors")return;let d=i[f]&&i[f]!=="null"?i[f]:s.toLowerCase().replace(/\s+/g,"-");if(!d||d==="null")return;let m=o[f]&&o[f]!=="null"?o[f]:s,v=u[f]&&u[f]!=="null"?u[f]:"",A=ee(String(m)),b=ee(String(v)),h=c[f]&&c[f]!=="null"?c[f]:"",g=A.split(" ")[0],p=_r(a,f,"short"),y=_r(a,f,"long"),C=Uu(a,f),R=n.get(d);!R&&A&&h?n.set(d,{...y?{bioLong:y}:{},...p?{bioShort:p}:{},name:g,fullName:A,handle:d,role:b,image:h,brandKey:l,...C.length>0?{socialNetworks:C}:{}}):R&&(!R.bioShort&&p&&(R.bioShort=p),!R.bioLong&&y&&(R.bioLong=y),!R.socialNetworks?.length&&C.length>0&&(R.socialNetworks=C))})}),Array.from(n.values())}var E=B(O(),1);function z0(e){let t=(0,be.useRef)(""),n=(0,be.useRef)(null),a=(0,be.useCallback)(()=>{n.current!==null&&(window.clearTimeout(n.current),n.current=null)},[]),l=(0,be.useCallback)(r=>{a(),t.current=r},[a]),i=(0,be.useCallback)((r,o,u=!1)=>{if(!e)return;if(r===t.current){a();return}let c=()=>{n.current=null,t.current=r,e(o)};a(),u?c():n.current=window.setTimeout(c,350)},[a,e]);return(0,be.useEffect)(()=>a,[a]),{save:i,synchronise:l}}function H0({contentKey:e,defaultText:t,kind:n,onChange:a,value:l}){let i=(0,be.useRef)(null),r=(0,be.useRef)(e),[o,u]=(0,be.useState)(!1),c=l??t,s=!!a,{save:f,synchronise:d}=z0(a);(0,be.useLayoutEffect)(()=>{let g=r.current!==e;i.current&&(g||document.activeElement!==i.current)&&(i.current.innerHTML!==c&&(i.current.innerHTML=c),d(c)),r.current=e},[e,d,c]);let m=(g=!1)=>{if(!i.current)return;let p=i.current.innerHTML;f(p,p===t?void 0:p,g)},v=(g,p)=>{document.execCommand(g,!1,p),m(!0)},A=n==="kicker"?{fontSize:"0.875rem",color:"#6B7280",fontStyle:"normal",margin:"0 0 0.25rem 0"}:{fontSize:"2.25rem",fontWeight:300,color:"#111827",margin:"0 0 0.25rem 0",lineHeight:1.1,letterSpacing:"-0.02em"},b=n==="kicker"?"tg-df-author-curated-by tg-df-author-kicker":"tg-df-author-name",h=()=>n==="kicker"?(0,E.jsx)("p",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}}):(0,E.jsx)("h2",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}});return s?(0,E.jsxs)("div",{className:"tg-df-author-header-text-shell",style:{position:"relative"},children:[o&&(0,E.jsxs)("div",{className:"tg-df-author-header-text-toolbar",role:"toolbar","aria-label":`${n==="kicker"?"Shop by text":"Site or author name"} formatting`,style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"0.25rem",margin:"0 auto 0.375rem",width:"fit-content",padding:"0.25rem 0.5rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",fontSize:"11px",zIndex:10},children:[(0,E.jsx)("span",{style:{color:"#64748b",padding:"2px 2px 2px 0"},children:"Editing"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("bold"),title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("italic"),title:"Italic",children:(0,E.jsx)("em",{children:"I"})}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{let g=prompt("Enter URL:");g&&v("createLink",g)},title:"Add link",children:"\u{1F517}"}),l!==void 0&&(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{i.current&&(i.current.innerHTML=t),d(t),a?.(void 0)},title:"Restore default",children:"Reset"})]}),h()]}):h()}function i2({contentKey:e,initialBio:t,defaultPlaceholder:n,onBioChange:a,stabilizeHeight:l=!1}){let r=(0,be.useRef)(null),o=(0,be.useRef)(e),u=(0,be.useRef)(n),c=(0,be.useRef)(!1),[s,f]=(0,be.useState)(!1),[d,m]=(0,be.useState)(!1),[v,A]=(0,be.useState)(!1),b=t||n,h=l&&b.replace(/<[^>]*>/g,"").trim().length>240,g=!!a,{save:p,synchronise:y}=z0(a);(0,be.useLayoutEffect)(()=>{let w=o.current!==e,D=u.current!==n;w&&(c.current=!1);let k=!t&&D&&!c.current;r.current&&(w||document.activeElement!==r.current||k)&&(r.current.innerHTML!==b&&(r.current.innerHTML=b),y(b)),o.current=e,u.current=n},[b,e,n,t,y]),(0,be.useLayoutEffect)(()=>{m(!1)},[e]),(0,be.useLayoutEffect)(()=>{if(!h||!r.current){A(!1);return}let w=r.current,D=()=>{A(w.scrollHeight>w.clientHeight+1)};if(D(),typeof ResizeObserver>"u")return;let k=new ResizeObserver(D);return k.observe(w),()=>k.disconnect()},[b,e,d,h]);let C=(w,D=null)=>{if(c.current=!0,document.execCommand(w,!1,D||void 0),r.current){let k=r.current.innerHTML;p(k,k===n?"":k,!0)}},R=(w=!1)=>{if(!r.current)return;let D=r.current.innerHTML;p(D,D===n?"":D,w)};return(0,E.jsxs)("div",{style:{position:"relative",maxWidth:"42rem",margin:"0 auto 0.5rem auto",padding:"0.25rem 0.5rem"},className:`tg-df-author-bio-shell${l?" tg-df-author-bio-shell--stable":""}`,children:[g&&s&&(0,E.jsxs)("div",{role:"toolbar","aria-label":"Introduction text formatting",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.375rem",marginBottom:"0.5rem",padding:"0.25rem 0.625rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",width:"fit-content",margin:"0 auto 0.5rem auto",fontSize:"12px",userSelect:"none",zIndex:10},children:[(0,E.jsx)("span",{style:{fontSize:"11px",color:"#64748b",fontWeight:500,marginRight:"2px"},children:"Editing \u2014 saves when you click away"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("bold"),style:{fontWeight:"bold",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("italic"),style:{fontStyle:"italic",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Italic",children:"I"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{let w=prompt("Enter URL:");w&&C("createLink",w)},style:{padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Add Link",children:"\u{1F517}"}),t&&(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:w=>{w.preventDefault(),w.stopPropagation(),r.current&&(r.current.innerHTML=n),c.current=!1,y(n),a&&a("")},style:{fontSize:"10px",padding:"2px 8px",borderRadius:"4px",background:"#fee2e2",color:"#991b1b",cursor:"pointer",border:"1px solid #fca5a5"},title:"Reset Bio",children:"Reset"})]}),(0,E.jsx)("div",{ref:r,contentEditable:g?!0:void 0,suppressContentEditableWarning:g,onFocus:g?()=>{f(!0)}:void 0,onBlur:g?()=>{f(!1),R(!0),c.current=!1}:void 0,onInput:g?()=>{c.current=!0}:void 0,className:`tg-df-author-bio ${g?"wysiwyg-bio-editable":"tg-df-author-bio--static"}${h?d?" tg-df-author-bio--expanded":" tg-df-author-bio--clamped":""}`,style:{color:"#4b5563",lineHeight:1.6,fontWeight:300,fontSize:"0.9375rem",textAlign:"center",outline:g&&s?"2px solid #3b82f6":"none",borderRadius:"6px",padding:"0.375rem 0.5rem",cursor:g?"text":"default",transition:"all 0.15s ease-in-out"}}),h?(0,E.jsx)("div",{className:"tg-df-author-bio-toggle-slot",children:(0,E.jsx)("button",{type:"button",className:"tg-df-author-bio-toggle","aria-expanded":d,onClick:()=>m(w=>!w),style:{visibility:v||d?"visible":"hidden"},children:d?"Show less":"Read more"})}):null]})}function r2(e){let t=(e||"").toLowerCase();return t==="linkedin"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.28 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.75M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z"})}):t==="twitter"||t==="x"?(0,E.jsx)("svg",{className:"icon-svg",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,E.jsx)("path",{fill:"currentColor",d:"M18 2h4l-8 9 9 11h-7l-5-7-6 7H2l7-9L1 2h7l5 6zm-1 18h2L7 4H5z"})}):t==="email"||t==="mail"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("rect",{width:"20",height:"16",x:"2",y:"4",rx:"2"}),(0,E.jsx)("path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"})]}):t==="instagram"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"12",cy:"12",r:"4.25",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"17.4",cy:"6.7",r:"1.25",fill:"currentColor"})]}):t==="steam"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("circle",{fill:"#0f1618",cx:"12",cy:"12",r:"12"}),(0,E.jsx)("path",{d:"m18.22 8.9a2.269 2.269 0 1 1 -2.27-2.265 2.267 2.267 0 0 1 2.27 2.265zm2.258.005a4.534 4.534 0 0 1 -4.533 4.526h-.1l-4.087 2.911v.161a3.4 3.4 0 0 1 -6.74.669l-4.549-1.879c-.032-.109-.057-.219-.085-.329a11.973 11.973 0 0 1 -.384-2.964c0-.214.02-.423.032-.635 0-.1.008-.206.016-.308l6.394 2.643a3.385 3.385 0 0 1 1.915-.591c.065 0 .127 0 .191.005l2.865-4.145v-.062a4.533 4.533 0 0 1 9.066 0zm-9.763 6.618a2.55 2.55 0 0 0 -3.262-1.411l1.525.63a1.877 1.877 0 1 1 -1.446 3.464l-1.475-.606a2.529 2.529 0 0 0 1.315 1.25 2.559 2.559 0 0 0 3.339-1.374 2.526 2.526 0 0 0 .004-1.951zm8.251-6.618a3.021 3.021 0 1 0 -3.021 3.015 3.022 3.022 0 0 0 3.021-3.013z",fill:"#fff"})]}):t==="youtube"?(0,E.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"})}):t==="twitch"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("path",{d:"m24 12a12 12 0 1 1 -12-12 12 12 0 0 1 12 12z",fill:"#111"}),(0,E.jsx)("path",{d:"m12.308 17.167-1.833 1.833h-1.818v-1.833h-3.357v-9.733l.925-2.434h12.475v8.517l-3.648 3.65zm5.175-10.95h-10.043v8.824h2.743v1.833l1.817-1.833h3.342l2.14-2.126zm-5.483 6.083v-3.65h-1.218v3.65zm3.342 0v-3.65h-1.216v3.65z",fill:"#fff"})]}):t==="facebook"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m13.079 19h-2.9v-7h-1.441v-2.408h1.442v-1.456c0-1.96.813-3.136 3.136-3.136h1.933v2.408h-1.2c-.91 0-.965.35-.965.966v1.218h2.183l-.257 2.408h-1.931z",fill:"currentColor"})}):t==="pinterest"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.336 5c-3.822 0-5.754 2.744-5.754 5.025a3.065 3.065 0 0 0 1.652 3.066.279.279 0 0 0 .407-.2l.154-.644a.373.373 0 0 0-.113-.448 2.341 2.341 0 0 1-.532-1.582 3.812 3.812 0 0 1 3.961-3.849 3.009 3.009 0 0 1 3.346 3.08c0 2.323-1.022 4.283-2.547 4.283a1.253 1.253 0 0 1-1.273-1.554 17.616 17.616 0 0 0 .713-2.856 1.081 1.081 0 0 0-1.092-1.2c-.854 0-1.553.881-1.553 2.071a2.954 2.954 0 0 0 .266 1.274l-1.038 4.383a9.389 9.389 0 0 0-.027 3.065.109.109 0 0 0 .2.042 8.737 8.737 0 0 0 1.457-2.631l.561-2.212a2.3 2.3 0 0 0 1.959 1.008c2.59 0 4.34-2.366 4.34-5.516a4.8 4.8 0 0 0-5.087-4.605z",fill:"currentColor"})}):t==="substack"?(0,E.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M22.539 8.242H1.46V5.406h21.08v2.836zM1.46 10.812V24L12 18.11 22.54 24V10.812H1.46zM22.54 0H1.46v2.836h21.08V0z"})}):t==="threads"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12.186 24h-.007c-3.582-.024-6.332-1.22-8.173-3.555C2.26 18.212 1.5 15.228 1.5 11.83 1.5 8.16 2.673 5.097 4.902 2.935 7.026.877 10.02 0 13.565 0c3.784 0 6.81 1.028 8.995 3.056 2.008 1.862 3.013 4.417 2.91 7.391-.122 3.518-1.57 6.136-4.304 7.781-1.892 1.138-4.103 1.62-6.57 1.433-.122.392-.266.769-.434 1.127-.514 1.096-1.18 1.96-1.982 2.569-.884.67-1.933 1.01-3.118 1.01-1.34 0-2.42-.42-3.21-1.248-.78-.82-1.17-1.89-1.17-3.18 0-1.512.52-2.73 1.545-3.62 1.018-.883 2.45-1.33 4.258-1.33.56 0 1.11.04 1.63.12-.04-.53-.13-1.02-.27-1.46-.26-.81-.71-1.45-1.34-1.92-.62-.47-1.42-.71-2.38-.71-1.09 0-2.02.29-2.77.87-.29.22-.68.17-.9-.12l-.76-1.03c-.22-.3-.16-.71.13-.93C7.43 5.37 8.95 4.9 10.8 4.9c1.64 0 2.99.41 4.02 1.22 1.04.81 1.73 1.93 2.06 3.33.15.65.25 1.42.3 2.31 1.68-.31 3.05-1.05 4.08-2.2 1.01-1.13 1.52-2.58 1.52-4.31 0-2.43-.84-4.32-2.5-5.62C18.63 1.32 16.32.5 13.56.5c-3.03 0-5.54.73-7.27 2.21C4.48 4.27 3.5 6.78 3.5 10c0 3.1.66 5.62 1.96 7.49 1.34 1.93 3.38 2.92 6.07 2.95 1.76.02 3.32-.34 4.64-1.07.28-.15.63-.05.78.22l.55.98c.15.28.05.63-.22.78-1.63.9-3.55 1.35-5.7 1.35z"})}):t==="tiktok"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.308 5.012c.763-.012 1.522 0 2.281-.012a3.636 3.636 0 0 0 1.02 2.434 4.12 4.12 0 0 0 2.473 1.043v2.349a6.177 6.177 0 0 1-2.449-.564 7.207 7.207 0 0 1-.947-.543c0 1.705.008 3.406-.01 5.105a4.442 4.442 0 0 1-.789 2.3 4.343 4.343 0 0 1-3.448 1.872 4.254 4.254 0 0 1-2.379-.6 4.393 4.393 0 0 1-2.127-3.331c-.014-.292-.019-.584-.007-.868a4.395 4.395 0 0 1 5.091-3.9c.013.864-.021 1.727-.021 2.591a2.007 2.007 0 0 0-2.558 1.237 2.316 2.316 0 0 0-.079.939 1.992 1.992 0 0 0 3.658.736 1.39 1.39 0 0 0 .239-.62c.057-1.043.034-2.082.041-3.126.006-2.351-.007-4.7.011-7.041z",fill:"currentColor"})}):t==="bluesky"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.879.139 2.588-.02 3.868.002 5.03c.08 4.201 1.84 10.024 3.931 12.397 2.091 2.373 4.545 1.573 5.467.927.817-.573 1.564-1.611 2.6-2.92 1.036 1.309 1.783 2.347 2.6 2.92.922.646 3.376 1.446 5.467-.927 2.091-2.373 3.851-8.196 3.931-12.397.022-1.162-.137-2.442-.9-3.151-.659-.613-1.664-.935-4.3-1.074C16.046 4.747 13.087 8.686 12 10.8z"})}):t==="github"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"})}):t==="rss"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("path",{d:"M4 11a9 9 0 0 1 9 9"}),(0,E.jsx)("path",{d:"M4 4a16 16 0 0 1 16 16"}),(0,E.jsx)("circle",{cx:"5",cy:"19",r:"1"})]}):(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,E.jsx)("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),(0,E.jsx)("path",{d:"M2 12h20"})]})}function U0({authorCount:e=0,authorArticlesList:t,authorBioLength:n,customBio:a,customHeaderKicker:l,customHeaderTitle:i,effectiveAuthorHandle:r,effectiveAuthorName:o,isReviewWidget:u=!1,onBioChange:c,onHeaderKickerChange:s,onHeaderTitleChange:f,selectedProfile:d,showAuthorBio:m=!0,showAuthorIdentity:v=!0,showSocialButtons:A=!0,stabilizeBio:b=!1,totalDealCount:h=0,website:g}){let p=Vu(r,o),y=g||"tomsguide",C=Gu[y]||y,R=Nr[y],T=r?.toLowerCase(),M=o?.toLowerCase(),w=t.find(Be=>T&&Be.articleauthorhandle?.some(Je=>Je?.toLowerCase()===T)||M&&Be.articleauthor?.some(Je=>Je?.toLowerCase()===M))||null,D=w?sf(w,r,o):0,k=d?.image||(w?c0(w,D):""),se=d?n==="short"?d.bioShort||"":d.bioLong||d.bioShort||"":w?_r(w,D,n):"",I=p?`Our team is dedicated to researching, reviewing and recommending the latest and best products in all the categories that matter to you. Below you can shop the latest ${h} ${u?"review ":""}recommendations from ${e} ${C} ${u?"editor tests":"editors"}.`:se||`Handpicked deals and recommendations curated by ${o||"our expert editorial team"}.`,j=d?.role||"",He=p?y0[y]||[]:d?.socialNetworks||[];!p&&w&&(j||(j=u0(w,D)),He.length===0&&(He=Uu(w,D)));let ze=d?.fullName||o||"Author Name",St=p?`site:${y}`:`author:${d?.handle||r||ze}`,Ie=A&&He.length>0,rn=!p&&!!j||Ie;return(0,E.jsxs)("div",{className:"tg-df-author-card",style:{textAlign:"center",padding:"1.75rem 1rem 0.25rem 1rem",margin:"0 auto",maxWidth:"48rem"},children:[v&&(p?(0,E.jsx)("div",{className:"tg-df-author-media-slot tg-df-author-image-container",style:{margin:"0 auto 0.75rem auto",textAlign:"center",minHeight:"180px",display:"flex",alignItems:"center",justifyContent:"center"},children:R?(0,E.jsx)("img",{src:R,alt:C,className:"tg-df-site-logo",style:{maxHeight:"150px",maxWidth:"520px",objectFit:"contain",margin:"0 auto",display:"block"}}):(0,E.jsx)("div",{style:{fontSize:"1.75rem",fontWeight:700,color:"#111827"},children:C})}):(0,E.jsx)("div",{className:"tg-df-author-media-slot",children:(0,E.jsxs)("div",{className:"tg-df-author-profile-image-wrapper",children:[k?(0,E.jsx)("img",{src:ri(k),alt:ze,className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",objectFit:"cover",display:"block"}}):(0,E.jsx)("div",{className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",background:"#e2e8f0",display:"block"}}),R?(0,E.jsx)("img",{src:R,alt:"",className:"tg-df-author-profile-brand-logo"}):null]})})),v&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(H0,{contentKey:`${St}:kicker`,defaultText:u?"Reviews shop by":"Shop by",kind:"kicker",onChange:s,value:l}),(0,E.jsx)(H0,{contentKey:`${St}:title`,defaultText:p?C:ze,kind:"title",onChange:f,value:i}),rn&&(0,E.jsxs)("div",{className:`tg-df-author-meta-slot${p?" tg-df-author-meta-slot--site":""}${Ie?"":" tg-df-author-meta-slot--no-social"}`,children:[!p&&j?(0,E.jsx)("div",{className:"tg-df-author-role",id:"tg-df-author-role-display",style:{fontSize:"0.9375rem",fontWeight:500,color:"var(--tg-df-blue, #1F69FF)",margin:"0 0 0.5rem 0",lineHeight:1.3},children:j}):null,Ie?(0,E.jsx)("div",{className:"tg-df-author-social-links",children:He.map(Be=>(0,E.jsx)("a",{href:Be.href,target:"_blank",rel:"noopener noreferrer",title:Be.label,"aria-label":Be.label,className:"tg-df-author-social-btn","data-social-key":Be.key.toLowerCase(),children:r2(Be.key)},Be.key))}):null]})]}),m&&(0,E.jsx)(i2,{contentKey:St,initialBio:a,defaultPlaceholder:I,onBioChange:c,stabilizeHeight:b})]})}var te=B(O(),1);function df(e){if(!e||typeof e!="object")return"";if(e.type==="voucher_code"&&e.display_value)return e.display_value;let t=Array.isArray(e)?e:Object.keys(e).filter(n=>Object.prototype.hasOwnProperty.call(e,n)).map(n=>e[n]);for(let n of t){let a=df(n);if(a)return a}return""}function o2({endTime:e}){if(!e)return null;let t=e;!isNaN(Number(t))&&String(t).length===10&&(t=Number(t)*1e3);let n=new Date(t),a=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"});return(0,te.jsxs)("span",{className:"tg-df-voucher-expiry",children:[(0,te.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginRight:"4px"},children:[(0,te.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,te.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),"Expires ",a.format(n)]})}function G0({error:e,loading:t,merchant:n,onClose:a,vouchers:l}){return(0,te.jsx)("div",{className:`tg-df-modal-backdrop ${n?"active":""}`,onClick:i=>{i.target===i.currentTarget&&a()},children:(0,te.jsxs)("div",{className:"tg-df-modal",children:[(0,te.jsxs)("div",{className:"tg-df-modal-header",children:[(0,te.jsx)("h3",{className:"tg-df-modal-title",children:n?`${n} Coupons & Deals`:"Available Coupons & Deals"}),(0,te.jsx)("button",{className:"tg-df-modal-close",onClick:a,children:(0,te.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,te.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,te.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),(0,te.jsx)("div",{className:"tg-df-modal-body",children:t?(0,te.jsx)("div",{className:"tg-df-message",children:(0,te.jsx)("div",{className:"tg-df-coupon-spinner",style:{width:"24px",height:"24px",borderColor:"#ccc",borderTopColor:"#3b82f6"}})}):e?(0,te.jsx)("div",{className:"tg-df-message",children:"Failed to load vouchers."}):l.length===0?(0,te.jsxs)("div",{className:"tg-df-message",children:["No active vouchers found for ",n,"."]}):l.map((i,r)=>{let o=i.offer?.name||i.offer?.title||i.name||i.title||i.model_name||"Voucher",u=i.offer?.link||i.offer?.url||i.link||i.url||"#",c=i.merchant,s=Array.isArray(c)?c[0]?.logo_url||"":c?.logo_url||"",f=df(i.offer)||df(i)||i.offer?.voucher_code||i.voucher_code||"",d=i.offer?.end_time||i.end_time||"";return(0,te.jsxs)("a",{href:u,target:"_blank",rel:"noopener nofollow",className:"tg-df-voucher-item",children:[s?(0,te.jsx)("img",{src:s,alt:"Logo",className:"tg-df-voucher-logo"}):(0,te.jsx)("div",{className:"tg-df-voucher-logo",style:{background:"#e2e8f0"}}),(0,te.jsxs)("div",{className:"tg-df-voucher-content",children:[(0,te.jsx)("h4",{className:"tg-df-voucher-title",children:o}),(0,te.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:"8px"},children:[f&&(0,te.jsxs)("span",{className:"tg-df-voucher-code",title:"Copy to clipboard",onClick:m=>{m.preventDefault(),m.stopPropagation();let v=m.currentTarget;navigator.clipboard.writeText(f).then(()=>{v.classList.add("copied");let A=v.querySelector(".tg-df-voucher-code-text"),b=v.querySelector(".tg-df-voucher-copy-icon"),h=A.innerText,g=b.innerHTML;A.innerText="Copied!",b.innerHTML='<polyline points="20 6 9 17 4 12"><\/polyline>',setTimeout(()=>{v.classList.remove("copied"),A&&(A.innerText=h),b&&(b.innerHTML=g)},2e3)})},children:[(0,te.jsx)("span",{className:"tg-df-voucher-code-text",children:f}),(0,te.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:"6px",flexShrink:0},className:"tg-df-voucher-copy-icon",children:[(0,te.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,te.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})]}),d&&(0,te.jsx)(o2,{endTime:d})]})]})]},r)})})]})})}var N=B(ft(),1);function ci(e){if(!e||!e.articlepage)return[];try{let t=e.articlepage;if(!Array.isArray(t))return typeof t=="string"?JSON.parse(t):t;if(t.length===0)return[];let n=t[0];return typeof n=="string"?JSON.parse(n):Array.isArray(n)?n:n&&typeof n=="object"&&"type"in n?t:n}catch{return[]}}function si(e,t=!1,{includeCollections:n=!0,includeDeals:a=!0}={}){let l=t?e.filter(r=>r.type==="buying-guide"):[];if(l.length>0)return l;let i=e.filter(r=>r.type==="deal"||r.type==="featured-product");return a&&!n&&!t?i.filter(r=>r.type==="deal"):i}function di(e,t){if(!t||t.length===0)return!0;let n=e&&(e.brand||e.retailer)||"";if(!n)return!1;let a=n.replace(/^\d+\.\s*/,"").trim().toLowerCase();return t.some(l=>{let i=l.trim().toLowerCase();return a===i||a.startsWith(`${i} `)||a.includes(i)||i.includes(a)})}function wt(e){return!e||e==="auto"?"US":e}function an(e){return e==="GB"||e==="UK"?"GBP":e==="AU"?"AUD":e==="CA"?"CAD":["DE","FR","IT","ES","NL"].includes(e)?"EUR":"USD"}function P0(e,t){if(e.isBuyingGuideProduct||e.isReviewProduct)return!0;if(t==="unavailable")return!1;let n=String(e.isoCurrency||e.currency||"").trim().toUpperCase();return({$:"USD",A$:"AUD",CA$:"CAD","\xA3":"GBP","\u20AC":"EUR"}[n]||n)===an(t)}function fi(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=a?n.currency||(n.price&&typeof n.price=="object"?n.price.currency:""):l.currency||(typeof l=="string"?l:"")||n.currency||"";!i&&n.variants&&n.variants.length>0&&(i=n.variants[0].currency||"");let r="$",o="USD",u=(i||"").toString().toUpperCase().trim();return u==="GBP"||u==="\xA3"||u.includes("POUND")||u.includes("163")?(r="\xA3",o="GBP"):u==="EUR"||u==="\u20AC"||u.includes("EURO")||u.includes("8364")?(r="\u20AC",o="EUR"):u==="AUD"||u==="A$"?(r="A$",o="AUD"):u==="CAD"||u==="CA$"?(r="CA$",o="CAD"):u==="USD"||u==="$"||u.includes("DOLLAR")||u.includes("36")?(r="$",o="USD"):(o=an(t),o==="GBP"?r="\xA3":o==="AUD"?r="A$":o==="CAD"?r="CA$":o==="EUR"&&(r="\u20AC")),{isoCurr:o,currencyStr:r}}function Ku(e){let t=e.data||{},n=e.type==="featured-product",a=t.price||{},l=0,i=0;return n?(l=typeof a=="number"?a:a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):t.msrp?parseFloat(t.msrp):0):(l=a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):0),{rawPrice:l,rawMsrp:i}}function Sa(e,t){if(!t||t==="all"||e<=0)return!0;if(t==="under50"&&e>=50||t==="over50"&&e<=50||t==="over30"&&e<=30||t==="over500"&&e<=500)return!1;if(t.includes("_")){let[n,a]=t.split("_").map(Number);if(n&&e<n||a&&e>a)return!1}return!0}function Ca(e,t,n){if(!n||n==="0"||n==="all")return!0;let a=parseInt(n);return!(!isNaN(a)&&a>0&&(!t||t<=e||Math.round((1-e/t)*100)<a))}var Zu=[0,50,100,150,200,250,300,350,400,450],ff={parameter:"articleControlTag",value:"type_buying_guide"},u2={includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"deals"},{parameter:"articleControlTag",value:"sig-product-collection"}]},c2={pcgamer:{includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"deals"},{parameter:"articleControlTag",value:"sig-product-collection"},{parameter:"articleControlTag",value:"type_deal",requiredArticleType:"news",requiredControlTags:["deals","type_deal","channel_gaming_hardware"]}],buyingGuideScopes:[ff]},homesandgardens:{includeAllContent:!1,pageStarts:Zu,scopes:[{parameter:"articleType",value:"collection",inventoryKind:"collections"},{parameter:"articleControlTag",value:"sig-product-collection",inventoryKind:"collections"},{parameter:"articleControlTag",value:"van-hawk-collection-widget",inventoryKind:"collections"},{parameter:"articleControlTag",value:"shopping",requiredArticleType:"news",inventoryKind:"collections"},{parameter:"articleType",value:"deals",inventoryKind:"deals"},{parameter:"articleControlTag",value:"type_deal",requiredArticleType:"news",requiredControlTags:["shopping","type_deal"],inventoryKind:"deals"}],buyingGuideScopes:[{parameter:"articleType",value:"buying guide"},ff]},whowhatwear:{includeAllContent:!0,pageStarts:Zu,scopes:[{}]}};function Wu(e,{includeBuyingGuideProducts:t=!1,includeCollections:n=!0,includeDeals:a=!0}={}){let l=c2[e]||u2;if(l.includeAllContent)return l;let i=l.scopes.filter(r=>r.inventoryKind==="collections"?n:r.inventoryKind==="deals"?a:r.value==="sig-product-collection"?n:a);return t?{...l,scopes:[...i,...l.buyingGuideScopes||[ff]]}:{...l,scopes:i}}function gf(e){if(Array.isArray(e))return e;let t=e.data;return t&&Array.isArray(t)?t:[]}function q0(e){let t=new Set;return e.filter(n=>{let a=n.id||n.articleid||n.url;return!a||t.has(a)?!1:(t.add(a),!0)})}function Zt(e){return typeof e.articletype=="string"?e.articletype.toLowerCase():Array.isArray(e.articletype)&&e.articletype.length>0?e.articletype[0].toLowerCase():""}function Hr(e){return String(e||"").toLowerCase().replace(/[^a-z0-9]/g,"")}function mf(e){return[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]].map(Hr)}function s2(e){return Zt(e)==="review"&&mf(e).some(t=>t.includes("channelgaminghardware"))}function F0(e,t,n){let a=Zt(e),l=mf(e),i=c=>l.some(s=>s.includes(c)),r=a==="news"&&i("shopping")&&i("deal")&&i("typedeal"),o=a==="deals"||r,u=a==="collection"||i("sigproductcollection")||i("vanhawkcollectionwidget")||a==="news"&&i("shopping")&&!r||a==="idea"&&i("shopping")&&(i("sigproductcollection")||i("vanhawkcollectionwidget"));return t&&o||n&&u}function el(e,t=!0,n=!0,a){if(a==="homesandgardens")return F0(e,t,n);let l=Zt(e),i=mf(e),r=l==="deals"||i.some(u=>u.includes("typedeal")),o=i.some(u=>u.includes("sigproductcollection"));return t&&r||n&&o}function j0(e,t,n=!1,a=!1,l=!0,i=!0){if(a&&Zt(e)==="review")return t!=="pcgamer"||s2(e);if(t==="homesandgardens")return Zt(e)==="buying guide"?n:F0(e,i,l);let r=Wu(t,{includeBuyingGuideProducts:n,includeCollections:l,includeDeals:i});if(r.includeAllContent)return i&&l?!0:n||el(e,i,l);let o=Zt(e),u=[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]],c=f=>!f.requiredArticleType||o===f.requiredArticleType.toLowerCase(),s=f=>!f.requiredControlTags||f.requiredControlTags.every(d=>u.some(m=>typeof m=="string"&&Hr(m).includes(Hr(d))));return r.scopes.some(f=>!c(f)||!s(f)?!1:f.parameter==="articleType"?o===f.value.toLowerCase():f.parameter==="articleControlTag"?u.some(d=>typeof d=="string"&&Hr(d).includes(Hr(f.value))):!1)}function hf(e,t){let n=e.map(a=>({...a}));return t.filter(a=>(a.isBuyingGuideProduct||a.isReviewProduct)&&a.brand).forEach(a=>{let l=String(a.brand).trim();if(!l)return;let i=n.find(r=>r.formatted_value.toLowerCase()===l.toLowerCase());i?i.count++:n.push({formatted_value:l,count:1})}),n.sort((a,l)=>l.count-a.count)}function Iu(e,t){let n={};return e.forEach(a=>{if(!a.articlepage)return;let l=ci(a),i=si(l,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});(t.includeDeals===!1||t.includeCollections===!1)&&!i.some(r=>r.type==="buying-guide")&&!el(a,t.includeDeals,t.includeCollections,t.website)||i.forEach(r=>{if(fi(r,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:o,rawMsrp:u}=Ku(r);if(!Sa(o,t.priceRange)||!Ca(o,u,t.discountAmount))return;let c=r.data||{},s=c.brand||c.retailer;if(!s)return;let f=s.replace(/^\d+\.\s*/,"").trim(),d=f.toLowerCase(),m=Object.keys(n).find(v=>v.toLowerCase()===d);m?n[m]++:(f===f.toLowerCase()&&(f=f.replace(/\b\w/g,v=>v.toUpperCase())),n[f]=1)})}),Object.keys(n).map(a=>({formatted_value:a,count:n[a]})).sort((a,l)=>l.count-a.count)}function d2(e){return String(e||"").trim().toLowerCase()}function Ju(e){return(Array.isArray(e)?e:[e]).map(d2).filter(Boolean)}function pf(e){let t=Ju(e.articletype),n=[...Ju(e.articlecontroltag),...Ju(e.articletagtypetaghandle)];return t.includes("deals")||n.some(a=>a.replace(/[\s-]+/g,"_")==="type_deal")}function V0(e){let t=Array.isArray(e)?e[0]:e,n=new Date(String(t||"")).getTime();return Number.isFinite(n)?n:null}function f2(e){for(let t of[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]){let n=V0(t);if(n!==null)return n}return null}function g2(e){for(let t of[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]){let n=V0(t);if(n!==null)return n}return null}function Y0(e){return Ju(e.articletype).includes("review")}function yf(e,t=new Date,n=0){let a=pf(e)?1:Y0(e)?36:n;if(a<=0)return!0;let l=Y0(e)?g2(e):f2(e);if(l===null)return!0;let i=new Date(t);return i.setMonth(i.getMonth()-a),l>=i.getTime()}function tl(e,t,n=0){return e.filter(a=>yf(a,t,n))}var m2=15;function Q0(e){return Array.isArray(e.articlemedia)?e.articlemedia[0]:""}function zr(e){return Array.isArray(e.documenturl)?e.documenturl[0]:e.documenturl||""}function h2(e){return kt(String(e||"").replace(/^\d+\.\s*/,"").trim())}function tt(e){return Array.isArray(e)?e.map(tt).find(Boolean)||"":typeof e=="string"||typeof e=="number"?String(e).trim():""}function vf(e,t=!1){return(t?[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]:[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]).map(tt).find(Boolean)||""}function p2(e,t,n){let a=tt(e).match(/^\s*(\d+)\s*[.)]\s*/)?.[1];return a||[t.rank,t.position,t.number,t.productNumber,t.product_number].map(tt).map(i=>i.match(/^\s*(\d+)\s*$/)?.[1]||"").find(Boolean)||String(n+1)}function y2(e){let t=tt(e);try{t=new URL(t).pathname}catch{}return t=t.split(/[?#]/)[0].split("/").filter(Boolean).at(-1)||"",t.split(/[-_]+/).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function v2(e){return tt(e.documenthandle)||tt(e.document_handle)||zr(e)||tt(e.documentname)||tt(e.documentnametext)}function b2(e,t){if(!t)return"";let n=t.length>m2?"Ranked":t;return`#${e} ${n}`}function A2(e){if(typeof e=="object"&&e)return String(e["data-model-name"]||"");try{return String(JSON.parse(String(e||""))["data-model-name"]||"")}catch{return""}}function w2(e){let t=e.brand||e.productBrand||e.manufacturer||e.maker||"";return typeof t=="string"?kt(t.replace(/^\d+\.\s*/,"").trim()):""}function S2(e){let t=e.price&&typeof e.price=="object"?e.price:{},n=Number(t.salePrice||t.price||e.salePrice||e.current_price||(typeof e.price=="number"?e.price:0)),a=Number(t.wasPrice||t.msrp||e.was_price||e.msrp||0),l=e.url||e.link?.url||e.link?.href||"";return{currency:t.currency||e.currency||"",rawMsrp:Number.isFinite(a)?a:0,rawPrice:Number.isFinite(n)?n:0,url:l}}function bf(e){let t=e?.review||{},n=t.rating??t.starRating??t.score??e?.rating??e?.starRating??e?.score,a=Number(n);if(!Number.isFinite(a)||a<=0)return null;let l=a>5?a/20:a;return Math.min(l,5)}function K0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,imageUrl:i}){let r=t.data||{},o=r.review||{},u=h2(r.title),c=p2(r.title,r,a),s=y2(v2(e)),f=zr(e),d=S2(r),m=!!d.url,v=m?d.url:o.url||f,A=i||Q0(e);return{id:`airedale-buying-guide-${n}-${a}`,url:v,image:A,fallbackImage:A,title:u,brand:w2(r),productName:u,merchant:"",rawPrice:d.rawPrice,rawMsrp:d.rawMsrp,price:d.rawPrice>0?String(d.rawPrice):"",msrp:d.rawMsrp>0?String(d.rawMsrp):"",currency:d.currency,isoCurrency:"",isCheckPrice:d.rawPrice<=0,savingLabel:"",savingType:"none",isPrime:!1,starRating:bf(r),description:"",text:"",subtitle:kt(r.subtitle||""),pros:Array.isArray(r.pros)?r.pros:[],cons:Array.isArray(r.cons)?r.cons:[],...l,documentUrl:zr(e),modifiedDate:vf(e),isFeatured:!1,isBuyingGuideProduct:!0,buyingGuideBadge:b2(c,s),hawkModelName:A2(r.hawk),hasCommerceOffer:m,sourceArticleUrl:f}}function C2(e){return gi(e)||tt(e.documentnametext)||tt(e.documentname)}function $u(e){if(Array.isArray(e))return e.map($u).find(Boolean)||"";if(e&&typeof e=="object"){let n=e,a=tt(n["data-widget-type"]||n.dataWidgetType||n.widgetType).toLowerCase(),l=tt(n["data-model-name"]||n.dataModelName||n.modelName);return a==="review"&&l?l:Object.values(n).map($u).find(Boolean)||""}if(typeof e!="string")return"";let t=[e,e.replace(/\\"/g,'"').replace(/\\u0022/gi,'"')];for(let n of t){try{let l=$u(JSON.parse(n));if(l)return l}catch{}let a=n.match(/["']data-widget-type["']\s*:\s*["']review["'][\s\S]{0,1500}?["']data-model-name["']\s*:\s*["']([^"']+)["']/i);if(a?.[1])return a[1].trim()}return""}function gi(e){let t=tt(e.articlehawkmodels);if(t)return t;for(let n of[e.articlepage,e.articlebodypageblock,e.articlepageblock,e.fepjson,e.articlebodyclean]){let a=$u(n);if(a)return a}return""}function X0(e){return(Array.isArray(e)?e:[e]).map(t=>kt(tt(t))).filter(Boolean)}function Z0({article:e,articleIdentity:t,authorProfile:n}){let a=kt(gi(e)),l=kt(C2(e)),i=zr(e),r=Q0(e),o=kt(tt(e.productverdict));return{id:`airedale-review-${t}`,url:i,image:r,fallbackImage:r,title:l,brand:"",productName:l,merchant:"",rawPrice:0,rawMsrp:0,price:"",msrp:"",currency:"",isoCurrency:"",isCheckPrice:!0,savingLabel:"",savingType:"none",isPrime:!1,starRating:bf({rating:e.productrating}),description:o,text:o,...n,documentUrl:i,modifiedDate:vf(e,!0),isFeatured:!1,isReviewProduct:!0,hawkModelName:a||l,hasCommerceOffer:!1,sourceArticleUrl:i,pros:X0(e.productpros),cons:X0(e.productcons)}}function kt(e){return typeof e=="string"?ee(e):e}function W0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,currencyString:i,isoCurrency:r,presentation:o,pricing:u}){let c=t.data||{},{isFeatured:s,externalUrl:f,summaryTitle:d,description:m,imageUrl:v,merchantName:A}=o,{rawPrice:b,rawMsrp:h,savingLabel:g}=u;return{id:`airedale-${n}-${a}`,url:f,image:v,fallbackImage:v,title:kt(d),brand:kt(c.brand||""),productName:kt(c.productName||""),merchant:kt(A),rawPrice:b,rawMsrp:h,price:b>0?b.toString():"",msrp:h>0?h.toString():"",currency:i,isoCurrency:r,isCheckPrice:!b,savingLabel:g,savingType:h>b?"amount":"none",isPrime:!1,starRating:bf(c),description:kt(m),text:kt(c.text||""),...l,documentUrl:zr(e),modifiedDate:vf(e),isFeatured:s,hasCommerceOffer:!!f}}function I0(e,t){let n=t.data||{},a=t.type==="featured-product",l=n.link||{},i=n.image||{};n.brand&&(n.brand=n.brand.replace(/^\d+\.\s*/,"").trim());let r=a?n.url:l.href||null,o=a?n.name||n.brand:n.productName||l.label||(Array.isArray(e.articlename)?e.articlename[0]:e.articlename),u=a?n.strapline||"":n.text||"";if(!a&&!n.productName&&n.text){let f=n.text.split(/<br\s*\/?>/i);if(f.length>1)o=f[0].replace(/<[^>]+>/g,"").trim(),u=f.slice(1).join(" ").replace(/<br\s*\/?>/gi," ").replace(/<\/?(p|div)[^>]*>/gi," ").replace(/<[^>]+>/g,"").replace(/\s+/g," ").trim();else{let d=n.text.match(/<strong>(.*?)<\/strong>/);d&&(o=d[1].replace(/<[^>]+>/g,"").trim(),o.endsWith(":")&&(o=o.slice(0,-1)))}}let c=a?i.mos:i.src||null;c?.startsWith("//")&&(c=`https:${c}`),u=u.replace(/<br\s*\/?>/gi," ").replace(/<\/?(p|div)[^>]*>/gi," ").replace(/<[^>]+>/g,"").replace(/\s+/g," ").replace(/View Deal$/i,"").trim();let s=n.retailer||"";if(!s&&r)try{s=new URL(r).hostname.replace("www.","").split(".")[0],s=s.charAt(0).toUpperCase()+s.slice(1)}catch{}return s||(s="Retailer"),{isFeatured:a,externalUrl:r,summaryTitle:o,description:u,imageUrl:c,merchantName:s}}function J0(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=0,r=0;a?(i=typeof n.salePrice=="number"&&n.salePrice>0?n.salePrice:typeof n.price=="number"?n.price:0,r=typeof n.salePrice=="number"&&typeof n.price=="number"&&n.price>n.salePrice?n.price:0):(i=l.amount?parseFloat(l.amount):0,r=l.amountWas?parseFloat(l.amountWas):0);let o=0,u="";return i>0&&r>i&&(o=parseFloat((r-i).toFixed(2)),u=`Save ${t}${o}`),{rawPrice:i,rawMsrp:r,savingLabel:u}}function R2(e,t){let n=e.indexOf(t);if(n<1)return"";let a=e[n-1]?.data||{},i=a.slides?.[0]?.image||a.image||a;return i?.src||i?.mos||""}function Ur(e,{activeRegionCode:t,targetIso:n,selectedBrands:a,priceRange:l,discountAmount:i,authorHandle:r,authorName:o,createFallbackIdentity:u=Math.random,includeBuyingGuideProducts:c=!1,includeCollections:s=!0,includeDeals:f=!0,includeReviewProducts:d=!1,website:m}){let v=[],A=new Set;return e.forEach(b=>{if(d&&Zt(b)==="review"){v.push(Z0({article:b,articleIdentity:b.id||u(),authorProfile:Qu(b,r,o)}));return}if(!b.articlepage)return;let h=ci(b),g=si(h,c,{includeCollections:s,includeDeals:f});(f===!1||s===!1)&&!g.some(p=>p.type==="buying-guide")&&!el(b,f,s,m)||g.forEach((p,y)=>{if(p.type==="buying-guide"){v.push(K0({article:b,block:p,articleIdentity:b.id||u(),blockIndex:y,authorProfile:Qu(b,r,o),imageUrl:R2(h,p)}));return}let{isoCurr:C,currencyStr:R}=fi(p,t);if(C!==n)return;let T=p.data||{},M=I0(b,p),{externalUrl:w}=M,D=J0(p,R),{rawPrice:k,rawMsrp:se}=D;if(!(a&&a.length>0&&!di(T,a))&&Sa(k,l)&&Ca(k,se,i)){if(w){if(A.has(w))return;A.add(w)}v.push(W0({article:b,block:p,articleIdentity:b.id||u(),blockIndex:y,authorProfile:Qu(b,r,o),currencyString:R,isoCurrency:C,presentation:M,pricing:D}))}})}),v}function mi(e,t){return Ur(e,{...t,selectedBrands:[],priceRange:"all",discountAmount:"0"})}function $0(e,t){return Ur(e,t)}function Gr(e){return(Array.isArray(e)?e:[e]).filter(n=>typeof n=="string").map(n=>n.trim())}function ec(e){return e?.trim().toLowerCase()==="freeform"}function Af(e){return!!e&&!/[^\p{L}\p{N}\s]/u.test(e)}function wf(e){let t=Gr(e.articletag),n=Gr(e.articletaghandle),a=Gr(e.articletagtype),l=new Map;t.forEach((o,u)=>{let c=n[u];!ec(a[u])||!c||!Af(o)||l.set(c.toLowerCase(),{handle:c,label:o,requestValue:o})});let i=Gr(e.articletagtypetag),r=Gr(e.articletagtypetaghandle);return i.forEach((o,u)=>{let[c,...s]=o.split("|"),[f,...d]=(r[u]||"").split("|"),m=s.join("|").trim(),v=d.join("|").trim();!ec(c)||!ec(f)||!v||!Af(m)||l.has(v.toLowerCase())||l.set(v.toLowerCase(),{handle:v,label:m,requestValue:m})}),r.forEach(o=>{let[u,...c]=o.split("|"),s=c.join("|").trim();!ec(u)||!s||!Af(s)||l.has(s.toLowerCase())||l.set(s.toLowerCase(),{handle:s,label:s})}),[...l.values()]}function ev(e,t){if(t)return e.find(n=>n.handle.toLowerCase()===t.toLowerCase())?.requestValue}function hi(e,t){let n=(Array.isArray(t)?t:[t]).filter(a=>typeof a=="string").map(a=>a.trim().toLowerCase()).filter(Boolean);return n.length===0?e:e.filter(a=>wf(a).some(l=>n.includes(l.handle.toLowerCase())))}function T2(e){let t=new Map;return Array.isArray(e.articlecategory)?(e.articlecategory.forEach(n=>{if(typeof n!="string")return;let a=n.trim();a===a.toLowerCase()&&(a=a.replace(/\b\w/g,l=>l.toUpperCase())),a&&!t.has(a.toLowerCase())&&t.set(a.toLowerCase(),{handle:a,label:a})}),[...t.values()]):[]}function tv(e,t,n){let a={},l={},i={};e.forEach(u=>{let c=[];if(t.includeReviewProducts&&Zt(u)==="review"&&c.push(u.id||u.documenturl||u.documenthandle||""),u.articlepage)try{let s=ci(u),f=si(s,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});if((t.includeDeals===!1||t.includeCollections===!1)&&!f.some(d=>d.type==="buying-guide")&&!el(u,t.includeDeals,t.includeCollections,t.website))return;f.forEach(d=>{if(d.type==="buying-guide"){c.push(d.id||JSON.stringify(d.data||{}));return}if(fi(d,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:m,rawMsrp:v}=Ku(d);if(!Sa(m,t.priceRange)||!Ca(m,v,t.discountAmount))return;let A=d.data||{};if(t.selectedBrands&&t.selectedBrands.length>0&&!di(A,t.selectedBrands))return;let h=d.type==="featured-product"?A.primaryLink:A.link,g=A.url||A.link&&A.link.url||h&&h.url;c.push(g||JSON.stringify(A))})}catch{}c.length!==0&&n(u).forEach(s=>{let f=s.handle.toLowerCase(),d=Object.keys(a).find(m=>m.toLowerCase()===f);d||(d=s.handle,a[d]=new Set,l[d]=s.label,i[d]=s.requestValue),c.forEach(m=>a[d].add(m))})});let r={};return Object.keys(a).forEach(u=>{r[u]=a[u].size}),{tags:Object.keys(r).map(u=>({handle:u,label:l[u]||u,requestValue:i[u]})).sort((u,c)=>r[c.handle]-r[u.handle]),tagCounts:r}}function tc(e,t){let{tags:n,tagCounts:a}=tv(e,t,T2);return{tags:n.map(l=>l.label),tagCounts:a}}function nc(e,t){let{tags:n,tagCounts:a}=tv(e,t,wf);return{tags:n,tagCounts:a}}function E2(e,t){return e.documentUrl||e.sourceArticleUrl||e.articleId||`deal-${t}`}function yn(e,t,n){if(t!=="mix"||n!=="date_desc")return e;let a=new Map;e.forEach((o,u)=>{let c=E2(o,u),s=a.get(c)||[];s.push(o),a.set(c,s)});let l=[],i=0,r=!0;for(;r;)r=!1,a.forEach(o=>{let u=o[i];u&&(l.push(u),r=!0)}),i+=1;return l}var nv="compact-v1",D2={brand:"",currency:"",hasCommerceOffer:!1,isoCurrency:"",isCheckPrice:!0,isFeatured:!1,isPrime:!1,merchant:"",merchantId:"",msrp:"",price:"",rawMsrp:0,rawPrice:0,savingLabel:"",savingType:"none"},x2={hasCommerceOffer:!0,hawkPricePending:!1,rawMsrp:0,rawPrice:0};function av(e){return e.map(t=>{if(!t.isReviewProduct)return t;let n=String(t.sourceArticleUrl||t.documentUrl||t.url||""),a=t.fallbackImage??t.image??"",l={...D2,...t,fallbackImage:a,image:t.image??a,sourceArticleUrl:n,documentUrl:t.documentUrl??n,url:t.url??n,title:t.title??t.productName??"",text:t.text??t.description??"",hawkPricePending:t.hawkPricePending??!!t.hawkModelName,pros:t.pros??[],cons:t.cons??[]};return t.hawkRegionalCommerce&&(l.hawkRegionalCommerce=Object.fromEntries(Object.entries(t.hawkRegionalCommerce).map(([i,r])=>{let o=r,u=o.productName??l.productName,c=o.rawPrice??0,s=o.rawMsrp??0;return[i,{...x2,...o,fallbackImage:o.fallbackImage??a,image:o.image??a,productName:u,title:o.title??u??l.title,price:o.price??(c?String(c):""),msrp:o.msrp??(s?String(s):"")}]}))),l})}function ac(e,t,n=100){let a=new Set(e.slice(0,t).map((i,r)=>i.id||`visible-${r}`)),l=e.slice(0,t).filter(i=>i.isReviewProduct).length;return e.filter((i,r)=>{let o=i.id||`visible-${r}`;return a.has(o)?!0:i.isReviewProduct?(l+=1,l<=n):!1})}function lv(e,t){let n=new Map(t.map((a,l)=>[a.id||`enriched-${l}`,a]));return e.map((a,l)=>n.get(a.id||`enriched-${l}`)||a)}var M2=new Set(["deal","featured-product","gallery","buying-guide","text","section"]);function lc(e){return!!e&&typeof e=="object"}function iv(e){if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function rv(e){try{let t=iv(e);if(!Array.isArray(t)||!t[0])return;let n=t[0],a=typeof n=="string"?iv(n):Array.isArray(n)?n:lc(n)&&"type"in n?t:n;if(!Array.isArray(a))return;let l=a.filter(i=>lc(i)&&M2.has(i.type)).map(i=>i.type==="text"&&i.data?{type:"text",data:{paragraphs:Array.isArray(i.data.paragraphs)?i.data.paragraphs.slice(0,3):void 0,text:typeof i.data.text=="string"?i.data.text.slice(0,500):void 0}}:i.type==="section"&&i.data?{type:"section",data:{text:i.data.text,heading:i.data.heading,title:i.data.title}}:i);return l.length>0?[JSON.stringify(l)]:void 0}catch{return}}function ov(e){if(!Array.isArray(e))return[];let t=!1;return e.map(n=>{if(!lc(n))return n;let a=n.articlepage?rv(n.articlepage):void 0,l=!!(n.articleauthormedia||n.articleauthorrole),i=!!(!t&&(n.articleauthorbio||n.articleauthorlongbio||n.articleauthorsocialnetworks));return i&&(t=!0),{id:n.id,articlename:n.articlename,documentname:n.documentname,documentnametext:n.documentnametext,documenthandle:n.documenthandle,articlecategory:n.articlecategory,articletag:n.articletag,articletaghandle:n.articletaghandle,articletagtype:n.articletagtype,articletagtypetag:n.articletagtypetag,articletagtypetaghandle:n.articletagtypetaghandle,articlecontroltag:n.articlecontroltag,articletype:n.articletype,articleauthor:n.articleauthor,articleauthorhandle:n.articleauthorhandle,articleauthortext:n.articleauthortext,...l?{articleauthorrole:n.articleauthorrole,articleauthormedia:n.articleauthormedia}:{},articlestrapline:n.articlestrapline,articlesocialtitle:n.articlesocialtitle,documenturl:n.documenturl,articlemedia:n.articlemedia,articlehawkmodels:n.articlehawkmodels,productrating:n.productrating,productpros:n.productpros,productcons:n.productcons,productverdict:n.productverdict,contentmodifieddate:n.contentmodifieddate,modifieddate:n.modifieddate,createddate:n.createddate,datepublished:n.datepublished,publisheddate:n.publisheddate,...i?{articleauthorbio:n.articleauthorbio,articleauthorlongbio:n.articleauthorlongbio,articleauthorsocialnetworks:n.articleauthorsocialnetworks}:{},...a?{articlepage:a}:{}}})}function uv(e){return Array.isArray(e)?e.map(t=>{if(!lc(t))return t;let n=t.articlepage?rv(t.articlepage):void 0;return{id:t.id,articleid:t.articleid,articlename:t.articlename,documentname:t.documentname,documentnametext:t.documentnametext,documenthandle:t.documenthandle,articleauthor:t.articleauthor,articleauthorhandle:t.articleauthorhandle,articleauthortext:t.articleauthortext,articleauthorrole:t.articleauthorrole,articleauthormedia:t.articleauthormedia,articleauthorbio:t.articleauthorbio,articleauthorlongbio:t.articleauthorlongbio,articleauthorsocialnetworks:t.articleauthorsocialnetworks,articlecategory:t.articlecategory,articletag:t.articletag,articletaghandle:t.articletaghandle,articletagtype:t.articletagtype,articletagtypetag:t.articletagtypetag,articletagtypetaghandle:t.articletagtypetaghandle,articletype:t.articletype,articlestrapline:t.articlestrapline,articlesocialtitle:t.articlesocialtitle,documenturl:t.documenturl,articlemedia:t.articlemedia,articlehawkmodels:t.articlehawkmodels,productrating:t.productrating,productpros:t.productpros,productcons:t.productcons,productverdict:t.productverdict,url:t.url,contentmodifieddate:t.contentmodifieddate,modifieddate:t.modifieddate,createddate:t.createddate,datepublished:t.datepublished,publisheddate:t.publisheddate,content:t.content,dek:t.dek,image_thumbnail:t.image_thumbnail,intro:t.intro,paragraphs:t.paragraphs,strapline:t.strapline,subtitle:t.subtitle,title:t.title,...n?{articlepage:n}:{}}}):[]}function pi(e){if(!e?.modifiedDate)return 0;let t=Array.isArray(e.modifiedDate)?e.modifiedDate[0]:e.modifiedDate,n=new Date(t).getTime();return Number.isNaN(n)?0:n}function nl(e){return e?.hasCommerceOffer===!0?!0:e?.hasCommerceOffer===!1?!1:!!(!e?.isBuyingGuideProduct&&!e?.isReviewProduct&&e?.url)}function ln(e,t,n=!0){let a=!0;t==="date_desc"?e.sort((l,i)=>pi(i)-pi(l)):t==="price_asc"?e.sort((l,i)=>l.rawPrice-i.rawPrice):t==="price_desc"?e.sort((l,i)=>i.rawPrice-l.rawPrice):t==="discount_desc"?e.sort((l,i)=>{let r=l.rawMsrp>l.rawPrice?l.rawMsrp-l.rawPrice:0;return(i.rawMsrp>i.rawPrice?i.rawMsrp-i.rawPrice:0)-r}):t==="rating_desc"?e.sort((l,i)=>{let r=Number(l.starRating)||0;return(Number(i.starRating)||0)-r||pi(i)-pi(l)}):t==="scored_first"?e.sort((l,i)=>{let r=Number(l.starRating)>0?1:0;return(Number(i.starRating)>0?1:0)-r||pi(i)-pi(l)}):a=!1,a&&n&&e.sort((l,i)=>Number(nl(i))-Number(nl(l)))}function cv(e,t,n){let a=e;if(!a&&t){let l=n.find(i=>i.toLowerCase()===t?.toLowerCase());l&&(a=l)}return a}function Pr(e,t){if(!t)return e;let n=t.toLowerCase();return e.filter(a=>a.articlecategory&&Array.isArray(a.articlecategory)&&a.articlecategory.some(l=>{if(!l||typeof l!="string")return!1;let i=l.toLowerCase(),r=i.split(":::");return i===n||r[0]===n||i.includes(n)}))}function sv(e){let t=wt(e.region);return{activeRegionCode:t,targetIso:an(t)}}function al(e,t,{discountAmount:n,priceRange:a}={}){let l=!!(a&&a!=="all"),i=!!(n&&n!=="0"&&n!=="all");return!t?.length&&!l&&!i?e:e.filter(r=>!r.isBuyingGuideProduct&&!r.isReviewProduct?!0:t?.length&&!di({brand:r.brand},t)||l&&(!Number(r.rawPrice)||!Sa(Number(r.rawPrice),a))?!1:Ca(Number(r.rawPrice)||0,Number(r.rawMsrp)||0,n))}function _2(e,t){let n=e.articleauthorhandle||[],a=e.articleauthor||[],l=e.articleauthortext||[],i=new Set([t.handle.toLowerCase(),t.fullName.toLowerCase(),t.name.toLowerCase()]);return[...n,...a,...l].some(r=>i.has(String(r||"").toLowerCase()))}function Sf(e,t,n){let a=Object.fromEntries(e.map(l=>[l.handle,0]));return t.forEach(l=>{let i=mi([l],n).length;i!==0&&e.forEach(r=>{_2(l,r)&&(a[r.handle]+=i)})}),a}function Cf(e,t){let n=Xu(e,t.authorHandle,t.authorName),a=t.selectedArticleId?n.filter(A=>A.id===t.selectedArticleId):n,{activeRegionCode:l,targetIso:i}=sv(t),{tags:r,tagCounts:o}=tc(a,{activeRegionCode:l,targetIso:i,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),u=cv(t.activeDealTag,t.query,r),c=Pr(a,u),{tags:s,tagCounts:f}=nc(c,{activeRegionCode:l,targetIso:i,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),d=t.activeFreeformTags?.length?t.activeFreeformTags:t.activeFreeformTag?[t.activeFreeformTag]:[],m=d.flatMap(A=>{let b=s.find(h=>h.handle.toLowerCase()===A.toLowerCase());return b?[b.handle]:[]}),v=t.preserveFreeformTagSelection?d:m;return{activeDealTag:u,activeFreeformTag:v[0]||null,activeFreeformTags:v,activeRegionCode:l,authorArticles:n,freeformTagCounts:f,freeformTags:s,tagCounts:o,tags:r,targetArticles:hi(c,v),targetIso:i}}function ic(e,t,n,a){let l=Iu(e,{activeRegionCode:n,targetIso:a,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,website:t.website}),i=Ur(e,{activeRegionCode:n,targetIso:a,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website});ln(i,t.sort,t.prioritiseCommercialProducts);let r=yn(al(i,t.selectedBrands,{discountAmount:t.discountAmount,priceRange:t.priceRange}),t.productSelection,t.sort).map(o=>(o.isBuyingGuideProduct||o.isReviewProduct)&&o.hawkModelName?{...o,hawkPricePending:!0}:o);return{brands:l,displayedDeals:r,extractedDeals:i}}function dv(e,t){let{activeRegionCode:n,targetIso:a}=sv(t),l=Lr(e,t.website||"tomsguide"),i=e.filter(o=>mi([o],{activeRegionCode:n,targetIso:a,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}).length>0),r=al(Ur(e,{activeRegionCode:n,targetIso:a,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),t.selectedBrands,{discountAmount:t.discountAmount,priceRange:t.priceRange});return{authorCount:kr(l,i).length,deals:r}}function fv({allArticles:e,authorArticles:t,inventoryArticles:n,bakeReviewInventory:a,brands:l,couponMap:i,currentDealTag:r,currentFreeformTags:o,displayedDeals:u,options:c,resultCount:s,tagCounts:f,tags:d,freeformTagCounts:m,freeformTags:v,totalAuthorCount:A,totalDealCount:b}){let h=Lr(e,c.website||"tomsguide"),g=Sf(h,n,{activeRegionCode:wt(c.region),targetIso:an(wt(c.region)),selectedBrands:c.selectedBrands,priceRange:c.priceRange,discountAmount:c.discountAmount,includeBuyingGuideProducts:c.includeBuyingGuideProducts,includeCollections:c.includeCollections,includeDeals:c.includeDeals,includeReviewProducts:c.includeReviewProducts,website:c.website}),p=kr(h,e.filter(C=>mi([C],{activeRegionCode:wt(c.region),targetIso:an(wt(c.region)),includeBuyingGuideProducts:c.includeBuyingGuideProducts,includeCollections:c.includeCollections,includeDeals:c.includeDeals,includeReviewProducts:c.includeReviewProducts,website:c.website}).length>0)),y=Number(s)||12;return{activeDealTag:r,activeFreeformTag:o[0]||null,activeFreeformTags:o,allDeals:a?ac(u,y):u,authorArticles:ov(t),authors:Yu(p,g),brands:l,couponMap:i,deals:u.slice(0,y),reviewInventoryBaked:a,tagCounts:f,tags:d,freeformTagCounts:m,freeformTags:v,totalAuthorCount:A,totalDealCount:b}}function B2(e){return e&&e.widget&&e.widget.data&&Array.isArray(e.widget.data.offers)?e.widget.data.offers:e&&e.data&&Array.isArray(e.data.offers)?e.data.offers:Array.isArray(e)?e:e&&Array.isArray(e.offers)?e.offers:e&&e.offers&&Array.isArray(e.offers.offer)?e.offers.offer:e&&Array.isArray(e.data)?e.data:[]}function gv(e,t,n){let a={...n},l=new Set;return B2(e).forEach(r=>{let o="";r.merchant_name?o=r.merchant_name:r.merchant&&r.merchant[0]&&r.merchant[0].name?o=r.merchant[0].name:r.merchant&&r.merchant.name?o=r.merchant.name:r.retailer&&(o=r.retailer),o&&l.add(o.toLowerCase())}),t.forEach(r=>{a[r]=l.has(r.toLowerCase())?"has":"none"}),a}function mv(e){let t=[];return e?.widget?.data?.offers?t=e.widget.data.offers:e?.data?.offers?t=e.data.offers:Array.isArray(e)?t=e:e?.offers?.offer?t=Array.isArray(e.offers.offer)?e.offers.offer:[e.offers.offer]:e?.offers&&(t=Array.isArray(e.offers)?e.offers:[e.offers]),t}async function hv({couponMap:e,couponUrl:t,fetcher:n=fetch,merchants:a}){if(!t)return e;try{let l=await n(t.toString());return gv(await l.json(),a,e)}catch{let l={...e};return a.forEach(i=>{l[i]="none"}),l}}function pv({enrichingBuyingGuides:e,error:t,loading:n,loadingMore:a,refreshingFeed:l}){return t?"error":a?"loading_more":n?"loading_inventory":l?"refreshing_inventory":e?"enriching_visible_cards":"ready"}function yv(e,t){let n=Xu(tl(e),t.authorHandle,t.authorName),a=wt(t.region),l=an(a),{tags:i,tagCounts:r}=tc(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),o=Iu(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,website:t.website}),{tags:u,tagCounts:c}=nc(n,{activeRegionCode:a,targetIso:l,priceRange:t.priceRange,discountAmount:t.discountAmount,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website}),s=$0(n,{activeRegionCode:a,targetIso:l,selectedBrands:t.selectedBrands,priceRange:t.priceRange,discountAmount:t.discountAmount,authorHandle:t.authorHandle,authorName:t.authorName,includeBuyingGuideProducts:t.includeBuyingGuideProducts,includeCollections:t.includeCollections,includeDeals:t.includeDeals,includeReviewProducts:t.includeReviewProducts,website:t.website});ln(s,t.sort,t.prioritiseCommercialProducts);let f=yn(s,t.productSelection,t.sort);return{authorArticles:n,brands:o,deals:f,tagCounts:r,tags:i,freeformTagCounts:c,freeformTags:u}}var N2="fc-author-commerce-widget",vn="airedale-feeds";var rc=null;function vv(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function Rf(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function Tf(){return rc||(typeof window>"u"||typeof window.indexedDB>"u"?Promise.resolve(null):(rc=new Promise(e=>{let t=window.indexedDB.open(N2,14);t.onupgradeneeded=()=>{let n=t.result;n.objectStoreNames.contains(vn)||n.createObjectStore(vn,{keyPath:"key"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null)}),rc))}function bv({authorHandle:e,authorName:t,includeBuyingGuideProducts:n,includeCollections:a,includeDeals:l,includeReviewProducts:i,articleCategory:r,articleTag:o,pageStarts:u,reviewPageStarts:c,loadAllReviewPages:s,website:f}){return["v14",f||"tomsguide",e||"",t||"",n?"buying-guides":"",a===!1?"no-collections":"collections",l===!1?"no-deals":"deals",i?"reviews":"",r||"",o||"",u?.join(",")||"",c?.join(",")||"",s===!1?"review-pages-partial":""].map(d=>encodeURIComponent(d)).join("|")}async function O2(e){let t=await Tf();if(!t)return;let n=t.transaction(vn,"readwrite"),a=Rf(n);n.objectStore(vn).delete(e),await a}async function Av(e,t=Date.now()){try{let n=await Tf();if(!n)return null;let a=n.transaction(vn,"readonly"),l=await vv(a.objectStore(vn).get(e));if(!l||l.schemaVersion!==14||!Array.isArray(l.articles)||l.articles.length===0)return null;let i=Math.max(0,t-l.cachedAt);return i>864e5?(O2(e),null):{articles:l.articles,cachedAt:l.cachedAt,isFresh:i<=6e5}}catch{return null}}async function k2(e){let t=e.transaction(vn,"readwrite"),n=Rf(t),a=t.objectStore(vn);(await vv(a.getAll())).sort((i,r)=>r.cachedAt-i.cachedAt).slice(10).forEach(i=>a.delete(i.key)),await n}async function wv(e,t,n=Date.now()){if(t.length!==0)try{let a=await Tf();if(!a)return;let l=a.transaction(vn,"readwrite"),i=Rf(l);l.objectStore(vn).put({articles:t,cachedAt:n,key:e,schemaVersion:14}),await i,await k2(a)}catch{}}var Ef=[];var Mf=[],Df=0;function Sv(){for(;Df<4&&Mf.length>0;){let e=Mf.shift();if(!e)return;Df+=1,e.run().then(e.resolve,e.reject).finally(()=>{Df-=1,Sv()})}}function L2(e){return new Promise((t,n)=>{Mf.push({reject:n,resolve:t,run:e}),Sv()})}function xf(e){Ef.push(e),Ef.length>100&&Ef.shift()}async function oc(e,t,n=4){let a=new Array(e.length),l=0,i=Math.min(Math.max(1,n),e.length);return await Promise.all(Array.from({length:i},async()=>{for(;l<e.length;){let r=l;l+=1,a[r]=await t(e[r],r)}})),a}async function yi(e,t){return L2(async()=>{let n=t.fetcher||fetch,a=Date.now(),l=new AbortController,i=!1,r=()=>l.abort();if(t.signal?.aborted)return xf({durationMs:0,outcome:"aborted",source:t.source,startedAt:a}),{data:null,response:null};t.signal?.addEventListener("abort",r,{once:!0});let o=setTimeout(()=>{i=!0,l.abort()},8e3);try{let u=await n(e,{signal:l.signal}),c=u.ok?await u.json():null;return xf({durationMs:Date.now()-a,outcome:u.ok?"succeeded":"failed",source:t.source,startedAt:a}),{data:c,response:u}}catch{return xf({durationMs:Date.now()-a,outcome:i?"timed_out":t.signal?.aborted?"aborted":"failed",source:t.source,startedAt:a}),{data:null,response:null}}finally{clearTimeout(o),t.signal?.removeEventListener("abort",r)}})}var Bf="https://airedale.futurecdn.net/feeds/feed_1786707986217.json",H2="https://airedale.futurecdn.net/feeds/feed_1786702796175.json",z2="https://airedale.futurecdn.net/feeds/feed_1787582137748.json",U2=2,_f=new Map,Cv=new Map;function Rv(e){let t=new URL(e),n=String(t.searchParams.get("articleType")||"").trim().toLowerCase(),a=String(t.searchParams.get("articleControlTag")||"").replace(/[\s-]+/g,"_").toLowerCase();return n!=="deals"&&a!=="type_deal"?null:(t.searchParams.delete("start"),t.toString())}function G2(e){return!e.response?.ok||e.articles.length<50?!1:!e.articles.some(t=>pf(t)&&!yf(t))}function P2(e){return!e.parameter||!e.value?"":`&${e.parameter}=${encodeURIComponent(e.value)}`}function q2(e,t="",n=!1,a,l,{includeCollections:i=!0,includeDeals:r=!0}={},o){let u=Wu(e,{includeBuyingGuideProducts:n,includeCollections:i,includeDeals:r}),c=a?`&articleCategory=${encodeURIComponent(a)}`:"",s=o?`&articleTag=${encodeURIComponent(o)}`:"";return u.scopes.flatMap(f=>(l||u.pageStarts).map(d=>`${Bf}?site=${e}&limit=${50}&start=${d}${P2(f)}${t}${c}${s}`))}function Tv(e,t="",n,a=0,l){let i=e==="pcgamer"?"&articleControlTag=channel_gaming_hardware":"",r=n?`&articleCategory=${encodeURIComponent(n)}`:"",o=l?`&articleTag=${encodeURIComponent(l)}`:"";return`${H2}?site=${encodeURIComponent(e)}&articleType=review&limit=${50}&start=${a}${i}${t}${r}${o}`}function F2(e,t){return t!=="pcgamer"?e:e.map(n=>{let a=Array.isArray(n.articlecontroltag)?n.articlecontroltag:[];return a.some(l=>String(l).replace(/[^a-z0-9]/gi,"").toLowerCase()==="channelgaminghardware")?n:{...n,articlecontroltag:[...a,"channel_gaming_hardware"]}})}function j2(e,t){return`${z2}?site=${encodeURIComponent(e)}&documentHandle=${encodeURIComponent(t)}&limit=1`}async function Y2(e,t){let n=`${e}|${t}`,a=Cv.get(n);if(a)return a;let l=yi(j2(e,t),{source:"review-model-resolver"}).then(({data:i})=>i?gf(i)[0]:null).then(i=>i?gi(i):"").catch(()=>"");return Cv.set(n,l),l}async function Nf(e,t,n,a="date_desc"){let l=o=>{let u=[o.datepublished,o.publisheddate,o.createddate,o.contentmodifieddate,o.modifieddate].find(s=>s!=null&&String(s).trim()),c=new Date(Array.isArray(u)?u[0]:u).getTime();return Number.isFinite(c)?c:0},i=o=>{let u=Array.isArray(o.productrating)?o.productrating[0]:o.productrating;return Number(u)||0},r=e.filter(o=>Zt(o)==="review"&&!gi(o)&&typeof o.documenthandle=="string"&&o.documenthandle.trim()).sort((o,u)=>{let c=i(o),s=i(u);return a==="rating_desc"?s-c||l(u)-l(o):a==="scored_first"&&+(s>0)-+(c>0)||l(u)-l(o)}).slice(0,n);return await Promise.all(r.map(async o=>{let u=await Y2(t,o.documenthandle);u&&(o.articlehawkmodels=[u])})),e}function xv(e,t){let n=()=>{wv(e,uv(t))};if(typeof window<"u"&&typeof window.requestIdleCallback=="function"){window.requestIdleCallback(n,{timeout:2e3});return}setTimeout(n,0)}function V2(e,t){return e&&e!=="all-authors"?`&articleAuthorHandle=${encodeURIComponent(e)}`:t&&t!=="All authors"&&t!=="all-authors"?`&articleAuthor=${encodeURIComponent(t)}`:""}function X2({articleCategory:e,articleTag:t,authorParameter:n}){return!!(n&&!e&&!t)}async function Mv({authorHandle:e,authorName:t,fallbackAuthorName:n,includeBuyingGuideProducts:a,includeCollections:l,includeDeals:i,includeReviewProducts:r,onProgress:o,articleCategory:u,articleTag:c,pageStarts:s,reviewPageStarts:f,loadAllReviewPages:d,signal:m,throwOnFailure:v,website:A}){let b=A||"tomsguide",h=V2(e,t),g=[],p=!1,y=!0,C=w=>j0(w,b,a,r,l,i),R=()=>q0(g).map(w=>{let D=gi(w);return D&&!String(w.articlehawkmodels||"").trim()?{...w,articlehawkmodels:[D]}:w}).filter(C),T=()=>{let w=R();w.length>0&&o?.(w)};try{let w=q2(b,h,a,u,s,{includeCollections:l,includeDeals:i},c),D=[];r&&(f||[0]).forEach(X=>{let de=Tv(b,h,u,X,c);D.push(de),w.push(de)});let k=async(X,de=D.includes(X)?"review-feed":"author-feed")=>{let $e=await yi(X,{signal:m,source:de});for(let jr=0;jr<U2&&!$e.response?.ok&&!m?.aborted;jr+=1)$e=await yi(X,{signal:m,source:de});let{data:Z,response:x}=$e,P=Z?gf(Z):[],Q=b==="pcgamer"&&de.startsWith("review-feed")?F2(P,b):P,Vn={articles:Q,data:Z,isPcGamerHardwareReviewFeed:b==="pcgamer"&&de.startsWith("review-feed"),response:x,reviewTotalCount:D.includes(X)&&Number(x?.headers.get("x-total-count"))||null};return Q.length>0&&g.push(...Q),Vn},se=w.filter(X=>Number(new URL(X).searchParams.get("start")||0)===0),I=w.filter(X=>!se.includes(X)),j=await oc(se,X=>k(X));T();let He=new Map(se.flatMap((X,de)=>{let $e=Rv(X);return $e?[[$e,j[de]]]:[]})),ze=new Map,St=[];I.forEach(X=>{let de=Rv(X);if(!de){St.push(X);return}ze.set(de,[...ze.get(de)||[],X])});let[Ie,rn]=await Promise.all([oc(St,X=>k(X)),Promise.all([...ze.entries()].map(async([X,de])=>{let $e=[],Z=He.get(X);for(let x of de){if(!Z||!G2(Z))break;let P=await k(x);$e.push(P),Z=P}return $e}))]),Be=[...Ie,...rn.flat()],Je=[...j,...Be];p=Je.length>0&&Je.every(X=>!X.response?.ok);let nt=Je.find(X=>X.reviewTotalCount!==null)?.reviewTotalCount;if(d!==!1&&f&&nt&&nt>f.length*50){let X=new Set(f),de=[];for(let Z=0;Z<nt;Z+=50)X.has(Z)||de.push(Z);let $e=await oc(de,async Z=>await k(Tv(b,h,u,Z,c),"review-feed-page"));Je.push(...$e)}y=Je.every(X=>X.response?.ok)}catch(w){y=!1}if(v&&p)throw new Error("The author feed could not be loaded");let M=R();if(M.length===0&&X2({authorParameter:h,articleCategory:u,articleTag:c}))try{let w=await yi(`${Bf}?site=${b}&limit=150${h}`,{signal:m,source:"author-feed-fallback"});if(!w.response?.ok&&n&&(w=await yi(`${Bf}?site=${b}&limit=150&articleAuthor=${encodeURIComponent(n)}`,{signal:m,source:"author-feed-fallback"})),w.data){let D=w.data,k=Array.isArray(D)?D:D.data||[];k.length>0&&(M=k.slice(0,150))}}catch(w){}return{articles:M.filter(C),complete:!m?.aborted&&y}}function Ev(e,t){let n=_f.get(e);if(n)return n;let a=Mv(t).then(l=>(l.complete&&l.articles.length>0&&xv(e,l.articles),l)).finally(()=>{_f.delete(e)});return _f.set(e,a),a}async function Dv(e,t){let n=await Mv(t);return n.complete&&n.articles.length>0&&xv(e,n.articles),n}async function _v({onBackgroundRefresh:e,onProgress:t,...n}){let a=bv(n),l=await Av(a);return l?(t?.(l.articles),l.isFresh||(n.signal?Dv(a,n):Ev(a,n)).then(({articles:o,complete:u})=>{u&&o.length>0&&e?.(o)}),l.articles):(await(n.signal?Dv(a,{...n,onProgress:t}):Ev(a,{...n,onProgress:t}))).articles}function Of(e,t){let n=e.shipping?.prime===!0,a=e.merchant?.name||e.merchant_name||e.retailer||"Retailer";typeof e.merchant=="string"&&(a=e.merchant);let l=null,i=0,r=String(e.model_id||e.id||"");if(r&&t)if(t[r]&&t[r].score!=null)l=parseFloat(t[r].score);else{let o=Object.values(t).find(u=>String(u.model_id)===r||String(u.id)===r);o&&o.score!=null&&(l=parseFloat(o.score))}return l!=null&&(i=Math.round((l>10?l/20:l/2)*2)/2),{isPrime:n,merchant:a,starRating:i>0?i:null}}function kf(e){let t=String(e.price||e.current_price||"0"),n=String(e.was_price||e.msrp||e.original_price||"0"),a=parseFloat(t.replace(/[^0-9.]/g,""))||0,l=parseFloat(n.replace(/[^0-9.]/g,""))||0,i=a===0||t==="0.00"||t==="0",r=e.currency&&typeof e.currency=="string"?e.currency:e.currency_symbol&&typeof e.currency_symbol=="string"?e.currency_symbol:"$",o=ee(e.percentage_saving_label||"");!o&&l>a&&a>0&&(o=Math.round((l-a)/l*100)+"% OFF");let u=r;return u.includes("&")&&(u.includes("36")?u="$":u.includes("163")||u.includes("pound")?u="\xA3":(u.includes("8364")||u.includes("euro"))&&(u="\u20AC")),{rawPrice:a,rawMsrp:l,currency:u,isCheckPrice:i,savingLabel:o}}function Bv({query:e,region:t,retailer:n,selectedBrands:a,offerType:l,priceRange:i,discountAmount:r,resultCount:o}){let u=new URL("https://search-api.fie.future.net.uk/widget.php");if(u.searchParams.append("model_name",e),t&&t!=="auto"&&u.searchParams.append("area",t),n&&u.searchParams.append("filter_merchant_name",n),a&&a.length>0&&u.searchParams.append("filter_label[text_brand]",a.join(",")),l&&u.searchParams.append("offer",l),i&&i!=="all"){if(i==="under50")u.searchParams.append("filter_max_price","50");else if(i==="over50")u.searchParams.append("filter_min_price","50");else if(i==="over30")u.searchParams.append("filter_min_price","30");else if(i==="over500")u.searchParams.append("filter_min_price","500");else if(i.includes("_")){let[c,s]=i.split("_");c&&u.searchParams.append("filter_min_price",c),s&&u.searchParams.append("filter_max_price",s)}}if(r&&r!=="0"){let c=(100-parseInt(r))/100;u.searchParams.append("min_discount_ratio",c.toString())}return u.searchParams.append("filter_product_types","deals"),u.searchParams.append("rows",String(o||"12")),u}function Nv(e){return e?.widget?.data?.offers?e.widget.data.offers:e?.data?.offers?e.data.offers:Array.isArray(e)?e:e?.offers?.offer?Array.isArray(e.offers.offer)?e.offers.offer:[e.offers.offer]:e?.offers?Array.isArray(e.offers)?e.offers:[e.offers]:[]}function Ov(e){let t=[];return e.forEach(n=>{let a=[];Array.isArray(n.offers)?a=n.offers:Array.isArray(n.offer)?a=n.offer:n.offers&&typeof n.offers=="object"?a=[n.offers]:n.offer&&typeof n.offer=="object"&&(a=[n.offer]),a.length>0?a.forEach(l=>{t.push({...n,...l})}):t.push(n)}),t}function kv(e){return e?.widget?.data?.model_info?e.widget.data.model_info:e?.data?.model_info?e.data.model_info:{}}var Lf=new Map,Q2=3e3,K2=["GB","US"],Lv=6,Z2=["brand","currency","fallbackImage","hasCommerceOffer","hawkPricePending","hawkListings","image","isCheckPrice","merchant","merchantId","modelId","msrp","price","productKey","productName","rawMsrp","rawPrice","savingLabel","title","url"];function Hf(e){return String(e||"").trim().toLowerCase()}function Gv(e){return e==="UK"?"GB":e}function Pv(e,t){let n=String(t||"").trim().toUpperCase(),l={AU:["A$","AUD"],CA:["CA$","CAD"],DE:["\u20AC","EUR"],ES:["\u20AC","EUR"],FR:["\u20AC","EUR"],GB:["\xA3","GBP","GB\xA3"],IT:["\u20AC","EUR"],NL:["\u20AC","EUR"],US:["$","USD","US$"]}[e];return!l||l.includes(n)}function Hv(e,t){return String(e.id||`hawk-deal-${t}`)}function W2(e){return e.map(t=>({...t,hasCommerceOffer:!1,hawkPricePending:!!t.hawkModelName,hawkListings:[],image:t.fallbackImage||t.image||"",isCheckPrice:!0,merchant:"",merchantId:"",msrp:"",price:"",productKey:"",rawMsrp:0,rawPrice:0,savingLabel:"",url:t.sourceArticleUrl||t.documentUrl||t.url}))}function I2(e){return Z2.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{})}function qv(e){return!!((e.isBuyingGuideProduct||e.isReviewProduct)&&e.hawkModelName)}function J2(e){return e.model_image_url||e.model_image||e.product_image||e.image_url||e.image||""}function Fv(e){return e.link||e.url||e.offer_link||""}function $2(e,t){let n=String(t.model_id||t.id||"");return n&&e[n]?e[n]:Object.values(e).find(a=>String(a?.model_id||a?.id||"")===n)||{}}function eS(e,t,n){let a=e.map(i=>{let r=kf(i),o=Of(i,t),u=Fv(i),c=ee(String(o.merchant||"")).trim();return!u||!c||r.rawPrice<=0||!Pv(n,r.currency)?null:{merchant:c,merchantId:typeof i.merchant=="object"?String(i.merchant?.id||""):"",modelId:String(i.model_id||""),offer:i,productKey:String(i.product_key||""),rawPrice:r.rawPrice,url:u}}).filter(i=>i!==null).sort((i,r)=>i.rawPrice-r.rawPrice||i.merchant.localeCompare(r.merchant)),l=new Set;return a.filter(i=>{let r=i.merchant.toLocaleLowerCase();return l.has(r)?!1:(l.add(r),!0)}).slice(0,4)}async function zv(e,t,n){let a=`${t}|${Hf(e)}`;return Lf.has(a)||Lf.set(a,(async()=>{let l;try{let i=new AbortController;l=setTimeout(()=>i.abort(),Q2);let r=await n(Bv({query:e,region:t,resultCount:12}).toString(),{signal:i.signal});if(!r.ok)return null;let o=await r.json(),u=Ov(Nv(o)),c=Hf(e),s=u.filter(A=>Hf(A.model_name||A.model)===c),f=s.length?s:u,d=f[0]||null;if(!d)return null;let m=kv(o),v=$2(m,d);return{brand:String(v?.brand||d.brand||"").trim(),modelInfo:m,offer:d,offers:f}}catch{return null}finally{l&&clearTimeout(l)}})()),Lf.get(a)}function Uv(e,t,n){return e.map(a=>{let l=String(a.hawkModelName);if(!qv(a)||!t.has(l))return a;let i=t.get(l);if(!i)return{...a,hawkPricePending:!1};let{offer:r}=i.lookup,o=kf(r),u=Of(r,i.lookup.modelInfo),c=J2(r),s=Fv(r),f=ee(String(r.model_name||r.model||a.hawkModelName||a.productName||a.title||"").trim()),d=!!(i.region===n&&s&&Pv(n,o.currency)),m=i.region===n?eS(i.lookup.offers,i.lookup.modelInfo,n).map(({offer:v,...A})=>A):[];return d?{...a,brand:i.lookup.brand||r.brand||a.brand,currency:o.currency||a.currency,fallbackImage:c?a.image:a.fallbackImage,hasCommerceOffer:!0,hawkPricePending:!1,hawkListings:m,image:c||a.image,isCheckPrice:o.isCheckPrice,merchant:u.merchant||a.merchant,merchantId:typeof r.merchant=="object"&&r.merchant?.id||"",modelId:r.model_id||"",msrp:o.rawMsrp>0?String(o.rawMsrp):"",price:o.rawPrice>0?String(o.rawPrice):"",productKey:r.product_key||"",productName:f||a.productName,rawMsrp:o.rawMsrp,rawPrice:o.rawPrice,savingLabel:o.savingLabel,title:f||a.title,url:s||a.url}:{...a,brand:i.lookup.brand||a.brand,fallbackImage:c?a.image:a.fallbackImage,hawkPricePending:!1,image:c||a.image,productName:f||a.productName,title:f||a.title}})}async function vi(e,t,n=fetch,a,l=[],i){let r=Gv(t),o=new Map,u=e.filter(qv).map(f=>String(f.hawkModelName)),c=new Set(u),s=Array.from(new Set([...l.filter(f=>c.has(f)),...u])).slice(0,a);for(let f=0;f<s.length;f+=Lv)await Promise.all(s.slice(f,f+Lv).map(async d=>{let m=await zv(d,r,n),v=m||r==="GB"?null:await zv(d,"GB",n);o.set(d,m?{lookup:m,region:r}:v?{lookup:v,region:"GB"}:null),i?.(Uv(e,o,r))}));return Uv(e,o,r)}async function jv(e,t=fetch){let n=W2(e),a=await Promise.all(K2.map(async i=>[i,await vi(n,i,t)])),l=new Map;return a.forEach(([i,r])=>{r.forEach((o,u)=>{if(!o.hasCommerceOffer)return;let c=Hv(o,u),s=l.get(c)||{};s[i]=I2(o),l.set(c,s)})}),e.map((i,r)=>{let o=l.get(Hv(i,r));return o?{...i,hawkRegionalCommerce:o}:i})}function zf(e,t){let n=Gv(t);return e.map(a=>{let l=a.hawkRegionalCommerce?.[n];return l?{...a,...l,hawkPricePending:!1}:a})}function Yv(e,t){let n=Array.from(new Set(e.map(i=>i.merchant).filter(Boolean))),a={};if(n.forEach(i=>{a[i]="loading"}),n.length===0)return{merchants:n,couponMap:a,couponUrl:null};let l=new URL("https://search-api.fie.future.net.uk/widget.php");return l.searchParams.append("model_name","Everything"),l.searchParams.append("filter_merchant_name",n.join(",")),l.searchParams.append("filter_product_types","vouchers,offer_deals,newsletter"),l.searchParams.append("sort","voucher"),l.searchParams.append("rows","120"),l.searchParams.append("origin","widgets-clientside"),l.searchParams.append("combine_product_types","1"),l.searchParams.append("language","en-GB"),l.searchParams.append("all_filters","false"),l.searchParams.append("exclude_unlabelled","false"),l.searchParams.append("include_specs","false"),t&&t!=="auto"&&l.searchParams.append("area",t),{merchants:n,couponMap:a,couponUrl:l}}function Vv(e,t){let n=new URL("https://search-api.fie.future.net.uk/widget.php");return n.searchParams.append("model_name","Everything"),n.searchParams.append("language","en-GB"),t&&t!=="auto"&&n.searchParams.append("area",t),n.searchParams.append("combine_product_types","1"),n.searchParams.append("filter_merchant_name",e),n.searchParams.append("all_filters","false"),n.searchParams.append("exclude_unlabelled","false"),n.searchParams.append("include_specs","false"),n.searchParams.append("sort","voucher"),n.searchParams.append("distinct_merchants","natural"),n.searchParams.append("filter_product_types","vouchers,offer_deals,newsletter"),n.searchParams.append("rows","50"),n.searchParams.append("origin","widgets-clientside"),n}function Uf(e,t,n=!0){if(!e?.length)return e||[];if(t==="date_desc"&&!n)return e;let a=[...e];return ln(a,t,n),a}function uc(e,t,n,a=!0){if(n!=="date_desc"||!e?.length)return t;let l=(c,s)=>String(c.id||s),i=new Map(t.map((c,s)=>[l(c,s),c])),r=new Set,o=e.flatMap((c,s)=>{let f=l(c,s);r.add(f);let d=i.get(f);return d?[d]:[]}),u=t.filter((c,s)=>!r.has(l(c,s)));return a?[...o.filter(nl),...u.filter(nl),...o.filter(c=>!nl(c)),...u.filter(c=>!nl(c))]:[...o,...u]}function Xv({activeDealTag:e,activeFreeformTag:t,clickedAuthorOverride:n,compactEmbed:a,compactInventoryExplored:l,compactLoadRequested:i,initialActiveDealTag:r,initialActiveFreeformTag:o,reviewInventoryBaked:u}){return!!(a&&u&&!n&&!i&&!l&&(!e||e===r)&&(!t||t===o))}var Qv=[0,50,100,150,200,250,300,350,400,450],Gf=4;function Kv(e){return(Array.isArray(e)?e:[e]).reduce((n,a)=>{if(typeof a!="string"||!a.trim())return n;let l=a.trim();return n.some(i=>i.toLowerCase()===l.toLowerCase())?n:[...n,l]},[])}function nS(e,t){return e.length===t.length&&e.every((n,a)=>n===t[a])}function Pf(e){return e.map(t=>t.trim().toLowerCase()).sort().join("|")}function qf(e){let t=e.initialData,n=Fu(e),a=!!(e.preloadReviewInventory&&!n),l=!!(e.preloadReviewInventory&&e.includeReviewProducts&&!e.compactEmbed),i=n?Number(e.resultCount)||12:100,r=n?!1:e.prioritiseCommercialProducts,o=wt(e.region),u=zf(t?.allDeals||t?.deals||[],o).filter(_=>P0(_,o)),c=wa(n?"date_desc":e.sort,!Or(e)),s=!!(e.priceRange&&e.priceRange!=="all")||!!(e.discountAmount&&e.discountAmount!=="0"&&e.discountAmount!=="all"),f=tl(t?.authorArticles||[],void 0,Number(e.editorialMaxAgeMonths)||0),d=tl(t?.authorInteractionArticles||[],void 0,Number(e.editorialMaxAgeMonths)||0),[m,v]=(0,N.useState)(()=>Uf(u,c,r)),[A,b]=(0,N.useState)(t?.totalDealCount??t?.allDeals?.length??t?.deals?.length??0),[h,g]=(0,N.useState)(t?.totalAuthorCount??t?.authors?.length??0),[p,y]=(0,N.useState)(!t),[C,R]=(0,N.useState)(!1),[T,M]=(0,N.useState)(!1),[w,D]=(0,N.useState)(!1),[k,se]=(0,N.useState)(t?.couponMap||{}),[I,j]=(0,N.useState)(f),[He,ze]=(0,N.useState)(f),[St,Ie]=(0,N.useState)(t?.tags||[]),[rn,Be]=(0,N.useState)(t?.tagCounts||{}),[Je,nt]=(0,N.useState)(t?.freeformTags||[]),[X,de]=(0,N.useState)(t?.freeformTagCounts||{}),[$e,Z]=(0,N.useState)(t?.brands||[]),[x,P]=(0,N.useState)(()=>{let _=t?.activeDealTag||e.query;return _&&_.toLowerCase()!=="everything"?_:null}),[Q,Vn]=(0,N.useState)(()=>Kv(t?.activeFreeformTags||t?.activeFreeformTag)),[jr,bi]=(0,N.useState)(f),[sc,ll]=(0,N.useState)(null),[at,Yr]=(0,N.useState)(!1),[il,Vr]=(0,N.useState)(""),[rl,Xr]=(0,N.useState)(""),[f1,g1]=(0,N.useState)(0),[Wt,dc]=(0,N.useState)(e.resultCount?parseInt(e.resultCount):12),[Xf,fc]=(0,N.useState)(!1),[m1,Qr]=(0,N.useState)(null),[gc,h1]=(0,N.useState)(!1),[mc,p1]=(0,N.useState)([0]),Kr=(0,N.useRef)(t?`${e.website||"tomsguide"}|${e.authorHandle||""}|${e.authorName||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}`:""),hc=(0,N.useRef)(t?`${e.website||"tomsguide"}|${e.authorHandle||""}|${e.authorName||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}|age-${e.editorialMaxAgeMonths||"none"}`:""),y1=(0,N.useRef)(e.website||"tomsguide"),pc=(0,N.useRef)(e.website||"tomsguide"),Qf=(0,N.useRef)(u.length>0),Kf=(0,N.useRef)(null),ol=(0,N.useRef)(new Map),v1=(0,N.useRef)({activeDealTag:String(x||"").trim().toLowerCase(),freeformTags:Pf(Kv(t?.activeFreeformTags||t?.activeFreeformTag)),discountAmount:e.discountAmount,priceRange:e.priceRange}),Xn=(0,N.useRef)(!1),De=(0,N.useRef)(!1),Ai=(0,N.useRef)(!1),Zf=(_,oe,ne=at?il:e.authorHandle,we=at?rl:e.authorName)=>[e.website||"tomsguide",ne||"",we||"",wt(e.region),String(_||"").trim().toLowerCase(),Pf(oe),e.priceRange,e.discountAmount,e.includeBuyingGuideProducts?"guides":"",e.includeReviewProducts?"reviews":"",e.includeDeals===!1?"no-deals":"deals",e.includeCollections===!1?"no-collections":"collections"].join("|"),Wf=(_,oe)=>{let ne=v1.current;return!!(e.compactEmbed&&t?.brands?.length&&String(_||"").trim().toLowerCase()===ne.activeDealTag&&Pf(oe)===ne.freeformTags&&e.priceRange===ne.priceRange&&e.discountAmount===ne.discountAmount)},Zr=(_,oe)=>{let ne=ol.current.get(Zf(_,oe));if(ne){Z(ne);return}if(Wf(_,oe)){Z(t?.brands||[]);return}},ul=()=>Xn.current||n?void 0:e.productSelection;(0,N.useEffect)(()=>{ll(null)},[e.authorName,e.authorHandle]),(0,N.useLayoutEffect)(()=>{let _=e.website||"tomsguide";pc.current!==_&&(pc.current=_,v(()=>[]),j(()=>[]),ze(()=>[]),bi(()=>[]),Ie(()=>[]),Be({}),nt(()=>[]),de({}),Z(()=>[]),ol.current.clear(),se({}),Yr(!1),Vr(""),Xr(""),ll(null),P(null),Vn([]),g(0),b(0),M(!1),fc(!1),Qr(null),Ai.current=!1,R(!0),y(!0))},[e.website]),(0,N.useEffect)(()=>{e.compactEmbed||typeof document>"u"||setTimeout(()=>{document.dispatchEvent(new CustomEvent("processArticle"))},100)},[m,Wt,e.query,x,Q]),(0,N.useEffect)(()=>{e.resultCount&&(dc(parseInt(e.resultCount,10)||12),Qr(null))},[e.resultCount]),(0,N.useEffect)(()=>{Qr(null)},[x,Q,e.authorHandle,e.authorName,e.discountAmount,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.priceRange,e.region,e.selectedBrands,e.sort]),(0,N.useEffect)(()=>{if(!t||!e.includeBuyingGuideProducts&&!e.includeReviewProducts||e.compactEmbed&&(De.current||e.refreshDealsOnViewport))return;let _=wt(e.region),oe=zf(t.allDeals||t.deals||[],_);if(_==="unavailable"){let It=oe.map(on=>(on.isBuyingGuideProduct||on.isReviewProduct)&&on.hawkModelName?{...on,hawkPricePending:!1}:on);ln(It,c,r),v(yn(It,ul(),c));return}let ne=al(oe,e.selectedBrands),we=Number(e.resultCount)||12,Ta=typeof navigator>"u"?void 0:navigator.connection,Ea=!Ta?.saveData&&!Ta?.effectiveType?.includes("2g")&&(!e.compactEmbed||!!e.warmInventory),Si=s?ne:t.reviewInventoryBaked?ne.slice(0,Wt+(Ea?we:0)):oe;if(!Si.some(It=>(It.isBuyingGuideProduct||It.isReviewProduct)&&It.hawkModelName))return;let sl=!0;return M(!0),vi(Si,_).then(It=>{if(!sl)return;let on=t.reviewInventoryBaked?lv(oe,It):It,Ir=al(on,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange}).map(lt=>(lt.isBuyingGuideProduct||lt.isReviewProduct)&&lt.hawkModelName?{...lt,hawkPricePending:!1}:lt);ln(Ir,c,r),v(yn(Ir,ul(),c)),Z(lt=>t?.brands?.length?lt:hf(lt,It))}).finally(()=>{sl&&M(!1)}),()=>{sl=!1}},[t,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.region,e.selectedBrands,e.discountAmount,e.priceRange,c,e.productSelection,Wt,e.resultCount,e.compactEmbed,e.warmInventory,e.refreshDealsOnViewport,x,Q]),(0,N.useEffect)(()=>{let _=!0,oe=new AbortController,ne=Ai.current,we=!e.refreshDealsOnViewport&&Xv({activeDealTag:x,activeFreeformTag:Q[0]||null,clickedAuthorOverride:at,compactEmbed:e.compactEmbed,compactInventoryExplored:De.current,compactLoadRequested:gc,initialActiveDealTag:t?.activeDealTag,initialActiveFreeformTag:t?.activeFreeformTag,reviewInventoryBaked:t?.reviewInventoryBaked}),Ta=u.length>0,Ea=!!(n&&e.compactEmbed&&!De.current),Si=!!(Ea&&e.warmInventory&&I.length===0&&m.length>0),sl=!!(we||e.compactEmbed&&Ta&&I.length===0&&!at&&!gc&&!De.current&&!e.refreshDealsOnViewport&&(!n||!e.warmInventory));return!sl&&!ne&&!Si&&(R(!0),e.compactEmbed&&De.current&&v([])),(async()=>{D(!1),M(!1);let on=m.length>0||St.length>0||Je.length>0||$e.length>0,Ir=sl;try{if(!e.authorName&&!e.authorHandle){v([]),j([]),bi([]),Ie([]),nt([]),Z([]),ll(null),P(null),Vn([]),y(!0);return}let lt=at?il:e.authorHandle,Jr=at?rl:e.authorName,$r=`${e.website||"tomsguide"}|${lt||""}|${Jr||""}|${e.includeBuyingGuideProducts?"buying-guides":""}|${e.includeReviewProducts?"reviews":""}|${e.includeDeals===!1?"no-deals":"deals"}|${e.includeCollections===!1?"no-collections":"collections"}`,yc=`${$r}|${e.compactEmbed&&x||""}|${e.compactEmbed?Q.join(","):""}|${e.compactEmbed&&De.current?"expanded":e.refreshDealsOnViewport?"viewport-refresh":"initial"}|lightweight-pages-${Ea?mc.join(","):"all"}|age-${e.editorialMaxAgeMonths||"none"}`,Jt=I,$f=St,U1=ev(Je,Q.length===1?Q[0]:null),eg=()=>({activeDealTag:x,activeFreeformTag:Q[0]||null,activeFreeformTags:Q,preserveFreeformTagSelection:!!(e.compactEmbed&&Q.length),authorHandle:lt,authorName:Jr,discountAmount:e.discountAmount,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,priceRange:e.priceRange,prioritiseCommercialProducts:r,productSelection:ul(),query:e.query,region:e.region,selectedArticleId:sc,selectedBrands:e.selectedBrands,sort:c,website:e.website}),tg=hc.current!==yc||Jt.length===0,Da=[],vc=!1,ng=(me,zt=!1)=>{if(!_||zt&&vc)return;let bn=al(me,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange});ln(bn,c,r);let Di=yn(bn,ul(),c);v(uc(Da,Di,c,r))};if(Ir){y(!1),R(!1);return}if(tg){let me=Kr.current.split("|")[0],zt=e.website||"tomsguide",bn=!!(Kr.current&&me!==zt);!ne&&!Si&&R(!!e.compactEmbed||!on),bn&&(Jt=[],$f=[],v(()=>[]),j(()=>[]),ze(()=>[]),bi(()=>[]),Ie(()=>[]),Be({}),nt(()=>[]),de({}),Z(()=>[]),se({}),Yr(!1),Vr(""),Xr(""),y(!0));let Di=Qf.current&&Kr.current===$r&&Jt.length===0&&!De.current;Qf.current=!1,!Di&&!on&&y(!0);let lo=Ba=>{if(!_||Ba.length===0)return;let fe=eg(),it=Cf(Ba,fe),{displayedDeals:io}=ic(it.targetArticles,fe,it.activeRegionCode,it.targetIso);io.length!==0&&(Da=io,v(Da),y(!1),e.includeReviewProducts&&Nf(it.targetArticles,e.website||"tomsguide",Math.min(Wt,Gf),c).then(()=>{if(!_||vc)return;let An=ic(it.targetArticles,fe,it.activeRegionCode,it.targetIso);Da=An.displayedDeals,v(Da);let xi=An.displayedDeals.filter(dt=>dt.isReviewProduct&&dt.hawkModelName).slice(0,Gf).map(dt=>String(dt.hawkModelName));vi(An.extractedDeals,it.activeRegionCode,void 0,Gf,xi,dt=>ng(dt,!0))}))};if(Jt=await _v({authorHandle:lt,authorName:Jr,fallbackAuthorName:e.authorName,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,articleCategory:e.compactEmbed&&x||void 0,articleTag:e.compactEmbed?U1:void 0,pageStarts:e.compactEmbed&&!e.warmInventory&&!De.current?[0]:void 0,reviewPageStarts:e.includeReviewProducts?Ea?mc:!e.compactEmbed||De.current?Qv:void 0:void 0,loadAllReviewPages:!Ea,throwOnFailure:!!(e.compactEmbed&&De.current),onBackgroundRefresh:Ba=>{if(!_||hc.current!==yc)return;let fe=tl(Ba,void 0,Number(e.editorialMaxAgeMonths)||0);j(fe),at||ze(fe),g1(it=>it+1)},onProgress:lo,signal:oe.signal,website:e.website}),!_)return;if(Jt=tl(Jt,void 0,Number(e.editorialMaxAgeMonths)||0),Kr.current=$r,hc.current=yc,Di&&Jt.length===0){y(!1);return}_&&(j(Jt),at||ze(Jt),R(!1))}let eo=eg(),G1=Cf(Jt,eo),{activeDealTag:xa,activeRegionCode:Ci,authorArticles:ag,activeFreeformTags:Ma,freeformTagCounts:lg,freeformTags:to,tagCounts:ig,tags:Ri,targetArticles:_a,targetIso:P1}=G1,Ti=e.compactEmbed&&x&&!xa?x:xa,Ei=e.compactEmbed&&Q.length>0&&Ma.length===0?Q:Ma,q1=Ri.length>0?Ri:Ti?[Ti]:Ri,F1=to.length>0?to:Ei.length>0?t?.freeformTags?.filter(me=>Ei.includes(me.handle))||[]:to,j1={...ig,...Ti&&!xa?{[Ti]:0}:{}},Y1={...lg,...Object.fromEntries(Ma.length===0?Ei.map(me=>[me,0]):[])},no=Zf(xa,Ma,lt,Jr),rg=[$r,Ci,xa||"",Ma.join(","),e.selectedBrands.join(","),e.priceRange,e.discountAmount,e.includeBuyingGuideProducts?"guides":"",e.includeReviewProducts?"reviews":"",e.includeDeals===!1?"no-deals":"deals",e.includeCollections===!1?"no-collections":"collections"].join("|"),dl=null,fl=null;if(!at){let me=Kf.current;if(me?.key===rg&&me.articleCount===_a.length)dl=me.deals.length,fl=me.authorCount;else{let zt=dv(_a,eo);dl=zt.deals.length,fl=zt.authorCount,Kf.current={articleCount:_a.length,authorCount:fl,deals:zt.deals,key:rg}}}$f=Ri;let Ht;_&&(Ie(q1),Be(j1),nt(F1),de(Y1)),e.includeReviewProducts&&await Nf(_a,e.website||"tomsguide",l?Math.min(_a.length,i):Wt,c);let{brands:bc,displayedDeals:Ac,extractedDeals:ao}=ic(_a,eo,Ci,P1),{merchants:V1,couponMap:wc,couponUrl:X1}=Yv(Ac,e.region);_&&se(wc);let Q1=me=>{!_||!Ht||(Ht={...Ht,couponMap:me},window.__AUTHOR_PRELOAD_DATA__=Ht,e.onDataLoaded&&e.onDataLoaded(Ht))};if(hv({couponMap:wc,couponUrl:X1,merchants:V1}).then(me=>{_&&(se(me),Q1(me))}),_){tg&&P(Ti),nS(Q,Ei)||Vn(Ei),bi(ag);let me=uc(Da,Ac,c,r);if(vc=!0,v(me),dl!==null){let zt=t?.totalDealCount||0,bn=Ea&&zt>dl;b(bn?zt:dl),g(bn?Math.max(t?.totalAuthorCount||0,fl||0):fl||0)}!ol.current.has(no)&&Wf(xa,Ma)&&ol.current.set(no,t?.brands||[]),Z(ol.current.get(no)||bc),y(!1),Ht=fv({allArticles:Jt,authorArticles:ag,bakeReviewInventory:a&&!e.compactEmbed,brands:bc,couponMap:wc,currentDealTag:xa,currentFreeformTags:Ma,displayedDeals:me,inventoryArticles:_a,options:eo,resultCount:e.resultCount,tagCounts:ig,tags:Ri,freeformTagCounts:lg,freeformTags:to,totalAuthorCount:fl??h,totalDealCount:dl??A}),window.__AUTHOR_PRELOAD_DATA__=Ht,e.onDataLoaded&&e.onDataLoaded(Ht)}if((e.includeBuyingGuideProducts||e.includeReviewProducts)&&Ci!=="unavailable"){let me=Wt,zt=l?ao.filter(fe=>fe.isReviewProduct&&fe.hawkModelName).slice(0,i).map(fe=>String(fe.hawkModelName)):[],bn=Ac.filter(fe=>(fe.isBuyingGuideProduct||fe.isReviewProduct)&&fe.hawkModelName).map(fe=>String(fe.hawkModelName));ao.some(fe=>(fe.isBuyingGuideProduct||fe.isReviewProduct)&&fe.hawkModelName)&&M(!0);let lo=vi(ao,Ci,void 0,s?void 0:e.includeReviewProducts?l?i:me:void 0,[...zt,...bn],ng).then(async fe=>{if(!_)return;let it=al(fe,e.selectedBrands,{discountAmount:e.discountAmount,priceRange:e.priceRange}).map(dt=>(dt.isBuyingGuideProduct||dt.isReviewProduct)&&dt.hawkModelName?{...dt,hawkPricePending:!1}:dt);ln(it,c,r);let io=yn(it,ul(),c),An=uc(Da,io,c,r),xi=hf(bc,fe);if(ol.current.set(no,xi),v(An),Z(xi),s&&b(it.length),Ht){let dt=a&&!e.compactEmbed,og=l,ug=dt?ac(An,Number(e.resultCount)||12):og?An.slice(0,i):An,K1=og?await jv(ug):ug;if(!_)return;let Sc={...Ht,allDeals:K1,deals:An.slice(0,me),brands:xi,totalDealCount:s?it.length:Ht.totalDealCount};Ht=Sc,window.__AUTHOR_PRELOAD_DATA__=Sc,e.onDataLoaded&&e.onDataLoaded(Sc)}}).finally(()=>{_&&M(!1)}),Ba=ao.slice(me,me+(Number(e.resultCount)||12));e.includeReviewProducts&&e.warmInventory&&!s&&!ne&&Ba.some(fe=>fe.hawkModelName)&&lo.then(()=>{_&&vi(Ba,Ci)}),ne&&await lo}}catch(lt){_&&D(!0)}finally{_&&(y(!1),R(!1),fc(!1),Ai.current=!1)}})(),()=>{_=!1,oe.abort()}},[e.query,e.region,e.selectedBrands,e.website,e.resultCount,Wt,c,e.priceRange,e.discountAmount,x,Q,e.authorName,e.authorHandle,e.website,e.authorBioLength,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,s,a,l,i,r,n,mc,e.productSelection,e.compactEmbed,e.warmInventory,e.refreshDealsOnViewport,e.editorialMaxAgeMonths,sc,at,il,rl,f1,gc]);let Wr=e.website||"tomsguide",st=pc.current!==Wr,Ra=(0,N.useMemo)(()=>st?[]:y1.current===Wr&&t?.authors?t.authors:Lr(He.length>0?He:I,Wr),[I,Wr,He,t?.authors,st]),b1=at?il:e.authorHandle,A1=at?rl:e.authorName,w1=Ra.find(_=>_.handle===b1||_.fullName===A1),cl=He.length>0?He:I,If=(0,N.useMemo)(()=>{if(cl.length===0)return Ra;let _=wt(e.region),oe=an(_),ne=hi(Pr(cl,x),Q),we=Sf(Ra,ne,{activeRegionCode:_,targetIso:oe,selectedBrands:e.selectedBrands,priceRange:e.priceRange,discountAmount:e.discountAmount,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,website:e.website});return Yu(Ra,we)},[x,Q,Ra,cl,e.discountAmount,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.priceRange,e.region,e.selectedBrands]),S1=(0,N.useMemo)(()=>{if(st)return[];if(cl.length===0&&t?.authors?.length||e.compactEmbed&&!x&&Q.length===0&&t?.authors?.length)return Ra;let _=wt(e.region),oe=an(_),ne=hi(Pr(cl,x),Q).filter(we=>mi([we],{activeRegionCode:_,targetIso:oe,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,website:e.website}).length>0);return kr(If,ne)},[x,Q,cl,st,at,t?.authors?.length,e.compactEmbed,e.includeBuyingGuideProducts,e.includeCollections,e.includeDeals,e.includeReviewProducts,e.region,If,e.website]),Jf=(_,oe)=>{let ne=He.length>0?He:I.length>0?I:d;if(ne.length===0)return;let we=yv(ne,{authorHandle:_,authorName:oe,discountAmount:e.discountAmount,priceRange:e.priceRange,region:e.region,selectedBrands:e.selectedBrands,sort:c,includeBuyingGuideProducts:e.includeBuyingGuideProducts,includeCollections:e.includeCollections,includeDeals:e.includeDeals,includeReviewProducts:e.includeReviewProducts,prioritiseCommercialProducts:r,website:e.website,productSelection:void 0});ll(null),P(null),Vn([]),bi(we.authorArticles),Ie(we.tags),Be(we.tagCounts),nt(we.freeformTags),de(we.freeformTagCounts),Z(we.brands),v(we.deals),y(!1)},C1=()=>{!e.compactEmbed||!t||(v(yn(Uf(t.deals||t.allDeals||[],c,r),ul(),c)),Ie(t.tags||[]),Be(t.tagCounts||{}),nt(t.freeformTags||[]),de(t.freeformTagCounts||{}),Z(t.brands||[]),se(t.couponMap||{}),g(t.totalAuthorCount??t.authors?.length??0),b(t.totalDealCount??t.deals?.length??t.allDeals?.length??0))},R1=_=>{Xn.current=!0,De.current=!0,R(!0),at&&(il===_.handle||rl===_.fullName)?(e.compactEmbed&&t?C1():Jf(e.authorHandle,e.authorName),Yr(!1),Vr(""),Xr("")):(Jf(_.handle,_.fullName),Yr(!0),Vr(_.handle),Xr(_.fullName)),e.onQueryChange?.("")},T1=_=>{Xn.current=!0,De.current=!0,R(!0);let oe=x===_?null:_;Zr(oe,Q),P(oe),e.onQueryChange?.("")},E1=()=>{Xn.current=!0,De.current=!0,R(!0)},D1=()=>{Xn.current=!0,De.current=!0,R(!0),Zr(null,Q),P(null),e.onQueryChange?.("")},x1=_=>{Xn.current=!0,De.current=!0,R(!0);let oe=Q.some(ne=>ne.toLowerCase()===_.toLowerCase())?Q.filter(ne=>ne.toLowerCase()!==_.toLowerCase()):[...Q,_];Zr(x,oe),Vn(oe)},M1=()=>{Xn.current=!0,De.current=!0,R(!0),Zr(x,[]),Vn([])},_1=_=>{Xn.current=!0,De.current=!0,R(!0),ll(_)},B1=()=>{if(Ai.current)return;Ai.current=!0,fc(!0);let _=Wt+(e.resultCount?parseInt(e.resultCount,10):12);!!(n&&e.compactEmbed&&!De.current)&&I.length>0&&m.length<_&&p1(we=>{let Ta=Qv[we.length];return Ta===void 0?we:[...we,Ta]}),dc(we=>(Qr(we),we+(e.resultCount?parseInt(e.resultCount,10):12)));let ne=!!(t?.reviewInventoryBaked&&m.length>Wt);e.compactEmbed&&I.length===0&&!ne&&(R(!0),h1(!0))},wi=e.compactEmbed&&!e.refreshDealsOnViewport,N1=wi&&t?.tags?.length?t.tags:St,O1=wi&&t?.tags?.length?t.tagCounts||{}:rn,k1=wi&&!De.current&&t?.brands?.length?t.brands:$e,L1=wi&&t?.freeformTags?.length&&(!De.current||Q.length===1)?t.freeformTags:Je,H1=wi&&t?.freeformTags?.length&&(!De.current||Q.length===1)?t.freeformTagCounts||{}:X,z1=pv({enrichingBuyingGuides:T,error:w,loading:p,loadingMore:Xf,refreshingFeed:C});return{activeDealTag:x,activeFreeformTags:Q,airedaleBrands:st?[]:k1,airedaleTagCounts:st?{}:O1,airedaleTags:st?[]:N1,airedaleFreeformTagCounts:st?{}:H1,airedaleFreeformTags:st?[]:L1,allAuthorsList:S1,authorArticlesList:st?[]:jr,clickedAuthorOverride:at,couponMap:k,deals:st?[]:m,displayCount:Wt,error:w,enrichingBuyingGuides:T,effectiveAuthorProfile:st?void 0:w1,loading:p,loadingMore:Xf,loadMoreStartCount:m1,markProductSelectionInteracted:E1,hasMore:m.length>Wt||!!e.compactEmbed&&A>m.length,loadMore:B1,refreshingFeed:C,overriddenAuthorHandle:il,overriddenAuthorName:rl,selectedArticleId:sc,setActiveDealTag:P,clearDealTag:D1,clearFreeformTags:M1,selectArticle:_1,setDisplayCount:dc,setSelectedArticleId:ll,status:z1,toggleAuthorOverride:R1,toggleDealTag:T1,toggleFreeformTag:x1,totalAuthorCount:st?0:h,totalDealCount:st?0:A}}var aS=B(ft(),1);var Fr=B(ft(),1);function Zv(e){let[t,n]=(0,Fr.useState)(null),[a,l]=(0,Fr.useState)([]),[i,r]=(0,Fr.useState)(!1),[o,u]=(0,Fr.useState)(!1);return{close:()=>n(null),error:o,loading:i,merchant:t,open:async f=>{n(f),r(!0),u(!1),l([]);try{let d=Vv(f,e),m=await fetch(d.toString());if(!m.ok)throw new Error("API Error");l(mv(await m.json()))}catch(d){u(!0)}finally{r(!1)}},vouchers:a}}var je=B(O(),1);function lS(e){return new Set(e.map(t=>Array.isArray(t.authorName)?t.authorName[0]:t.authorName).map(t=>String(t||"").trim().toLowerCase()).filter(Boolean)).size}var iS=new Map,rS=()=>{};function Iv({data:e,editorBar:t,editorMode:n=!1,props:a,selectedDeals:l=iS,setSelectedDeals:i=rS}){let r=Zv(a.region),[o,u]=(0,Wv.useState)(new Set),c=p0[a.website||""]||"#1F69FF",s=a.backgroundColor?a.backgroundColor==="white"?"#ffffff":a.backgroundColor==="transparent"?"transparent":a.backgroundColor==="light_blue"?"#E7F0FF":void 0:void 0,f=Vu(a.authorHandle,a.authorName),d=Or(a),m=Fu(a),v=wa(m?"date_desc":a.sort,!d),A=!!(a.showReviewSort&&a.includeReviewProducts),b=a.showPriceDiscountFilters!==!1||A,h=!a.authorFullBleed,g=!e.clickedAuthorOverride,p=e.totalDealCount||e.deals.length,y=e.totalAuthorCount||lS(e.deals),C=e.status==="loading_inventory"||e.status==="refreshing_inventory"||e.status==="enriching_visible_cards",R=e.status==="loading_inventory"||(e.status==="refreshing_inventory"||e.status==="enriching_visible_cards")&&e.deals.length===0,M=!!(a.showReviewSort&&a.includeReviewProducts&&(e.status==="refreshing_inventory"||e.status==="enriching_visible_cards"))?"Loading and sorting available review products":e.status==="enriching_visible_cards"?"Adding live product images and prices":e.status==="refreshing_inventory"?"Updating products":`Loading ${a.website||"site"} authors and products`,w=j=>{e.markProductSelectionInteracted(),a.onBrandToggle?.(j)},D=j=>{e.markProductSelectionInteracted(),a.onBrandSelect?.(j)},k=j=>{e.markProductSelectionInteracted(),a.onPriceRangeChange?.(j)},se=j=>{e.markProductSelectionInteracted(),a.onDiscountAmountChange?.(j)},I=j=>{e.markProductSelectionInteracted(),a.onSortChange?.(j)};return(0,je.jsx)("div",{className:"tg-df-widget-host",style:{"--tg-df-blue":c.toUpperCase()==="#FFFFFF"?"#000000":c},"data-vizualizer-embed":"true","data-tg-df-full-bleed":a.authorFullBleed?"true":"false","data-tg-df-mobile-dropdowns":a.mobileDropdowns?"true":"false","data-tg-df-sticky-mobile-filters":a.stickyMobileFilters===!1?"false":"true",children:(0,je.jsxs)("div",{className:"tg-df-container article-body",style:a.backgroundColor?{backgroundColor:s}:void 0,children:[(a.showAuthorIdentity!==!1||a.showAuthorBio!==!1)&&(0,je.jsx)("div",{className:"tg-df-author-embed",style:{width:"100%",fontFamily:"inherit"},children:(0,je.jsx)("div",{className:"tg-df-author-section",style:{display:"block",opacity:1,overflow:"visible",background:"transparent",border:"none"},children:(0,je.jsx)(U0,{authorArticlesList:e.authorArticlesList,authorBioLength:a.authorBioLength,customBio:g?a.customBio:void 0,customHeaderKicker:a.customHeaderKicker,customHeaderTitle:a.customHeaderTitle,effectiveAuthorHandle:e.clickedAuthorOverride?e.overriddenAuthorHandle:a.authorHandle,effectiveAuthorName:e.clickedAuthorOverride?e.overriddenAuthorName:a.authorName,isReviewWidget:d,onBioChange:g?a.onBioChange:void 0,onHeaderKickerChange:a.onHeaderKickerChange,onHeaderTitleChange:a.onHeaderTitleChange,selectedProfile:e.effectiveAuthorProfile,showAuthorBio:a.showAuthorBio,showAuthorIdentity:a.showAuthorIdentity,showSocialButtons:a.showSocialButtons,stabilizeBio:f,authorCount:y,totalDealCount:p,website:a.website})})}),t,a.showCollectionsDropdown&&(0,je.jsx)(r0,{articles:e.authorArticlesList,authorHandle:a.authorHandle,authorName:a.authorName||a.author,onChange:e.selectArticle,selectedArticleId:e.selectedArticleId,shortenedHeadlines:a.shortenedHeadlines}),C&&(0,je.jsxs)("div",{role:"status","aria-live":"polite","aria-label":M,style:{alignItems:"center",display:"flex",justifyContent:"center",marginBottom:"16px",minHeight:"72px"},children:[(0,je.jsx)("span",{className:"tg-df-coupon-spinner","aria-hidden":"true",style:{borderWidth:"3px",height:"24px",width:"24px"}}),(0,je.jsxs)("span",{style:{color:"#4B5563",fontSize:"14px",marginLeft:"10px"},children:[M,"\u2026"]})]}),(0,je.jsx)(_0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleBrands:e.airedaleBrands,airedaleTagCounts:e.airedaleTagCounts,airedaleTags:e.airedaleTags,freeformTagCounts:e.airedaleFreeformTagCounts,freeformTags:e.airedaleFreeformTags,allAuthorsList:e.allAuthorsList,brands:a.brands,clickedAuthorOverride:e.clickedAuthorOverride,loading:e.loading,refreshing:e.refreshingFeed,onAuthorClick:e.toggleAuthorOverride,onBrandToggle:w,onFreeformTagClick:e.toggleFreeformTag,onTagClick:e.toggleDealTag,overriddenAuthorHandle:e.overriddenAuthorHandle,overriddenAuthorName:e.overriddenAuthorName,selectedBrands:a.selectedBrands,showAuthorRail:f&&a.showAuthorRail!==!1,showAuthorCounters:a.showAuthorCounters,showBrandRail:a.showBrandRail,showCategoryRail:a.showCategoryRail,showFreeformTagRail:a.showFreeformTagRail,website:a.website}),(0,je.jsx)(k0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleBrands:e.airedaleBrands,airedaleTagCounts:e.airedaleTagCounts,airedaleTags:e.airedaleTags,brands:a.brands,discountAmount:a.discountAmount,enabled:a.mobileDropdowns||h,freeformTagCounts:e.airedaleFreeformTagCounts,freeformTags:e.airedaleFreeformTags,onBrandSelect:D,onBrandToggle:w,onDiscountAmountChange:se,onFreeformTagClear:e.clearFreeformTags,onFreeformTagToggle:e.toggleFreeformTag,onPriceRangeChange:k,onReviewSortChange:I,onTagClear:e.clearDealTag,onTagClick:e.toggleDealTag,priceRange:a.priceRange,reviewSort:v,selectedBrands:a.selectedBrands||[],showCounters:a.showAuthorCounters,showBrandRail:a.showBrandRail,showCategoryRail:a.showCategoryRail,showFreeformTagRail:a.showFreeformTagRail,showPriceDiscountFilters:a.showPriceDiscountFilters,showReviewSort:A,includeScoredFirst:!d}),b&&(0,je.jsx)(L0,{airedaleBrands:e.airedaleBrands,airedaleTags:e.airedaleTags,discountAmount:a.discountAmount,hidden:!!e.selectedArticleId,onDiscountAmountChange:se,onPriceRangeChange:k,onReviewSortChange:I,priceRange:a.priceRange,reviewSort:v,showPriceDiscountFilters:a.showPriceDiscountFilters,showReviewSort:A,includeScoredFirst:!d}),(0,je.jsx)(i0,{articles:e.authorArticlesList,selectedArticleId:e.selectedArticleId}),(a.showCategoryRail!==!1||a.showFreeformTagRail!==!1||a.showBrandRail!==!1)&&(0,je.jsx)(a0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,airedaleTags:e.airedaleTags,freeformTags:e.airedaleFreeformTags,discountAmount:a.discountAmount,onBrandSelect:D,onBrandToggle:w,onDiscountAmountChange:se,onPriceRangeChange:k,onTagClear:e.clearDealTag,onFreeformTagClear:e.clearFreeformTags,onFreeformTagToggle:e.toggleFreeformTag,priceRange:a.priceRange,selectedBrands:a.selectedBrands||[]}),(0,je.jsx)(w0,{activeDealTag:e.activeDealTag,activeFreeformTags:e.activeFreeformTags,couponMap:e.couponMap,deals:e.deals,displayCount:e.displayCount,editorMode:n,error:e.error,expandedDealIds:o,hasMore:e.hasMore,hideHawkPrices:a.hideHawkPrices,loading:R,loadingMore:e.loadingMore,loadMoreStartCount:e.loadMoreStartCount,onDescriptionToggle:j=>u(He=>{let ze=new Set(He);return ze.has(j)?ze.delete(j):ze.add(j),ze}),onLoadMore:e.loadMore,onOpenVouchers:r.open,query:a.query,recentDealsOnly:!!(a.includeDeals&&!a.includeCollections&&!a.includeBuyingGuideProducts&&!a.includeReviewProducts),selectedBrands:a.selectedBrands,selectedDeals:l,setSelectedDeals:i,website:a.website}),(0,je.jsx)(G0,{error:r.error,loading:r.loading,merchant:r.merchant,onClose:r.close,vouchers:r.vouchers})]})})}var $v=B(O(),1),Jv=e=>{let t={...e,editorMode:!1},n=qf(t);return(0,$v.jsx)(Iv,{data:n,props:t})};var U={authorBioLength:"short",authorFullBleed:!0,authorHandle:"all-authors",authorName:"All authors",backgroundColor:"transparent",customBio:"",customHeaderKicker:void 0,customHeaderTitle:void 0,discountAmount:"0",editorMode:!1,editorialMaxAgeMonths:"12",includeBuyingGuideProducts:!0,includeCollections:!0,includeDeals:!0,includeReviewProducts:!1,mobileDropdowns:!0,stickyMobileFilters:!0,offerType:"",preloadReviewInventory:!1,lightweightReviewDelivery:!1,hideHawkPrices:!1,prioritiseCommercialProducts:!0,priceRange:"all",productSelection:"latest",query:"Everything",region:"auto",resultCount:"12",retailer:"",selectedBrands:[],showAuthorBio:!0,showAuthorCounters:!0,showAuthorIdentity:!0,showAuthorRail:!0,showBrandRail:!0,showCategoryRail:!0,showCollectionsDropdown:!1,showPriceDiscountFilters:!0,showReviewSort:!1,showSocialButtons:!0,showCountdown:!1,showHeaderDetails:!0,showFreeformTagRail:!0,sort:"date_desc",viewMode:"author",website:"whowhatwear",widgetSubtitle:"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.",widgetTitle:"Top Deals Handpicked by Our Editors"};function We(e,t){return typeof e=="string"?e:t}function Ae(e,t){return typeof e=="boolean"?e:t}function e1(e){let t=e||{},n=t.authorBioLength==="long"?"long":"short",a=t.productSelection==="mix"?"mix":"latest";return{...U,...t,authorBioLength:n,authorFullBleed:Ae(t.authorFullBleed,U.authorFullBleed),authorHandle:We(t.authorHandle,U.authorHandle),authorName:We(t.authorName,U.authorName),backgroundColor:We(t.backgroundColor,U.backgroundColor),customBio:We(t.customBio,U.customBio),customHeaderKicker:typeof t.customHeaderKicker=="string"?t.customHeaderKicker:void 0,customHeaderTitle:typeof t.customHeaderTitle=="string"?t.customHeaderTitle:void 0,discountAmount:We(t.discountAmount,U.discountAmount),editorMode:Ae(t.editorMode,U.editorMode),editorialMaxAgeMonths:We(t.editorialMaxAgeMonths,U.editorialMaxAgeMonths),includeBuyingGuideProducts:Ae(t.includeBuyingGuideProducts,U.includeBuyingGuideProducts),includeCollections:Ae(t.includeCollections,U.includeCollections),includeDeals:Ae(t.includeDeals,U.includeDeals),includeReviewProducts:Ae(t.includeReviewProducts,U.includeReviewProducts),mobileDropdowns:Ae(t.mobileDropdowns,U.mobileDropdowns),stickyMobileFilters:Ae(t.stickyMobileFilters,U.stickyMobileFilters),offerType:We(t.offerType,U.offerType),preloadReviewInventory:Ae(t.preloadReviewInventory,U.preloadReviewInventory),lightweightReviewDelivery:Ae(t.lightweightReviewDelivery,U.lightweightReviewDelivery),hideHawkPrices:Ae(t.hideHawkPrices,U.hideHawkPrices),prioritiseCommercialProducts:Ae(t.prioritiseCommercialProducts,U.prioritiseCommercialProducts),priceRange:We(t.priceRange,U.priceRange),productSelection:a,query:We(t.query,U.query),region:We(t.region,U.region),resultCount:We(t.resultCount,U.resultCount),retailer:We(t.retailer,U.retailer),selectedBrands:Array.isArray(t.selectedBrands)?t.selectedBrands.filter(l=>typeof l=="string"):[],showAuthorBio:Ae(t.showAuthorBio,U.showAuthorBio),showAuthorCounters:Ae(t.showAuthorCounters,U.showAuthorCounters),showAuthorIdentity:Ae(t.showAuthorIdentity,U.showAuthorIdentity),showAuthorRail:Ae(t.showAuthorRail,U.showAuthorRail),showBrandRail:Ae(t.showBrandRail,U.showBrandRail),showCategoryRail:Ae(t.showCategoryRail,U.showCategoryRail),showCollectionsDropdown:Ae(t.showCollectionsDropdown,U.showCollectionsDropdown),showPriceDiscountFilters:Ae(t.showPriceDiscountFilters,U.showPriceDiscountFilters),showReviewSort:Ae(t.showReviewSort,U.showReviewSort),showSocialButtons:Ae(t.showSocialButtons,U.showSocialButtons),showCountdown:Ae(t.showCountdown,U.showCountdown),showHeaderDetails:Ae(t.showHeaderDetails,U.showHeaderDetails),showFreeformTagRail:Ae(t.showFreeformTagRail,U.showFreeformTagRail),sort:We(t.sort,U.sort),viewMode:We(t.viewMode,U.viewMode),website:We(t.website,U.website),widgetSubtitle:We(t.widgetSubtitle,U.widgetSubtitle),widgetTitle:We(t.widgetTitle,U.widgetTitle)}}function t1(e,t={}){return{...e,brands:t.brands,shortenedHeadlines:t.shortenedHeadlines}}function n1(e,t){try{window.hawk?.analytics?.freyr?.push({name:e,data:t}),window.dispatchEvent(new CustomEvent("hawk-analytics-update")),window.freyr?.cmd.push(()=>{window.freyr?.pushAndUpdate?.(e,t)})}catch{}}function a1(){window.dataLayer=window.dataLayer||[],window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.hawk=window.hawk||{},window.hawk.analytics=window.hawk.analytics||{},window.hawk.analytics.freyr=window.hawk.analytics.freyr||[],window.freyr=window.freyr||{cmd:[]},window.freyr.cmd=window.freyr.cmd||[];let e="https://freyr.futurecdn.net/freyr.js",t=window.location.hostname;if(!(window.navigator.webdriver||window.navigator.userAgent.includes("Headless"))&&!!t&&t!=="localhost"&&t!=="127.0.0.1"&&!t.includes("run.app")&&!document.querySelector(`script[src="${e}"]`)){let l=document.createElement("script");l.src=e,l.async=!0,document.head.appendChild(l)}}function oS(e){let t=Number.parseFloat(e.rawPrice||e.price)||null,n=Number.parseFloat(e.rawMsrp||e.msrp)||null;return{product:{primary:{id:e.externalProductId||e.id||e.matchId||null,name:e.productName||e.title||"",type:"deal",price:t,previousPrice:n,currency:e.isoCurrencyCode||e.currency||"USD",preorder:!1,labels:e.modelBrand||e.brand?[{type:"brand",value:e.modelBrand||e.brand}]:[],link:e.url||null,originalLink:e.originalLink||e.url||null,revenueId:e.revenueId||null,startTime:null,endTime:null,voucherCode:null,voucherAudience:null,voucherPercentageSaving:n&&t&&n>t?Math.round((1-t/n)*100):null,voucherMoneySaving:null,voucherType:null,offerExclusive:!1,offerScope:null,globalId:e.productKey||null,inStock:e.inStock!==!1,contractProvider:null,contractMinutes:null,contractTexts:null,contractData:null,contractLength:null,contractMonthlyPrice:null,contractCurrency:e.isoCurrencyCode||e.currency||"USD"}},merchant:{id:e.merchantId||null,name:e.merchant||"Retailer",url:e.merchantUrl||null,network:e.merchantNetwork||null},model:{id:e.modelId||null,brand:e.modelBrand||e.brand||null,name:e.productName||e.title||"",parent:e.modelParent||null}}}var uS=new Set(["subid1","ascsubtag","clickref","u1"]);function cS(e){return e.match(/(?:^|[-_])(\d{10,})(?=$|[-_])/)?.[1]||null}function sS(e){let t=new Set,n=a=>{if(!a||t.has(a))return null;t.add(a);let l;try{l=new URL(a)}catch{return null}for(let[i,r]of l.searchParams)if(uS.has(i.toLowerCase())){let o=cS(r);if(o)return o}for(let i of l.searchParams.values())if(/^https?:\/\//i.test(i)){let r=n(i);if(r)return r}return null};return n(e)}function l1({areaClicked:e,clickType:t,deals:n,index:a,queryName:l}){let i={event:"hawkEvent",category:"Affiliates",affiliate:{action:{type:t,id:"author-widget",event:t==="appeared"?"viewed":"Click from",timestamp:Date.now()},component:{flag:"Editor",product:"deals",category:"Signal Deal Finder Author widget",type:t==="appeared"?"review":"signal product",label:l||n[0]?.productName||n[0]?.title||"",index:a??-1,linkCount:n.length,blockLayout:"",areaClicked:e}},products:n.slice(0,20).map(oS),reviews:[],_clear:!0,"gtm.uniqueEventId":Date.now()%1e4};n1("hawkEvent",i)}function i1(e,t){e.length&&l1({areaClicked:"",clickType:"appeared",deals:e,index:null,queryName:t})}function r1(e,t){if(e?.deals?.length)return e.deals;let n=Number(t)||12;return e?.allDeals?.slice(0,n)||[]}function o1(e){e.addEventListener("click",t=>{let n=t.target;if(!(n instanceof Element))return;let a=n.closest("a[data-fcaw-affiliate-link][href], a.hawk-affiliate-link-deal-widget[href], a.hawk-affiliate-link-container[href], a.hawk-affiliate-link-deal-button[href]"),l=n.closest(".tg-df-card"),i=!!(!a?.dataset.fcawRevenueId&&(a?.hasAttribute("data-hl-processed")||a?.hasAttribute("data-fcaw-hawklinks-requested")));a&&l&&!i&&l1({areaClicked:"Signal Product Card",clickType:"retailer",deals:[{brand:l.dataset.brand,currency:l.dataset.currency,id:l.dataset.dealId,merchant:a.dataset.merchant||l.dataset.merchant,merchantId:a.dataset.merchantId||l.dataset.merchantId,modelId:a.dataset.modelId||l.dataset.modelId,productKey:a.dataset.productKey||l.dataset.productKey,rawMsrp:l.dataset.previousPrice,rawPrice:l.dataset.price,originalLink:a.dataset.fcawOriginalLink||a.href,revenueId:a.dataset.fcawRevenueId||sS(a.href),title:l.dataset.productName,url:a.href}],index:Array.from(e.querySelectorAll(".tg-df-card")).indexOf(l)});let r=n.closest('button, select, [role="button"]');r&&n1("elementInteraction",{element:{action:"click",id:r.id||void 0,class:r.className||void 0,name:r.getAttribute("name")||r.getAttribute("aria-label")||void 0,text:r.textContent?.trim()||void 0,label:r.getAttribute("aria-label")||void 0}})})}var Vf=B(O(),1),dS='fc-author-commerce-widget[data-fcaw-version="1"]',fS="(max-width: 599px)",gS=600,mS='[class*="membership-expandable-banner"]',hS=/^jump\s+to\b/i,jf="data-fcaw-jump-navigation-suppressed",pS=50,yS=1e4,vS=["[data-sticky-header]","[data-header-sticky]",'[role="banner"]',".navigation__container",".site-header",".main-header",".header__container",'[class*="membership-expandable-banner"] [class*="skinny-banner"]','[class*="membership-expandable-banner"] [id="skinnyBanner"]',"nav","header"].join(","),bS=`  :host {    display: block !important;    width: 100% !important;    min-width: 0 !important;    max-width: none !important;    isolation: isolate !important;    contain: style !important;  }  :host([data-fcaw-full-bleed="true"]) {    width: min(      1200px,      var(--fcaw-viewport-width, 100vw)    ) !important;    max-width: 1200px !important;    margin-left: var(      --fcaw-full-bleed-offset,      calc(50% - min(600px, 50vw))    ) !important;    margin-right: 0 !important;    position: relative !important;  }  :host([data-fcaw-full-bleed="true"]) #tg-df-spreadsheet-filters {    width: min(      1500px,      var(--fcaw-viewport-width, 100vw)    ) !important;    max-width: 1500px !important;    margin-left: calc(      (        100% -        min(1500px, var(--fcaw-viewport-width, 100vw))      ) / 2    ) !important;    margin-right: 0 !important;  }  :host, :host *, :host *::before, :host *::after {    box-sizing: border-box;  }`,Ff=new WeakMap;function AS(){if(document.querySelector("style[data-fcaw-jump-navigation-protection]"))return;let e=document.createElement("style");e.setAttribute("data-fcaw-jump-navigation-protection",""),e.textContent=`    [${jf}="true"] {      opacity: 0 !important;      pointer-events: none !important;      visibility: hidden !important;    }  `,document.head.appendChild(e)}function wS(){let e=Array.from(document.querySelectorAll("span, p, div, strong, b")).filter(n=>n.childElementCount===0&&hS.test(n.textContent?.trim()||"")),t=new Set;for(let n of e)for(let a=n.parentElement;a&&a!==document.body;a=a.parentElement)if(getComputedStyle(a).position==="sticky"){t.add(a);break}return[...t]}function SS(e,t,n){let a=Ff.get(e)||new Set;n?a.add(t):a.delete(t),a.size>0?(Ff.set(e,a),e.setAttribute(jf,"true")):(Ff.delete(e),e.removeAttribute(jf))}function CS(e){if(e.dataset.fcawFullBleed!=="true"||typeof IntersectionObserver>"u")return;let t=wS().filter(a=>!a.contains(e));if(t.length===0)return;AS(),new IntersectionObserver(([a])=>{t.forEach(l=>SS(l,e,a.isIntersecting))},{threshold:0}).observe(e)}function RS({host:e,initialData:t,initialProps:n}){let[a]=(0,Lt.useState)(d1),l=DS(t,a),[i,r]=(0,Lt.useState)(n.query),[o,u]=(0,Lt.useState)(n.selectedBrands),[c,s]=(0,Lt.useState)(n.priceRange),[f,d]=(0,Lt.useState)(n.discountAmount),[m,v]=(0,Lt.useState)(n.sort),[A,b]=(0,Lt.useState)(!1),h=!!(A&&n.compactEmbed&&n.includeDeals!==!1),g=(0,Lt.useRef)(!1);return(0,Lt.useEffect)(()=>{let p=()=>{g.current||(g.current=!0,i1(r1(l,n.resultCount),n.query))};if(typeof IntersectionObserver>"u"){p();return}let y=new IntersectionObserver(([C])=>{C?.isIntersecting&&(p(),y.disconnect())},{threshold:.1});return y.observe(e),()=>y.disconnect()},[e,l,n.query]),(0,Lt.useEffect)(()=>{if(typeof IntersectionObserver>"u"){b(!0);return}let p=new IntersectionObserver(([y])=>{y?.isIntersecting&&(b(!0),p.disconnect())},{rootMargin:"800px 0px"});return p.observe(e),()=>p.disconnect()},[e]),(0,Vf.jsx)(Jv,{...n,region:a||"unavailable",initialData:l,warmInventory:A,refreshDealsOnViewport:h,query:i,selectedBrands:o,priceRange:c,discountAmount:f,sort:m,editorMode:!1,onQueryChange:r,onBrandSelect:u,onBrandToggle:p=>u(y=>y.includes(p)?y.filter(C=>C!==p):[...y,p]),onPriceRangeChange:s,onDiscountAmountChange:d,onSortChange:v})}function TS(e){try{let t=document.cookie.match(new RegExp(`(?:^|;\\s*)${e}=([^;]*)`));return t?decodeURIComponent(t[1]):void 0}catch{return}}function cc(e){let n=String(e||"").trim().toUpperCase().replace("_","-").split("-").at(-1);return n==="UK"?"GB":["US","GB","AU","CA","DE","FR","IT","ES","NL"].includes(n||"")?n:void 0}function d1(){let e=new URLSearchParams(window.location.search).get("area");return cc(e)||cc(TS("FTR_Country_Code"))||cc(document.documentElement.getAttribute("data-locale"))||cc(window.navigator.language)}function u1(e,t){let n=e.querySelector(t);if(n?.textContent)try{return JSON.parse(n.textContent)}catch(a){console.warn("Author widget configuration could not be parsed.",a);return}}function ES(e){return e?.reviewInventoryFormat!==nv||!e.allDeals?e:{...e,allDeals:av(e.allDeals)}}function DS(e,t){let n=t?e?.regionalDealManifests?.[t]:void 0;if(!n)return e;let a=e?.regionalDealRailData?.[t];return{...e,allDeals:void 0,deals:n,...a}}function c1(e){e.querySelectorAll("a[href]").forEach(t=>{(t.hasAttribute("data-fcaw-affiliate-link")||t.classList.contains("hawk-affiliate-link-deal-widget")||t.classList.contains("hawk-affiliate-link-container")||t.classList.contains("hawk-affiliate-link-deal-button"))&&(t.rel="sponsored nofollow noopener")})}function xS(e){let t=e.closest(".tg-df-card"),n=t?.dataset.fcawRevenueId||e.dataset.fcawRevenueId;if(n)return n;let a=[window.location.href,t?.dataset.productName||"",t?.dataset.merchant||"",t?.dataset.modelId||"",new Date().toDateString(),"tomsguide"].join("|"),l=0;for(let r=0;r<a.length;r+=1)l=(l<<5)-l+a.charCodeAt(r),l|=0;let i=String(Math.abs(l));for(;i.length<19;)l=(l<<5)-l+i.length,l|=0,i+=String(Math.abs(l));return i=i.slice(0,19),t&&(t.dataset.fcawRevenueId=i),i}function MS(e){let t=e.dataset.fcawOriginalLink||e.href;if(!t.includes("hawk-custom-tracking"))return!1;let n=d1();if(!n)return!1;let a=xS(e);return e.dataset.fcawOriginalLink=t,e.dataset.fcawRevenueId=a,e.href=t.replaceAll("hawk-custom-tracking",`tomsguide-${n.toLowerCase()}-${a}`),e.setAttribute("data-fcaw-hawklinks-requested","true"),!0}function _S(){return!!window.hawklinks?.version}function BS(e){let t=!1,n,a,l=()=>Array.from(e.querySelectorAll(".article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-deal-widget[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested]), .article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-container[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested]), .article-body a[data-fcaw-affiliate-link].hawk-affiliate-link-deal-button[href]:not([data-hl-processed]):not([data-fcaw-hawklinks-requested])")),i=()=>{t=!1;let u=l();if(u.length===0)return;let c=u.filter(s=>!MS(s));if(c.length!==0){if(!_S()){let s=Date.now();a??=s,!n&&s-a<yS&&(n=window.setTimeout(()=>{n=void 0,r()},pS));return}a=void 0,c.forEach(s=>s.setAttribute("data-fcaw-hawklinks-requested","true")),document.dispatchEvent(new CustomEvent("processArticle",{detail:{element:e}}))}},r=()=>{t||(t=!0,window.setTimeout(i,0))},o=new MutationObserver(r);return o.observe(e,{attributes:!0,attributeFilter:["href"],childList:!0,subtree:!0}),r(),()=>{o.disconnect(),n&&window.clearTimeout(n)}}function NS(e){if(e.dataset.fcawFullBleed!=="true")return;let t=()=>{let n=document.documentElement.clientWidth||window.innerWidth,a=Math.min(1200,n),l=Math.max(0,(n-a)/2),i=e.parentElement?.getBoundingClientRect().left||0;e.style.setProperty("--fcaw-full-bleed-offset",`${l-i}px`),e.style.setProperty("--fcaw-viewport-width",`${n}px`)};t(),window.addEventListener("resize",t,{passive:!0}),typeof ResizeObserver<"u"&&e.parentElement&&new ResizeObserver(t).observe(e.parentElement)}function OS(e){let t=window.matchMedia(fS),n=!1,a=new Set,l=new Map,i,r=()=>t.matches||e.getBoundingClientRect().width<gS,o=()=>{n||(n=!0,window.requestAnimationFrame(s))},u=()=>{if(typeof MutationObserver>"u")return;let f=new Set(Array.from(document.querySelectorAll(mS)));l.forEach((d,m)=>{f.has(m)&&m.isConnected||(d.disconnect(),l.delete(m))}),f.forEach(d=>{if(l.has(d))return;let m=new MutationObserver(o);m.observe(d,{attributes:!0,attributeFilter:["class","style"],childList:!0,subtree:!0}),l.set(d,m)})},c=f=>{let d=new Set(f);a.forEach(m=>{d.has(m)||(i?.unobserve(m),m.removeEventListener("transitionend",o),a.delete(m))}),f.forEach(m=>{a.has(m)||(i?.observe(m),m.addEventListener("transitionend",o),a.add(m))})},s=()=>{if(n=!1,u(),!r()){c([]),e.style.removeProperty("--fcaw-mobile-sticky-offset");return}let f=Number.parseFloat(getComputedStyle(e).getPropertyValue("--fcaw-publisher-sticky-offset"));if(Number.isFinite(f)&&f>=0){c([]),e.style.setProperty("--fcaw-mobile-sticky-offset",`${f}px`);return}let d=Array.from(document.querySelectorAll(vS)).filter(v=>{if(v.contains(e))return!1;let A=getComputedStyle(v).position;return A==="fixed"||A==="sticky"});c(d);let m=d.reduce((v,A)=>{let b=A.getBoundingClientRect();return b.top>2||b.bottom<=0||b.height<=0||b.height>window.innerHeight*.5?v:Math.max(v,b.bottom)},0);e.style.setProperty("--fcaw-mobile-sticky-offset",`${Math.ceil(m)}px`)};return typeof ResizeObserver<"u"&&(i=new ResizeObserver(o),i.observe(e)),s(),window.addEventListener("scroll",o,{capture:!0,passive:!0}),window.addEventListener("resize",o,{passive:!0}),t.addEventListener?.("change",o),()=>{window.removeEventListener("scroll",o,!0),window.removeEventListener("resize",o),t.removeEventListener?.("change",o),i?.disconnect(),a.forEach(f=>f.removeEventListener("transitionend",o)),a.clear(),l.forEach(f=>f.disconnect()),l.clear()}}function kS(e){if(e.dataset.fcawEnhanced==="true")return;let t=u1(e,"script[data-fcaw-config]");if(!t)return;let n={...t1(e1(t),{brands:t.brands,shortenedHeadlines:t.shortenedHeadlines}),compactEmbed:t.compactEmbed,editorMode:!1,warmInventory:t.warmInventory},a=u1(e,"script[data-fcaw-preload]"),l=ES(a),i=e.querySelector("[data-fcaw-fallback]");if(!i)return;NS(e),CS(e),n.stickyMobileFilters!==!1&&OS(e),c1(i);let r=e.shadowRoot||e.attachShadow({mode:"open"}),o=e.querySelector(":scope > style[data-fcaw-host-protection]");if(o&&r.appendChild(o),!r.querySelector("style[data-fcaw-shadow-protection]")){let c=document.createElement("style");c.setAttribute("data-fcaw-shadow-protection",""),c.textContent=bS,r.appendChild(c)}i.querySelectorAll(":scope > style").forEach(c=>{r.appendChild(c)});let u=document.createElement("div");for(u.setAttribute("data-fcaw-mount","");i.firstChild;)u.appendChild(i.firstChild);i.remove(),r.appendChild(u),e.dataset.fcawEnhanced="true",a1(),e.dataset.fcawAnalyticsReady="true",o1(r),BS(r),(0,s1.createRoot)(u).render((0,Vf.jsx)(RS,{host:e,initialData:l,initialProps:n})),window.setTimeout(()=>c1(r),0)}function Yf(){document.querySelectorAll(dS).forEach(kS)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Yf,{once:!0}):Yf();new MutationObserver(Yf).observe(document.documentElement,{childList:!0,subtree:!0});})();/*! Bundled license information:react/cjs/react.production.js:  (**   * @license React   * react.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)scheduler/cjs/scheduler.production.js:  (**   * @license React   * scheduler.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react-dom/cjs/react-dom.production.js:  (**   * @license React   * react-dom.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react-dom/cjs/react-dom-client.production.js:  (**   * @license React   * react-dom-client.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)react/cjs/react-jsx-runtime.production.js:  (**   * @license React   * react-jsx-runtime.production.js   *   * Copyright (c) Meta Platforms, Inc. and affiliates.   *   * This source code is licensed under the MIT license found in the   * LICENSE file in the root directory of this source tree.   *)*/</script></div><ul><li><a href="#main"><strong>Back to top ^</strong></a></li></ul><h2 class="article-body__section" id="section-black-friday-gaming-mouse-deals-in-the-uk"><span>Black Friday gaming mouse deals in the UK</span></h2><h2 id="where-are-the-best-black-friday-gaming-keyboard-mouse-and-controller-deals-in-the-uk">Where are the best Black Friday gaming keyboard, mouse, and controller deals in the UK?</h2><ul><li><strong>Amazon: </strong><a href="https://www.amazon.co.uk/s?k=gaming+mice&crid=LB80KGTDLNUC&sprefix=gaming+mice%2Caps%2C142&ref=nb_sb_noss_1" target="_blank">Big discounts on top-brand gaming mice</a></li><li><strong>Overclockers:</strong> <a href="https://www.overclockers.co.uk/peripherals/mice/gaming-mice" target="_blank">Over 100 gaming mice to choose from</a></li><li><strong>Scan:</strong> <a href="https://www.scan.co.uk/search?q=gaming+mice" target="_blank">Gaming mice from just £18</a></li><li><strong>Box: </strong><a href="https://box.co.uk/gaming-mice" target="_blank">Gaming mice from Asus, Logitech, and Razer</a></li><li><strong>Currys:</strong> <a href="https://www.currys.co.uk/search?q=gaming%20mice" target="_blank">Mice from as little as £15</a></li><li><strong>Argos: </strong><a href="https://www.argos.co.uk/search/gaming-mice/?clickOrigin=searchbar:search:term:gaming+mice" target="_blank">Good prices on budget to high-end mice</a></li></ul><div class="product"><a data-dimension112="a8b4b2ac-cd64-11f1-b0ff-df14948e07b9" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="£22.99" href="https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1401px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="qgFqUinn2HCKHEThJ47QpC" name="1636734797.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC-1920-80.jpg" mos="" align="middle" fullscreen="" width="1401" height="1401" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/" target="_blank" rel="nofollow" data-dimension112="a8b4b2ac-cd64-11f1-b0ff-df14948e07b9" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="£22.99">G203 | Wired: was £30.99 now £22.99</a></strong><br>Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.</p><p><strong>Key specs: Wired | 8,000 DPI | Right-handed</strong><a class="view-deal button" href="https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/" target="_blank" rel="nofollow" data-dimension112="a8b4b2ac-cd64-11f1-b0ff-df14948e07b9" data-action="Deal Block" data-label="G203 | Wired" data-dimension48="G203 | Wired" data-dimension25="£22.99">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4b45a-cd64-11f1-8c43-2d4d930869c9" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="£69.97" href="https://www.amazon.co.uk/Corsair-SABRE-Ultralight-Wireless-Gaming/dp/B0FPDBK2M6" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="4AaJcaYRutRHqs8C5qjfye" name="Sabre V2 Pro" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/4AaJcaYRutRHqs8C5qjfye-1920-80.png" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Corsair-SABRE-Ultralight-Wireless-Gaming/dp/B0FPDBK2M6" target="_blank" rel="nofollow" data-dimension112="a8b4b45a-cd64-11f1-8c43-2d4d930869c9" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="£69.97">Sabre V2 Pro: was £89.99 now £69.97</a></strong><br>Getting a <a href="https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/" target="_blank">92% from our Jacob Fox</a> last year, this ultra-light gaming mouse is a bit of a beast. It's light, sturdy and comes with a great sensor too. </p><p><strong>Key specs: 33K sensor | Wireless | 36 g weight | 8,000 Hz</strong><a class="view-deal button" href="https://www.amazon.co.uk/Corsair-SABRE-Ultralight-Wireless-Gaming/dp/B0FPDBK2M6" target="_blank" rel="nofollow" data-dimension112="a8b4b45a-cd64-11f1-8c43-2d4d930869c9" data-action="Deal Block" data-label="Sabre V2 Pro" data-dimension48="Sabre V2 Pro" data-dimension25="£69.97">View Deal</a></p></div><div class="product"><a data-dimension112="040d729c-cd6a-11f1-8eaa-133f6273298d" data-action="Deal Block" data-label="Viper V3 Pro SE | Wireless" data-dimension48="Viper V3 Pro SE | Wireless" data-dimension25="£69.97" href="https://www.amazon.co.uk/Razer-Viper-Pro-Ultra-lightweight-lightweight/dp/B0FT8DX8CD" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1509px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="xR8QJpjHGx27FS3pZnYBj7" name="1790601520.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xR8QJpjHGx27FS3pZnYBj7-1920-80.jpg" mos="" align="middle" fullscreen="" width="1509" height="1509" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Razer-Viper-Pro-Ultra-lightweight-lightweight/dp/B0FT8DX8CD" target="_blank" rel="nofollow" data-dimension112="040d729c-cd6a-11f1-8eaa-133f6273298d" data-action="Deal Block" data-label="Viper V3 Pro SE | Wireless" data-dimension48="Viper V3 Pro SE | Wireless" data-dimension25="£69.97">Viper V3 Pro SE | Wireless: was £99.99 now £69.97</a></strong><br>Razer doesn't play around with its compact Viper line-up. The V3 Pro SE is pretty light, feels great in hand, and tracks your movement like any other high-end mouse. This is identical to the standard Viper V3 Pro except that it only comes with a 1,000 Hz dongle out of the box, and you need to purchase a separate dongle if you want battery sapping 8K polling. It's still top-tier and a lot cheaper than the newer V4 Pro now.</p><p><strong>Key specs: 6 buttons | 35K DPI | 8,000 Hz | 70 g</strong><a class="view-deal button" href="https://www.amazon.co.uk/Razer-Viper-Pro-Ultra-lightweight-lightweight/dp/B0FT8DX8CD" target="_blank" rel="nofollow" data-dimension112="040d729c-cd6a-11f1-8eaa-133f6273298d" data-action="Deal Block" data-label="Viper V3 Pro SE | Wireless" data-dimension48="Viper V3 Pro SE | Wireless" data-dimension25="£69.97">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4b3ba-cd64-11f1-877c-7bc99d0c542b" data-action="Deal Block" data-label="Aerox 3 | Wireless" data-dimension48="Aerox 3 | Wireless" data-dimension25="£86.40" href="https://www.amazon.co.uk/SteelSeries-Aerox-Wireless-TrueMove-Optical/dp/B0GNMGXRF8/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1433px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="43md8LJJA69Nb4NXj4Aq6f" name="1790601815.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/43md8LJJA69Nb4NXj4Aq6f-1920-80.jpg" mos="" align="middle" fullscreen="" width="1433" height="1433" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/SteelSeries-Aerox-Wireless-TrueMove-Optical/dp/B0GNMGXRF8/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4b3ba-cd64-11f1-877c-7bc99d0c542b" data-action="Deal Block" data-label="Aerox 3 | Wireless" data-dimension48="Aerox 3 | Wireless" data-dimension25="£86.40">Aerox 3 | Wireless: was £99.99 now £86.40</a></strong><br>The SteelSeries Aerox 3 might be lightweight with its honeycombed design, but it's certainly not light on features. With a 200-hour battery life, dual connectivity, and AquaBarrier protection to ensure water, dust and dirt resistance, this is a mouse designed to take some abuse and keep on trucking.</p><p><strong>Key specs: Wireless | 18,000 DPI | Right-handed</strong><a class="view-deal button" href="https://www.amazon.co.uk/SteelSeries-Aerox-Wireless-TrueMove-Optical/dp/B0GNMGXRF8/?th=1" target="_blank" rel="nofollow" data-dimension112="a8b4b3ba-cd64-11f1-877c-7bc99d0c542b" data-action="Deal Block" data-label="Aerox 3 | Wireless" data-dimension48="Aerox 3 | Wireless" data-dimension25="£86.40">View Deal</a></p></div><div class="product"><a data-dimension112="a8b4b4f0-cd64-11f1-9f40-fb4d8c519f5d" data-action="Deal Block" data-label="G Pro 2 Lightspeed | Wireless" data-dimension48="G Pro 2 Lightspeed | Wireless" data-dimension25="£97.4" href="https://www.amazon.co.uk/Logitech-Lightspeed-Left-Handed-Customisable-Switchable-Black/dp/B0DBZGCQHX/ref=sr_1_5" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1206px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="8LsAaks2QtDi5D9rVtv4Yc" name="1781520515.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/8LsAaks2QtDi5D9rVtv4Yc-1920-80.jpg" mos="" align="middle" fullscreen="" width="1206" height="1206" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p><strong><a href="https://www.amazon.co.uk/Logitech-Lightspeed-Left-Handed-Customisable-Switchable-Black/dp/B0DBZGCQHX/ref=sr_1_5" target="_blank" rel="nofollow" data-dimension112="a8b4b4f0-cd64-11f1-9f40-fb4d8c519f5d" data-action="Deal Block" data-label="G Pro 2 Lightspeed | Wireless" data-dimension48="G Pro 2 Lightspeed | Wireless" data-dimension25="£97.4">G Pro 2 Lightspeed | Wireless: was £119.99 now £97.4</a></strong><br>A great 44K DPI sensor with an ambidextrous shape, the G Pro was our first love before the Superlight showed up. It's still a wicked shape and plenty capable for gaming. This one may drop further as while it is a good price today, it has been a touch cheaper in recent months.</p><p><strong>Key specs: Ambidextrous | 44K DPI | Wireless</strong><a class="view-deal button" href="https://www.amazon.co.uk/Logitech-Lightspeed-Left-Handed-Customisable-Switchable-Black/dp/B0DBZGCQHX/ref=sr_1_5" target="_blank" rel="nofollow" data-dimension112="a8b4b4f0-cd64-11f1-9f40-fb4d8c519f5d" data-action="Deal Block" data-label="G Pro 2 Lightspeed | Wireless" data-dimension48="G Pro 2 Lightspeed | Wireless" data-dimension25="£97.4">View Deal</a></p></div><ul><li><a href="#main"><strong>Back to top ^</strong></a></li></ul>
                                                            </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[ AMD has shipped FSR 4.1 early for RX 6000 graphics cards, and it's coming to Ryzen APUs, Vulkan, and Xbox too ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you are rocking an AMD graphics card or AMD laptop/handheld, there's good news. Not only will AMD be adding FSR 4.1 support to APUs and Xbox products in the future, but as of this week, it's also been added to Radeon RX 6000-series graphics cards. </p><p>FSR is effectively AMD's answer to Nvidia's DLSS upscaling solution, and the latest generation (which has been supported on<a href="https://www.pcgamer.com/hardware/graphics-cards/true-to-its-word-amd-brings-fsr-4-1-to-radeon-rx-7000-series-card-owners-with-its-latest-adrenalin-drivers/" target="_blank"> RX 7000-series cards since earlier this year</a>) offers performance and quality increases. RX 6000-series support was originally planned for 2027, but this week's announcement also declared that FSR 4.1 will be coming to all Gorgon Halo and Strix Halo chips for mini desktops and mobile workstations, all Gorgon and Strix Halo Ryzen 9 laptop chips, and all Z2 Extreme and Z2A handheld chips. </p><p>AMD also announced FSR 4.1 would be coming to Xbox, and will be optimised for Asus ROG Xbox handhelds (though one might assume that based on Z2A and Z2E support). </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>Jack Huynh, the SVP & GM of Computing & Graphics at AMD, took to X to <a href="https://x.com/jackhuynh/status/2112555792079417520" target="_blank">talk a little bit more about it</a>, announcing that AMD powers "over a billion gaming devices around the world" and that "we're still building".</p><p>Huynh says FSR Redstone is now in over 400 games on Radeon 9000-series graphics cards, and that Ray Regeneration (a denoiser like DLSS's Ray Reconstruction) is coming to more games. FSR 4 will be coming to Vulkan, too. </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/fT6TIXnmv-s" allowfullscreen></iframe></div></div><p>Think of Vulkan like a non-proprietary version of Microsoft's API, DirectX 12. This is what Linux machines use (including the Steam Deck), and a lack of Vulkan support holds back non-Microsoft devices. Greater platform support is great news for Linux AMD gamers. </p><p>We unfortunately don't have a timeline on future support, but here's hoping it, too, is ahead of schedule. This means even older rigs should be able to get better performance going forward, and with the next Xbox and PlayStation being presumably AMD-based, it's a great time to lay the groundwork to get more out of AMD's hardware. </p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/hardware/graphics-cards/amd-has-shipped-fsr-4-1-early-for-rx-6000-graphics-cards-and-its-coming-to-ryzen-apus-vulkan-and-xbox-too/</link>
                                                                            <description>
                            <![CDATA[ Better support is always a good thing. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jvNnziEKGCYNf37L6pbx4Z</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/2bwNqPVYT4TbRfqCYevkV8-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 15:35:07 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Graphics Cards]]></category>
                                                    <category><![CDATA[Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ James Bentley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.&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/2bwNqPVYT4TbRfqCYevkV8-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Asus ROG Xbox Ally X and ROG Ally X handheld gaming PCs]]></media:description>                                                            <media:text><![CDATA[Asus ROG Xbox Ally X and ROG Ally X handheld gaming PCs]]></media:text>
                                <media:title type="plain"><![CDATA[Asus ROG Xbox Ally X and ROG Ally X handheld gaming PCs]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/2bwNqPVYT4TbRfqCYevkV8-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you are rocking an AMD graphics card or AMD laptop/handheld, there's good news. Not only will AMD be adding FSR 4.1 support to APUs and Xbox products in the future, but as of this week, it's also been added to Radeon RX 6000-series graphics cards. </p><p>FSR is effectively AMD's answer to Nvidia's DLSS upscaling solution, and the latest generation (which has been supported on<a href="https://www.pcgamer.com/hardware/graphics-cards/true-to-its-word-amd-brings-fsr-4-1-to-radeon-rx-7000-series-card-owners-with-its-latest-adrenalin-drivers/" target="_blank"> RX 7000-series cards since earlier this year</a>) offers performance and quality increases. RX 6000-series support was originally planned for 2027, but this week's announcement also declared that FSR 4.1 will be coming to all Gorgon Halo and Strix Halo chips for mini desktops and mobile workstations, all Gorgon and Strix Halo Ryzen 9 laptop chips, and all Z2 Extreme and Z2A handheld chips. </p><p>AMD also announced FSR 4.1 would be coming to Xbox, and will be optimised for Asus ROG Xbox handhelds (though one might assume that based on Z2A and Z2E support). </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>Jack Huynh, the SVP & GM of Computing & Graphics at AMD, took to X to <a href="https://x.com/jackhuynh/status/2112555792079417520" target="_blank">talk a little bit more about it</a>, announcing that AMD powers "over a billion gaming devices around the world" and that "we're still building".</p><p>Huynh says FSR Redstone is now in over 400 games on Radeon 9000-series graphics cards, and that Ray Regeneration (a denoiser like DLSS's Ray Reconstruction) is coming to more games. FSR 4 will be coming to Vulkan, too. </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/fT6TIXnmv-s" allowfullscreen></iframe></div></div><p>Think of Vulkan like a non-proprietary version of Microsoft's API, DirectX 12. This is what Linux machines use (including the Steam Deck), and a lack of Vulkan support holds back non-Microsoft devices. Greater platform support is great news for Linux AMD gamers. </p><p>We unfortunately don't have a timeline on future support, but here's hoping it, too, is ahead of schedule. This means even older rigs should be able to get better performance going forward, and with the next Xbox and PlayStation being presumably AMD-based, it's a great time to lay the groundwork to get more out of AMD's hardware. </p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'You've taken us free cash flow negative as a company, so congratulations': Amazon has plenty of Nvidia GPUs, but not enough energy to power its AI boom ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Nvidia's RTX 5090 GPU is 'unavailable' from many reputable retailers, <a href="https://www.pcgamer.com/hardware/graphics-cards/man-moved-to-tears-by-rtx-5090-on-his-wedding-day-usd9000-price-tag-brings-a-tear-to-my-eye-too/" target="_blank">approaching an asking price of $9,000</a> if you happen to track one down on Newegg's marketplace of resellers of dubious virtue. The AI boom is at least in part to blame for this, encouraging team green to shift production resources away from consumer hardware. However, business customers like Amazon are running into logistical issues that just add insult to injury for PC gamers left out in the cold.</p><p>Amazon Web Services took delivery of approximately $5 billion of Nvidia GB300 racks in August alone, <a href="https://www.businessinsider.com/amazon-220-billion-ai-bet-data-centers-spending-challenges-2026-10" target="_blank">according to an email seen by Business Insider</a>. Reportedly, the cloud company has also accepted $3 billion worth of hardware each month since. The kicker is that, despite having all of this kit lined up to install in its data centres, AWS does not yet have enough energy to power everything.</p><p>This is one reason AWS's free cash flow dropped from <a href="https://ir.aboutamazon.com/news-release/news-release-details/2024/Amazon-com-Announces-Second-Quarter-Results/default.aspx" target="_blank">$53 billion in Q2 of 2024</a>, to <a href="https://ir.aboutamazon.com/news-release/news-release-details/2026/Amazon-com-Announces-Second-Quarter-Results/" target="_blank">$7.6 billion during Q2 2026</a>. Free cash flow is now in the red according to a leaked recording of an internal staff meeting last month; AWS CFO John Felton joked to the executive leading the company's AI infrastructure, Prasad Kalyanaraman, "You've taken us free cash flow negative as a company, so congratulations."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>This friendly joke can only hide so much pain though. Obviously, AWS is no stranger to building data centres, but at this speed and scale, the company is having to juggle multiple different infrastructure timelines amid a whole lot of near-term volatility when it comes to hardware pricing.</p><p>Typically, AWS would foot the bill for Nvidia's GPU racks only once they were installed. However, with no clear idea of when that will be, Amazon has had to implement an "Early Rack Receipt" process in the meantime. With no way to power this paid for hardware, that leaves a lot of cash tied up in tech AWS can't actually use—hence the reportedly negative free cash flow.</p><p>But AWS is not inclined to stop scooping up GPU racks or pause its AI infrastructure build out any time soon. Free cash flow problems aside, <a href="https://ir.aboutamazon.com/news-release/news-release-details/2026/Amazon-com-Announces-Second-Quarter-Results/" target="_blank">AWS's second quarter revenue grew by 37% year-over-year</a> This was the fastest growth AWS has seen in 18 quarters, making $42.2 billion by the end of July. That's a big win that in turn encourages more big spending.</p><p>Indeed, Amazon CEO Andy Jassy recently described AI as "<a href="https://www.aboutamazon.com/news/company-news/amazon-ceo-andy-jassy-2025-letter-to-shareholders" target="_blank">a once-in-a-lifetime opportunity" to investors</a>, with the company intending to spend <a href="https://www.cnbc.com/2026/02/05/why-amazons-ceo-is-confident-with-200-billion-spending-plan.html" target="_blank">almost $200 billion</a> on its infrastructure buildout. On a recent earnings call, Jassy even said he was sure the company has a "<a href="https://finance.yahoo.com/quote/AMZN/earnings/AMZN-Q2-2026-earnings_call-657334.html#:~:text=clear%20line%20of%20sight%20to%20strong%20financial%20returns" target="_blank">clear line of sight to strong financial returns</a>" on that sizable investment. But in the near-term, while AWS figures out its power problems, a lot of that investment may well be sat collecting dust somewhere.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.pcgamer.com/software/ai/youve-taken-us-free-cash-flow-negative-as-a-company-so-congratulations-amazon-has-plenty-of-nvidia-gpus-but-not-enough-energy-to-power-its-ai-boom/</link>
                                                                            <description>
                            <![CDATA[ Meanwhile, the RTX 5090 remains missing in action. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">6F8Q4nJafMcqv2LiadmzyP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/qhwiqPJTwpeNLX9hs6DE3F-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 15:09:46 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jess Kinghorn ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she&#039;s either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.&amp;nbsp;&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/qhwiqPJTwpeNLX9hs6DE3F-1920-80.jpg">
                                                            <media:credit><![CDATA[Akos Stiller - Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Data Center]]></media:description>                                                            <media:text><![CDATA[Data Center]]></media:text>
                                <media:title type="plain"><![CDATA[Data Center]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/qhwiqPJTwpeNLX9hs6DE3F-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Nvidia's RTX 5090 GPU is 'unavailable' from many reputable retailers, <a href="https://www.pcgamer.com/hardware/graphics-cards/man-moved-to-tears-by-rtx-5090-on-his-wedding-day-usd9000-price-tag-brings-a-tear-to-my-eye-too/" target="_blank">approaching an asking price of $9,000</a> if you happen to track one down on Newegg's marketplace of resellers of dubious virtue. The AI boom is at least in part to blame for this, encouraging team green to shift production resources away from consumer hardware. However, business customers like Amazon are running into logistical issues that just add insult to injury for PC gamers left out in the cold.</p><p>Amazon Web Services took delivery of approximately $5 billion of Nvidia GB300 racks in August alone, <a href="https://www.businessinsider.com/amazon-220-billion-ai-bet-data-centers-spending-challenges-2026-10" target="_blank">according to an email seen by Business Insider</a>. Reportedly, the cloud company has also accepted $3 billion worth of hardware each month since. The kicker is that, despite having all of this kit lined up to install in its data centres, AWS does not yet have enough energy to power everything.</p><p>This is one reason AWS's free cash flow dropped from <a href="https://ir.aboutamazon.com/news-release/news-release-details/2024/Amazon-com-Announces-Second-Quarter-Results/default.aspx" target="_blank">$53 billion in Q2 of 2024</a>, to <a href="https://ir.aboutamazon.com/news-release/news-release-details/2026/Amazon-com-Announces-Second-Quarter-Results/" target="_blank">$7.6 billion during Q2 2026</a>. Free cash flow is now in the red according to a leaked recording of an internal staff meeting last month; AWS CFO John Felton joked to the executive leading the company's AI infrastructure, Prasad Kalyanaraman, "You've taken us free cash flow negative as a company, so congratulations."</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwgagW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwgagW.js" async></script><p>This friendly joke can only hide so much pain though. Obviously, AWS is no stranger to building data centres, but at this speed and scale, the company is having to juggle multiple different infrastructure timelines amid a whole lot of near-term volatility when it comes to hardware pricing.</p><p>Typically, AWS would foot the bill for Nvidia's GPU racks only once they were installed. However, with no clear idea of when that will be, Amazon has had to implement an "Early Rack Receipt" process in the meantime. With no way to power this paid for hardware, that leaves a lot of cash tied up in tech AWS can't actually use—hence the reportedly negative free cash flow.</p><p>But AWS is not inclined to stop scooping up GPU racks or pause its AI infrastructure build out any time soon. Free cash flow problems aside, <a href="https://ir.aboutamazon.com/news-release/news-release-details/2026/Amazon-com-Announces-Second-Quarter-Results/" target="_blank">AWS's second quarter revenue grew by 37% year-over-year</a> This was the fastest growth AWS has seen in 18 quarters, making $42.2 billion by the end of July. That's a big win that in turn encourages more big spending.</p><p>Indeed, Amazon CEO Andy Jassy recently described AI as "<a href="https://www.aboutamazon.com/news/company-news/amazon-ceo-andy-jassy-2025-letter-to-shareholders" target="_blank">a once-in-a-lifetime opportunity" to investors</a>, with the company intending to spend <a href="https://www.cnbc.com/2026/02/05/why-amazons-ceo-is-confident-with-200-billion-spending-plan.html" target="_blank">almost $200 billion</a> on its infrastructure buildout. On a recent earnings call, Jassy even said he was sure the company has a "<a href="https://finance.yahoo.com/quote/AMZN/earnings/AMZN-Q2-2026-earnings_call-657334.html#:~:text=clear%20line%20of%20sight%20to%20strong%20financial%20returns" target="_blank">clear line of sight to strong financial returns</a>" on that sizable investment. But in the near-term, while AWS figures out its power problems, a lot of that investment may well be sat collecting dust somewhere.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>