<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="https://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:cf="https://www.futureplc.com/rss/content-flags"
>
    <channel>
                    <atom:link href="https://www.tomsguide.com/feeds/tag/valve" rel="self" type="application/rss+xml" />
                            <title><![CDATA[ Latest from Tom's Guide in Valve ]]></title>
                <link>https://www.tomsguide.com/tag/valve</link>
        <description><![CDATA[ All the latest valve content from the Tom's Guide team ]]></description>
                                    <lastBuildDate>Sat, 18 Jul 2026 15:30:00 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ If PlayStation wants to succeed with all-digital, it needs to follow the Steam model — 5 ways it can win over gamers like me ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/playstation/if-playstation-wants-to-succeed-with-all-digital-it-needs-to-follow-the-steam-model-5-ways-it-can-win-over-gamers-like-me</link>
                                                                            <description>
                            <![CDATA[ PlayStation appears to be going all-in on digital games. To make this easier on gamers, it should implement some of Steam's policies. Here's what Sony can do. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">RZxxLUXKiNi3NuokYLVCbf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/y5T6EzpDkzjkm8NbGVewWW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 18 Jul 2026 15:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Playstation]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/y5T6EzpDkzjkm8NbGVewWW-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The PlayStation logo on a PS5 Pro]]></media:description>                                                            <media:text><![CDATA[The PlayStation logo on a PS5 Pro]]></media:text>
                                <media:title type="plain"><![CDATA[The PlayStation logo on a PS5 Pro]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/y5T6EzpDkzjkm8NbGVewWW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/gaming/playstation/playstation-is-officially-killing-physical-discs-heres-when-they-disappear-and-what-that-means-for-you">PlayStation is officially killing physical discs</a>, and gamers aren’t happy. The company’s social media accounts can’t post anything without being slammed with negative comments, and even websites and influencers who are usually fans of PlayStation are taking them to task. Sony has yet to respond to any of this, which is likely making the situation worse. In short, this whole no-disc situation is a mess.</p><p>Sony says that digital now accounts for the vast majority of PlayStation game sales — hitting 85% in the most recent quarter — and it also nets a greater profit from digital purchases than physical, so it’s unlikely the company will reverse this controversial decision. However, if Sony wants to start (re)building trust with its fanbase, there are ways to make an all-digital future more palatable, namely by copying some of what has made Steam successful.</p><p>Steam has been a rousing success on PC for many years. Though Valve doesn’t offer physical games, it provides users with plenty of incentives to remain satisfied with their digital purchases and with the platform overall. I don’t expect Sony to completely copy Steam, but it can adopt similar policies if it ends disc production in January 2028.</p><p>Here are five practical, realistic adaptations Sony can take to make PSN more player-friendly.</p><h2 id="more-frequent-and-enticing-sales">More frequent (and enticing) sales</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ykRy32GfJmDiDjqymNueJf" name="shutterstock_703264159.jpg" alt="Steam storefront on laptop screen." src="https://cdn.mos.cms.futurecdn.net/ykRy32GfJmDiDjqymNueJf.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>While PC gaming has higher upfront costs than consoles, it has become more affordable over time thanks to frequent Steam sales. Steam keeps its online store thriving with major seasonal sales and near-constant publisher promotions. Games also drop in price faster and more aggressively. This is why Steam users (like me) end up with libraries of hundreds of games. It’s hard to pass up a title when it’s just a few bucks!</p><p>The PlayStation Store has its own sales events, such as Days of Play, Black Friday, and other holiday sales, along with weekly deals. However, full-price windows for new games are longer, and we usually only see extreme deep discounts when a game is all but forgotten. I’ve taken advantage of PSN sales and snatched some good titles, but the sales and discounts still don’t match those of Steam.</p><p>In an all-digital world, Sony would have complete control over pricing. Using Steam-style volume-driven discounting on the back catalog (and even earlier on mid-tier titles) would encourage more impulse and library-building purchases, rather than people either waiting for huge discounts or skipping entirely.</p><h2 id="a-true-try-before-you-fully-commit-refund-policy">A true “try before you fully commit” refund policy</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:957px;"><p class="vanilla-image-block" style="padding-top:67.71%;"><img id="sEEJ2czKyykbmZiNdbohSe" name="Screenshot 2025-09-04 100754" alt="Hollow Knight: Silksong store page on Steam" src="https://cdn.mos.cms.futurecdn.net/sEEJ2czKyykbmZiNdbohSe.png" mos="" align="middle" fullscreen="" width="957" height="648" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Steam)</span></figcaption></figure><p>Right now, Steam arguably has the best refund policy in gaming. So long as you play a game for less than two hours total, you have 14 days to receive a full refund. This is a fantastic way to avoid purchasing a game that doesn’t click for you. While not technically a game demo, it pretty much serves the same “try before you buy” ethos.</p><p>PlayStation also has a 14-day refund policy, but it only applies if you haven’t downloaded a game. Once you start downloading, you no longer qualify for a refund unless the file is corrupt or you make a strong case to customer support that you purchased a game in error. This is frustrating enough now, but it will feel even worse if you can’t refund a digital title priced at $70–$80.</p><p>A playtime-based refund window, similar to Steam’s, would go a long way toward increasing purchase confidence without requiring Sony to change its curated store model. It’s actually wild that Sony doesn’t already have a similar policy, but the company should try it now if it plans to go all-in on an all-digital console.</p><h2 id="stronger-household-family-sharing">Stronger household/family sharing</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="kq426XFE2gzifzQdVzDYDU" name="steam-home-page.jpg" alt="The home page for Steam" src="https://cdn.mos.cms.futurecdn.net/kq426XFE2gzifzQdVzDYDU.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: Steam)</span></figcaption></figure><p>Sharing games is one of the main reasons gamers love physical media. While sharing digital content isn’t the same as handing a copy to someone else, Steam has a digital sharing policy that could work well for Sony.</p><p>On Steam, up to six family members can share a unified game library. Multiple members can play different games at the same time (you need multiple owned copies of the same game for concurrent play). </p><p>PlayStation has sharing features, but they’re more limited.</p><p>Console Sharing lets you log in to your account on a friend’s PS5 so they can play your games. Share Play lets you share your screen with a friend online and virtually hand them your controller. Though both of these methods work as advertised, a person cannot simply play games from another account on their own console in a straightforward way.</p><p>Expanding sharing options on PlayStation so a household can more easily share a digital library (with reasonable restrictions against abuse) wouldn’t be as seamless as lending someone a physical game, but it would at least offer gamers something comparable.</p><h2 id="better-discovery-tools">Better discovery tools</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qvJ6bN35U3ezruK5peaaZk" name="20211213092912.jpg" alt="The Matrix Awakens product listing on the PlayStation Store on PS5" src="https://cdn.mos.cms.futurecdn.net/qvJ6bN35U3ezruK5peaaZk.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Steam does a fantastic job with its wishlists, price-drop notifications, “players also like,” and other recommendations driven by player data. PlayStation has its own versions of these, but they could be updated to be more useful.</p><p>The store’s recent lowest-price-in-30-days indicator is a good step, but Sony can go further with smarter recommendations, clearer sale calendars, and stronger wishlist alerts. That last one really needs work — I feel like wishlist alerts are random at best, if I get them at all.</p><p>Improving discovery is an easy way to help players find and buy more games within Sony’s closed ecosystem. If you want people to buy digital games, you need to make it easier for them to find games they would actually like.</p><h2 id="clearer-long-term-library-guarantees-and-library-management">Clearer long-term library guarantees and library management</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6jGE4qfxVjSEbbRvJ77xYf" name="Steam collection library" alt="Steam collection library" src="https://cdn.mos.cms.futurecdn.net/6jGE4qfxVjSEbbRvJ77xYf.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>One of the biggest reasons Sony is facing so much heat right now is the lack of clear guarantees about long-term access to the games players buy. Without physical discs, players worry more about access, storage, and account longevity. This is something that <a href="https://www.tomsguide.com/gaming/playstation/customers-need-assurances-their-games-wont-be-taken-from-them-after-purchase-stop-killing-games-on-playstations-decision-to-kill-physical-discs">Stop Killing Games founder Ross Scott</a> detailed when we interviewed him about Sony's decision to stop manufacturing discs.</p><p>Sony can learn from Steam’s emphasis on transparent licensing, robust cloud saves, and better tools for managing large digital libraries. Explicit, public commitments to offline play and long-term download availability would go a long way toward easing the anxiety surrounding digital-only ownership.</p><p>This is arguably the most important issue Sony has to address. People (rightly) want some form of ownership of the games they buy, especially when those games are digital. I’m not saying this will please everyone — some folks are certainly ride-or-die physical gamers — but clearer guarantees would ease much of the current anxiety.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVm7W"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVm7W.js" async></script><h2 id="bottom-line">Bottom line</h2><p>I want to be clear that I am not dunking on Sony or PlayStation. The <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> is my primary gaming platform, after all. But as a PlayStation gamer since the early 2000s (thanks to the Gran Turismo 3 PS2 bundle!), I want to see the company do right by loyal customers like me.</p><p>PSN is not inherently broken. Sony already runs a polished, high-production store. However, things need to change when discs disappear. Adopting some of Steam’s more player-friendly policies would not only benefit gamers but also Sony, which would benefit from a more committed user base.</p><p>Sony will ultimately do what it believes is in its best interest. That said, prioritizing what customers want, genuinely listening, and addressing concerns would go a long way. Hopefully, Sony does right by its user base and makes an all-digital future on its consoles as acceptable as it is on Steam.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/my-wallet-gonna-cry-valve-gives-official-update-on-steam-machine-and-steam-frame-launch-but-still-wont-tell-us-the-price">Valve gives official update on Steam Machine and Steam Frame launch</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-reviews-are-here-even-valve-is-disappointed">Steam Machine reviews are here: 'Even Valve is disappointed'</a></li><li><a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review">The new Steam Controller is the only PC gamepad I'll ever need</a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=gaming&min_discount_ratio=0.95&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Scalpers are already flipping Steam Machine reservations for double Valve's asking price ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/scalpers-are-already-flipping-steam-machine-reservations-for-double-valves-asking-price</link>
                                                                            <description>
                            <![CDATA[ Though Valve's Steam Machine hasn't yet hit store shelves, scalpers are already jacking up the price by listing reservations slots on third-party platforms. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">YcCMNGaT2BaDJCyo9r5ZGe</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9FZMCSewihBF4Z3UySihHP-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 28 Jun 2026 15:28:03 +0000</pubDate>                                                                                                                                <updated>Sun, 28 Jun 2026 15:29:01 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Alyse Stanley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/BxNnQuBWRHqkv5xWZsjrjc.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Alyse Stanley is a news editor at Tom’s Guide, overseeing weekend coverage and writing about the latest in tech, gaming, and entertainment. Before Tom’s Guide, Alyse worked as an editor for the Washington Post’s sunsetted video game section, Launcher, where she also wrote about indie games you shouldn’t miss, how to tackle your gaming backlog, and all things Nintendo. She previously led Gizmodo’s weekend news desk covering breaking tech news and has written game reviews and features for outlets like Polygon, Unwinnable, and Rock, Paper, Shotgun. A recent Chicago-area transplant born and raised in Virginia, Alyse is a big fan of horror movies, cartoons, and roller skating. She&#039;s also a puzzle fan and can often be found contributing to the NYT Connections coverage on Tom&#039;s Guide &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/9FZMCSewihBF4Z3UySihHP-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9FZMCSewihBF4Z3UySihHP-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Since Valve opened up reservations for its absurdly priced <a href="https://www.tomsguide.com/gaming/steam-machine-review" target="_blank">Steam Machine</a>, it was only a matter of time before the scalpers descended like vultures to get their cut. Just days before the gaming PC officially launches, successful reservation holders have begun listing their spots on eBay for eye-watering prices, like <a href="https://www.ebay.com/itm/800255724278" target="_blank" rel="nofollow">this one for $2,275</a>. For reference, the Steam Machine starts at $1,049, less than half that price. </p><p>The damn thing doesn't even hit store shelves until Monday (June 29). Earlier this week, Valve began notifying users when they successfully ended up in the reservation queue to purchase a console before the invitation expired. The listings on third-party platforms aren't for the hardware itself but rather for these reservation slots. I'm seeing <a href="https://www.ebay.com/sch/i.html?_nkw=valve+steam+machine&_sacat=0&_from=R40&_trksid=p2334524.m570.l1313&_odkw=steam+machine&_osacat=0" target="_blank">Steam Machine listings on eBay</a> from around $1,600 and up to over $2,500, nearly 2-2.5X pricier than their official pricing as per Valve. Some listings are marked as sold, suggesting at least a handful of buyers are willing to pay a hefty premium to skip the wait.</p><p>Anticipating unusually high demand, Valve introduced a randomized reservation system instead of traditional first-come, first-served preorders. The company also limited reservations to one per household and required users to have a Steam account in good standing with at least one purchase made before April 27, 2026, to curb bots and large-scale scalping from eating up the limited supply at launch.  </p><p>Despite those efforts, scalpers have found a workaround by reselling their reservation spots. While the restrictions appear to have made it harder for professional scalpers to hoard inventory, they haven't eliminated inflated resale listings entirely.</p><p>If you missed out on a reservation, I'd heavily advise you against paying these ridiculous markups. Aside from the obvious risk of scams when buying reservation transfers through a third-party marketplace like eBay, Valve is expected to continue working through its waitlist as reservation holders cancel or fail to complete their purchases within the allotted 72-hour window. You likely won't have long to wait to get your hands on the Steam Machine. While you wait, check out our <a href="https://www.tomsguide.com/gaming/steam-machine-review">Steam Machine review</a> to see if it's even worth its already eye-watering price tag. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/valve-confirms-you-can-build-your-own-steam-machine-with-latest-steamos-update">Valve confirms you can build your own Steam Machine with latest SteamOS update</a></li><li><a href="https://www.tomsguide.com/gaming/valve-confirms-you-can-build-your-own-steam-machine-with-latest-steamos-update">I tested the Steam Machine and I really wanted to love it — but I simply can't for $1,049</a></li><li><a href="https://www.tomsguide.com/gaming/6-best-video-games-of-2026-so-far-on-ps5-nintendo-switch-2-pc-and-xbox">The 6 best video games we've played in 2026 (so far) on PS5, Switch 2, PC and Xbox</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tested the Steam Machine and I really wanted to love it — but I simply can't for $1,049 ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/steam-machine-review</link>
                                                                            <description>
                            <![CDATA[ The Steam Machine does what I want it to do — a well-designed box that brings together the complexity of PC gaming into a couch console experience that’s really enjoyable when it clicks. But at $1,049, the underpowered parts are exposed and it’s left feeling lost in the sea of better-priced competition. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2zqvsCqX8w7XH5sdfPUPTY</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/2tbgG6dNDEgWdjJjA6eeSP-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Jun 2026 06:28:27 +0000</pubDate>                                                                                                                                <updated>Tue, 30 Jun 2026 17:25:52 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&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/2tbgG6dNDEgWdjJjA6eeSP-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/2tbgG6dNDEgWdjJjA6eeSP-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I thought the Steam Machine was going to be that perfect middle ground between console and PC — giving you your entire Steam library and the versatility of Linux alongside that pick-up-and-play goodness of something like a <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a>.</p><p>But I’m just going to get straight to the point. With a starting price of $1,049/£879, it feels less like finding the middle ground and more like being lost in no man’s land. I can’t deny it does the thing I wanted it to do, but the smaller bang for a giant buck is a tough pill to swallow.</p><p>There is a lot to like here — I love the small 6-inch cube form factor with the swappable face plates (shout-out to the whisper quiet thermal management), Steam OS is a stellar big screen console UI rivaling the simplicity of PlayStation or Xbox, and it nails the console niceties that a PC can’t do without extra fiddling. </p><p>I'm talking about things like HDMI CEC to control your TV with your controller, or even turning on your system with the Steam Controller to begin with, or that customizable LED light bar upfront, all while also packing Linux to be a semi-decent mini PC.</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/vYWbZGcIKVI" allowfullscreen></iframe></div></div><p>However, when you put it in the context of that large <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a>-induced price, performance is underwhelming compared to similarly-priced PCs, and you’ll find yourself tinkering with settings a lot to get things just right (unlike a console). With AAA titles over the past couple of years struggling here — especially when you put ray tracing on — it feels like this is underpowered right out of the gate.</p><p>Still, I can’t help but admit I’m slightly enamored by the Steam Machine after the hours I’ve sunk into it. Once you put on some older or Indie titles (Steam’s bread and butter), it all starts to click. I particularly enjoyed dipping back into old classics like Portal 2 or getting back into my indie obsessions like Hades II! </p><p>Valve is onto something here, and it would’ve been a breakthrough at $6-700. But it’s not, and it becomes hard to recommend to anyone other than “Console PC” aesthetic purists and the die-hard Steam devotees.</p><h2 class="article-body__section" id="section-steam-machine-cheat-sheet"><span>Steam Machine: Cheat Sheet</span></h2><ul><li><strong>What is it? </strong>This is a console/PC hybrid gaming system.</li><li><strong>Who is it for? </strong>This is for those who want that couch console gaming experience without the limitations of a console OS.</li><li><strong>What does it cost? </strong>Brace yourself. <a href="https://store.steampowered.com/hardware/steammachine" target="_blank" rel="nofollow">Starting price is $1049/£879 for the 512GB version</a>, and goes up to $1,349/£1,149 for the 2TB model. These are without a controller, which you’d need to bundle up for an additional $69/£69.</li><li><strong>What do we like? </strong>The Steam Machine does exactly what I wanted it to do on paper — it takes something as vast and complicated as PC gaming and stuffs it into a slick console UI, which is housed inside a beautifully monolithic cube that challenges the beefier aesthetics of the PS5 and <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a>.</li><li><strong>What don’t we like? </strong>At $1,049, this is <strong>expensive </strong>for what you get. Nice to have the console-esque experience, but underpowered parts mean you’re getting a rather limited gaming experience in any more graphically challenging titles. And don’t even think about running ray traced gameplay on this thing!</li></ul><h2 class="article-body__section" id="section-steam-machine-specs"><span>Steam Machine: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>from $1,049/£879</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>Semi-custom 4.8GHz AMD Zen 4 CPU (6 cores/12 threads)</p></td></tr><tr><td class="firstcol " ><p><strong>GPU</strong></p></td><td  ><p>Semi-custom 2.45GHz AMD RDNA3 GPU with 8GB GDDR6 video memory (28 compute units)</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>16GB DDR5</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>512GB SSD or 2TB SSD</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>HDMI 2.1(ish), DisplayPort 1.4, 2x USB-A 3.2 Gen 1, 2x USB-A 2.0, 1x USB-C 3.2 Gen 2, Gigabit ethernet</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>WiFi 6E, Bluetooth 5.3, Integrated Steam Controller wireless adapter</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>6.1 x 6 x 6.4 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>5.7 pounds</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-steam-machine-the-ups"><span>Steam Machine: The ups</span></h2><p>And so, I took it all out of the (fully) recyclable packaging, picked my front plate (love the orange fabric one — reminds me of The Orange Box on my Xbox 360 back in the day), and got into playing on the Steam Machine. FYI, these additional faceplates are part of the 2TB model + controller bundle only.</p><h2 id="small-and-stylish">Small and stylish</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UrYaSGPXHP9J74GoRqNMbP" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/UrYaSGPXHP9J74GoRqNMbP.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I must admit that I felt a little lovestruck when I pulled the GabeCube out for the first time. This almost-6-inch cube is a premium-feeling piece of kit that will proudly take its minimalist pride of place next to any TV or on any desk.</p><p>The port array is minimal compared to your average PC, but you’ve got everything you need for peripherals and a wired internet connection too. And compared to the behemoths that are the PS5 and Xbox Series X, it really is no competition in terms of design. This fades into the background rather than making a statement, and I love it for that.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/raSPyZf7LKggAeX3Hf9HgP.jpg" alt="Valve Steam Machine" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>Also, shoutout to the thermal management going on here. Air is pulled in through the front via a gap created behind that faceplate, through a gigantic heatsink (literally about 75% of that internal cube space is heatsink) and out the back via a single giant 120mm fan. The end result is near-silent operation even at high loads. My PS5 could never!</p><h2 id="steamos-delivers-the-goods">SteamOS delivers the goods</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KvYDvmAMryUHK4uvzUpmDA" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/KvYDvmAMryUHK4uvzUpmDA.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I love it on my Steam Deck, and it ports well to the big screen — Steam OS is a fantastic console gaming UI for getting straight into your titles or discovering more. Pair it with a Steam Controller, and it gets much better too with the touchpads making it zippier to get around a keyboard or work your way around the desktop mode (though that’s a rarity).</p><p>That’s not to say it’s all the way there yet. There’s a weird thing with having to set the resolution for each game — if you get a Steam Machine and are confused as to why it’s only showing 1080p, go into game properties and change resolution from the confusingly named “Default” to “4K.”</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/2zxhfCpPsPRTiy8VkSKbt9.jpg" alt="Valve Steam Machine" /><figcaption><small role="credit">Future</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/RsE8fg9kUa9YvyXWkekbh9.jpg" alt="Valve Steam Machine" /><figcaption><small role="credit">Future</small></figcaption></figure></figure><p>Valve has confirmed to other reviewers that they’re looking to make this simpler/clearer in a future update.</p><h2 id="when-it-all-comes-together-it-s-a-console-beater">When it all comes together, it’s a console beater</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Z7MZHrGJuZ3iipTJm3ShTP" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/Z7MZHrGJuZ3iipTJm3ShTP.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I know it may sound like I’m digging for any kind of positive with that subheadline, but let me explain. The whole is bigger than the sum of its parts and when it all starts to sing in harmony together, you can make some sweet hypothetical music.</p><p>The little touches are what grabbed me at first — HDMI CEC meaning that when I turn on the Steam Machine with my controller, it turns on the TV too. That’s something my PC with the long HDMI cable connected could ever do (without serious dongle help). That LED status bar on the box itself is customizable, and it fills up as you’re downloading a game file.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Kj6wiCa3UKHcrsq83PFtWN" name="Steam Controller-7" alt="Steam Controller up close" src="https://cdn.mos.cms.futurecdn.net/Kj6wiCa3UKHcrsq83PFtWN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>And then as you enter your gaming flow state with something a little less challenging to the internals like an indie title, older game or emulation (btw, emulation works like a <strong>dream </strong>on this thing), Steam OS becomes your canvas to jump in and out of your games, and it shows Valve can perfectly capture that couch play experience while giving you openness unlike any of those consoles.</p><p>It shows the company’s got the right idea here, and I applaud them for that.</p><h2 class="article-body__section" id="section-steam-machine-the-downs"><span>Steam Machine: The downs</span></h2><p>One of these downsides has been the talk on social media, so I don’t need to dwell too much on it. But with it, that does expose some other issues in a far more negative light.</p><h2 id="performance-can-be-lacking">Performance can be lacking</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="peBzSSYAbw8dX6vM5LcvAA" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/peBzSSYAbw8dX6vM5LcvAA.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Now, I've built a bunch of PCs and tested a bunch of GPUs in my lifetime, so I’ve become accustomed to where systems land on my internal scale relative to the price you pay for it. I get that the Steam Machine is a different kind of beast — half console/half mini gaming PC — but when asking for this kind of money, it has to go on the scale.</p><p>And while the Steam Machine does do well in less challenging games, the moment you try to throw something AAA at it, things start to fall apart.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>Game</strong></p></th><th  ><p>Steam Machine (custom AMD GPU)</p></th><th  ><p>RTX 5060 PC</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Black Myth: Wukong (1080p Medium)</strong></p></td><td  ><p>36 FPS</p></td><td  ><p>82 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Black Myth: Wukong (4K Medium)</strong></p></td><td  ><p>19 FPS</p></td><td  ><p>30 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (1080p RT: Ultra)</strong></p></td><td  ><p>17.7 FPS</p></td><td  ><p>45.42 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Forza Horizon 6 (1080p Ultra)</strong></p></td><td  ><p>50 FPS</p></td><td  ><p>101 FPS</p></td></tr><tr><td class="firstcol " ><p><strong>Red Dead Redemption 2 (4K Medium)</strong></p></td><td  ><p>22 FPS</p></td><td  ><p>31 FPS</p></td></tr></tbody></table></div><p>For reference, to my eye, the PS5 Pro runs at a mixture of medium-high settings on Black Myth: Wukong, while upscaling to 4K from a far higher resolution. With FSR and settings tweaks, you can make 4K work at 60 FPS, but by that point you lose the detail.</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="PybmAuEgWALhnJd27RR4DA" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/PybmAuEgWALhnJd27RR4DA.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><div><blockquote><p>Cyberpunk 2077 is the ultimate proof that ray tracing is this machine’s kryptonite, as it simply did not run in 4K. </p></blockquote></div><p>Cyberpunk 2077 is the ultimate proof that ray tracing is this machine’s kryptonite, as it simply did not run in 4K. That’s a problem given we’re rapidly closing in on the moment where ray tracing becomes a requirement in some games.</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="892yNBNHbPXoeJNJbc44DA" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/892yNBNHbPXoeJNJbc44DA.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Basically, your two problems here are the lower amount of power being pumped through the parts, and 8GB of video memory is simply not enough for the raw rasterized performance. But If you are dipping into AAA games, here are my three common rules:</p><ul><li>This is not a 4K gaming machine, this a 1080p system with some QHD on the side</li><li>Turn settings down to medium if the game’s come out in the last two years</li><li>FSR is an absolute necessity</li></ul><p>Then if I want to use this as a Linux mini PC, the OS offers a lot to do, but don’t expect to be doing <em>too </em>much of it, as that laptop-suited chip is a little limited on the performance.</p><div ><table><thead><tr><th class="firstcol " ><p><strong>System</strong></p></th><th  ><p>Geekbench single-core</p></th><th  ><p>Geekbench multicore</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steam Machine (Custom AMD CPU)</strong></p></td><td  ><p>2596</p></td><td  ><p>8579</p></td></tr><tr><td class="firstcol " ><p><strong>MacBook Neo (A18 Pro)</strong></p></td><td  ><p>3535</p></td><td  ><p>8920</p></td></tr></tbody></table></div><p>Interpreting these numbers into real-world use means you’re going to be able to attack your casual daily workload, web browsing with a few tabs, and maybe a little bit of photo editing. Anything more intense and you start to feel it chug.</p><h2 id="1-049-is-crazy">$1,049 is crazy</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Cv8Xmy4u8PMHaRxqvGpkgP" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/Cv8Xmy4u8PMHaRxqvGpkgP.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Like I said, you’ve probably seen the memes and roasts already. You all dunked hard on this in the comments of the unboxing TikTok I did a few days ago, so let’s talk about it!</p><p>Just over $1,000 puts it out of reach of competing with consoles and into the budget gaming PC territory, which is a whole different ballgame. I know people have been using PC Part Picker and showing what you can get for the budget, but I want to go down the road of pre-builts too.</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="V3cKNwFUP2UYBUKCHXZVuT" name="Nvidia RTX 5060" alt="Nvidia RTX 5060" src="https://cdn.mos.cms.futurecdn.net/V3cKNwFUP2UYBUKCHXZVuT.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Take the Stormcraft Sirius with <a href="https://www.tomsguide.com/gaming/pc-gaming/nvidia-geforce-rtx-5060-first-impressions">RTX 5060</a> for example and a 1TB SSD — <a href="https://www.newegg.com/stormcraft-sirius-gaming-desktop-pc-geforce-rtx-5060-intel-core-i5-14400f-16gb-ddr4-1tb-ssd-si1440fbb-560n2/p/N82E16883420040?Item=N82E16883420040" target="_blank" rel="nofollow">currently $899</a>. Granted, this is a sale price and you’re not getting the tiny cube premium build. But the original price is $1,099, which even though its fifty bucks more, gives you more bang for your buck as you see in the numbers above.</p><p>Realistically, what you’re getting in the Steam Machine performance and visual-wise (having to use FSR to do some heavy lifting) hangs somewhere between the standard PS5 and PS5 Pro. That would be fine if it was priced more similarly to one, but at over a thousand dollars, it becomes a tough sell.</p><h2 class="article-body__section" id="section-steam-machine-verdict"><span>Steam Machine: Verdict</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:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9FZMCSewihBF4Z3UySihHP" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/9FZMCSewihBF4Z3UySihHP.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I really wanted to love the Steam Machine, but it’s complicated. On one hand, it’s that intersection between gaming PC and console that I love with my Steam Deck — taking all of its complexities and simplifying the pick up and play nature of it all.</p><p>But on the other hand, it’s $1,049, which exposes the underpowered internals that much more, and makes the ever-rising prices of other consoles feel kind of reasonable in comparison.</p><p>Rather than being the middle ground, it’s in no man’s land. If you want console gaming, grab a PS5 Pro. If you want PC gaming, grab a PC. Until this price comes down to something like $700, it’s a “close, but no cigar” situation.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Machine is too expensive, so I’m telling my friends to just buy one of these gaming PCs instead (and install SteamOS on them) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/gaming-desktops/steam-machine-is-too-expensive-so-im-telling-my-friends-to-just-buy-one-of-these-gaming-pcs-instead-and-install-steamos-on-them</link>
                                                                            <description>
                            <![CDATA[ Valve officially priced the Steam Machine at an eye-watering $1,049. As a budget tester, here are 5 Prime Day gaming PC deals that offer better performance for less. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Kzi2WRAZbhTXd3SwAXUsQm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/MjMrB7EKGr37w2SxnwKBK4-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 23 Jun 2026 11:36:38 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Desktops]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Desktop Computers]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&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/MjMrB7EKGr37w2SxnwKBK4-1280-80.jpg">
                                                            <media:credit><![CDATA[Future / Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Machine alternatives]]></media:description>                                                            <media:text><![CDATA[Steam Machine alternatives]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Machine alternatives]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/MjMrB7EKGr37w2SxnwKBK4-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I was so excited for the Steam Machine, and then <a href="https://www.tomsguide.com/gaming/pc-gaming/valves-steam-machine-is-ready-to-launch-starting-at-usd1-049-im-getting-one-to-review-and-im-taking-your-questions-live">Valve charged $1,049 for it</a>…yikes. As a PC gaming expert, I can point to many <a href="https://www.tomsguide.com/live/news/prime-day-2026-handpicked-editor-recommended-deals-live">current Prime Day deals happening right now</a> that give you more performance for less money.</p><p>While the price <em>could </em>have been a lot worse, it really puts this console/mini PC hybrid into no man’s land here — a place where you could get much more bang for your buck. Granted, you won’t get that cute little 6x6-inch cube build, but I always follow the bottom line here.</p><p>Plus, with <a href="https://www.tomsguide.com/gaming/valve-confirms-you-can-build-your-own-steam-machine-with-latest-steamos-update">SteamOS being updated so you can install it on your own computer easily,</a> there’s a chance here to get yourself a Steam box without needing to pay that Valve premium. Though it's worth noting that with some of these Nvidia-based systems, you may want to stick with Windows for just a little longer, as Valve confirmed Team Green GPU support is coming “eventually.”</p><h2 id="prime-day-gaming-pc-deals-for-the-same-price-or-cheaper-than-a-steam-machine">Prime Day gaming PC deals for the same price or cheaper than a Steam Machine</h2><p>So I need to set some expectations here a little. Valve claims the Steam Machine is capable of 4K 60 FPS gameplay, and while that’s <em>technically </em>true with a big AMD FSR caveat, the reality is you’re looking more at 1080p or 1440p gaming.</p><p>All of these systems are capable of around those ranges too.</p><div class="product"><a data-dimension112="53daa893-67d3-43a1-a563-b1f4f1dec40b" data-action="Deal Block" data-label="Doubling the RAM here for $3 less than the 16GB builds below. Yes this tower is bigger than the Micro ATX options you’re about to see, but for the extra headroom in AAA titles and multitasking that 32GB of DDR4 memory can give you, that is significant for 1440p gaming." data-dimension48="Doubling the RAM here for $3 less than the 16GB builds below. Yes this tower is bigger than the Micro ATX options you’re about to see, but for the extra headroom in AAA titles and multitasking that 32GB of DDR4 memory can give you, that is significant for 1440p gaming." data-dimension25="$996" href="https://www.newegg.com/abs-stratos-ruby-gaming-desktop-rtx-5060-core-i5-14400f-32gb-ddr5-1tb-ssd-sr7800x3d9070xt-black/p/N82E16883360936" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1718px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="RrbjjKwkQvtMtrsUz9jur7" name="ABS Cyclone Aqua Gaming PC" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RrbjjKwkQvtMtrsUz9jur7.jpg" mos="" align="middle" fullscreen="" width="1718" height="1718" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Doubling the RAM here for $3 less than the 16GB builds below. Yes this tower is bigger than the Micro ATX options you’re about to see, but for the extra headroom in AAA titles and multitasking that 32GB of DDR4 memory can give you, that is significant for 1440p gaming.<a class="view-deal button" href="https://www.newegg.com/abs-stratos-ruby-gaming-desktop-rtx-5060-core-i5-14400f-32gb-ddr5-1tb-ssd-sr7800x3d9070xt-black/p/N82E16883360936" target="_blank" rel="nofollow" data-dimension112="53daa893-67d3-43a1-a563-b1f4f1dec40b" data-action="Deal Block" data-label="Doubling the RAM here for $3 less than the 16GB builds below. Yes this tower is bigger than the Micro ATX options you’re about to see, but for the extra headroom in AAA titles and multitasking that 32GB of DDR4 memory can give you, that is significant for 1440p gaming." data-dimension48="Doubling the RAM here for $3 less than the 16GB builds below. Yes this tower is bigger than the Micro ATX options you’re about to see, but for the extra headroom in AAA titles and multitasking that 32GB of DDR4 memory can give you, that is significant for 1440p gaming." data-dimension25="$996">View Deal</a></p></div><div class="product"><a data-dimension112="77a0c92a-8fbc-4938-8c51-bc3add3be62c" data-action="Deal Block" data-label="Don’t expect the world with this thing — it is a budget build after all. But this does have the bare essentials to do 1080p gaming (provided you play some AAA titles at a mix of medium to low settings with FSR). The Steam Machine will take a slight lead over this performance-wise, but at $380 cheaper, it’s actually got value for money." data-dimension48="Don’t expect the world with this thing — it is a budget build after all. But this does have the bare essentials to do 1080p gaming (provided you play some AAA titles at a mix of medium to low settings with FSR). The Steam Machine will take a slight lead over this performance-wise, but at $380 cheaper, it’s actually got value for money." data-dimension25="$669" href="https://www.amazon.com/CyberPowerPC-Master-Gaming-Windows-GMA3100A3/dp/B0DXVH416Y" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:573px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="gdHM3PGArMh7MdjWh4pR7W" name="CyberPowerPC Gamer Master" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gdHM3PGArMh7MdjWh4pR7W.jpg" mos="" align="middle" fullscreen="" width="573" height="573" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Don’t expect the world with this thing — it is a budget build after all. But this does have the bare essentials to do 1080p gaming (provided you play some AAA titles at a mix of medium to low settings with FSR). The Steam Machine will take a slight lead over this performance-wise, but at $380 cheaper, it’s actually got value for money.<a class="view-deal button" href="https://www.amazon.com/CyberPowerPC-Master-Gaming-Windows-GMA3100A3/dp/B0DXVH416Y" target="_blank" rel="nofollow" data-dimension112="77a0c92a-8fbc-4938-8c51-bc3add3be62c" data-action="Deal Block" data-label="Don’t expect the world with this thing — it is a budget build after all. But this does have the bare essentials to do 1080p gaming (provided you play some AAA titles at a mix of medium to low settings with FSR). The Steam Machine will take a slight lead over this performance-wise, but at $380 cheaper, it’s actually got value for money." data-dimension48="Don’t expect the world with this thing — it is a budget build after all. But this does have the bare essentials to do 1080p gaming (provided you play some AAA titles at a mix of medium to low settings with FSR). The Steam Machine will take a slight lead over this performance-wise, but at $380 cheaper, it’s actually got value for money." data-dimension25="$669">View Deal</a></p></div><div class="product"><a data-dimension112="ed1db7cf-0d72-49af-900e-85b0341f00e7" data-action="Deal Block" data-label="Packed into a nice Micro ATX case for a smaller size, alongside that Arc B570 with 10GB of video memory (and XeSS 3 support for multi-frame generation), this machine hits a sweet spot for me. In testing, that GPU is at its strongest in 1080p raw performance, but the AI trickery means you can extract a little QHD action from it too." data-dimension48="Packed into a nice Micro ATX case for a smaller size, alongside that Arc B570 with 10GB of video memory (and XeSS 3 support for multi-frame generation), this machine hits a sweet spot for me. In testing, that GPU is at its strongest in 1080p raw performance, but the AI trickery means you can extract a little QHD action from it too." data-dimension25="$849" href="https://www.newegg.com/stormcraft-sirius-gaming-desktop-pc-intel-arc-b580-intel-core-i5-14400f-16gb-ddr4-1tb-nvme-ssd-si1440fbb-b57n1/p/N82E16883420042" 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="Piqt3qVJYCYndZCEBtHvaa" name="Stormcraft Sirius" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Piqt3qVJYCYndZCEBtHvaa.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Packed into a nice Micro ATX case for a smaller size, alongside that Arc B570 with 10GB of video memory (and XeSS 3 support for multi-frame generation), this machine hits a sweet spot for me. In testing, that GPU is at its strongest in 1080p raw performance, but the AI trickery means you can extract a little QHD action from it too.<a class="view-deal button" href="https://www.newegg.com/stormcraft-sirius-gaming-desktop-pc-intel-arc-b580-intel-core-i5-14400f-16gb-ddr4-1tb-nvme-ssd-si1440fbb-b57n1/p/N82E16883420042" target="_blank" rel="nofollow" data-dimension112="ed1db7cf-0d72-49af-900e-85b0341f00e7" data-action="Deal Block" data-label="Packed into a nice Micro ATX case for a smaller size, alongside that Arc B570 with 10GB of video memory (and XeSS 3 support for multi-frame generation), this machine hits a sweet spot for me. In testing, that GPU is at its strongest in 1080p raw performance, but the AI trickery means you can extract a little QHD action from it too." data-dimension48="Packed into a nice Micro ATX case for a smaller size, alongside that Arc B570 with 10GB of video memory (and XeSS 3 support for multi-frame generation), this machine hits a sweet spot for me. In testing, that GPU is at its strongest in 1080p raw performance, but the AI trickery means you can extract a little QHD action from it too." data-dimension25="$849">View Deal</a></p></div><div class="product"><a data-dimension112="79ee49b9-638d-4a91-a6e6-2c539a1ff5b2" data-action="Deal Block" data-label="Now here’s something I didn't expect — a PC with one of the latest Nvidia GPUs for less than $1,000! Same build as the Stormcraft above, but with a Team Green GPU that is going to give you stellar 1080p gaming, and unlock a lot of QHD gameplay too with DLSS 4.5 using AI trickery to do a lot of the heavy lifting." data-dimension48="Now here’s something I didn't expect — a PC with one of the latest Nvidia GPUs for less than $1,000! Same build as the Stormcraft above, but with a Team Green GPU that is going to give you stellar 1080p gaming, and unlock a lot of QHD gameplay too with DLSS 4.5 using AI trickery to do a lot of the heavy lifting." data-dimension25="$899" href="https://www.newegg.com/stormcraft-sirius-gaming-desktop-pc-geforce-rtx-5060-intel-core-i5-14400f-16gb-ddr4-1tb-ssd-si1440fbb-560n2/p/N82E16883420040" 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="Piqt3qVJYCYndZCEBtHvaa" name="Stormcraft Sirius" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/Piqt3qVJYCYndZCEBtHvaa.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Now here’s something I didn't expect — a PC with one of the latest Nvidia GPUs for less than $1,000! Same build as the Stormcraft above, but with a Team Green GPU that is going to give you stellar 1080p gaming, and unlock a lot of QHD gameplay too with DLSS 4.5 using AI trickery to do a lot of the heavy lifting.<a class="view-deal button" href="https://www.newegg.com/stormcraft-sirius-gaming-desktop-pc-geforce-rtx-5060-intel-core-i5-14400f-16gb-ddr4-1tb-ssd-si1440fbb-560n2/p/N82E16883420040" target="_blank" rel="nofollow" data-dimension112="79ee49b9-638d-4a91-a6e6-2c539a1ff5b2" data-action="Deal Block" data-label="Now here’s something I didn't expect — a PC with one of the latest Nvidia GPUs for less than $1,000! Same build as the Stormcraft above, but with a Team Green GPU that is going to give you stellar 1080p gaming, and unlock a lot of QHD gameplay too with DLSS 4.5 using AI trickery to do a lot of the heavy lifting." data-dimension48="Now here’s something I didn't expect — a PC with one of the latest Nvidia GPUs for less than $1,000! Same build as the Stormcraft above, but with a Team Green GPU that is going to give you stellar 1080p gaming, and unlock a lot of QHD gameplay too with DLSS 4.5 using AI trickery to do a lot of the heavy lifting." data-dimension25="$899">View Deal</a></p></div><div class="product"><a data-dimension112="97390f9d-f262-4387-ad95-36b269f17420" data-action="Deal Block" data-label="If you want a similar RTX 5060 build but in a bigger case with better thermals for quiet fans, that’s where Thermaltake’s system comes in. That does mean if you wanted to dabble with some of the overclocking settings in the Nvidia app to push this into the 1440p region, you could without hearing the fans start working overtime!" data-dimension48="If you want a similar RTX 5060 build but in a bigger case with better thermals for quiet fans, that’s where Thermaltake’s system comes in. That does mean if you wanted to dabble with some of the overclocking settings in the Nvidia app to push this into the 1440p region, you could without hearing the fans start working overtime!" data-dimension25="$999" href="https://www.newegg.com/thermaltake-gaming-desktop-pc-geforce-rtx-5060-intel-core-i5-12600kf-16gb-ddr4-1tb-nvme-ssd-v17b-b76r-560-lcs-black/p/N82E16883100127" 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="7bg3cvkwCecnNKJsUZ9AF5" name="thermaltake gaming desktop" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/7bg3cvkwCecnNKJsUZ9AF5.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>If you want a similar RTX 5060 build but in a bigger case with better thermals for quiet fans, that’s where Thermaltake’s system comes in. That does mean if you wanted to dabble with some of the overclocking settings in the Nvidia app to push this into the 1440p region, you could without hearing the fans start working overtime!<a class="view-deal button" href="https://www.newegg.com/thermaltake-gaming-desktop-pc-geforce-rtx-5060-intel-core-i5-12600kf-16gb-ddr4-1tb-nvme-ssd-v17b-b76r-560-lcs-black/p/N82E16883100127" target="_blank" rel="nofollow" data-dimension112="97390f9d-f262-4387-ad95-36b269f17420" data-action="Deal Block" data-label="If you want a similar RTX 5060 build but in a bigger case with better thermals for quiet fans, that’s where Thermaltake’s system comes in. That does mean if you wanted to dabble with some of the overclocking settings in the Nvidia app to push this into the 1440p region, you could without hearing the fans start working overtime!" data-dimension48="If you want a similar RTX 5060 build but in a bigger case with better thermals for quiet fans, that’s where Thermaltake’s system comes in. That does mean if you wanted to dabble with some of the overclocking settings in the Nvidia app to push this into the 1440p region, you could without hearing the fans start working overtime!" data-dimension25="$999">View Deal</a></p></div><h3 class="article-body__section" id="section-we-re-tracking-all-the-best-prime-day-gaming-deals"><span>We're tracking all the best Prime Day gaming deals</span></h3><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=Gaming&min_discount_ratio=0.95&offer_type=all&rows=4&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&show_countdown=true&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right {      right: 0;      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.previousElementSibling.scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>\n        \x3C/div>\n      \x3C/div>\n    \x3C/div>          \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          } else {             this.displayLimit += (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const encodedTag = encodeURIComponent(this.activeDealTag.toLowerCase().replace(/\s+/g, '-'));             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    if (this.rowsSelect && this.rowsSelect.value) {            url.searchParams.append('rows', this.rowsSelect.value);          } else {             url.searchParams.append('rows', '12'); // default          }          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = 12;          if (this.rowsSelect && this.rowsSelect.value) {            rowLimit = parseInt(this.rowsSelect.value, 10) || 12;          }          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map(v => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              return `                \x3Ca href="${this.escapeHTML(linkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item">                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let existingChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             if (this.getViewMode() === 'carousel') {                 if (!existingChevron) {                     gridWrapper.insertAdjacentHTML('beforeend', '\n                 \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.previousElementSibling.scrollBy({left: 200, behavior: \'smooth\'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>');                 }             } else {                 if (existingChevron) {                     existingChevron.remove();                 }             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12);                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');            if (!this.processArticleFired) {                  this.processArticleFired = true;                  document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));               }            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve confirms you can build your own Steam Machine with latest SteamOS update ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/valve-confirms-you-can-build-your-own-steam-machine-with-latest-steamos-update</link>
                                                                            <description>
                            <![CDATA[ Valve confirmed that you can build your own Steam Machine PC with the most recent SteamOS update. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">34XZvssNMqSiSjvHMnuemS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 22 Jun 2026 22:24:22 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &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/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Vale Steam Machine]]></media:description>                                                            <media:text><![CDATA[Vale Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Vale Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The announcement of the <a href="https://www.tomsguide.com/gaming/pc-gaming/valves-steam-machine-is-ready-to-launch-starting-at-usd1-049-im-getting-one-to-review-and-im-taking-your-questions-live">Steam Machine's price </a>arrived with a thud thanks to the over-$1,000 tag and even <a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-reviews-are-here-even-valve-is-disappointed">Valve is disappointed</a> it's living room gaming PC ended up costing so much as a result of RAMaggedon. However, there is some good news, especially for those who don't mind a little building.</p><p>In an interview with <a href="https://www.theverge.com/games/953411/valve-steamos-desktop-nvidia" target="_blank">The Verge</a>, Valve's Pierre-Loup Griffais confirmed that you can build your own Steam Machine with SteamOS as the desktop operating system. "Starting with the SteamOS 3.8 release, you can put together your own Steam Machine using whatever PC parts you want.” </p><p>Griffais said that Valve is working to improve SteamOS to be more compatible with a variety of desktop hardware, including Nvidia graphics cards eventually. He said that Valve is collaborating closely with Nvidia, though support might not come this year.</p><p>Technically, if you run an AMD system, it's been possible to run SteamOS on your own device but it's not straightforward or as easy with other gaming-focused Linux distros like Bazzite.</p><h2 id="some-caveats">Some caveats</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EWEFvfXcTi2HKWLY5zAAck" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/EWEFvfXcTi2HKWLY5zAAck.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Griffais wants to change that and said Valve is working to do so. However, he did say that SteamOS currently should offer a "good experience" on console-like PC setups. It implies that your handheld console or even a simple mini PC setup could be a Steam Machine or Steam Deck-dupe.</p><p>"If you have something that is similar to the use case of a Steam Machine, where you have a PC that’s gonna be plugged into a TV, and has a single hard drive that you’re not going to try and dual boot […] you can put SteamOS on there," he told The Verge.</p><p>There are some drawbacks, non-Steam Machine devices will lack HDMI-CEC support and may not work as well with the new <a href="https://www.tomsguide.com/computing/peripherals/i-just-spent-48-hours-with-the-steam-controller-heres-my-honest-verdict">Steam Controller</a>. Additionally, the SteamOS installer apparently is not designed for dual-booting, yet. So you can't cram it onto a Windows machine or different Linux box for now.</p><h2 id="non-steam-options">Non-Steam options</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="5besxxjRfLc7CvG5UjqGtG" name="Minisforum G1 Pro-6" alt="The Minisforum G1 Pro next to a PS5 Pro on a table" src="https://cdn.mos.cms.futurecdn.net/5besxxjRfLc7CvG5UjqGtG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With the ongoing RAM shortage, building a gaming PC isn't exactly cheap, and it's partly why the Steam Machine is as expensive as it is. The <a href="https://www.google.com/search?q=steam%20deck%20price+site%3Ahttps://www.tomsguide.com/">Steam Deck just raised prices by 50%</a> last month, an ominous portent ahead of the Machine release.</p><p>In the meantime, there are options like the <a href="https://www.tomsguide.com/computing/desktop-computers/mini-pcs/minisforum-g1-pro-review">Minisforum G1 Pro</a> that might actually outperform the Steam Machine and is pretty compact. Or you could buy the pre-built <a href="https://www.newegg.com/stormcraft-sirius-gaming-desktop-pc-geforce-rtx-5060-intel-core-i5-14400f-16gb-ddr4-1tb-ssd-si1440fbb-560n2/p/N82E16883420040" target="_blank">Stormcraft Gaming PC</a> for $150 less.</p><p>Of course, there's always a PS5...or Xbox, I guess; even the<a href="https://www.tomsguide.com/gaming/ps5-vs-ps5-pro-which-console-should-you-buy-in-2026"> PS5 Pro</a>, despite price hikes, is still cheaper than the Steam Machine. Yes, you're locked into the Sony ecosystem, but there are some great games on there, and they go on sale all the time. </p><p>You don't have to get a Steam Machine; that's all we're saying, mostly to ourselves.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/6-best-video-games-of-2026-so-far-on-ps5-nintendo-switch-2-pc-and-xbox">The 6 best video games we've played in 2026 (so far) on PS5, Switch 2, PC and Xbox</a></li><li><a href="https://www.tomsguide.com/gaming/control-resonant-interview">'We wanted to have the same approach, but in reverse' — Control Resonant Creative Director details what to expect from the ambitious new game</a></li><li><a href="https://www.tomsguide.com/news/live/valve-stream-controller-launch-live">Steam Controller launch live — hands-on report, and latest stock updates from Valve</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve's Steam Machine is ready to launch, starting at $1,049 — I'm getting one to review, and I'm taking your questions LIVE ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/valves-steam-machine-is-ready-to-launch-starting-at-usd1-049-im-getting-one-to-review-and-im-taking-your-questions-live</link>
                                                                            <description>
                            <![CDATA[ The Steam Machine is ready to preorder right now, and I will be getting one to review soon. Here's how to order your own, and your chance to ask me any questions about it! ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aukdWLSiernMAQh5MaRNy7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 22 Jun 2026 17:02:43 +0000</pubDate>                                                                                                                                <updated>Tue, 23 Jun 2026 01:05:19 +0000</updated>
                                                                                                                                            <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&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/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Vale Steam Machine]]></media:description>                                                            <media:text><![CDATA[Vale Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Vale Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">Steam Machine</a> is ready to preorder right now, and I will be getting one to review soon. But beyond my standard testing, I want to open the floor to any questions from you in a live Q&A.</p><p>Before we get to that, though, there are some other key questions we need to get to — namely, when you'll be able to buy one, and how much it will cost.</p><p>Spoiler alert on the latter: Steam Machine pricing starts at $1,049 (actually not as bad as I expected). But read on for all the information you need if you're keen to pick one up!</p><h2 id="when-is-the-steam-machine-launching">When is the Steam Machine launching?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="RzusMSoFqREVkoErH63pMN" name="SM_ledStrip" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Right now, you can <a href="https://store.steampowered.com/hardware/steammachine" target="_blank" rel="nofollow">sign up for the Steam Machine</a> model (or bundle) that you're interested in. You'll be placed into a reservation queue and notified via email when it's your turn to purchase — an action that looks set to stop bots and scalpers snagging them all.</p><p>The first batch of these emails will be sent starting <strong>Monday, June 29th.</strong></p><h2 id="how-much-will-steam-machine-cost">How much will Steam Machine cost?</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:970px;"><p class="vanilla-image-block" style="padding-top:56.19%;"><img id="MA5aScDQ8u3bGwd9LR6r2i" name="6n3Pfuz63A72YkUj99ydyd-970-80.pn" alt="Steam Machine seen by Tom's Hardware" src="https://cdn.mos.cms.futurecdn.net/MA5aScDQ8u3bGwd9LR6r2i.jpg" mos="" align="middle" fullscreen="" width="970" height="545" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>This has been the big question here, and I've got all the details here. You'll be able to order the Steam Machine either on its own or as part of a bundle with the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review">Steam Controller</a>.</p><ul><li><strong>Steam Machine 512GB: </strong>$1,049 / £879 / AU$1,609</li><li><strong>Steam Machine 512GB + Steam Controller: </strong>$1,128 / £938 / AU$ 1,728</li><li><strong>Steam Machine 2TB: </strong>$1,349 / £1,149 / AU$2,109</li><li><strong>Steam Machine 2TB + Steam Controller: </strong>$1,428 / £1,208 / AU$2,228</li></ul><p>It's also worth noting that the Steam Machine 2TB + Controller bundle also comes with two additional faceplates: red fabric and solid walnut.</p><h2 id="is-this-a-good-price-for-the-steam-machine">Is this a good price for the Steam Machine?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="KRxqrPisCWaFBibYdJNZCW" name="SM_powerButton" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/KRxqrPisCWaFBibYdJNZCW.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Honestly, given the <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a> fears we've all had, and how the <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-oled-is-finally-back-in-stock-with-updated-pricing-you-are-not-going-to-like">huge Steam Deck price increase</a> terrified all of us, this price could have been a lot worse.</p><p>That being said, it's still pricey, and Valve is straight up about how this has "proven to be a weird time to launch hardware."</p><p>"We felt like we had a good understanding of how those costs might change over time when we first started sourcing them for Steam Machine back in 2023," Valve wrote in its blog post.</p><p>"Over the past year or so, that has changed quickly and significantly, most visibly for RAM and storage components." </p><p>Because of these, Valve confirms that the company's original price goal is "no longer viable," and that this total reflects "the price of components as we've secured them over the past 6 months."</p><p>That being said, though, they do also say that the availability of these precious components has "impacted the number of units" Valve has been able to produce for launch.</p><h2 id="any-further-questions">Any further questions?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="sJthZiHkM5CLN6Ur7BGtmE" name="SM_front_b" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/sJthZiHkM5CLN6Ur7BGtmE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>So chances are, with that price, you've got some questions about whether it's worth it for you. I'm getting one to test (a 2TB model to be specific), and can answer any questions you have about the hardware.</p><p>I can run tests beyond any of our standard suite for you, give you general thoughts, or see how far I can push the hardware. Whatever you want me to do, just throw your questions in the Live Q&A box below, and I'll start responding after I've fully reviewed the hardware.</p><p>And of course, we want to keep this a friendly community chat with all the consumer advice you'll need. Please treat everyone (including yours truly) with respect and avoid any nasty language.</p><iframe class="position-center" data-lazy-priority="low" data-lazy-src=""></iframe><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/hardware/no-one-has-a-crystal-ball-lexar-execs-have-a-plan-to-reduce-our-ram-dependency-if-the-ai-data-boom-lasts-for-years">'No one has a crystal ball': Lexar execs have a plan to reduce our RAM dependency if the AI data boom lasts 'for years'</a></li><li><a href="https://www.tomsguide.com/computing/laptops/i-just-held-the-future-of-laptop-memory-and-its-a-game-changer-i-traveled-to-china-to-see-how-its-made">I just held the future of laptop storage and it’s a game changer — I traveled to China to see how it's made</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-did-not-say-its-coming-we-spoke-to-amd-vp-david-mcafee-about-bringing-fsr-4-to-ryzen-handhelds-to-catch-up-to-intel-arc-g3">'I did not say it's coming': We spoke to AMD VP David McAfee about bringing FSR 4.1 to Ryzen handhelds to catch up to Intel Arc G3</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 'My wallet gonna cry': Valve gives official update on Steam Machine and Steam Frame launch, but still won't tell us the price ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/my-wallet-gonna-cry-valve-gives-official-update-on-steam-machine-and-steam-frame-launch-but-still-wont-tell-us-the-price</link>
                                                                            <description>
                            <![CDATA[ Valve announces a Steam Machine and Steam Frame launch update the week of Summer Games Fest but neglects to mention pricing. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nmB3gxrcjPTu36RNpVRkZ8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 05 Jun 2026 10:12:50 +0000</pubDate>                                                                                                                                <updated>Fri, 05 Jun 2026 10:12:54 +0000</updated>
                                                                                                                                            <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ jeff.parsons@futurenet.com (Jeff Parsons) ]]></author>                    <dc:creator><![CDATA[ Jeff Parsons ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7z3UTGGrmSokMKxTWHmhjX.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jeff is U.K. Editor-in-Chief for Tom’s Guide looking after the day-to-day output of the site’s British contingent. &lt;/p&gt;&lt;p&gt;Rising early and heading straight for the coffee machine, Jeff loves nothing more than dialling into the zeitgeist of the day’s tech news. A journalist for over a decade, he&#039;s travelled around the world testing and reviewing any gadget he can get his hands on.&lt;/p&gt;&lt;p&gt;Before joining the team at Tom’s Guide, Jeff covered technology and science for two of the U.K.’s biggest national news sites: Metro.co.uk and the Daily Mirror. Memorable moments include getting lost in Vienna in an electric Audi, touring Lockheed Martin’s mile-long jet factory in Fort Worth and filming a Netflix documentary about Elon Musk in West London.&lt;/p&gt;&lt;p&gt;When not plugged into the current news agenda, editing or commissioning a series of articles or debating the merits of Apple vs Android, Jeff can usually be found out for a run trying to shave precious seconds off his PB. Or lifting weights in a vain attempt to offset the ageing process.&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/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Machine ]]></media:description>                                                            <media:text><![CDATA[Steam Machine ]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Machine ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve has officially confirmed the Steam Machine and Steam Frame devices will ship this summer, zeroing in on the launch of the highly-anticipated devices that has been <a href="https://www.tomsguide.com/gaming/valve-hope-to-ship-steam-machines-in-2026-but-memory-shortages-could-cause-delays">in flux since the start of the year</a>.</p><p>The company made the reveal in a <a href="https://steamcommunity.com/groups/steamworks/announcements/detail/716780409378048028" target="_blank">Steamworks post </a>saying it was expanding its Verified program to include the two upcoming devices.</p><p>"Today we are expanding the Verified program to include Steam Machine and Steam Frame, both of which are shipping this summer," the company wrote. </p><p>"As with Steam Deck Verified, the goal is to help customers understand the out-of-box experience for a given title on these new devices, and how smoothly a game will run with no user work or configuration required."</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="6xBrL6Zv4c8cVa3fWMuZtQ" name="image (1)" alt="Valve Steam Machine, Steam Frame, and Steam Controller devices" src="https://cdn.mos.cms.futurecdn.net/6xBrL6Zv4c8cVa3fWMuZtQ.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: Valve)</span></figcaption></figure><p>Valve confirmed that Steam Machine's requirements are nearly identical to those of the Steam Deck, whilst the Steam Frame criteria is also similar. When it comes to Steam Frame, the "default graphics configuration needs to perform well, text and UI elements need to be clear and legible on the built-in display, and the default controller configuration needs to work well with the Steam Frame Controllers."</p><div class="product"><a data-dimension112="36a4cf01-8b79-4f12-8daf-bd701eab4d84" data-action="Deal Block" data-label="The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life." data-dimension48="The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life." data-dimension25="$99" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1232px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="p4kRCykqzQRFswEntyNcUE" name="Steam Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/p4kRCykqzQRFswEntyNcUE.jpg" mos="" align="middle" fullscreen="" width="1232" height="1232" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life. <a class="view-deal button" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow" data-dimension112="36a4cf01-8b79-4f12-8daf-bd701eab4d84" data-action="Deal Block" data-label="The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life." data-dimension48="The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life." data-dimension25="$99">View Deal</a></p></div><p>Valve also said that games will be checked for Steam Machine and Steam Frame compatibility and both platforms will use a badge system similar to the Steam Deck. Gamers will be able to see at-a-glance if titles will run smoothly on each device. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYx9mO"></div>                            </div>                            <script src="https://kwizly.com/embed/XYx9mO.js" async></script><h2 id="the-question-remains-how-much-are-these-devices-going-to-cost">The question remains: how much are these devices going to cost?</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:2126px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="VN3tt97dHc9e3Hfpka2w7" name="Valve Steam FrameValve Steam Frame" alt="Person using Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/VN3tt97dHc9e3Hfpka2w7.jpg" mos="" align="middle" fullscreen="" width="2126" height="1196" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve may have confirmed we'll be getting these devices in the next couple of months, but the company still hasn't revealed just how much they'll cost. With the <a href="https://www.tomsguide.com/gaming/handheld-gaming/the-steam-deck-price-hike-and-msis-new-claw-8-ex-ai-best-buy-leak-are-just-more-evidence-that-handheld-pc-prices-are-out-of-control">current prices of PC gaming devices skyrocketing</a> due to the RAM crisis, it's probably the thing gamers want to know the most.</p><p>Some <a href="https://www.tomsguide.com/gaming/steam-machine-pricing-may-have-just-leaked-by-retailer-and-its-not-cheap">price leaks back in January</a> suggested between $900 and $1,100 for the different configurations of Steam Machine which would be a tough pill to swallow for a machine designed to compete with the Xbox and PS5. Costs have only gone up since January and Valve recently <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-oled-is-finally-back-in-stock-with-updated-pricing-you-are-not-going-to-like">raised the price of the Steam Deck to compensate</a>.</p><p>Over on Reddit, the discussion over Valve's lack of clarity on the pricing is in full swing.</p><p>"Anything but release the prices," wrote Reddit user u/jjj44j, while others were under no illusion it's going to be costly. Redditor u/KingoKings365 wrote simply: "my wallet gonna cry" while user u/yeaaahwehere summed it up nicely: "just dipped into my child’s college fund 🙏 can’t wait for this"</p><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/steammachine/comments/1tx2ylh/steam_machine_and_frame_are_set_to_be_released">Steam Machine and Frame are set to be released this summer, Valve report today</a> from <a href="https://www.reddit.com/r/steammachine">r/steammachine</a></blockquote><script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/valve-hope-to-ship-steam-machines-in-2026-but-memory-shortages-could-cause-delays">Valve "hopes to ship" Steam Machines in 2026 but memory shortages could cause delays</a></li><li><a href="https://www.tomsguide.com/computing/peripherals/i-just-spent-48-hours-with-the-steam-controller-heres-my-honest-verdict">I just spent 48 hours with the Steam Controller — here's my honest verdict</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">I might ditch my gaming PC for the Steam Machine</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Dodge the Steam Deck price hike with my top alternatives from just $599 ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/handheld-gaming/dodge-the-steam-deck-price-hike-with-my-top-alternatives-from-just-usd599</link>
                                                                            <description>
                            <![CDATA[ Valve significantly raised the praise of the Steam Deck. Here's the handheld consoles and gaming consoles I'd get instead for almost the same amount of money. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">w2aXmtVhkJofwCefBBfc3c</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/P26FH8QaLeitbTXRsawyVW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 28 May 2026 16:38:31 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &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/P26FH8QaLeitbTXRsawyVW-1280-80.jpg">
                                                            <media:credit><![CDATA[Amazon edited with Gemini]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Collage of Steam Deck alternatives from Asus, Lenovo and Nintendo]]></media:description>                                                            <media:text><![CDATA[Collage of Steam Deck alternatives from Asus, Lenovo and Nintendo]]></media:text>
                                <media:title type="plain"><![CDATA[Collage of Steam Deck alternatives from Asus, Lenovo and Nintendo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/P26FH8QaLeitbTXRsawyVW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve surprised everyone this week when the gaming giant suddenly brought the Steam Deck OLED back in stock with an <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-oled-is-finally-back-in-stock-with-updated-pricing-you-are-not-going-to-like">insane $300 price hike</a>. The 1TB version now costs $949, while the 512GB variant is now $789.</p><p>With that increase, the Steam Deck may not be the most valuable handheld console you can pick up right now. Instead, I've gone through our list of the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best handheld gaming consoles</a> and picked my favorites. I've picked consoles that offer similar or, in some cases, better performance than the four-year-old Steam Deck. </p><p>Of course, you can also <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-turned-the-asus-rog-ally-x-into-a-steam-deck-it-proves-windows-11-kills-power-and-battery-life">turn any handheld console into a Steam Deck</a> by installing SteamOS or the Bazzite gaming OS.</p><h3 class="article-body__section" id="section-quick-links"><span>Quick Links</span></h3><ul><li><strong></strong><a href="https://www.amazon.com/handheld-game-console/s?k=handheld+game+console" target="_blank" rel="nofollow"><strong>shop all handheld gaming consoles at Amazon</strong></a><strong></strong></li><li><strong>Asus ROG Xbox Ally 7: </strong><a href="https://www.bestbuy.com/product/rog-xbox-ally-7-fhd-120hz-gaming-handheld-3-month-xbox-game-pass-premium-amd-ryzen-z2-a-16gb-ram-512gb-ssd-windows/JJGHGPGFL4" target="_blank" rel="nofollow"><strong>for $599 @ Best Buy</strong></a><strong></strong></li><li><strong>Lenovo Legion Go: </strong><a href="https://www.bestbuy.com/product/legion-go-8-8-144hz-wqxga-gaming-handheld-amd-ryzen-z1-extreme-16gb-with-512-gb-ssd-windows/JJGYCGRK6W" target="_blank" rel="nofollow"><strong>for $849 @ Best Buy</strong></a><strong></strong></li><li><strong>Asus ROG Xbox Ally X: </strong><a href="https://www.bestbuy.com/product/rog-xbox-ally-x-7-fhd-120hz-gaming-handheld-3-month-xbox-game-pass-premium-amd-ryzen-ai-z2-extreme-24gb-ram-1tb-ssd-windows/JJGHGPLVHW" target="_blank" rel="nofollow"><strong>for $999 @ Best Buy</strong></a><strong></strong></li><li><strong>PS5 Pro: </strong><a href="https://www.amazon.com/PlayStation-5-Pro-Console-2TB/dp/B0FTMY4YZ2" target="_blank" rel="nofollow"><strong>for $899 @ Amazon</strong></a><strong></strong></li><li><strong>Switch 2: </strong><a href="https://www.amazon.com/Nintendo-Switch-2-System/dp/B0F3GWXLTS" target="_blank" rel="nofollow"><strong>for $449 @ Amazon</strong></a><strong></strong></li></ul><h3 class="article-body__section" id="section-my-top-steam-deck-alternatives"><span>My Top Steam Deck Alternatives</span></h3><div class="product"><a data-dimension112="754ab0e4-c2ab-48ff-ba31-c3381a3e1387" data-action="Deal Block" data-label="The Asus ROG Xbox Ally is an Xbox-inspired gaming handheld that features a comfortable design and a leaner version of Windows. While this model isn't as powerful as the ROG Xbox Asus X, it's a more compelling purchase at this lower price." data-dimension48="The Asus ROG Xbox Ally is an Xbox-inspired gaming handheld that features a comfortable design and a leaner version of Windows. While this model isn't as powerful as the ROG Xbox Asus X, it's a more compelling purchase at this lower price." data-dimension25="$599" href="https://www.bestbuy.com/product/rog-xbox-ally-7-fhd-120hz-gaming-handheld-3-month-xbox-game-pass-premium-amd-ryzen-z2-a-16gb-ram-512gb-ssd-windows/JJGHGPGFL4" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EoKxmvvEgJ4fHxbcrhCRo9" name="Asus ROG Xbox Ally deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EoKxmvvEgJ4fHxbcrhCRo9.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Asus ROG Xbox Ally is an Xbox-inspired gaming handheld that features a comfortable design and a leaner version of Windows. While this model isn't as powerful as the ROG Xbox Asus X, it's a more compelling purchase at this lower price.<a class="view-deal button" href="https://www.bestbuy.com/product/rog-xbox-ally-7-fhd-120hz-gaming-handheld-3-month-xbox-game-pass-premium-amd-ryzen-z2-a-16gb-ram-512gb-ssd-windows/JJGHGPGFL4" target="_blank" rel="nofollow" data-dimension112="754ab0e4-c2ab-48ff-ba31-c3381a3e1387" data-action="Deal Block" data-label="The Asus ROG Xbox Ally is an Xbox-inspired gaming handheld that features a comfortable design and a leaner version of Windows. While this model isn't as powerful as the ROG Xbox Asus X, it's a more compelling purchase at this lower price." data-dimension48="The Asus ROG Xbox Ally is an Xbox-inspired gaming handheld that features a comfortable design and a leaner version of Windows. While this model isn't as powerful as the ROG Xbox Asus X, it's a more compelling purchase at this lower price." data-dimension25="$599">View Deal</a></p></div><div class="product"><a data-dimension112="0dfc104e-0c2f-46ac-9b83-dbbfe0bc993b" data-action="Deal Block" data-label="The Lenovo Legion Go is on the higher end of PC gaming handheld tech, which makes its price even more stunning. On top, you’ve got that gorgeous 8.8-inch display with 144Hz refresh rate, and those detachable controllers (plus built-in kickstand) for quick multiplayer action. Whereas inside, you’ll find that powerful AMD Ryzen Z1 Extreme chip, 16GB of RAM and a 512GB SSD." data-dimension48="The Lenovo Legion Go is on the higher end of PC gaming handheld tech, which makes its price even more stunning. On top, you’ve got that gorgeous 8.8-inch display with 144Hz refresh rate, and those detachable controllers (plus built-in kickstand) for quick multiplayer action. Whereas inside, you’ll find that powerful AMD Ryzen Z1 Extreme chip, 16GB of RAM and a 512GB SSD." data-dimension25="$849" href="https://www.bestbuy.com/product/legion-go-8-8-144hz-wqxga-gaming-handheld-amd-ryzen-z1-extreme-16gb-with-512-gb-ssd-windows/JJGYCGRK6W" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="umtee5uNJ378Qvx3zvbgH6" name="Lenovo Legion Go.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/umtee5uNJ378Qvx3zvbgH6.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Lenovo Legion Go is on the higher end of PC gaming handheld tech, which makes its price even more stunning. On top, you’ve got that gorgeous 8.8-inch display with 144Hz refresh rate, and those detachable controllers (plus built-in kickstand) for quick multiplayer action. Whereas inside, you’ll find that powerful AMD Ryzen Z1 Extreme chip, 16GB of RAM and a 512GB SSD.<a class="view-deal button" href="https://www.bestbuy.com/product/legion-go-8-8-144hz-wqxga-gaming-handheld-amd-ryzen-z1-extreme-16gb-with-512-gb-ssd-windows/JJGYCGRK6W" target="_blank" rel="nofollow" data-dimension112="0dfc104e-0c2f-46ac-9b83-dbbfe0bc993b" data-action="Deal Block" data-label="The Lenovo Legion Go is on the higher end of PC gaming handheld tech, which makes its price even more stunning. On top, you’ve got that gorgeous 8.8-inch display with 144Hz refresh rate, and those detachable controllers (plus built-in kickstand) for quick multiplayer action. Whereas inside, you’ll find that powerful AMD Ryzen Z1 Extreme chip, 16GB of RAM and a 512GB SSD." data-dimension48="The Lenovo Legion Go is on the higher end of PC gaming handheld tech, which makes its price even more stunning. On top, you’ve got that gorgeous 8.8-inch display with 144Hz refresh rate, and those detachable controllers (plus built-in kickstand) for quick multiplayer action. Whereas inside, you’ll find that powerful AMD Ryzen Z1 Extreme chip, 16GB of RAM and a 512GB SSD." data-dimension25="$849">View Deal</a></p></div><div class="product"><a data-dimension112="be259b93-40ae-4207-89b4-346a2f9c8b9e" data-action="Deal Block" data-label="The Asus ROG Xbox Ally X is the beefier version of the Xbox-inspired gaming handheld. It has the same comfortable design of its Windows counterpart, but with a leaner build. It's also more powerful with an AMD Ryzen Z2 Extreme processor, 24GB of RAM and a 1TB SSD. And compared to the new Steam Deck prices it's only $50 more expensive." data-dimension48="The Asus ROG Xbox Ally X is the beefier version of the Xbox-inspired gaming handheld. It has the same comfortable design of its Windows counterpart, but with a leaner build. It's also more powerful with an AMD Ryzen Z2 Extreme processor, 24GB of RAM and a 1TB SSD. And compared to the new Steam Deck prices it's only $50 more expensive." data-dimension25="$999" href="https://www.bestbuy.com/product/rog-xbox-ally-x-7-fhd-120hz-gaming-handheld-3-month-xbox-game-pass-premium-amd-ryzen-ai-z2-extreme-24gb-ram-1tb-ssd-windows/JJGHGPLVHW" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="th9T5C32H6jCgmY9C98jG4" name="Xbox Ally X" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/th9T5C32H6jCgmY9C98jG4.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Asus ROG Xbox Ally X is the beefier version of the Xbox-inspired gaming handheld. It has the same comfortable design of its Windows counterpart, but with a leaner build. It's also more powerful with an AMD Ryzen Z2 Extreme processor, 24GB of RAM and a 1TB SSD. And compared to the new Steam Deck prices it's only $50 more expensive.<a class="view-deal button" href="https://www.bestbuy.com/product/rog-xbox-ally-x-7-fhd-120hz-gaming-handheld-3-month-xbox-game-pass-premium-amd-ryzen-ai-z2-extreme-24gb-ram-1tb-ssd-windows/JJGHGPLVHW" target="_blank" rel="nofollow" data-dimension112="be259b93-40ae-4207-89b4-346a2f9c8b9e" data-action="Deal Block" data-label="The Asus ROG Xbox Ally X is the beefier version of the Xbox-inspired gaming handheld. It has the same comfortable design of its Windows counterpart, but with a leaner build. It's also more powerful with an AMD Ryzen Z2 Extreme processor, 24GB of RAM and a 1TB SSD. And compared to the new Steam Deck prices it's only $50 more expensive." data-dimension48="The Asus ROG Xbox Ally X is the beefier version of the Xbox-inspired gaming handheld. It has the same comfortable design of its Windows counterpart, but with a leaner build. It's also more powerful with an AMD Ryzen Z2 Extreme processor, 24GB of RAM and a 1TB SSD. And compared to the new Steam Deck prices it's only $50 more expensive." data-dimension25="$999">View Deal</a></p></div><h2 id="traditional-console-alternatives">Traditional console alternatives</h2><p>If a PC gaming handheld isn't appealing to you, you can also consider going the traditional route, which are also more appealing now. </p><p>The Nintendo Switch 2, despite price hikes coming in September, <em>only</em> costs you $449, while even the most expensive PlayStation, the PS5 Pro is now cheaper than the 1TB Steam Deck at $899. </p><h3 class="article-body__section" id="section-my-top-console-alternatives"><span>My Top Console Alternatives</span></h3><div class="product"><a data-dimension112="93dbd0ff-76ba-4616-ba5e-c2c8263ce573" data-action="Deal Block" data-label="Also check: Best Buy" data-dimension48="Also check: Best Buy" data-dimension25="$899" href="https://www.amazon.com/PlayStation-5-Pro-Console-2TB/dp/B0FTMY4YZ2" 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="o53gSodihxPkSztuP2Lt4Z" name="PS5_Pro_Quick_List" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/o53gSodihxPkSztuP2Lt4Z.jpg" mos="" align="middle" fullscreen="" width="500" height="500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The PS5 Pro is the most powerful PlayStation console ever made. Building on the base PS5, it packs upgraded internal components, a 2TB SSD, and a very slight visual redesign. It also comes with a standard DualSense controller. <br><strong>Also check:  </strong><a href="https://www.bestbuy.com/site/sony-playstation-5-pro-console-white/6601524.p?skuId=6601524" target="_blank" rel="nofollow" data-dimension112="93dbd0ff-76ba-4616-ba5e-c2c8263ce573" data-action="Deal Block" data-label="Also check: Best Buy" data-dimension48="Also check: Best Buy" data-dimension25="$899"><strong>Best Buy</strong></a><strong> | </strong><a href="https://www.walmart.com/ip/Sony-PlayStation-5-Pro-Console-PS5-Pro/11839818124" target="_blank" rel="nofollow"><strong>Walmart</strong></a><strong></strong><a class="view-deal button" href="https://www.amazon.com/PlayStation-5-Pro-Console-2TB/dp/B0FTMY4YZ2" target="_blank" rel="nofollow" data-dimension112="93dbd0ff-76ba-4616-ba5e-c2c8263ce573" data-action="Deal Block" data-label="Also check: Best Buy" data-dimension48="Also check: Best Buy" data-dimension25="$899">View Deal</a></p></div><div class="product"><a data-dimension112="2b6dc199-9842-4453-99f2-c51db5c0f3ea" data-action="Deal Block" data-label="Nintendo Switch 2" data-dimension48="Nintendo Switch 2" data-dimension25="$449" href="https://www.amazon.com/Nintendo-Switch-2-System/dp/B0F3GWXLTS" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1240px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="8oL9ux5FsYhxFBSJKtkUU3" name="switch-2-box-deal-block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/8oL9ux5FsYhxFBSJKtkUU3.jpg" mos="" align="middle" fullscreen="" width="1240" height="698" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review" data-dimension112="2b6dc199-9842-4453-99f2-c51db5c0f3ea" data-action="Deal Block" data-label="Nintendo Switch 2" data-dimension48="Nintendo Switch 2" data-dimension25="$449">Nintendo Switch 2</a> takes what worked about its best-selling predecessor and makes impactful upgrades across the board. From the excellent, and noticeably larger, 7.9-inch display to the more powerful internal specs, the Switch 2 is a full leap forward and the best hybrid console you can buy.<br><strong>Also check: </strong><a href="https://www.bestbuy.com/site/switch-2-system-nintendo-switch-2/6614313.p" target="_blank" rel="nofollow"><strong>$449 @ Best Buy</strong></a><a class="view-deal button" href="https://www.amazon.com/Nintendo-Switch-2-System/dp/B0F3GWXLTS" target="_blank" rel="nofollow" data-dimension112="2b6dc199-9842-4453-99f2-c51db5c0f3ea" data-action="Deal Block" data-label="Nintendo Switch 2" data-dimension48="Nintendo Switch 2" data-dimension25="$449">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/007-first-light-review">007 First Light is the best Bond game ever made — sorry, GoldenEye</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/i-fixed-my-biggest-gripe-with-the-ps5-pro-with-these-unofficial-cover-plates-and-now-it-looks-and-feels-more-like-a-pc">I fixed my biggest gripe with the PS5 Pro with these unofficial cover plates — and now it looks and feels more like a PC</a></li><li><a href="https://www.tomsguide.com/gaming/assassins-creed-black-flag-resynced-hands-on-preview">I played 3 hours of Assassin's Creed Black Flag Resynced — and it’s better than I expected</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Deck OLED is finally back in stock with 'updated pricing' you are not going to like ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-oled-is-finally-back-in-stock-with-updated-pricing-you-are-not-going-to-like</link>
                                                                            <description>
                            <![CDATA[ Valve finally has Steam Deck consoles back in stock, but there are some major catches including a massive price hike. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ir6EabEstDFvFUWFRGDhyE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ucCXYmrBeuLBm7LzYhfkZE-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 27 May 2026 19:34:50 +0000</pubDate>                                                                                                                                <updated>Fri, 29 May 2026 16:58:49 +0000</updated>
                                                                                                                                            <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &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/ucCXYmrBeuLBm7LzYhfkZE-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Deck OLED gameplay surrounded by flames]]></media:description>                                                            <media:text><![CDATA[Steam Deck OLED gameplay surrounded by flames]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Deck OLED gameplay surrounded by flames]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ucCXYmrBeuLBm7LzYhfkZE-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Price hikes come for us all and Valve just announced a significant price increase for the Steam Deck, which is finally back in stock. </p><p>The 512GB Steam Deck OLED now costs $789, up $240 from $549, while the 1TB variant now costs $949, up $300 from $649. As of this writing, both models are available for <a href="https://store.steampowered.com/steamdeck" target="_blank">purchase from Steam</a>.</p><p>The LCD models are completely missing from the product page as they were officially discontinued late last year. Additionally, while refurbished OLED models are on offer for the original prices, the LCD versions are still listed as out of stock. </p><p>According to a <a href="https://steamcommunity.com/groups/steam_hardware/announcements/detail/672869045073085539" target="_blank">blog post </a>the new prices "reflect the current state of component costs and other global logistical challenges across the industry." Valve specifically blamed rising memory and storage costs in the announcement.</p><p>Valve is just the latest victim in the ongoing AI-greed festival that is <a href="https://www.tomsguide.com/computing/cpus/difficult-to-survive-ramaggedon-hits-intel-as-new-report-says-it-is-jacking-cpu-prices-by-10-percent">RAMaggedon</a>.</p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7645357500002323726" data-video-id="7645357500002323726" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ BETA 777 - beaty" href="https://www.tiktok.com/music/BETA-777-7142169219956738050">♬ BETA 777 - beaty</a></section>                    </blockquote></div>                <h2 id="more-expensive-than-a-ps5-pro">More expensive than a PS5 Pro</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NLmsYxcW7zX8Zanxh3857J" name="ps5 pro image.jpg" alt="An image of the PS5 Pro on a blue background" src="https://cdn.mos.cms.futurecdn.net/NLmsYxcW7zX8Zanxh3857J.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Amazingly, this price hike makes the Steam Deck one of the most expensive consoles on the market now. In fact, it's more expensive than Sony's<a href="https://www.amazon.com/PlayStation-5-Pro-Console-2TB/dp/B0FTMY4YZ2?th=1" target="_blank"> PS5 Pro, which currently starts at $899</a> after its own price hikes earlier this year.</p><p>Even among the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best handheld gaming consoles</a>, the Steam Deck may not be the quality value pick anymore.</p><p>Here's how the new Steam Deck price compares to other consoles like the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">Asus ROG Xbox Ally X</a> and the<a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review"> Nintendo Switch 2</a>.</p><div ><table><caption>Steam Deck pricing compared</caption><thead><tr><th class="firstcol " ><p>Console</p></th><th  ><p>Price</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steam Deck OLED (1TB)</strong></p></td><td  ><p>$949</p></td></tr><tr><td class="firstcol " ><p><strong>Steam Deck OLED (512GB)</strong></p></td><td  ><p>$789</p></td></tr><tr><td class="firstcol " ><p><strong>Nintendo Switch 2</strong></p></td><td  ><p>$449</p></td></tr><tr><td class="firstcol " ><p><strong>Asus ROG Xbox Ally X</strong></p></td><td  ><p>$999</p></td></tr><tr><td class="firstcol " ><p><strong>Asus ROG Ally</strong></p></td><td  ><p>$649</p></td></tr><tr><td class="firstcol " ><p><strong>Lenovo Legion Go S</strong></p></td><td  ><p>$989</p></td></tr><tr><td class="firstcol " ><p><strong>PS5 Pro</strong></p></td><td  ><p>$899</p></td></tr></tbody></table></div><p>We looked at similarly specced handheld consoles here. The Asus ROG Xbox Ally comes in different storage sizes, including a 4TB one. For this comparison, we looked at the 1TB variant.</p><p>Honestly, at these prices, it might be better to pick up the Xbox Ally X. It's newer than the four-year-old Steam Deck and the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">Xbox streamlined Windows OS is a breath of fresh air</a>, plus you can still use Steam.</p><h2 id="not-confident-about-the-steam-machine">Not confident about the Steam Machine</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WLec9wkyEhDpZxRRLJYEqE" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve has yet to announce a release date or pricing for the Steam Machine, it's living room PC-console hybrid. One of the worries surrounding the console has been about pricing especially since the memory shortage has made life difficult for manufacturers.</p><p>If Valve is pushing Steam Deck prices this high, I have concerns that the Machine might be similarly priced or more expensive. Which would defeat the purpose of the device in the first place. </p><p>At that point, it would be better to buy a pre-built or source your own parts for a gaming PC. The Steam Machine would be dead in the water.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/007-first-light-review">007 First Light is the best Bond game ever made — sorry, GoldenEye</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/i-fixed-my-biggest-gripe-with-the-ps5-pro-with-these-unofficial-cover-plates-and-now-it-looks-and-feels-more-like-a-pc">I fixed my biggest gripe with the PS5 Pro with these unofficial cover plates — and now it looks and feels more like a PC</a></li><li><a href="https://www.tomsguide.com/us/best-4k-gaming-tv,review-4837.html">These are the 3 best gaming TVs we've tested for console and PC gaming without breaking the bank</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Machine leak suggests 4 different models — and a queue system to stop scalpers ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/gaming-desktops/steam-machine-leak-suggests-4-different-models-and-a-queue-system-to-stop-scalpers</link>
                                                                            <description>
                            <![CDATA[ Valve is reportedly prepping 4 Steam Machine models, along with a reservation queue to curb scalpers and bots, but there's no news on pricing. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Bbv9mHv49sALP5vQMUXUT3</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 11 May 2026 15:23:06 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Desktops]]></category>
                                                    <category><![CDATA[Computing Peripherals]]></category>
                                                    <category><![CDATA[Desktop Computers]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review">Steam Controller</a> launched last week and <a href="https://www.tomsguide.com/news/live/valve-stream-controller-launch-live">sold out in less than 30 minutes</a>. As expected, eBay listings went live shortly after, with the peripheral marked up by hundreds of dollars. Valve has since implemented a queue system for Steam Controller orders, and if a recent rumor is true, the company will do the same for the upcoming Steam Machine.</p><p>As <a href="https://wccftech.com/steam-machine-queue-system-4-models-scalpers/" target="_blank">Wccftech</a> reports, a new leak suggests that Valve is bringing back the reservation queue system—the same one used for the <a href="https://www.tomsguide.com/opinion/steam-deck-oled-is-the-must-buy-handheld-of-2023-and-the-perfect-holiday-gift-for-gamers">Steam Deck’</a>s launch. That alone is interesting, but the leak also suggests how many versions of the PC/console hybrid we should expect.</p><div class="product"><a data-dimension112="1a22437f-994d-45af-8a6c-6e537931c2b0" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. Now with the new queue system, you might have a shot at nabbing one." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. Now with the new queue system, you might have a shot at nabbing one." data-dimension25="$99" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1232px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="p4kRCykqzQRFswEntyNcUE" name="Steam Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/p4kRCykqzQRFswEntyNcUE.jpg" mos="" align="middle" fullscreen="" width="1232" height="1232" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. Now with the new queue system, you might have a shot at nabbing one.<a class="view-deal button" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow" data-dimension112="1a22437f-994d-45af-8a6c-6e537931c2b0" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. Now with the new queue system, you might have a shot at nabbing one." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. Now with the new queue system, you might have a shot at nabbing one." data-dimension25="$99">View Deal</a></p></div><p>For those who don’t know, the reservation queue is tied to a vetted Steam account. By requiring a purchase history or a verified account, Valve can prevent scalpers from using thousands of burner bots to swarm checkout pages. Those who’ve had active Steam accounts for an unspecified amount of time will get priority on the line. Anyone trying to flip a console on eBay for a 300% markup will be out of luck.</p><p>One of the more interesting details from this alleged leak is that there will be four distinct models. Valve has confirmed 512GB and 2TB models, but we can make educated guesses about the other two. As Wccftech notes, one could have 1TB of storage, while the other could be a bundle with the Steam Controller. I agree with this assessment.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-evvmme"></div>                            </div>                            <script src="https://kwizly.com/embed/evvmme.js" async></script><p>The big question about the Steam Machine is its price. Given the ongoing RAM crisis, it’s safe to assume Valve is waiting as long as possible before revealing the official cost. If the company can keep prices in the $599 to $899 range, it would certainly undercut the PS5 Pro, which now costs $899 after PS5 price hikes.</p><p>Given the unofficial nature of this story, please take it with a healthy dose of skepticism. We’ll keep you updated on any further developments, so stay tuned for more!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/gaming-laptops/razer-blade-16-2026-review">I spent two weeks with the Razer Blade 16 (2026) — and it’s a serious gaming laptop powerhouse</a></li><li><a href="https://www.tomsguide.com/best-picks/best-computers">Best computers in 2026: Our 7 top picks after 500+ hours of testing</a></li><li><a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">I’ve been gaming for 25 years and these are the best PC controllers in 2026 worth your money</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve is opening a Steam Controller reservation queue to combat resellers starting this weekend ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/gaming-peripherals/valve-is-opening-a-steam-controller-reservation-queue-to-combat-resellers-starting-this-weekend</link>
                                                                            <description>
                            <![CDATA[ Valve has a new reservation queue that should make it easier for you to get a Steam Controller. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">CDuXCumwxCaaW4p5so7Pkc</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Kj6wiCa3UKHcrsq83PFtWN-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 07 May 2026 20:02:42 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &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/Kj6wiCa3UKHcrsq83PFtWN-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Controller up close]]></media:description>                                                            <media:text><![CDATA[Steam Controller up close]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Controller up close]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Kj6wiCa3UKHcrsq83PFtWN-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When Valve finally loosed the new <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review">Steam Controller</a> on the world this past Monday (May 4) stock <a href="https://www.tomsguide.com/gaming/pc-gaming/the-steam-controller-is-officially-out-of-stock-but-valve-promises-a-restock-is-on-the-way">disappeared within 30 minutes</a> and reportedly broke Steam. At the time of writing, it's currently sold out everywhere except for scalper listings on eBay where some greedy pockets are demanding up to <a href="https://www.ebay.com/itm/147293873337?itmmeta=01KR1WCMG0Y59M0QFKREVZ3P0A&hash=item224b6624b9:g:ttoAAeSwajBp-OOV&itmprp=enc%3AAQALAAAAwDKQclQvzFwZQpmMrsO4LupnwVXaIyzWV9ItUAnr11XE8xCy0dTA78N7i8N8dFSTEYxB3Gb13OZt5tTu24e4xQ5RXyV5VpumYCeBegrnaevhPsnAdkMXjMrLPsELbT83uymOLhvGLTz0yPslG6spOfRpm87VdQ7ZONzNJ3AtewJ2lgQtBnWrdICMW8YTs%2FNV0k01KjcgL0lGmVsTK1BCrqprJM3kB4iyvaZIWx%2BcXpeX14f%2ByG5%2FCqmVFoV6IDqseg%3D%3D%7Ctkp%3ABk9SR4zIsrzAZw" target="_blank">three times the $99 price tag.</a></p><p>Today (May 7), <a href="https://store.steampowered.com/news/group/45479024/view/702141174212725149" target="_blank">Valve announced a new plan</a> to help more gamers get their paws on a Steam Controller. The company also acknowledged that the "experience" of trying to buy it was "incredibly frustrating."</p><p>The Steam Controller is one of the <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">best PC game controllers</a>, so it's no surprise that it would get snatched up quickly. Valve's new plan aims to make buying one easier and while circumventing scalpers.</p><p>“We plan to continue replenishing stock as we get more in, but in the meantime wanted to share changes we’re making to improve the purchase experience and to limit reseller activity," the Valve announcement says.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-evvmme"></div>                            </div>                            <script src="https://kwizly.com/embed/evvmme.js" async></script><p>Starting on Friday (May 8) at 10 am PT/1 pm ET/6 pm BST, Valve is opening a reservation queue for the Steam Controller. Initially, the queue will only be available in US and Canada with the UK, EU and Australia in the following weeks.</p><p>Adding yourself to the queue puts you in line. When stock is available and it's your spot, you will have 72 hours to buy the controller. Order emails will be sent to your associated account. </p><p>There are some stipulations.</p><p>Valve says that anyone who has already purchased a Steam Controller is ineligible to reserve another one. The company did not specify how long that will last.</p><p>Additionally, your account must be in good standing on Steam and you need to have made a purchase on Steam prior to April 27, 2026.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-price-hike-fears-grow-after-reports-investors-dont-like-how-cheap-the-console-is">Nintendo Switch 2 price hike fears grow after reports investors don't like how cheap the console is</a></li><li><a href="https://www.tomsguide.com/audio/headphones/gaming-headphones-are-finally-good-for-listening-to-music-these-open-backs-prove-that-you-dont-need-two-separate-sets-of-cans">Gaming headphones are finally good for listening to music — these open-backs prove that you don’t need two separate sets of cans</a></li><li><a href="https://www.tomsguide.com/gaming/007-first-light-hands-on-review">I played 3 hours of 007 First Light — this could be the best Bond game since GoldenEye</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Steam Controller is officially out of stock, but Valve promises a restock is on the way ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/the-steam-controller-is-officially-out-of-stock-but-valve-promises-a-restock-is-on-the-way</link>
                                                                            <description>
                            <![CDATA[ Didn't get a Steam Controller on Monday? More are coming, but there's no definite timeline yet. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hqHDkdftmDk4o2XQVRrhKJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 06 May 2026 12:09:53 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tom.pritchard@futurenet.com (Tom Pritchard) ]]></author>                    <dc:creator><![CDATA[ Tom Pritchard ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/biCewUkKfSA6QnT2HxVc3f.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <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/VA2D2h27873kpRELmPwZHS-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Steam Controller on a desk.]]></media:description>                                                            <media:text><![CDATA[The Steam Controller on a desk.]]></media:text>
                                <media:title type="plain"><![CDATA[The Steam Controller on a desk.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/computing/peripherals/i-just-spent-48-hours-with-the-steam-controller-heres-my-honest-verdict">Steam Controller</a> officially<a href="https://www.tomsguide.com/news/live/valve-stream-controller-launch-live"> launched earlier this week</a> on May 4, and it's fair to say that demand was pretty high, with the controller officially selling out in around 30 minutes. That's bad news for any PC gamers hoping to pick one of these gamepads up for themselves, though it isn't entirely unexpected.</p><p>Thankfully, there is good news on the horizon, with <a href="https://x.com/valvesoftware/status/2051695149026353424" target="_blank">Valve</a> taking to social media to confirm that more Steam Controllers are on the way. "Steam Controller ran out faster than we anticipated, and we hate that not everyone who wanted one was able to get it," the message says. "We're working on getting more in stock and will have an update on expected timeline soon."</p><p>Obviously, the lack of a concrete timeline is disappointing for those of you who weren't able to get hold of a Steam Controller during Monday's drop. But at least we have hope that more will arrive in the near future, and disappointed fans won't need to pay overinflated prices from scalpers.</p><h2 id="don-t-feed-the-scalpers">Don't feed the scalpers</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Kj6wiCa3UKHcrsq83PFtWN" name="Steam Controller-7" alt="Steam Controller up close" src="https://cdn.mos.cms.futurecdn.net/Kj6wiCa3UKHcrsq83PFtWN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You better believe there are scalpers already trying to cash in on the Steam Controller's low stock. The searches are muddied by the fact that people are trying to sell the<a href="https://www.tomsguide.com/us/valve-steam-controller,review-3263.html" target="_blank"> first-generation Steam Controller</a> from 2015, but the newer model can be found if you look carefully enough. </p><p>In fact, <a href="https://www.ebay.com/sch/i.html?_nkw=steam+controller&_sacat=0&_from=R40&_trksid=p4624852.m570.l1313" target="_blank" rel="nofollow">two listings</a> I found are trying to sell the controller for $329 and $93, respectively. The latter is also located in Australia, which means you're expected to pay $51 for shipping on top of the already extortionate price. </p><p>Needless to say, you should definitely not encourage these people and pay over the odds for your Steam Controller. It doesn't matter how good the new controller might be; it's definitely not worth paying two or three times the official price to get one quickly. Just like the <a href="https://www.tomsguide.com/news/forget-ps5-restocks-global-chip-shortage-now-spilling-over-to-all-of-these-products">PS5 shortages</a> that kicked off back in 2020, you're just going to have to be patient and wait for your turn to buy.</p><p>Your wallet will thank you, and you won't be left with the knowledge that you got ripped off by someone without any scruples. </p><h2 id="more-valve-hardware-may-be-coming-soon">More Valve hardware may be coming soon</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HJ6ZRxVDUjBBGPfdRCPNrm" name="Steam Controller-12" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If the impending Controller restock wasn't enough to look forward to, there's speculation that the release of the<a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why"> Steam Machine</a> and <a href="https://www.tomsguide.com/computing/vr-ar/steam-frame-will-take-over-vr-in-2026-3-key-features-i-cant-wait-for">Steam Frame</a> may be coming up soon. Both the Steam Machine system and the Steam Frame VR headset have been <a href="https://www.tomsguide.com/computing/half-life-3-and-steam-machine-could-be-delayed-and-you-can-blame-the-ram-price-crisis-for-that">delayed thanks to the ongoing memory shortages</a>, and there's been no official word on when they might be released.</p><p>But the fact that<a href="https://x.com/SadlyItsBradley/status/2049899806709915761" target="_blank"> Valve has just imported</a> 50 tons of "games consoles" into the U.S. is hope for some official news soon. Some of this cargo may include new <a href="https://www.tomsguide.com/reviews/steam-deck-review-the-nintendo-switch-for-adults">Steam Decks</a>, and considering <a href="https://www.tomsguide.com/computing/hardware/steam-deck-oled-stock-is-drying-up-valve-confirms-and-the-ram-price-crunch-has-me-worried-for-the-steam-machine">stock has dried up since the start of the year,</a> that can only be a good thing. But that volume is more than people expected from Valve's handheld, and may mean one of the other systems is on its way very soon.</p><p>Sadly, we don't know more than that, and we'll have to wait for Valve to decide when it's ready to unveil a launch date for its upcoming systems. Here's hoping that this happens sooner rather than later.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/mini-pcs/i-gave-my-favorite-pocketable-mini-pc-an-instant-upgrade-with-this-docking-station-and-now-its-a-full-fledged-gaming-rig">I gave my favorite pocketable mini PC an instant upgrade with this docking station — and now it’s a full-fledged gaming rig</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/steam-controller-is-sold-out-skip-the-ebay-scalpers-and-grab-one-of-these-12-alternatives-instead">Steam Controller is sold out! Skip the eBay scalpers and grab one of these 12 alternatives instead</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/valve-is-hard-at-work-on-steam-deck-2-but-steam-machine-and-steam-frame-are-held-hostage-by-ai-gold-rush">Valve is 'hard at work' on Steam Deck 2, but Steam Machine and Steam Frame are held hostage by AI gold rush</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just tested the new Steam Controller — and it's the only PC gamepad I'll ever need ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review</link>
                                                                            <description>
                            <![CDATA[ The Steam Controller is arguably the best PC game controller for Steam users, thanks to its ergonomic design and high degree of customization. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pgfzGnjfhNHUY7BznZ49L6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 04 May 2026 18:04:28 +0000</pubDate>                                                                                                                                <updated>Wed, 10 Jun 2026 14:33:27 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Steam Controller on a desk.]]></media:description>                                                            <media:text><![CDATA[The Steam Controller on a desk.]]></media:text>
                                <media:title type="plain"><![CDATA[The Steam Controller on a desk.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The new Steam Controller ($99 / AU$149) is arguably the best peripheral for playing Steam games on PC and on the <a href="https://www.tomsguide.com/opinion/steam-deck-oled-is-the-must-buy-handheld-of-2023-and-the-perfect-holiday-gift-for-gamers">Steam Deck</a>. While we don’t yet have the Steam Machine this controller was supposed to ship with, having it available right now isn’t a bad compromise. Even without its parent console/PC hybrid, this is a brilliant controller that’s a major improvement over the controversial original that launched 11 years ago.</p><p>Don’t let pictures fool you, as the Steam Controller is only slightly bigger than an Xbox controller. Because of that, it feels natural to hold. Except for the large touchpads under the thumbsticks and four back buttons, the controller has the same basic layout you’re familiar with from other game pads.</p><p>Since this is a Steam device, pairing it with any machine running <a href="https://www.tomsguide.com/us/steamos-faq-machines,news-17614.html">SteamOS</a> or the Steam App is seamless. It’s also fun, as you can charge and pair the controller to your PC or handheld via an included puck. Though the puck makes charging and pairing simple, you can always connect via a USB cable or Bluetooth connection.</p><p>Though it’s pricier than a standard controller and isn’t compatible with gaming consoles, there’s no denying that Valve knocked it out of the park with the Steam Controller. As a dedicated Steam user, I might dabble with other controllers, but this will be my go-to from now on. Find out more in my full review.</p><div class="product"><a data-dimension112="6f8776aa-cda2-479c-b15a-aff75942fd4e" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension25="$99" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1232px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="p4kRCykqzQRFswEntyNcUE" name="Steam Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/p4kRCykqzQRFswEntyNcUE.jpg" mos="" align="middle" fullscreen="" width="1232" height="1232" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4.<br><a class="view-deal button" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow" data-dimension112="6f8776aa-cda2-479c-b15a-aff75942fd4e" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension25="$99">View Deal</a></p></div><h3 class="article-body__section" id="section-steam-controller-review-cheat-sheet"><span>Steam Controller review: Cheat sheet</span></h3><ul><li><strong>What is it?</strong> It’s an update of the original Steam Controller, with a more ergonomic and practical design.</li><li><strong>Who is it for?</strong> This controller is for dedicated Steam users who want a controller that works seamlessly with Valve’s ecosystem.</li><li><strong>What does it cost?</strong> The Steam Controller costs $99 / AU$149 and is available only on the <a href="https://store.steampowered.com/hardware/steamcontroller" target="_blank" rel="nofollow"><u>Steam Store</u></a>.</li><li><strong>What do we like?</strong> We like the comfortable design, easy pairing with SteamOS, smooth performance, and high customization.</li><li><strong>What don’t we like?</strong> We don’t like that it doesn’t support other PC launchers or consoles.</li></ul><h3 class="article-body__section" id="section-steam-controller-review-specs"><span>Steam Controller review: Specs</span></h3><div ><table><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>Steam Controller</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$99 / AU$149</p></td></tr><tr><td class="firstcol " ><p><strong>Compatibility</strong></p></td><td  ><p>SteamOS</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Steam Controller Puck (2.4GHz Wireless), Bluetooth, USB-C</p></td></tr><tr><td class="firstcol " ><p><strong>Thumbsticks</strong></p></td><td  ><p>TMR</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>4.37 x 6.26 x 2.24 inches / 111mm x 159mm x 57mm</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>0.64 pounds / 292 grams</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-steam-controller-review-the-ups"><span>Steam Controller review: The ups</span></h3><p>The Steam Controller is the perfect controller for Steam users thanks to its comfortable build, intuitive control layout, extensive customization options, and simple pairing and charging.</p><h2 id="ergonomic-design">Ergonomic design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pYbKmQsMkuRoQvKm5FAh8c" name="Steam Controller-6" alt="The Steam Controller flat on a desk." src="https://cdn.mos.cms.futurecdn.net/pYbKmQsMkuRoQvKm5FAh8c.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Design-wise, the Steam Controller is both traditional and unique. The top half has a layout similar to an Xbox controller, with a d-pad, face buttons, thumbsticks, and shoulder buttons. The bottom half is where things get interesting, as it’s rather large to accommodate the touchpads. This also gives your hands more room for a better grip.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DMZnrKJ8hvF2LA5XzD2cLW" name="Steam Controller-2" alt="The back of the Steam Controller." src="https://cdn.mos.cms.futurecdn.net/DMZnrKJ8hvF2LA5XzD2cLW.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The large back buttons are strategically placed right where your middle and ring fingers naturally rest. Since they’re pretty unintrusive, you can ignore them if you’re not a fan of back buttons. Like the back buttons, the shoulder buttons are also smartly placed where your fingers rest.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UwNaPz8frxECNkhbcBQRAc" name="Steam Controller-5" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/UwNaPz8frxECNkhbcBQRAc.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The controller has the same matte finish as the Steam Deck, which means it not only feels nice to hold, but it’s also very grippy.</p><h2 id="responsive-controls">Responsive controls</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HJ6ZRxVDUjBBGPfdRCPNrm" name="Steam Controller-12" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Steam Controller is not only fun to hold, but it’s also extremely responsive. Valve could have easily just used the Steam Deck’s components, but the company went a step further by including some features you’d only find on pricier pro controllers.</p><p>First up are the new TMR thumbsticks, which are designed to be even more responsive and less prone to stick drift than Hall-effect sensors. I’ll spare you the details on how these magnetic technologies differ from one another, but suffice it to say that the TMR sticks on the Steam Deck feel amazing and allowed me to make small and large movements seamlessly.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="t2uYK7KSJZephgu4LyShBk" name="Steam Controller-3" alt="The top of the Steam Controller" src="https://cdn.mos.cms.futurecdn.net/t2uYK7KSJZephgu4LyShBk.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Then we have the haptic touchpads beneath the thumbsticks. Every click and thumb movement makes them vibrate. Thanks to their large size, you can use them in place of thumbsticks, which isn’t just a gimmick, since it makes playing point-and-click games much more intuitive. The original Steam Controller had super huge touchpads instead of traditional thumbsticks, so I’m glad Valve shrunk them without sacrificing performance.</p><p>The other inputs are just as great to use. While I wish the ABXY face buttons were a tad clickier, they work as well as you’d expect. The left and right bumpers are also relatively quiet and have a satisfying travel distance. This also applies to the trigger buttons, though they don’t have trigger locks to cut down the actuation point.</p><h2 id="unique-pairing-and-charging">Unique pairing and charging</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2on6Q6pXBJRLv9qybxnqm9" name="Steam Controller-8" alt="Steam Controller puck" src="https://cdn.mos.cms.futurecdn.net/2on6Q6pXBJRLv9qybxnqm9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One of the coolest features is the included Steam Controller Puck. It's a 2.4GHz USB-C transmitter that can also charge the controller and pair it with the device you’re playing on.</p><p>Speaking of pairing, you can connect up to four Steam Controllers to the puck in case you want to play games with friends locally. It also magnetically attaches to the controller with a satisfying click.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Vnw4Z2Uhp2MxLz9byPeVi6" name="Steam Controller-9" alt="Steam Controller puck snapped on" src="https://cdn.mos.cms.futurecdn.net/Vnw4Z2Uhp2MxLz9byPeVi6.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You connect the puck to your PC using the included USB-C to USB-A cable, though you can theoretically use any cable with power delivery. I like that you can keep the controller connected, easily snap it off to play wirelessly, and snap it back on when you’re done.</p><p>Valve claims the controller can last over 35 hours on a single charge. I haven’t had the controller long enough to fully drain it, but it has already lasted significantly longer than the PS5 DualSense. Based on what other reviewers have said about battery life, it appears Valve’s claims aren’t just baseless boasting.</p><h2 id="highly-customizable">Highly customizable</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wXqarwHGksv9v9Rda4jNQG" name="Steam Controller-13" alt="Steam Controller customization" src="https://cdn.mos.cms.futurecdn.net/wXqarwHGksv9v9Rda4jNQG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Steam Controller offers a slew of customization options. For instance, you can program the dual touchpads to act as a mouse for shooters, a traditional D-Pad for 2D games, or even a scroll wheel for navigating menus. Other features also enable more fine-tuning for specific game genres, effectively giving you multiple controllers in a single device.</p><p>Naturally, you can remap all the buttons as you see fit. Beyond that, you can add visual overlays like Radial Menus to your screen to handle dozens of keyboard shortcuts with a quick thumb swipe. You can also make the haptic feedback provide clicks and notches to help guide your movements. These types of controls are perfect for games traditionally played with a mouse and keyboard.</p><p>There’s more I could detail, but let’s just say you could spend hours tinkering with all the customization options. And if you don’t, you can always download popular, pre-made configurations that players from the Steam community have created.</p><h3 class="article-body__section" id="section-steam-controller-review-the-downs"><span>Steam Controller review: The downs</span></h3><p>The Steam Controller is a brilliant peripheral for dedicated Steam users. However, it has one major flaw for those who play outside of Steam.</p><h2 id="for-steamos-only">For SteamOS only</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Kj6wiCa3UKHcrsq83PFtWN" name="Steam Controller-7" alt="Steam Controller up close" src="https://cdn.mos.cms.futurecdn.net/Kj6wiCa3UKHcrsq83PFtWN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Steam Controller works seamlessly with SteamOS. That’s certainly a strength, but it’s also its main weakness. If you hoped to easily use Valve’s controller on other PC game launchers like the Epic Games Store or the Xbox App for PC, you’re going to be out of luck. This also applies to gaming consoles.</p><p>If you’re like me and rarely leave Steam when PC gaming, then this likely won’t be an issue. And given how clever the PC gaming community is, I’m sure someone will find a workaround before I finish this sentence. Again, this won’t be the end of the world for most players given Steam’s ubiquity, but it’s worth keeping in mind.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-evvmme"></div>                            </div>                            <script src="https://kwizly.com/embed/evvmme.js" async></script><h3 class="article-body__section" id="section-steam-controller-review-verdict"><span>Steam Controller review: Verdict</span></h3><p>Some believe that $99 / AU$149 is too much for the Steam Controller, but I say the price is more than justified for dedicated Steam users. Sure, Valve’s peripheral costs $20 to $30 more than a standard console controller, but it packs pro controller-like features for $50-$100 less than you’d pay for those premium devices. In that way, you’re actually getting a fantastic deal.</p><p>Though it’s admittedly strange to have the Steam Controller without the platform it was designed for, I’m glad that Valve decided to launch this peripheral now so we can get acclimated to it before the Steam Machine’s arrival. Like I said before, switching to another PC controller won’t be easy, since this one gives me everything I need. If you live in the Steam ecosystem, I’m sure you’ll feel the same way.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Controller launch live — hands-on report, and latest stock updates from Valve ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/news/live/valve-stream-controller-launch-live</link>
                                                                            <description>
                            <![CDATA[ Valve's new Steam Controller launches today, and we've got the latest news, hands-on impressions, and the important buying information. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">fBCopZfBBhS4NYGgnqp2A</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Kj6wiCa3UKHcrsq83PFtWN-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 04 May 2026 12:34:00 +0000</pubDate>                                                                                                                                <updated>Tue, 05 May 2026 19:47:47 +0000</updated>
                                                                                                                                            <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                        <dc:contributor><![CDATA[ Tony Polanco ]]></dc:contributor>
                                            <dc:contributor><![CDATA[ Scott Younker ]]></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/Kj6wiCa3UKHcrsq83PFtWN-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Controller up close]]></media:description>                                                            <media:text><![CDATA[Steam Controller up close]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Controller up close]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Kj6wiCa3UKHcrsq83PFtWN-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Steam Controller launch week has arrived. Valve’s second stab at a dedicated PC gaming pad is <strong>now available</strong> on Steam. It already looks like a contender for our <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">best PC gaming controller</a> guide. However, it's proving popular and is currently <strong>out of stock </strong>after selling out in just 30 minutes.</p><p>As the name suggests, this PC controller is “built for steam” and is compatible not just with the <a href="https://www.tomsguide.com/us/best-gaming-pc,review-2219.html">best gaming PCs</a> but also with gaming laptops, the <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck OLED</a>, and, naturally, the upcoming <a href="">Steam Machine</a>. </p><p>It offers all the basic controller features, including magnetic thumbsticks, haptic motors for rumbles, and 35+ hours of battery life on a single charge. Plus, it also packs two trackpads and mappable back buttons. It’s not a cheap pad at $99, but if you’re a serious PC player, it looks essential.</p><p>Again, the controller is currently out of stock as of 5 a.m. ET on May 5. <a href="https://x.com/valvesoftware/status/2051695149026353424" target="_blank">Valve promises a stock update "soon,"</a> but we have no idea when that could be.</p><p>To that end, keep it locked to Tom's Guide for the latest restock updates. In the meantime, check out our full <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review">Steam Controller review</a> if you're still deciding if it's worth all the effort.</p><h3 class="article-body__section" id="section-steam-controller-quick-links"><span>Steam Controller - quick links</span></h3><ul><li><strong>Steam Controller: </strong><a href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><strong>$99 @ Steam</strong></a><strong> (check stock)</strong></li><li><strong>Steam Controller: </strong><a href="https://www.amazon.com/s?k=steam+controller" target="_blank" rel="nofollow"><strong>check stock @ Amazon</strong></a></li><li><strong>Steam Controller: </strong><a href="https://www.bestbuy.com/site/searchpage.jsp?id=pcat17071&st=steam%20controller" target="_blank" rel="nofollow"><strong>check stock @ Best Buy</strong></a></li></ul><h3 class="article-body__section" id="section-steam-controller-retailer-listings"><span>Steam Controller - retailer listings</span></h3><div class="product"><a data-dimension112="6d45f81e-accb-43f8-9763-f5e7a500b05d" data-action="Deal Block" data-label="The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life." data-dimension48="The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life." data-dimension25="$99" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1232px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="p4kRCykqzQRFswEntyNcUE" name="Steam Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/p4kRCykqzQRFswEntyNcUE.jpg" mos="" align="middle" fullscreen="" width="1232" height="1232" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life. <a class="view-deal button" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow" data-dimension112="6d45f81e-accb-43f8-9763-f5e7a500b05d" data-action="Deal Block" data-label="The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life." data-dimension48="The second-generation Steam Controller launches today (May 4). It's a next-generation pad designed to take full advantage of Valve's popular PC gaming platform. It includes magnetic thumbsticks, haptic motors for rumble, dual trackpads, four customisable back buttons, and 35+ of battery life." data-dimension25="$99">View Deal</a></p></div><h2 id="welcome-to-our-steam-controller-live-coverage">Welcome to our Steam Controller live coverage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pYbKmQsMkuRoQvKm5FAh8c" name="Steam Controller-6" alt="The Steam Controller flat on a desk." src="https://cdn.mos.cms.futurecdn.net/pYbKmQsMkuRoQvKm5FAh8c.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Hello! PC gamers rejoice, today is the day that Valve launches its new Steam Controller, a premium pad designed specifically (and exclusively) for PC gaming, and here at Tom's Guide we'll be guiding you through launch day. In this live blog you'll find the latest news, our hands-on impression and the important buying info.</p><h2 id="steam-controller-costs-how-much">Steam Controller costs how much?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HJ6ZRxVDUjBBGPfdRCPNrm" name="Steam Controller-12" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The biggest question you're probably asking about the Steam Controller is the price, and fortunately, Valve has confirmed this key detail ahead of the order floodgate opening in just a little over four hours time. The pad will cost <strong>$99</strong>, or for the folks in my native U.K., it'll run you <strong>£85</strong>. That makes it more expensive than a PS5 DualSense or Xbox Controller, but it is cheaper than either console's "Pro" pad.</p><h2 id="console-players-this-one-ain-t-for-you">Console players, this one ain't for you!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2629px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="jdwLjBSgdJsHB9pqpKrXWR" name="ps5 dualsense Geoff Keighley.jpg" alt="PS5 dualsense controller" src="https://cdn.mos.cms.futurecdn.net/jdwLjBSgdJsHB9pqpKrXWR.jpg" mos="" align="middle" fullscreen="" width="2629" height="1479" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide )</span></figcaption></figure><p>If you own a PS5 or Xbox Series X and you're eyeing up the Steam Controller, don't be fooled into picking one up. This is a dedicated PC gaming controller, and isn't compatible with Sony or Microsoft's gaming consoles. It's designed solely for use with Valve's Steam platform, and Steam-dedicated hardware (like the Steam Deck and the upcoming Steam Machine). Console gamers will need to stick with their DualSense or Xbox controller because the Steam Controller is for the PCMR only.</p><h2 id="steam-controller-is-just-hours-away">Steam Controller is just hours away! </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VA2D2h27873kpRELmPwZHS" name="Steam Controller-1-LIST" alt="The Steam Controller on a desk." src="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Consider this is your four hour warning! The Steam Controller will be available to purchase at 10 a.m. PT / 1 p.m. ET / 6 p.m. BST, as of the time of this post, that is just four hours away. So, if you're already sold, make sure you set a reminder, stock levels are unknown and you don't want to miss out. Of course, you can just stick with this live bog, and I'll be sure to alert you the moment the order button is live.</p><h2 id="here-s-our-steam-controller-unboxing">Here's our Steam Controller unboxing!</h2>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7634624250518785294" data-video-id="7634624250518785294" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ Pew Pew！ - Official Sound Studio" href="https://www.tiktok.com/music/Pew-Pew-6815535271791036418">♬ Pew Pew！ - Official Sound Studio</a></section>                    </blockquote></div>                <p>One of my favorite parts of getting new gaming hardware and accessories is the first unboxing experience, but if you don't mind having that moment spoiled ahead of time, check out our Steam Controller unboxing video linked above!</p><h2 id="we-ve-got-our-hands-on-a-steam-controller">We've got our hands on a Steam Controller</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HJ6ZRxVDUjBBGPfdRCPNrm" name="Steam Controller-12" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>My colleague Tony Polanco has <a href="https://www.tomsguide.com/computing/peripherals/i-just-spent-48-hours-with-the-steam-controller-heres-my-honest-verdict">spent the weekend with a Steam Controller</a>. I swear I'm not jealous (okay... I totally am)! His initial impressions are pretty darn positive, and he even declares that it "lives up to the hype." If you're on the fence about whether to add one to your cart later today, be sure to read his article right now.</p><h2 id="that-s-one-powerful-puck">That's one powerful puck!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2on6Q6pXBJRLv9qybxnqm9" name="Steam Controller-8" alt="Steam Controller puck" src="https://cdn.mos.cms.futurecdn.net/2on6Q6pXBJRLv9qybxnqm9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Steam Controller comes with an extra in the box, the snappily named, Steam Controller Puck. This little device is a wireless transmitter that serves two purposes. Firstly, it provided a fast/stable connection for your controller, allowing you to use it as a wired pad (if you don't want to use wireless Bluetooth, or USB). It also serves as a charging station, with your Steam Controller snapping onto the puck with a click.</p><h2 id="just-look-at-those-back-buttons">Just look at those back buttons!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DMZnrKJ8hvF2LA5XzD2cLW" name="Steam Controller-2" alt="The back of the Steam Controller." src="https://cdn.mos.cms.futurecdn.net/DMZnrKJ8hvF2LA5XzD2cLW.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One of the things that appeals to me most about the Steam Controller is in the in-built back buttons. Remember, typically on console, you need to spring for a "Pro" controller to get these, but on the Steam Controller you have four out of the box. These can be mapped as you wish, allowing you to pick which inputs they offer.</p><h2 id="one-hour-to-drop">One hour to drop</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Kj6wiCa3UKHcrsq83PFtWN" name="Steam Controller-7" alt="Steam Controller up close" src="https://cdn.mos.cms.futurecdn.net/Kj6wiCa3UKHcrsq83PFtWN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>We're just one hour away from launch.</p><p>While we wait, let us know what interests you about the Steam Controller?</p><h2 id="less-than-20-minutes-to-go">Less than 20 minutes to go!</h2><p>If you're planning to pick up a Steam Controller as soon as the order button goes live, now is the time to get in position. Get your tab open, and get ready. There's less than 20 minutes until the floodgates open and Valve lets people start purchasing.</p><h2 id="steam-controller-orders-are-live">Steam Controller orders are LIVE!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VA2D2h27873kpRELmPwZHS" name="Steam Controller-1-LIST" alt="The Steam Controller on a desk." src="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><ul><li><strong>Steam Controller: </strong><a href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><strong>$99 @ Steam</strong></a></li></ul><p>And just as the clock strikes 10 a.m. PT, the Steam Controller order button has turned blue, and you can now pick up yours. At present, Steam is the only place to purchase a Steam Controller, so if you want one ASAP, get your order in right now.</p><h2 id="steam-controller-stock-seems-to-be-holding-strong">Steam Controller stock seems to be holding strong</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wXqarwHGksv9v9Rda4jNQG" name="Steam Controller-13" alt="Steam Controller customization" src="https://cdn.mos.cms.futurecdn.net/wXqarwHGksv9v9Rda4jNQG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>10 minutes later, and the <strong>Steam Controller is still in stock</strong>. Steam seems to be handling the traffic influx well, I did have a momentary issue reloading the page, but it's otherwise been smooth sailing. I can still add the Steam Controller to my cart with minimal fuss, so if you're late on the scene, you haven't missed out yet!</p><h2 id="the-dreaded-out-of-stock-warning-has-appeared">The dreaded "Out of stock" warning has appeared</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NcVbKsrfkY4rawQRAzDuYV" name="Steam Controller-11" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/NcVbKsrfkY4rawQRAzDuYV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Uh oh! Just shy of 40 minutes after the Steam Machine order page went live, and we've got the three words nobody wants to hear: Out of stock. It looks like the interest in this new PC pad has been high, and Valve's supply has run low. I'm staying on the page to see if more stock will appear, fingers crossed for a restock! </p><h2 id="still-out-of-stock">Still out of stock...</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:941px;"><p class="vanilla-image-block" style="padding-top:45.16%;"><img id="zxZJxNDBTdYQyTqwBGuTUH" name="Steam Controller out of stock" alt="Steam Controller out of stock image" src="https://cdn.mos.cms.futurecdn.net/zxZJxNDBTdYQyTqwBGuTUH.jpg" mos="" align="middle" fullscreen="" width="941" height="425" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Hey, all! Tony Polanco here to take over the Steam Controller liveblog for the next few hours. Not only will I keep you updated on availability, but I'll also share some insights into the controller, since I wrote our <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review">Steam Controller review</a>.</p><p>Right now, the Steam Controller appears to be sold out, as you can see from the image above that I snapped. This is disappointing considering how long people have waited for this peripheral. It's also not surprising given the demand for it. Hopefully, Valve can get more stock as soon as possible.</p><h2 id="the-steam-controller-is-already-on-ebay">The Steam Controller is already on eBay</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:1905px;"><p class="vanilla-image-block" style="padding-top:46.51%;"><img id="Em3gfDEmuQa7ohCvDYDAD9" name="Steam Controller on eBay" alt="Steam Controller on eBay" src="https://cdn.mos.cms.futurecdn.net/Em3gfDEmuQa7ohCvDYDAD9.jpg" mos="" align="middle" fullscreen="" width="1905" height="886" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: eBay)</span></figcaption></figure><p>It shouldn't come as a surprise that people are already scalping the Steam Controller on eBay. As you can see above, users are selling the peripheral for $150+ above the original MSRP. There might be more exorbitant prices on eBay, but these are the ones I was able to find. Please wait for a restock and avoid paying these users your hard-earned cash.</p><h2 id="steam-controller-sold-out-in-just-30-minutes">Steam Controller sold out in just 30 minutes</h2><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">The Steam Controller sold out just 30 minutes after launch pic.twitter.com/HBhMB1ew8m<a href="https://twitter.com/cantworkitout/status/2051357272563925245">May 4, 2026</a></p></blockquote><div class="see-more__filter"></div></div><p>Word is spreading that the Steam Controller is now sold out. I just hope most of those orders came from folks who are actually going to use the controller and not just scalpers looking to take advantage of people's excitement for the peripheral.</p><h2 id="yes-it-s-still-out-of-stock">Yes, it's still out of stock</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:941px;"><p class="vanilla-image-block" style="padding-top:45.16%;"><img id="zxZJxNDBTdYQyTqwBGuTUH" name="Steam Controller out of stock" alt="Steam Controller out of stock image" src="https://cdn.mos.cms.futurecdn.net/zxZJxNDBTdYQyTqwBGuTUH.jpg" mos="" align="middle" fullscreen="" width="941" height="425" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>I realize these posts are getting repetitive, but as you might have guessed, the Steam Controller is still out of stock. It's hard to say whether Valve can restock today or if we'll have to wait a while for a refresh. Regardless, I'll keep an eye on the situation. Hopefully, it'll change for the better soon!</p><h2 id="one-of-the-coolest-features">One of the coolest features</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2on6Q6pXBJRLv9qybxnqm9" name="Steam Controller-8" alt="Steam Controller puck" src="https://cdn.mos.cms.futurecdn.net/2on6Q6pXBJRLv9qybxnqm9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Yes, the Steam Controller is still out of stock, but that doesn't mean we can't talk about some of its amazing features.</p><p>As I said in my review, one of the coolest features is the included Steam Controller Puck. It's a 2.4GHz USB-C transmitter that can also charge the controller and pair it with the device you’re playing on. It attaches magnetically to the controller with a satisfying click and can be paired with up to four other Steam Controllers.</p><p>You connect the puck to your PC using the included USB-C to USB-A cable, though you can theoretically use any cable with power delivery. I like that you can keep the controller connected, easily snap it off to play wirelessly, and snap it back on when you’re done.</p><p>The controller is rated for 35+ hours, and in all my time with it (nearly a week), it still hasn’t drained its battery. That's something the PS5's DualSense controller can't match, that's for sure.</p><h2 id="a-comfortable-controller">A comfortable controller</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HJ6ZRxVDUjBBGPfdRCPNrm" name="Steam Controller-12" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One of the main concerns folks had (including mine) about the Steam Controller was that it would be too big and heavy. Let me tell you, that couldn't be further from the truth!</p><p>Despite its appearance, the Steam Controller is only slightly longer and wider than a traditional Xbox controller. It's also lighter! I've used Valve's peripheral for almost a week, and it's become my favorite PC controller because it's so comfortable and intuitive. Don't let the pictures fool you. The Steam Controller feels great to hold.</p><h2 id="some-useful-reader-comments">Some useful reader comments</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NcVbKsrfkY4rawQRAzDuYV" name="Steam Controller-11" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/NcVbKsrfkY4rawQRAzDuYV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This is my last post for the day (don't worry, we're going to keep this live blog going), but I wanted to highlight two comments you might find useful.</p><p><strong>TheVaudevillian</strong> has been keeping an eye on things since sales went live. They kept getting a "failed to initialize" error when trying to check out, and it took about 5 minutes of repeated clicks to finally complete the order. This is something our own Darraugh Murphy did to get his Steam Controller.</p><p><strong>Jarred Hines</strong> also points out that stock has been sporadically coming back, saying it usually lasts less than a minute before going out of stock again. This is why we advise staying vigilant.</p><h2 id="what-valve-hardware-is-available">What Valve hardware is available?</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:1198px;"><p class="vanilla-image-block" style="padding-top:58.68%;"><img id="KWQjfzsxuJLpjgtiUgthYT" name="Screenshot 2026-05-04 141502" alt="Valve Steam Deck out of stock on 5-4-26" src="https://cdn.mos.cms.futurecdn.net/KWQjfzsxuJLpjgtiUgthYT.png" mos="" align="middle" fullscreen="" width="1198" height="703" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Hey, this is Scott taking over for Tony, and for my first of the day, I thought we could take a look at what is available. Turns out nothing.</p><p>Yes, the Steam Controller is still sold out, but if you wanted to get into the Valve ecosystem, let's see what else is available.</p><p>Obviously, the Steam Machine and Steam Frame have not yet been released.</p><p>Which just leaves the Steam Deck...which is out of stock. Currently, every variant from the 1TB OLED to the 256GB LCD is listed as unavailable. </p><h2 id="while-we-wait">While we wait</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="djtjcDyxp27vCNuxWeTJ8B" name="Steam Machine edit 2" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>With the Steam Controller immediately out of stock, I have a speculative leak that may be of interest. </p><p>Regular VR and Valve <a href="https://x.com/SadlyItsBradley/status/2051038702546174044" target="_blank">tipster Brad Lynch</a> has posted a couple of times regarding recent shipments Valve has received to its distribution warehouse. </p><p>The shipments are listed "Game Console." It's possible that these could be Steam Deck shipments or as Lynch hints at, the arrival of Steam Machines. </p><p>We can see that "Wireless PC Controllers" arrived on April 4, and started releasing now. So, I expect if its the Machine, we might see it drop in early June. If its Steam Decks, maybe those will be available sooner.</p><h2 id="calling-it-for-today">Calling it for today</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VA2D2h27873kpRELmPwZHS" name="Steam Controller-1-LIST" alt="The Steam Controller on a desk." src="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Steam Controller is still out of stock as of 4:30 pm Pacific. </p><p>But don't worry, we're keeping track and we'll be back to tomorrow to let you know when the controller is available again.</p><p>Keep us in your tabs.</p><h2 id="have-you-managed-to-order-a-steam-controller-yet">Have you managed to order a Steam Controller yet?</h2><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OzLJle"></div>                            </div>                            <script src="https://kwizly.com/embed/OzLJle.js" async></script><h2 id="tuesday-morning-stock-check">Tuesday morning stock check!</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:1506px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="pCdaysxcM5mpT5CdE2DmhV" name="Steam Controller" alt="A still image showing the Steam Controller" src="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV.jpg" mos="" align="middle" fullscreen="" width="1506" height="847" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>It's just ticked over 6:30 a.m. ET, and at present, I'm not seeing any sign of additional Steam Controller stock today. For now, that dreaded "Out of stock" message is sticking around. Some TG readers have reported seeing stock, but it reportedly only lasts for a few moments, so if you do happen to get lucky and get the chance to order, I advise checking out at speed. In the meantime, I'm still monitoring the page, and will update this live blog if the situation changes.</p><h2 id="unfortunately-nothing-new-to-report">Unfortunately, nothing new to report!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HJ6ZRxVDUjBBGPfdRCPNrm" name="Steam Controller-12" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><ul><li><strong>Steam Controller: </strong><a href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><strong>$99 @ Steam</strong></a> <strong>(check stock)</strong></li></ul><p>10:15 a.m. ET, and still no signs of a restock today. After selling out within 30 minutes of launch, there hasn't been a major restock of the Steam Controller, but I'm keeping my fingers crossed for Valve to find some additional supply soon. Till then we'll keep checking!</p><h2 id="official-word-from-valve">Official word from Valve</h2><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">Steam Controller ran out faster than we anticipated, and we hate that not everyone who wanted one was able to get it. We’re working on getting more in stock and will have an update on expected timeline soon.<a href="https://twitter.com/cantworkitout/status/2051695149026353424">May 5, 2026</a></p></blockquote><div class="see-more__filter"></div></div><p>Things have been quiet regarding restocks, but Valve took to X to make an official statement. Here is what the company had to say:<br><br>"Steam Controller ran out faster than we anticipated, and we hate that not everyone who wanted one was able to get it. We’re working on getting more in stock and will have an update on expected timeline soon."</p><p>Hopefully, that "soon" won't take too long!</p><h2 id="valve-recently-imported-50-tons-of-game-consoles">Valve recently imported 50 tons of "game consoles"</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="sJthZiHkM5CLN6Ur7BGtmE" name="SM_front_b" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/sJthZiHkM5CLN6Ur7BGtmE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>The Steam Controller is still out of stock, so we figured we'd update you on something potentially related, namely, the Steam Machine.</p><p>As <a href="https://www.theverge.com/news/923461/valve-steam-machine-frame-deck-import-records-may-2026" target="_blank">The Verge</a> reports, Valve has supposedly shipped over 45 tons of "game consoles" into the United States. This follows the company shipping about 90 tons of orders since February (via <a href="https://www.pcmag.com/news/steam-machine-incoming-valve-imports-thousands-of-game-consoles-into-the" target="_blank">PCMag</a>). While we don't know what these consoles are, they could very well be the Steam Machine.</p><p>Valve hasn't disclosed the official price of its console/PC hybrid, but if the consoles the company is reportedly shipping are indeed the Steam Machine, perhaps we'll get an answer soon. Since this isn't official confirmation from Valve, take this report with a grain of salt. For all we know, this could be a new shipment of Steam Decks... a handheld which has also been sold out for some time.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just spent 48 hours with the Steam Controller — here's my honest verdict ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/peripherals/i-just-spent-48-hours-with-the-steam-controller-heres-my-honest-verdict</link>
                                                                            <description>
                            <![CDATA[ I tested the Steam Controller for 48 hours to see if it lives up to the hype. Here's what I think of Valve's latest peripheral. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aQ5o8nDeK6y2tuGQHDNu3G</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 02 May 2026 07:19:41 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Computing Peripherals]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Controller]]></media:description>                                                            <media:text><![CDATA[Steam Controller]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Controller]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/HJ6ZRxVDUjBBGPfdRCPNrm-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/im-a-lifelong-gamer-and-i-cant-wait-to-try-the-steam-controller-3-reasons-why">Steam Controller</a> is the real deal. This is my conclusion after having used Valve’s new controller for over 48 hours. Not only is it the perfect controller for Steam users, but it’s also a smart redesign of the controversial original from 11 years ago. It’s a brilliant peripheral that only makes me yearn for the Steam Machine even more.</p><p>On top of a more traditional controller layout than its predecessor, the Steam Controller has unique features, such as large haptic touchpads, four back buttons, TMR thumbsticks, and a slew of software-specific customization options. The latter is particularly noteworthy, as you can fine-tune the controller for virtually any game genre. It also just feels good to hold thanks to its ergonomic, lightweight design.</p><p>I’ll have a full review of the Steam Controller for you soon. For now, here are my impressions after 48 hours with the peripheral.</p><div class="product"><a data-dimension112="c07e72b5-5e54-4e69-b1e6-3301cf179d25" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension25="$99" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1232px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="p4kRCykqzQRFswEntyNcUE" name="Steam Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/p4kRCykqzQRFswEntyNcUE.jpg" mos="" align="middle" fullscreen="" width="1232" height="1232" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4.<br><a class="view-deal button" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow" data-dimension112="c07e72b5-5e54-4e69-b1e6-3301cf179d25" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension25="$99">View Deal</a></p></div><h2 id="first-impressions">First impressions</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VA2D2h27873kpRELmPwZHS" name="Steam Controller-1-LIST" alt="The Steam Controller on a desk." src="https://cdn.mos.cms.futurecdn.net/VA2D2h27873kpRELmPwZHS.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The official press shots and even reviewers’ photos made the controller appear as big as an old Dreamcast controller, but in reality, it’s just slightly wider and longer than a modern Xbox controller. I do have large hands, so folks with smaller hands might feel differently, but this controller fits my grip nicely.</p><p>The controller has the same matte-like finish as the Steam Deck. Thanks to that, it's easy to maintain your grip, even if your hands get sweaty. The ABXY face buttons and shoulder buttons feel like a more rigid, durable version of their Steam Deck equivalents. In fact, you could almost consider this controller a Steam Deck without a screen since it feels so similar.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2on6Q6pXBJRLv9qybxnqm9" name="Steam Controller-8" alt="Steam Controller puck" src="https://cdn.mos.cms.futurecdn.net/2on6Q6pXBJRLv9qybxnqm9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Setting up the Steam Controller is extremely simple. All you have to do is connect the included receiver puck to your PC via the USB cable, then magnetically snap it to the controller to begin pairing. Snapping the puck on and pulling it off is immensely fun and reminds me of doing the same with MagSafe on MacBooks.</p><h2 id="the-gaming-experience">The gaming experience</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NcVbKsrfkY4rawQRAzDuYV" name="Steam Controller-11" alt="Steam Controller" src="https://cdn.mos.cms.futurecdn.net/NcVbKsrfkY4rawQRAzDuYV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You know a controller is great when it becomes a natural extension of your hands. That has largely been my experience with the Steam Controller, since it’s so intuitive to use. The TMR thumbsticks respond to even the smallest movements, while the buttons have a nice level of resistance when pressed. And as I said before, it feels awesome simply holding it.</p><p>When exploring the open-world setting of <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a>, I had no issues moving around and taking in the dystopian game’s sights. Whether I was walking down a neon-lit street or blasting cyborgs away with an assault rifle, everything felt just right. The triggers are excellent for shooting games and racers alike.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wXqarwHGksv9v9Rda4jNQG" name="Steam Controller-13" alt="Steam Controller customization" src="https://cdn.mos.cms.futurecdn.net/wXqarwHGksv9v9Rda4jNQG.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>There are a ton of customization options within SteamOS’ Steam Input settings menu. Not only can you remap all the buttons, but you can even program the touchpads to act like a mouse or even a D-Pad. I haven’t toyed around with all the settings, but trust me, you could spend hours messing around with them. This high level of customization lets you tailor controls for specific games and genres.</p><p>I don’t play genres like RTS or MMOs that would make greater use of touchpads, but I do enjoy their haptic feedback when I scroll through menus. This isn’t a game-changing feature, but little touches like this make the experience more enjoyable and immersive.</p><p>Except for fighting games, where I prefer using a <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-swapped-my-controller-for-an-arcade-stick-and-fighting-games-will-never-be-the-same">dedicated fight stick</a>, I don’t see myself using another controller for PC gaming since it works so well for the main genres I play.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-evvmme"></div>                            </div>                            <script src="https://kwizly.com/embed/evvmme.js" async></script><h2 id="outlook">Outlook</h2><p>My full review will be posted soon, but suffice it to say that the Steam Controller more than lives up to the hype. It’s a brilliantly designed peripheral that feels like a natural extension of the Steam ecosystem. While it’s not compatible with other PC game launchers, Steam users will be more than happy with this product.</p><p>The Steam Controller is already great on its own, but it’s a nice appetizer for the full Steam Machine experience. If that platform can deliver the same smooth and intuitive experience, we’re in for something special. But for now, we can enjoy the Steam Controller for what it delivers—and what it delivers is pretty darn phenomenal.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review-roundup">Steam Controller reviews are in: 'I can’t imagine playing my PC games with anything else'</a></li><li><a href="https://www.tomsguide.com/computing/monitors/lg-ultragear-27gx790b-b-review">I just tested the world’s fastest OLED gaming monitor — and its refresh rates are insane</a></li><li><a href="https://www.tomsguide.com/computing/gaming-laptops/nvidia-rtx-5070-laptop-gpu-officially-has-12gb-of-vram-and-its-about-time">Nvidia RTX 5070 laptop GPU gets 12GB VRAM — here’s why it's a game-changer</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve is 'hard at work' on Steam Deck 2, but Steam Machine and Steam Frame are held hostage by AI gold rush ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/handheld-gaming/valve-is-hard-at-work-on-steam-deck-2-but-steam-machine-and-steam-frame-are-held-hostage-by-ai-gold-rush</link>
                                                                            <description>
                            <![CDATA[ Valve is 'hard at work' on the Steam Deck 2, but the Steam Machine and Steam Frame face a major roadblock. Here are my launch predictions, the 2026 hardware roadmap and how the global RAM crisis is shifting Valve's strategy. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2xyTpn9e7hfsDp6z3WgknR</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ePtQiRAw8M9V2QGMEyEFTG-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 28 Apr 2026 11:11:30 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&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/ePtQiRAw8M9V2QGMEyEFTG-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Deck OLED]]></media:description>                                                            <media:text><![CDATA[Steam Deck OLED]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Deck OLED]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ePtQiRAw8M9V2QGMEyEFTG-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review-roundup">Steam Controller</a> is here, but the <a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-delayed-as-valve-will-revisit-the-cost-because-of-the-ram-price-crisis">Steam Machine and Steam Frame have been delayed</a> due to the ongoing RAM price crisis. However, Valve Programmer Pierre-Loup Griffais spoke to <a href="https://www.ign.com/articles/the-steam-controller-interview" target="_blank">IGN</a> and confirmed that while there isn’t an exact launch timeline, “things are going well” and we can expect news “soon.”</p><p>But his comments looked further into the future too, as he confirmed that the company is “hard at work” on <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-2-rumored-to-be-in-the-works-and-it-may-arrive-with-a-massive-amd-apu-upgrade">Steam Deck 2</a> — echoing a lot of what <a href="https://www.tomsguide.com/gaming/handheld-gaming/we-may-never-get-a-steam-deck-2-and-im-ok-with-that-heres-why">Griffais told me</a> in terms of wanting to see a “worthwhile performance upgrade to make sense.”</p><h2 id="ram-is-the-pain-point">RAM is the pain point</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="6xBrL6Zv4c8cVa3fWMuZtQ" name="image (1)" alt="Valve Steam Machine, Steam Frame, and Steam Controller devices" src="https://cdn.mos.cms.futurecdn.net/6xBrL6Zv4c8cVa3fWMuZtQ.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: Valve)</span></figcaption></figure><p>It’s the most obvious answer, right? And Valve confirmed as much in its <a href="https://store.steampowered.com/news/group/45479024/view/625565405086220583" target="_blank">blog </a><a href="https://store.steampowered.com/news/group/45479024/view/625565405086220583" target="_blank">post </a>about having to “revisit” when it will ship and how much it will cost. And Valve hardware engineer Steve Cardinali said as much in his time <a href="https://www.polygon.com/steam-controller-steam-machine-release-schedule-why/" target="_blank">talking to Polygon</a> — the hardware’s not the problem, but the RAM inside it is.</p><p>“This doesn't have RAM in it, and it's not as complicated to start getting out the door for us,” Cardinali said. “We're ready for it. We wanted to build up quantity so that we could try to address everybody who wants one at launch, but it's possible that the demand for it far exceeds our expectations.”</p><p>It’s another of the many memory-related struggles the consumer tech industry has faced ever since the massive AI data center buildout spiked the cost, including the <a href="https://www.tomsguide.com/gaming/playstation/major-sony-ps5-price-hike-just-hit-all-models-heres-what-youll-pay-now">PS5 price hike recently</a>.</p><p>However, there are some reasons to be <a href="https://www.tomsguide.com/computing/hardware/from-allbirds-lunacy-to-mediateks-cautious-optimism-why-im-finally-hopeful-about-ridiculous-ram-prices">optimistic about the near future</a> (tariff refunds, Chinese RAM foundries picking up the consumer slack, etc), and all eyes are on Microsoft, Google and Amazon’s investors’ calls tomorrow to see whether there are any signs of a bubble pop.</p><p>We’ve just got to wait and see.</p><h2 id="predicting-the-launches">Predicting the launches</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="RzusMSoFqREVkoErH63pMN" name="SM_ledStrip" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>So while Valve has (understandably) not confirmed a timeline given everything that’s happening, it's time for me to put on my tin foil hat and lay out some predictions of my own. And it made me think about MediaTek’s comments about having “cautious optimism” about a “slowdown” in RAM price rises.</p><p>In case you missed it, MediaTek’s Head of Global Sales Eric Fischer talked about how the huge initial <a href="https://www.tomsguide.com/computing/pc-sales-are-up-but-dont-be-fooled-idc-report-warns-ramageddon-is-just-getting-started">demand for memory-heavy products early this year</a> is probably an illusion of people panic buying before it gets worse. He said that we’re on our way to a moment where “the consumer’s ability to spend” breaks, and the industry will adjust in the second half of the year.</p><p>With that in mind, allow me to paint a timeline for you:</p><ul><li><strong>Steam Machine and Steam Frame: </strong>It’s clear Valve is working hard behind the scenes to figure out RAM supply and the pricing strategy for this. I know the company said to expect news “soon,” but as for a launch, I’d look more to maybe <strong>Summer/early Fall 2026</strong>. The company’s waiting this spike out, just like we are.</li><li><strong>Steam Deck 2: </strong>For the worthwhile gains Valve is looking for in silicon performance and power efficiency, we need to look at this as more of a console generational leap more than the iterative curve of annual computing chip versions. I’m expecting an <strong>early 2028 launch.</strong></li></ul><p>But what do you think? I’ll throw up a poll to get your thoughts on when you think these devices will land!</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBxmoO"></div>                            </div>                            <script src="https://kwizly.com/embed/eBxmoO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/gaming-peripherals/im-a-lifelong-gamer-and-i-cant-wait-to-try-the-steam-controller-3-reasons-why">I'm a lifelong gamer, and I can't wait to try the Steam Controller — 3 reasons why</a></li><li><a href="https://www.tomsguide.com/computing/hardware/the-squeeze-is-real-i-spoke-to-ram-crisis-oracle-carmen-li-about-when-this-nightmare-ends-heres-what-she-told-me">‘The squeeze is real’: I spoke to RAM crisis oracle, Carmen Li, about when this nightmare ends — here’s what she told me</a></li><li><a href="https://www.tomsguide.com/computing/keyboards/logitech-g-g512-x-review">I became a keyboard tinkerer with the Logitech G G512 X, and it seriously upgraded my gaming performance</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I'm a lifelong gamer, and I can't wait to try the Steam Controller — 3 reasons why ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/gaming-peripherals/im-a-lifelong-gamer-and-i-cant-wait-to-try-the-steam-controller-3-reasons-why</link>
                                                                            <description>
                            <![CDATA[ The Steam Controller arrives on May 4, and I can't wait to try it. Here are the top 3 reasons why this could be the best PC game controller yet. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pbL7GG7gvAyLNzPWKPcT2B</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 28 Apr 2026 05:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A still image showing the Steam Controller]]></media:description>                                                            <media:text><![CDATA[A still image showing the Steam Controller]]></media:text>
                                <media:title type="plain"><![CDATA[A still image showing the Steam Controller]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Steam Controller is almost here, and I couldn’t be more excited. The first wave of <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review-roundup">Steam Controller reviews</a> began circulating today (May 27), and they’re almost universally positive. I was already on board when Valve announced the controller and the <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a>, but after reading some reviews, I’m even more eager to get hands-on with this peripheral.</p><p>This isn’t the same <a href="https://www.tomsguide.com/us/valve-steam-controller,review-3263.html">Steam Controller</a> from 11 years ago. It features a brand-new, more ergonomic design. Standout features include TMR thumbsticks, large touchpads, and a unique USB dongle that also serves as a charger. Though the controller looks large and unwieldy, reviewers say it feels extremely comfortable.</p><p>I’ll have a full review once I’ve had some hands-on time with the Steam Controller. For now, here are the three main reasons I’m excited to try it.</p><div class="product"><a data-dimension112="bb94633b-4a78-4e73-8b3f-34095a4597e7" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension25="$99" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1232px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="p4kRCykqzQRFswEntyNcUE" name="Steam Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/p4kRCykqzQRFswEntyNcUE.jpg" mos="" align="middle" fullscreen="" width="1232" height="1232" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4.<br><a class="view-deal button" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow" data-dimension112="bb94633b-4a78-4e73-8b3f-34095a4597e7" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension25="$99">View Deal</a></p></div><h2 id="tmr-thumbsticks">TMR thumbsticks</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/a55UIaiTE-A" allowfullscreen></iframe></div></div><p>Hall Effect magnetic sticks and buttons have been all the rage for gaming controllers in recent years, but Valve has taken the next step by using more advanced TMR technology. In short, these sticks should be even less prone to stick drift because they use magnetic sensing with no physical contact, unlike traditional analog sticks. This should, in theory, keep the sticks performing like new for many years.</p><p>The <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-just-tested-the-new-scuf-valor-pro-controller-and-its-a-must-have-for-pc-gamers">Scuf Valor Pro</a> controller I reviewed also features TMR sticks, which I find extremely smooth and responsive. Given that the Steam Controller uses the same technology, I’m expecting a similar experience. Thankfully, virtually all reviews I’ve seen say the sticks are great to use and extremely responsive.</p><p>I’ll need to test the controller’s thumbsticks for myself to see if they’re up to snuff, but I have faith they’ll be as great as I imagine. This alone could make the relatively steep $99 asking price more than worth it—but there are other features I’m excited about as well.</p><h2 id="customization">Customization</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="6xBrL6Zv4c8cVa3fWMuZtQ" name="image (1)" alt="Valve Steam Machine, Steam Frame, and Steam Controller devices" src="https://cdn.mos.cms.futurecdn.net/6xBrL6Zv4c8cVa3fWMuZtQ.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: Valve)</span></figcaption></figure><p>Since it’s designed for PC gaming, the Steam Controller is highly customizable and reprogrammable, so you can adjust it for whatever game you’re playing.</p><p>You can remap every digital control to virtually any PC input, such as keystrokes, gamepad buttons, mouse clicks, or more. Reviewers say that sensitivities for analog sticks, triggers, touchpads, and gyro are also adjustable. For instance, triggers support separate actions for half-pull and full-pull, allowing for more in-game actions.</p><p>Some reviewers say that programming the controller can be daunting because there are so many customization options. Given the numerous inputs, I’m inclined to believe this.</p><p>I’m eager to dive into the Steam software configurator to explore all the customization options. If said options are as robust as reviewers claim, it’s understandable why so many of them now consider this the perfect PC gaming controller.</p><h2 id="battery-life-and-charging">Battery life and charging</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="p7bernaLEm4CdAJq4wuD8f" name="SC_front_b" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/p7bernaLEm4CdAJq4wuD8f.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve claims the Steam Controller can last 35+ hours on a single charge. Reviewers who tested the controller said this claim isn’t just boasting, as none of them had the controller run out of power even during extended sessions. Considering how the PS5 DualSense lasts eight hours if you’re lucky, over 35 hours of endurance would be incredible.</p><p>Charging the controller is interesting because it’s done via the included “Steam Controller Puck.” This is a small 2.4GHz USB dongle that doubles as a magnetic charging dock and snaps onto pins on the back of the controller. The puck connects to your PC or Steam Deck via a 5-foot USB cable. Before you ask, the cable connects to the puck via a USB-C port, in case you want to use a different length cable. Additionally, there’s a standard USB-C port on top of the controller if you want to charge it that way.</p><p>The only concern I have is that the puck reportedly connects only one way and can be finicky on some desks. Bluetooth is supported as a backup, but it’s not recommended for the best performance, as <a href="https://gizmodo.com/steam-controller-review-trackpads-change-everything-for-pc-gaming-2000751120" target="_blank">Gizmodo</a> notes. This, like everything else, is something I’ll need to experience firsthand to see how it works.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-evvmme"></div>                            </div>                            <script src="https://kwizly.com/embed/evvmme.js" async></script><h2 id="outlook-2">Outlook</h2><p>With most reviewers saying the Steam Controller is now their preferred way to play PC games, I’m very stoked to try it for myself. The original Steam Controller was unconventional and polarizing, so it’s good to see the company release a controller that has received so much universal praise.</p><p>Stay tuned for more updates on the Steam Controller, and let us know in the comments if this is a peripheral you’re interested in.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/steam-machine-pricing-may-have-just-leaked-by-retailer-and-its-not-cheap">Steam Machine pricing may have just leaked by retailer</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-delayed-as-valve-will-revisit-the-cost-because-of-the-ram-price-crisis">Steam Machine delayed</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">I might ditch my gaming PC for the Steam Machine</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Controller reviews are in: 'I can’t imagine playing my PC games with anything else' ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-review-roundup</link>
                                                                            <description>
                            <![CDATA[ The first reviews of the Steam Controller have gone live. Here's what tech reviewers have to say about Valve's latest peripheral. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">cWsu7h8zSyN6YEcgvAZodT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/p7bernaLEm4CdAJq4wuD8f-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 27 Apr 2026 17:47:40 +0000</pubDate>                                                                                                                                <updated>Mon, 27 Apr 2026 18:09:59 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/p7bernaLEm4CdAJq4wuD8f-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/p7bernaLEm4CdAJq4wuD8f-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The first reviews of the Steam Controller have gone live. This peripheral is effectively a redesign of the original Steam Controller from over a decade ago, and is meant to complement the upcoming Steam Machine. It’s also compatible with PC, and of course, Valve’s own Steam Deck.</p><p>As we reported over the weekend, an industry insider named <a href="https://x.com/SadlyItsBradley/status/2046363689721245922" target="_blank"><u>Brad Lynch on X</u></a> found evidence of a "<a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-launch-imminent-as-valve-uploads-secret-unboxing-heres-what-you-need-to-know"><u>Steam Controller Unboxing</u></a>" video that was uploaded to SteamDB. Soon after, reports of a potential Steam Controller price leak circulated online, suggesting the <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-price-leaked-online-and-id-start-saving-now"><u>peripheral would cost $99</u></a>. Given how reviews have gone live, it seems some folks spilled the beans prematurely.</p><p>The Steam Controller features TMR thumbsticks, rumble support, capacitive touch, and gyro controls. Like most controllers, it has four face buttons, four shoulder buttons, and the aforementioned pair of thumbsticks. Unique inputs include the large touchpads beneath the thumbsticks and four back buttons.</p><p>We’ll have our review of the Steam Controller soon. For now, here’s what tech reviewers are saying about Valve’s new peripheral.</p><div class="product"><a data-dimension112="821eeade-f5f9-4b44-b5e7-003106aa70fa" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension25="$99" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1232px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="p4kRCykqzQRFswEntyNcUE" name="Steam Controller" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/p4kRCykqzQRFswEntyNcUE.jpg" mos="" align="middle" fullscreen="" width="1232" height="1232" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4.<br><a class="view-deal button" href="https://store.steampowered.com/sale/steamcontroller" target="_blank" rel="nofollow" data-dimension112="821eeade-f5f9-4b44-b5e7-003106aa70fa" data-action="Deal Block" data-label="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension48="The new Steam Controller could be one of the best PC game controllers thanks to its Magnetic thumbsticks, a full set of inputs for your Steam games, haptic motors, and claimed 35+ hours of battery life. It's not on sale yet, but the product page says it will be available on May 4." data-dimension25="$99">View Deal</a></p></div><h2 id="what-are-reviewers-saying-about-the-steam-controller">What are reviewers saying about the Steam Controller?</h2><p>Steam Controller reviews are largely positive, with many sites and YouTube channels saying this is now their favorite PC game controller. That’s high praise, especially considering how controversial the original Steam Controller was.</p><p><a href="https://www.techradar.com/computing/peripherals-accessories/valve-steam-controller-2026" target="_blank">TechRadar’</a>s Matt Hanson says the Steam Controller is “a massive improvement over the flawed original, offering some great innovations while also coming with a more conventional — and user-friendly —design.”</p><p>This is a sentiment that <a href="https://www.pcmag.com/reviews/valve-steam-controller-2026?test_uuid=06f2t2mKxAWPbc1xmAn5J4t&test_variant=B" target="_blank">PCMag</a>’s Will Greenwald shares, saying that the controller is “fundamentally better in every way thanks to a deep feature set, terrific feel, and customizable controls like those on the Steam Deck.”</p><p>“I’ve spent so much time with Valve’s second attempt at its Steam Controller that I can’t imagine playing my PC games with anything else,” says <a href="https://www.polygon.com/steam-controller-2026-review/" target="_blank">Polygon</a>’s Giovanni Colantonio. Similarly, <a href="https://www.youtube.com/watch?v=I2RVnFP5rBI" target="_blank">IGN</a>’s Bo Moore said it was his “favorite controller for PC gaming.”</p><div><blockquote><p>I’ve spent so much time with Valve’s second attempt at its Steam Controller that I can’t imagine playing my PC games with anything else.</p><p>Giovanni Colantonio</p></blockquote></div><p>So what do reviewers love about the Steam Controller? Matt Hanson says the more conventional design is a major factor. “This makes it much easier to get to grips with if you’re used to other gamepads.” Gizmodo’s Kyle Barr echoes this sentiment, saying that the “new Steam Controller feels far more natural for anybody used to a PS5 DualSense-like design.”</p><p>The new thumbsticks also won over reviewers, thanks to TMR technology for improved performance. Not only does this lead to quicker actions, but it also allows them to glide smoothly.</p><p>“The new thumbsticks are no slouches, either, thanks to tunneling magneto-resistance (TMR) technology, which is the tech of choice for most premium gamepads. This uses small magnets to measure even the smallest of movements, which improves precision, and excels in genres such as shooters and racing games, where even the smallest of movements need to be accurately recorded and reflected in-game,” says Matt Hanson.</p><div><blockquote><p>The Steam Controller’s joysticks have the right amount of resistance to add a tactile feel to your movements.</p><p>Kyle Barr</p></blockquote></div><p>Kyle Barr says that the Steam Controller’s “joysticks have the right amount of resistance to add a tactile feel to your movements.”</p><p>One sticking point is the controller’s price of $99. While that’s certainly less than many “pro” controllers like the PS5 DualSense Edge, it’s still $20-$30 more expensive than standard PS5 or Xbox controllers. However, given its features, most reviewers say the price is justified. “But considering everything it does,” says Will Greenwald, “the Steam Controller is a worthwhile purchase if you mostly play games on Steam.”</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-evvmme"></div>                            </div>                            <script src="https://kwizly.com/embed/evvmme.js" async></script><p>Right now, it seems like the Steam Controller is a hit among reviewers, and I’m certainly eager to go hands-on with it myself. I’m curious how the gaming community will view Valve’s latest peripherals. It won’t be long to get that answer, as the Steam Controller is set to launch on May 4.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine console challenges PS5 and Xbox</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">I might ditch my gaming PC for the Steam Machine</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-delayed-as-valve-will-revisit-the-cost-because-of-the-ram-price-crisis">Steam Machine delayed</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Controller price leaked — and I'd start saving now ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-price-leaked-online-and-id-start-saving-now</link>
                                                                            <description>
                            <![CDATA[ A YouTuber may have just leaked the price of Valve's new Steam Controller, and if the price is correct, you should start saving for the new peripheral now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Pq2MuRwL9MDp6DsujpLGx9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 25 Apr 2026 18:50:04 +0000</pubDate>                                                                                                                                <updated>Sat, 25 Apr 2026 19:08:32 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Martin Shore ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/a5UrfxWQGQmYiGZ9sXbKja.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A still image showing the Steam Controller]]></media:description>                                                            <media:text><![CDATA[A still image showing the Steam Controller]]></media:text>
                                <media:title type="plain"><![CDATA[A still image showing the Steam Controller]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We're still waiting for a lot of info about the Steam Controller, but we may have just learned how much Valve's new peripheral could cost — and based on this potential price leak, if you're planning to pick one up, I'd start saving now.  </p><p>Today (April 25), reports of a potential Steam Controller price leak circulated online, and if<strong> </strong>they're correct, it sounds like Valve's new hardware won't be cheap. If the leak is true, <strong>Valve's new</strong> <strong>Steam Controller could set you back $99 at launch. </strong></p><p>I say "could" because this potential Steam Controller price reveal comes from a relatively unknown source. It was reported in a video<a href="https://www.tomsguide.com/tag/youtube"> </a>review of the gaming peripheral that briefly appeared online (as reported by <a href="https://www.vice.com/en/article/steam-controller-price-leaked-by-early-review-and-its-expensive/" target="_blank">Vice</a>). </p><p>Users on the Steam Controller <a href="https://www.reddit.com/r/SteamController/comments/1sulvfn/youtuber_slipped_embargo/" target="_blank" rel="nofollow">Reddit</a> have preserved a screenshot and <a href="https://streamable.com/lj7ut3" target="_blank">reuploaded the full video online</a>, and some have shared their concerns about the price (though users remain divided on whether the price leak is even real or not). </p><p>If the price they quote is correct, that would mean a Steam Controller will cost the same as a <a href="https://www.nintendo.com/us/store/products/nintendo-switch-2-joy-con-2-l-r-light-blue-light-red-123677/" target="_blank" rel="nofollow">new set of Nintendo Switch 2 Joy-Cons,</a> and it'll be $25 more expensive than the <a href="https://direct.playstation.com/en-us/buy-accessories/dualsense-wireless-controller" target="_blank" rel="nofollow">PlayStation 5 DualSense controller.</a></p><h2 id="steam-controller-launch-seems-imminent">Steam Controller launch seems imminent</h2><p>Whether this Steam Controller leak is true or not, it nevertheless seems like we're due to get more info about Valve's new pad soon. Just yesterday (April 24), we learned that the company had <a href="https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-launch-imminent-as-valve-uploads-secret-unboxing-heres-what-you-need-to-know">uploaded a "secret" Steam Controller unboxing video online.</a></p><p>That news came from industry insider Brad Lynch. <a href="https://x.com/SadlyItsBradley/status/2046363689721245922" target="_blank">On X</a>,  Lynch shared that he'd found evidence that an unwatchable "Steam Controller Unboxing" video had been uploaded on SteamDB. </p><p>The video is set to private, but it nevertheless serves as an indicator that Valve is poised to reveal more about the Steam Controller soon. </p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">Valve has “secretly” uploaded a Steam Controller unboxing video (unwatchable right now)I think we will see its launch very soon.. pic.twitter.com/SCjl7p3Rqv<a href="https://twitter.com/cantworkitout/status/2046363689721245922">April 20, 2026</a></p></blockquote><div class="see-more__filter"></div></div><p>Given Lynch shared his findings not long after <a href="https://komodostation.com/?lang=en" target="_blank">Komodo Station</a> — the Japanese storefront for Steam hardware — uploaded assets (which <a href="https://web.archive.org/web/20260424055338/https://komodostation.com/product/steam-controller_jpy/" target="_blank">you can still view on the Internet Archive</a>), all signs seem to point to an impending Steam Controller release. </p><p>And seeing as we still don't have a confirmed price point, precise specs <em>or </em>a Steam Controller release date, there's still more we need to learn about the new device. We'll just have to keep an eye on the <a href="https://store.steampowered.com/news/group/45479024" target="_blank" rel="nofollow">Steam Hardware News Hub</a> in the hope that Valve shares more details soon. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwKvAW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwKvAW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/xbox/xbox-game-pass-and-discord-tier-leaks">Xbox Game Pass and Discord tier leaks</a></li><li><a href="https://www.tomsguide.com/gaming/ps5-vs-ps5-pro-which-console-should-you-buy-in-2026">PS5 vs. PS5 Pro: Which console should you buy in 2026?</a></li><li><a href="https://www.tomsguide.com/gaming/saros-review">Saros is everything I wanted from a Returnal sequel</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Controller launch imminent as Valve uploads 'secret' unboxing — here's what you need to know ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/gaming-peripherals/steam-controller-launch-imminent-as-valve-uploads-secret-unboxing-heres-what-you-need-to-know</link>
                                                                            <description>
                            <![CDATA[ Valve has uploaded an unwatchable unboxing video of the new Steam Controller to its platform, suggesting a launch is imminent. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">NyWHzrnyaWhnzkGEugFfKM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 24 Apr 2026 10:50:47 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming Peripherals]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ jeff.parsons@futurenet.com (Jeff Parsons) ]]></author>                    <dc:creator><![CDATA[ Jeff Parsons ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7z3UTGGrmSokMKxTWHmhjX.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jeff is U.K. Editor-in-Chief for Tom’s Guide looking after the day-to-day output of the site’s British contingent. &lt;/p&gt;&lt;p&gt;Rising early and heading straight for the coffee machine, Jeff loves nothing more than dialling into the zeitgeist of the day’s tech news. A journalist for over a decade, he&#039;s travelled around the world testing and reviewing any gadget he can get his hands on.&lt;/p&gt;&lt;p&gt;Before joining the team at Tom’s Guide, Jeff covered technology and science for two of the U.K.’s biggest national news sites: Metro.co.uk and the Daily Mirror. Memorable moments include getting lost in Vienna in an electric Audi, touring Lockheed Martin’s mile-long jet factory in Fort Worth and filming a Netflix documentary about Elon Musk in West London.&lt;/p&gt;&lt;p&gt;When not plugged into the current news agenda, editing or commissioning a series of articles or debating the merits of Apple vs Android, Jeff can usually be found out for a run trying to shave precious seconds off his PB. Or lifting weights in a vain attempt to offset the ageing process.&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/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A still image showing the Steam Controller]]></media:description>                                                            <media:text><![CDATA[A still image showing the Steam Controller]]></media:text>
                                <media:title type="plain"><![CDATA[A still image showing the Steam Controller]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pCdaysxcM5mpT5CdE2DmhV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve's Steam Machine may be <a href="https://www.tomsguide.com/gaming/valve-hope-to-ship-steam-machines-in-2026-but-memory-shortages-could-cause-delays">taking its sweet time to arrive</a>, but at least the company could be about to show off its new controller. According to a leak posted by industry insider <a href="https://x.com/SadlyItsBradley/status/2046363689721245922" target="_blank">Brad Lynch on X</a> earlier this week, the Steam Controller could arrive any day now.</p><p>Lynch found evidence of a "Steam Controller Unboxing" video that was uploaded to SteamDB. It's set to private and can't be watched, but it serves as a good indication that the updated version of the controller is ready for primetime.</p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">Valve has “secretly” uploaded a Steam Controller unboxing video (unwatchable right now)I think we will see its launch very soon.. pic.twitter.com/SCjl7p3Rqv<a href="https://twitter.com/cantworkitout/status/2046363689721245922">April 20, 2026</a></p></blockquote><div class="see-more__filter"></div></div><p>Separately, Lynch says he's seen shipping documents that suggest Valve has received its first large batch of the new controllers.</p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">Looks like Valve received their first large quantity imports of “Wireless PC Controller” last week 🫪(At least in the USA)<a href="https://twitter.com/cantworkitout/status/2043601850306609268">April 13, 2026</a></p></blockquote><div class="see-more__filter"></div></div><p>The Steam Controller was <a href="https://www.tomsguide.com/news/live/valve-steam-machine-2025">announced alongside the Steam Machine in 2025</a>, but details have been very thin on the ground since then. While we expect it to be packaged with Steam Machine when it (eventually) launches, the controller is also going to be sold separately. </p><p>There's no reason why Valve has to release them at the same time; the company could easily decide to launch the peripheral first.</p><h2 id="assets-appear-on-steam-s-japan-storefront">Assets appear on Steam's Japan storefront</h2><p>Adding fuel to this fire came when Komodo Station — the Japanese storefront for Steam hardware — uploaded all the assets for the controller this week, before hastily pulling them down again. A <a href="https://web.archive.org/web/20260424055338/https://komodostation.com/product/steam-controller_jpy/" target="_blank">trip to the Internet Archive will still let you see them</a>, and since Komodo Station has a track record of following Valve's global sales schedule, the signs are good.</p><p>While we know Valve is also prepping the Steam Machine and <a href="https://www.tomsguide.com/computing/vr-ar/steam-frame-will-take-over-vr-in-2026-3-key-features-i-cant-wait-for">the Steam Frame</a> for launch, neither of those assets appeared on the storefront.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="djtjcDyxp27vCNuxWeTJ8B" name="Steam Machine edit 2" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">Steam Machine: still delayed </span><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Of course, anyone that's following the Steam situation as it unfolds will know about the crushing impact of the current RAM crisis. Valve has already <a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-delayed-as-valve-will-revisit-the-cost-because-of-the-ram-price-crisis">delayed the Steam Machine to "revisit" the cost of the device</a>, but all these signs point to a new controller being the first product out the door.</p><p>There's still so much we don't know about the peripheral: pricing, release date, specs and feature updates — but hopefully it won't be a long wait before we find out.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-WwKvAW"></div>                            </div>                            <script src="https://kwizly.com/embed/WwKvAW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/im-obsessed-with-tomodachi-life-these-nintendo-switch-accessories-upgrade-any-cozy-gaming-setup">I'm obsessed with Tomodachi Life — these Nintendo Switch accessories upgrade any cozy gaming setup</a></li><li><a href="https://www.tomsguide.com/gaming/saros-review">Saros is everything I wanted from a Returnal sequel — and it fixes its predecessor's biggest problems</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/panther-lake-handhelds-could-put-amd-on-notice-but-theres-a-big-hurdle-to-overcome">Panther Lake handhelds could put AMD on notice, but there’s a big hurdle to overcome</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve "hopes to ship" Steam Machines in 2026 but memory shortages could cause delays ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/valve-hope-to-ship-steam-machines-in-2026-but-memory-shortages-could-cause-delays</link>
                                                                            <description>
                            <![CDATA[ Valve has said that it hopes to ship the Steam Machine in 2026. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">zYP6NnPqdoxNWQLBRArA7N</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 07 Mar 2026 00:21:13 +0000</pubDate>                                                                                                                                <updated>Sat, 07 Mar 2026 01:10:18 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &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/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve revealed the <a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">Steam Machine</a> and its VR cousin the Frame in November last year, but declined to share pricing and launch dates. After the company's latest missive, we may have to wait even longer to get either detail. </p><p>In a <a href="https://steamcommunity.com/groups/steamworks/announcements/detail/528746884222682053" target="_blank">platform summary for developers</a>, the company said that "we hope to ship in 2026," blaming the ongoing<a href="https://www.tomsguide.com/computing/the-ram-crisis-is-so-much-bigger-than-pcs-heres-the-rest-of-the-products-caught-in-the-crossfire"> RAM crisis </a>that has driven up memory costs across multiple device types. It's a delay after an original window of early 2026.</p><p>"We hope to ship in 2026, but as we shared recently, memory and storage shortages have created challenges for us," the company said. "We’ll share updates publicly when we finalize our plans!" </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJl3rO"></div>                            </div>                            <script src="https://kwizly.com/embed/eJl3rO.js" async></script><p>The platform post follows a similar confirmation from February when Valve said it needed to time to "revisit" when the Steam Machine would ship and the price. Again, Valve said that the memory and storage shortage was to blame, though we were given a more optimistic first half of the year window at the time.</p><p>“Our goal of shipping all three products in the first half of the year has not changed,” Valve said in February. “But we have work to do to land on concrete pricing and launch dates that we can confidently announce, being mindful of how quickly the circumstances around both of these can change.”</p><p>Meanwhile, Valve has already confirmed that<a href="https://www.tomsguide.com/computing/hardware/steam-deck-oled-stock-is-drying-up-valve-confirms-and-the-ram-price-crunch-has-me-worried-for-the-steam-machine"> availability of the Steam Deck OLED is scattershot</a> thanks to the RAM crisis. Prices <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-is-getting-a-usd100-price-hike-in-japan-is-the-us-next">have already increased</a> for the Steam Deck in Japan and other Asian countries and could rise in the US.</p><p>The first three months of 2026 have seen a number of gaming devices suffer as a result of RAMaggedon from <a href="https://www.tomsguide.com/computing/nvidia-wont-release-new-gaming-gpu-for-first-year-in-three-decades-due-to-ram-shortage-and-its-also-slashing-rtx-50-production">Nvidia skipping gaming GPUs</a> to <a href="https://www.tomsguide.com/gaming/rameggedon-comes-for-gaming-as-nintendo-and-playstation-mull-price-hikes-and-delays">potential Nintendo Switch 2 price hikes</a>. Unfortunately, this might not get better until 2028 at the earliest.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/scott-pilgrim-ex-is-one-of-my-favorite-games-of-2026-so-far-and-its-a-glorious-retro-style-beat-em-up">Scott Pilgrim EX is one of my favorite games of 2026 (so far) — and it's a glorious retro-style beat 'em up</a></li><li><a href="https://www.tomsguide.com/gaming/xbox/next-xbox-will-play-your-xbox-and-pc-games-new-ceo-promises">The next Xbox console is Project Helix and it will 'play your Xbox and PC games,' new CEO promises</a></li><li><a href="https://www.tomsguide.com/computing/peripherals/i-wore-razers-project-motoko-ai-gaming-headset-and-im-not-sure-real-life-is-supposed-to-have-cheat-codes-like-this">I wore Razer’s Project Motoko AI gaming headset — and I’m not sure real life is supposed to have cheat codes like this</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The RAM crisis is out of control: Here's the most alarming tech products affected (so far) ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/the-ram-crisis-is-so-much-bigger-than-pcs-heres-the-rest-of-the-products-caught-in-the-crossfire</link>
                                                                            <description>
                            <![CDATA[ The RAM crisis affects far more than PCs, with everything from Valve's Steam Deck to Sony's PS6 on the line. Here's the gaming gear that might be impacted the most. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">zhZEiBKJL7rT6ogC3aWxLZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EyjJUuKxjXzFDkrxdkQzRW-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 22 Feb 2026 06:30:00 +0000</pubDate>                                                                                                                                <updated>Mon, 23 Feb 2026 13:19:00 +0000</updated>
                                                                                                                                            <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/EyjJUuKxjXzFDkrxdkQzRW-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A single RAM stick]]></media:description>                                                            <media:text><![CDATA[A single RAM stick]]></media:text>
                                <media:title type="plain"><![CDATA[A single RAM stick]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EyjJUuKxjXzFDkrxdkQzRW-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a> is in full effect. With memory chip manufacturers prioritizing AI data centers, what we're left with is price hikes, shortages and delays on all the tech that we value the most. </p><p>Just how bad has it got? Well, before the memory shortage officially kicked into gear a few months ago, this <a href="https://www.amazon.com/G-SKILL-2x16GB-CL30-38-38-96-Desktop-Computer/dp/B0C1TKSDKR" target="_blank">32GB DDR5 RAM stick</a> could be picked up for $87. Now, it costs <strong>$484</strong>. That's just over a 450% increase, and that's <em>still </em>not the worst of it — DRAM and NAND storage memory prices have <a href="https://counterpointresearch.com/en/insights/7times-memory-price-surge-threatens-telcos-broadband-router-set-topbox-supply" target="_blank">skyrocketed by over 600%</a>. </p><p>For PC makers and enthusiasts, that's a tough blow. But if you're thinking you're in the clear, just because you don't buy RAM sticks yourself, I've got bad news: nothing is safe.  Phones, laptops, tablets, gaming consoles and yes, even Wi-Fi routers, will all be impacted by the RAM crisis. In fact, it's already taken effect. </p><p><a href="https://www.tomsguide.com/computing/buy-it-as-soon-as-you-can-lenovo-issues-urgent-warning-on-ram-crisis-spiking-prices">Companies are already scrambling</a> to scoop a dwindling supply of memory chips, with prices set to surge even higher going forward. The problem is, there's no end in sight anytime soon, as <a href="https://www.tomsguide.com/computing/someone-asked-me-today-how-long-the-dram-supply-shortage-would-last-i-may-need-to-revise-that-answer-analyst-predicts-bleak-future-for-ram-crisis">analysts</a> and even Micron itself are claiming <a href="https://www.tomsguide.com/computing/theres-just-not-enough-supply-to-go-around-micron-believes-ram-shortage-wont-improve-until-2028-at-least-until-the-ai-demand-starts-to-fade-away">we won't see any improvements until 2028</a>. Yikes. </p><p>We're in for the long haul, and we're already seeing the consequences of the biggest memory companies (SK Hynix, Micron and Samsung) pivoting supplies for an AI future. From shortages on our favorite products today to delays on the most anticipated devices, here are the biggest victims the RAM crisis has claimed (so far). </p><h2 id="valve-s-steam-deck-and-more">Valve's Steam Deck (and more)</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:3625px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ePtQiRAw8M9V2QGMEyEFTG" name="Steam Deck OLED-14.jpg" alt="Steam Deck OLED" src="https://cdn.mos.cms.futurecdn.net/ePtQiRAw8M9V2QGMEyEFTG.jpg" mos="" align="middle" fullscreen="" width="3625" height="2039" 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>Who would have thought that a still-popular gaming handheld that released in 2022 would be so hard to get a hold of today? <a href="https://www.tomsguide.com/computing/hardware/steam-deck-oled-stock-is-drying-up-valve-confirms-and-the-ram-price-crunch-has-me-worried-for-the-steam-machine">Valve's Steam Deck is out of stock</a>,  and it's officially due to (you guessed it) “memory and storage shortages.”</p><p>Head over to <a href="https://store.steampowered.com/steamdeck" target="_blank">Steam</a> in the U.S., and you'll find that the <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck OLED</a>, along with the <a href="https://www.tomsguide.com/reviews/steam-deck-review-the-nintendo-switch-for-adults">OG Steam Deck</a>, can't be purchased. As <a href="https://store.steampowered.com/steamdeck" target="_blank">Valve's support page</a> notes, stock will be out "intermittently in some regions," although we've been <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-oled-restock-im-tracking-all-inventory-so-you-dont-have-to">tracking restocks</a>, and Valve's gaming handheld hasn't shown up yet. </p><p>At the very least, every model is still available in the U.K., but who knows when stock will dry up in other regions, or how long the drought will last in those areas already affected. </p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7607921335993502990" data-video-id="7607921335993502990" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ Minimal for news / news suspense(1169746) - Hiraoka Kotaro" href="https://www.tiktok.com/music/Minimal-for-news-news-suspense-1169746-7055051802865862658">♬ Minimal for news / news suspense(1169746) - Hiraoka Kotaro</a></section>                    </blockquote></div>                <p>While the Steam Deck has had its moment to shine before shortages kicked in, this spells doom for everything else Valve has coming — the <a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-vs-ps5-vs-xbox-series-x-s-vs-mac-mini-how-does-valves-new-console-compare">Steam Machine</a>, <a href="https://www.tomsguide.com/computing/vr-ar/steam-frame-will-take-over-vr-in-2026-3-key-features-i-cant-wait-for">Steam Frame</a> and Steam Controller. </p><p><a href="https://store.steampowered.com/news/group/45479024/view/625565405086220583" target="_blank">In a blog post</a>, the gaming giant revealed that its console-like PC, VR headset and gaming controller have been delayed to the “first half of the year,” as opposed to Q1 of 2026. And yes, it's due to “memory and storage shortages.” The RAM crisis is already delaying the biggest releases from Valve in years (and <a href="https://www.tomsguide.com/computing/half-life-3-and-steam-machine-could-be-delayed-and-you-can-blame-the-ram-price-crisis-for-that">maybe even the mythical Half-Life 3</a>?), but what's even more concerning is the price. </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="WLec9wkyEhDpZxRRLJYEqE" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>The cost of the Steam Machine and the Steam Frame is still up in the air, and while Valve may have already had a fixed price for its upcoming tech, the company will "revisit" the price because of the memory shortage. This can only signal one thing: a price hike. </p><p>Many were already guessing the Steam Machine and Frame would be expensive, more so than the gaming consoles and VR headsets we see today. But now? We may have to add an extra $100 (or more) to what we imagined. As in, $999 for the Steam Machine and $799 for the Steam Frame. These are all just predictions, but considering the Steam Deck has already been affected by the RAM crisis, this only raises concerns about Valve's anticipated hardware. </p><h2 id="nvidia-skips-gaming-gpus">Nvidia skips gaming GPUs</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:5712px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xWV7Xvua8aPb7TaLHKQ5Jj" name="Nvidia RTX 50 series GPU" alt="Nvidia RTX 50-series GPU held in hand with Nvidia logo on green background" src="https://cdn.mos.cms.futurecdn.net/xWV7Xvua8aPb7TaLHKQ5Jj.jpg" mos="" align="middle" fullscreen="" width="5712" height="3213" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>Even Nvidia, the juggernaut that is all-in on AI, is struggling with the memory shortage. For the first time in three decades, <a href="https://www.tomsguide.com/computing/nvidia-wont-release-new-gaming-gpu-for-first-year-in-three-decades-due-to-ram-shortage-and-its-also-slashing-rtx-50-production">Team Green won't release a new gaming GPU this year</a>. </p><p>There had been a lot of talk about when we'd see <a href="https://www.tomsguide.com/computing/gpus/nvidia-rtx-50-super-gpu-rumors-everything-we-know-so-far">RTX 50 Super GPUs</a>, with rumors even pointing to a release of the RTX 5070 Super, RTX 5070 Ti Super, and RTX 5080 Super in late 2025. That didn't happen, but even at CES 2026, when Nvidia usually makes its big announcements, there were no new GPUs to be seen. </p><p>Instead, we got a first look at <a href="https://www.tomsguide.com/news/live/nvidia-ces-2026-keynote-live">Vera Rubin chips</a>, which are gearing up to power AI data centers and the like. It's expected to use HBM4 (High Bandwidth Memory 4), which is exactly what manufacturers are prioritizing over DRAM. </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="QCKTTLwmSEEx5S2XAMBXYC" name="RTX 5070 vs RTX 5070 Ti" alt="RTX 5070 vs RTX 5070 Ti" src="https://cdn.mos.cms.futurecdn.net/QCKTTLwmSEEx5S2XAMBXYC.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>So, instead of giving more previous VRAM to its anticipated set of RTX 50 Super graphics cards (which we'd love to see in the <a href="https://www.tomsguide.com/computing/gpus/nvidia-geforce-rtx-5070-review">RTX 5070</a> and <a href="https://www.tomsguide.com/computing/gpus/nvidia-geforce-rtx-5070-ti-review">RTX 5070 Ti</a>), Nvidia shift gears to fuel the AI train. </p><p>As it turns out, Nvidia has indefinitely delayed "Kicker" — the code name for the incremental RTX 50-series refresh, likely the Super cards that we expected to see this year. Even though the designs were reportedly finished, the company decided that it couldn't justify the memory costs.</p><p>So, what does this mean for the inevitable <a href="https://www.tomsguide.com/computing/gpus/nvidia-rtx-60-series-gpus-rumors-leaks-and-everything-we-know-so-far">RTX 60-series GPUs</a>? Well, a leak indicated we could see these <a href="https://www.tomsguide.com/computing/gpus/nvidia-rtx-60-series-in-early-2027-the-leak-sounds-huge-but-the-numbers-dont-add-up">debut in early 2027</a>, but with the ongoing memory crisis already taking its next Super-series off the list this year, there's good reason to believe we won't see these anytime soon. </p><h2 id="ps6-pushed-back">PS6 pushed back?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="y5T6EzpDkzjkm8NbGVewWW" name="PS5 Pro-9" alt="The PlayStation logo on a PS5 Pro" src="https://cdn.mos.cms.futurecdn.net/y5T6EzpDkzjkm8NbGVewWW.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>We've already seen the price of every <a href="https://www.tomsguide.com/reviews/ps5">PS5</a> model <a href="https://www.tomsguide.com/gaming/playstation/every-ps5-model-is-getting-a-price-hike-in-the-u-s-and-todays-the-last-day-to-get-one-cheaper">increase by $50 last year</a>, due to a "backdrop of a challenging economic environment" at the time, but so far, we haven't seen Sony's console be largely affected by the memory and storage shortage. As for its next-gen model? It could be further away than we first thought. </p><p>According to a report from <a href="https://www.bloomberg.com/news/articles/2026-02-15/rampant-ai-demand-for-memory-is-fueling-a-growing-chip-crisis" target="_blank">Bloomberg</a>, Sony is considering <a href="https://www.tomsguide.com/gaming/rameggedon-comes-for-gaming-as-nintendo-and-playstation-mull-price-hikes-and-delays">pushing the launch of its PS6 back to 2028</a> at the earliest, all the way to 2029. And all signs are pointing to the RAM crisis. While rumors have claimed we may see the PS6 in 2028 anyway, some indicate a late 2027 release, which would line up with <a href="https://www.tomsguide.com/gaming/xbox/amd-hinted-the-next-gen-xbox-could-launch-in-2027-heres-why-im-not-convinced">AMD's hint that a next-gen Xbox is landing next year</a>. </p><p>To put this into perspective, the PS4 launched in November 2013, while the latest PS5 arrived in November 2020. The console cycle is generally seven years, and RAMageddon appears to be disrupting the flow already — possibly by two years. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xjx5MW"></div>                            </div>                            <script src="https://kwizly.com/embed/Xjx5MW.js" async></script><p>With rumors suggesting the <a href="https://www.tomsguide.com/gaming/ps6-rumored-for-massive-30gb-ram-upgrade-as-next-xbox-will-pivot-to-pc-hybrid-what-we-know-so-far">PS6 is expected to come equipped with 32GB of DDR7 RAM</a> to power the next generation of gaming, which is double what the PS5 has (16GB GDDR6), we can start to piece together why Sony would delay the launch of its new console. </p><p>During the <a href="https://www.tomsguide.com/news/ps6-release-date-tipped-in-activision-blizzard-trial-what-we-know">Activision Blizzard trial back in 2023</a>, documents revealed that the next Xbox and PS6 were set for 2028. But times have changed, and the scarcity of RAM to power these consoles is making it harder for companies to know when the right time is to release their fresh products. </p><p>Remember how hard it was to get a PS5 when it launched? Now imagine Sony releasing its PS6 with a limited supply of RAM; the wait for restocks would be never-ending. </p><h2 id="nintendo-switch-2-price-hikes">Nintendo Switch 2 price hikes?</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="H5XCv25fUwCBV3jkkWsiDZ" name="Nintendo_switch_2_ 13.JPG" alt="A Nintendo Switch 2 handheld console" src="https://cdn.mos.cms.futurecdn.net/H5XCv25fUwCBV3jkkWsiDZ.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a> already had to deal with <a href="https://www.tomsguide.com/computing/buying-cheap-tech-could-take-a-hit-in-2025-trumps-tariffs-explained">U.S. tariffs</a>, and many weren't happy with its price tag. Unfortunately, the RAM crisis may make matters worse. </p><p>Despite a successful launch, becoming the fastest-selling console of all time, <a href="https://www.tomsguide.com/gaming/rameggedon-comes-for-gaming-as-nintendo-and-playstation-mull-price-hikes-and-delays">Nintendo is considering raising prices this year</a>. Many had already expected this to happen, following in the footsteps of PlayStation and Xbox raising the cost of their consoles last year, but the memory shortage (and tariffs) appears to be accelerating this. </p><p>Analysts believe the <a href="https://www.tomsguide.com/gaming/nintendo/the-switch-2-is-set-to-follow-in-sony-and-microsofts-footsteps-with-its-own-price-hike-possible-bad-news-for-nintendos-red-hot-console-but-theres-a-silver-lining">Switch 2 will receive a $50 price bump</a>, taking it from $449 to $499 (the price for the Mario Kart World bundle). And this year, during an earnings call, Nintendo President Shuntaro Furukawa raised concerns about the <a href="https://www.tomsguide.com/gaming/nintendo/the-market-environment-is-indeed-challenging-nintendo-president-sounds-the-alarm-on-pressure-caused-by-surging-memory-prices-as-switch-2-forecast-stays-at-19-million">"pressure" caused by surging memory prices</a>. </p><p>"The market environment is indeed challenging. But we are engaging in long-term discussions with our suppliers to ensure we maintain a stable intake of chips,” Furukawa noted. That's a promising outlook, but many companies are vying for memory these days, so it only seems inevitable that Nintendo will eventually bump up the price of its Switch 2. </p><p>My advice? If there's a particular product you're interested in (in this case, the Switch 2), buy it now. With the RAM crisis already affecting the biggest products on the market, prices are only going to soar, and it will be a while before we see next-gen products come to shelves. Even if they do arrive, don't expect a huge supply. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/lenovo-is-planning-another-pc-price-hike-in-march-and-im-all-out-of-patience-with-this-ai-bubble">Lenovo is planning another PC price hike in March — and I’m all out of patience with this AI bubble</a></li><li><a href="https://www.tomsguide.com/computing/someone-asked-me-today-how-long-the-dram-supply-shortage-would-last-i-may-need-to-revise-that-answer-analyst-predicts-bleak-future-for-ram-crisis">'Someone asked me today how long the DRAM supply shortage would last...I may need to revise that answer': analyst predicts bleak future for RAM crisis</a></li><li><a href="https://www.tomsguide.com/gaming/xbox/amd-hinted-the-next-gen-xbox-could-launch-in-2027-heres-why-im-not-convinced">AMD just hinted the next-gen Xbox could ‘launch in 2027’ — here’s why I’m not convinced</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Deck OLED stock is drying up, Valve confirms — and the RAM crisis has me worried for the Steam Machine ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/hardware/steam-deck-oled-stock-is-drying-up-valve-confirms-and-the-ram-price-crunch-has-me-worried-for-the-steam-machine</link>
                                                                            <description>
                            <![CDATA[ Valve just confirmed the Steam Deck OLED may be “out-of-stock intermittently” due to the RAM price crisis. That makes me nervous about the Steam Machine. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TjgWjkRPgbF7M2RSKXmr9F</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ePtQiRAw8M9V2QGMEyEFTG-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 17 Feb 2026 12:07:14 +0000</pubDate>                                                                                                                                <updated>Tue, 17 Feb 2026 12:11:40 +0000</updated>
                                                                                                                                            <category><![CDATA[Computing Hardware]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&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/ePtQiRAw8M9V2QGMEyEFTG-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Deck OLED]]></media:description>                                                            <media:text><![CDATA[Steam Deck OLED]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Deck OLED]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ePtQiRAw8M9V2QGMEyEFTG-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The ongoing <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM crisis</a> has claimed another victim, as Valve has officially confirmed <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck OLED</a> stock issues are happening due to “memory and storage shortages.”</p><p>It follows a couple of weeks of interrupted stocking and theories being passed around as to why — all leading to this. And I have to say, after seeing the <a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-delayed-as-valve-will-revisit-the-cost-because-of-the-ram-price-crisis">Steam Machine get delayed</a>, this makes me even more nervous about the launch and price of Valve’s future home system.</p><h2 id="confirming-what-we-ve-known-for-a-while">Confirming what we’ve known for a while</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:3262px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8fX9zovNcCoFWt9b7ctUe5" name="Steam Deck OLED-19.jpg" alt="Steam Deck OLED" src="https://cdn.mos.cms.futurecdn.net/8fX9zovNcCoFWt9b7ctUe5.jpg" mos="" align="middle" fullscreen="" width="3262" height="1835" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>This announcement confirms what a lot of us have feared for a while now. A lot of users were noting Steam Decks being listed as out of stock over the past couple of weeks.</p><p>"Steam Deck OLED may be out-of-stock intermittently in some regions due to memory and storage shortages,” the note reads on the <a href="https://store.steampowered.com/steamdeck" target="_blank" rel="nofollow">Steam Deck product page</a>. </p><p>We’re starting to see more of this as AI companies continue to consume the vast majority of RAM and SSDs for their data center requirements — continuing to drive up the prices of computing gear and causing stock issues.</p><h2 id="a-big-yikes-for-the-steam-machine">A big “yikes” for the Steam Machine</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:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bwwoAnqrHxAbigpy8aiKhf" name="Steam_Machine_HERO" alt="Vale Steam Machine" src="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>But one bigger question I have is simple: what does that mean for the Steam Machine? We already know it’s been delayed due to the crisis — pushed back to the more broad expectation of “the first half of the year,” rather than “early 2026.”</p><p>Valve has already said it will “revisit” the cost of it, but the RAM crisis already hitting the Steam Deck OLED raises much more concern.</p><p>If it’s already hitting Valve hard like this, what will that mean for the amount of Steam Machine stock available at launch? How will the company balance the demands of all its hardware? What will the price be in the end? Will we <strong>ever </strong>see Half-Life 3!?!?!</p><p>Taking the <a href="https://www.tomsguide.com/gaming/steam-machine-pricing-may-have-just-leaked-by-retailer-and-its-not-cheap">European retailer leak</a> into context, I’m still sticking by the prediction (that hurts me a lot) of a $950 launch price.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJl3rO"></div>                            </div>                            <script src="https://kwizly.com/embed/eJl3rO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/hardware/you-have-to-work-around-the-supply-chain-acer-exec-on-plans-to-bypass-the-big-three-to-save-us-from-the-ram-price-crisis">RAM prices keep rising in 2026 — Acer exec says PC makers may bypass major suppliers to keep laptops affordable</a></li><li><a href="https://www.tomsguide.com/computing/internet/i-just-explored-30-years-of-the-internet-with-opera-web-rewind-and-it-reminded-me-what-browsing-felt-like-before-ai-slop">I just explored 30 years of the internet with Opera Web Rewind — and it reminded me what browsing felt like before AI slop</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/the-steam-frames-biggest-problem-is-ironically-half-life-alyx-and-valve-needs-to-recapture-the-vr-magic">The Steam Frame’s biggest problem is (ironically) Half-Life: Alyx, and Valve needs to recapture the VR magic</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Meta Quest 4 is not dead — CTO indicates ‘officially leaked’ VR headset is still coming and company will ‘learn from’ Steam Frame ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/virtual-reality/meta-quest-is-not-dead-cto-seems-to-confirm-officially-leaked-quest-4-is-still-launching-and-company-will-learn-from-steam-frame</link>
                                                                            <description>
                            <![CDATA[ Despite the shift, Meta’s VR efforts are not dead. Its CTO appears to confirm Quest 4 is on the way and that the company is still pouring resources into VR. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yNSdWCG8cs5AbDocBWUYc8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/5NDjVC8yk8CNGWoUWBBArU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 13 Feb 2026 11:52:24 +0000</pubDate>                                                                                                                                <updated>Fri, 13 Feb 2026 18:00:01 +0000</updated>
                                                                                                                                            <category><![CDATA[Virtual Reality]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&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/5NDjVC8yk8CNGWoUWBBArU-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Woojer Vest 3]]></media:description>                                                            <media:text><![CDATA[Woojer Vest 3]]></media:text>
                                <media:title type="plain"><![CDATA[Woojer Vest 3]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/5NDjVC8yk8CNGWoUWBBArU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s been a bit of a rollercoaster for Meta’s VR efforts over at Reality Labs. After losing just over $6 billion last quarter, the company laid off 1,500 people. While <a href="https://www.tomsguide.com/computing/vr-ar/oculus-founder-says-meta-abandoning-vr-is-obviously-false-but-metas-own-actions-scream-the-opposite-about-quests-future">Palmer Luckey said abandoning VR was “obviously false,”</a> Meta’s own actions screamed the opposite.</p><p>But there’s been some recent green shoots of optimism. <a href="https://www.tomsguide.com/computing/virtual-reality/i-used-meta-quest-3-to-turn-any-surface-into-a-futuristic-virtual-keyboard-but-its-way-too-painful-to-make-me-ditch-my-pc">Horizon OS got updated with a virtual keyboard</a> that actually works, and a <a href="https://www.tomsguide.com/computing/virtual-reality/metas-lightweight-vr-headset-and-compute-puck-revealed-in-leaked-renders">new lightweight headset with a compute puck</a> has been leaked.</p><p>But what about <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-4-reportedly-in-the-works-and-it-will-be-a-large-upgrade">Meta Quest 4</a>? And after shutting down three VR game studios and canceling some projects, will there be anything to play on them? </p><p>Well, Meta CTO Andrew Bosworth has been pretty vocal over the past few days, including an “ask me anything” session on his <a href="https://www.instagram.com/boztank" target="_blank">Instagram page</a> to provide “the truth” and respond to the “doom and gloom.” And in <a href="https://youtu.be/-M5Gz0xQd8c?si=1rkpSmOeNsL_brZD" target="_blank">his Davos interview</a>, he seems to confirm that Quest 4 is still coming.</p><p>Put simply, Meta Quest is not dead. It’s evolving.</p><div class="product"><a data-dimension112="abd47869-1a6a-4da4-acca-33e18311089b" data-action="Deal Block" data-label="Quest 3S" data-dimension48="Quest 3S" data-dimension25="$249" href="https://www.amazon.com/Meta-Quest-3S-128GB-All-One/dp/B0DDK1WM9K" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1490px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="54ZXKD7YrZHMvdNZuCkjEk" name="Meta Quest 3S" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/54ZXKD7YrZHMvdNZuCkjEk.jpg" mos="" align="middle" fullscreen="" width="1490" height="1490" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Reassuring words from the CTO aside, it pays to keep things cheap in moments like this. And snagging my personal favorite VR headset for just $249 is huge! The <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3s-review" data-dimension112="abd47869-1a6a-4da4-acca-33e18311089b" data-action="Deal Block" data-label="Quest 3S" data-dimension48="Quest 3S" data-dimension25="$249">Quest 3S</a> gives you all the best of the Quest 3 without breaking the bank. Plus you get to play as Batman in VR for free!</p><p><strong>Walmart: </strong><a href="https://www.walmart.com/ip/Meta-Quest-3S-128GB-Get-Batman-Arkham-Shadow-and-a-3-Month-Trial-of-Meta-Quest-Included-All-In-One-Headset/5871736556" target="_blank" rel="nofollow"><strong>$249</strong></a><a class="view-deal button" href="https://www.amazon.com/Meta-Quest-3S-128GB-All-One/dp/B0DDK1WM9K" target="_blank" rel="nofollow" data-dimension112="abd47869-1a6a-4da4-acca-33e18311089b" data-action="Deal Block" data-label="Quest 3S" data-dimension48="Quest 3S" data-dimension25="$249">View Deal</a></p></div><h2 id="meta-is-investing-more-in-content-than-anyone-else">Meta is 'investing more in content than anyone else'</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TCXxpHzVxZLe8AAcCh6Ccf" name="Meta Quest 3S" alt="Meta Quest 3S" src="https://cdn.mos.cms.futurecdn.net/TCXxpHzVxZLe8AAcCh6Ccf.gif" mos="" align="middle" fullscreen="" width="800" height="450" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>This first response came to a question about the “doom and gloom” of the layoffs. Bosworth says it's “mostly overwrought,” but he gets why it exists.</p><p>“First, there is a real cause for sadness. We had people doing work we were excited about, whether at the OS layer or great studios delivering great titles,” he commented. But he emphasized that Meta “remains extremely bullish on VR.”</p><p>“We are still investing more in content than anyone else, and more than we were four years ago,” Bosworth stated. “While we have receded from the 'high water mark,' we are still very much a net positive investor in the ecosystem.”</p><p>He acknowledged the “sadness regarding cancelled projects,” such as the Batman Arkham sequel, but the investment has been adjusted to “match the size of the growth.”</p><h2 id="quest-4-confirmed">Quest 4 confirmed?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="txJkJ5CBXXLsqUcVwgr4YP" name="Meta Quest 3" alt="Meta Quest 3" src="https://cdn.mos.cms.futurecdn.net/txJkJ5CBXXLsqUcVwgr4YP.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>But that’s when he let the cat out of the bag. “Furthermore, these internal changes unblock roadmaps for us on hardware; the next two devices we are looking at are very exciting,” Bosworth added.</p><p>Wait, what two devices is he talking about!? Let’s go back to his interview with Alex Heath for more clarity. <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-4-reportedly-in-the-works-and-it-will-be-a-large-upgrade">There were two devices leaked</a> in a memo back in December — “Pismo High” and “Pismo Low.” Quickly, reports linked these to a Meta Quest 4 and Quest 4S.</p><p>And when talking to Heath, he seems to <em>very </em>strongly hint that these are still in the works. “I think it's officially leaked we've got two devices on the roadmap that we're super excited about coming out over the course of a period of time,” Bosworth responded.</p><p>Heath rightly pressed him on what “a period of time” meant, and Bosworth dodged the question pretty effectively by saying “it could be anything, could be tomorrow.”</p><p>No, this doesn’t mean Quest 4 is launching tomorrow. But it is a welcome sign of relief that Meta’s still cooking on its next-gen gaming headset.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XbLrgW"></div>                            </div>                            <script src="https://kwizly.com/embed/XbLrgW.js" async></script><h2 id="what-about-the-steam-frame">What about the Steam Frame?</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:2103px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eYDqXZNvJiMYU6C5ChJFtE" name="Valve Steam Frame (1)" alt="Person wearing Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/eYDqXZNvJiMYU6C5ChJFtE.jpg" mos="" align="middle" fullscreen="" width="2103" height="1183" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Another interesting question came up — namely, does Meta view the <a href="https://www.tomsguide.com/computing/vr-ar/steam-frame-will-take-over-vr-in-2026-3-key-features-i-cant-wait-for">Steam Frame</a> as competition, or does the company support this additional standalone headset? </p><p>“It is a little bit of both. I have said this before — and I will say it again, because it is really true — every time there is a new headset, we learn from it,” Bosworth responded. “We learn how consumers respond to the decisions made regarding architecture, resolution, and cameras.”</p><p>One key example he brings up here is the Steam Frame coming included with a wireless dongle for cable-free PC VR. Meta has “experimented” with wireless links like this, but in Bosworth’s own words, “we decided it was just too much hassle.”</p><p>But that doesn’t mean the company won’t revisit this idea: “If consumers love it, maybe there is a bigger market there than we realized.”</p><h2 id="analysis-vr-s-not-dead-it-s-the-platform-that-will-give-birth-to-true-ar">Analysis: VR’s not dead — it’s the platform that will give birth to true AR</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bZ9eLFe2ss9MrwMYyQmWrk" name="Meta Quest 3S with Mixed Reality link" alt="Meta Quest 3S with Mixed Reality link" src="https://cdn.mos.cms.futurecdn.net/bZ9eLFe2ss9MrwMYyQmWrk.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>As someone who lives a good chunk of his life in VR like it’s “Ready Player One,” it’s a relief to see Meta come out of the gates swinging. But the transition to AR and smart glasses is definitely happening. </p><p>Not only has Meta seen it, but we’ve seen it in our affiliate revenue numbers, too (the money we make when you click on recommended products from our website and buy them). And this has changed my perspective on trying exciting VR headsets and software features.</p><p>Namely, I believe all the VR goodness we’re seeing today is an exciting test bed for what we could see in next-gen smart glasses. This idea of “spatial computing” is continuing to evolve before our eyes, and glasses aren’t able to contain all the silicon/battery tech needed to nail it yet.</p><p>And that puts VR in an exciting position to be the platform that pulls back the curtain on what the specs of the future will be able to do. By the way, Andrew (if you’re reading this, hi), I’d love to talk to you further about this!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/smart-glasses/these-ar-glasses-turned-my-side-of-the-bed-into-a-152-inch-cinema-and-saved-me-from-a-diplomatic-crisis-with-my-fiancee">I built a 152-inch gaming screen in bed and my fiancée has no idea — these AR glasses are $140 off</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/a-moment-similar-to-when-smartphones-arrived-meta-reveals-where-the-money-is-going-in-2026-and-its-not-vr">'A moment similar to when smartphones arrived': Mark Zuckerberg reveals where Meta's money is going in 2026 — and it’s not VR</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/2-years-later-the-apple-vision-pro-finally-gets-an-official-youtube-app">2 years later, the Apple Vision Pro finally gets an official YouTube app</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Machine delayed, as Valve will ‘revisit’ the cost because of the RAM price crisis ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/steam-machine-delayed-as-valve-will-revisit-the-cost-because-of-the-ram-price-crisis</link>
                                                                            <description>
                            <![CDATA[ The Steam Machine, Steam Frame and Steam Controller have all been delayed because of "memory and storage shortages." ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">eGEjDiaYVxX5sWzhodPdqm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 05 Feb 2026 09:45:08 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Computing Hardware]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&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/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Vale Steam Machine]]></media:description>                                                            <media:text><![CDATA[Vale Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Vale Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve just gave us a big update on the <a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-vs-ps5-vs-xbox-series-x-s-vs-mac-mini-how-does-valves-new-console-compare">Steam Machine</a>, <a href="https://www.tomsguide.com/computing/vr-ar/steam-frame-will-take-over-vr-in-2026-3-key-features-i-cant-wait-for">Steam Frame</a> and Steam Controller <a href="https://store.steampowered.com/news/group/45479024/view/625565405086220583" target="_blank">in a blog post</a>. But while all the new answers to our most common questions are welcome, it’s worrying that two remain largely unanswered: <strong>When will they launch, and how much will they cost?</strong></p><p>In response, we got a <em>sort of </em>response that confirms they’ve been delayed to the “first half of the year” (rather than Q1 2026) because of “memory and storage shortages.” This is to give the company time to “revisit” when it will ship and how much it will cost.</p><h2 id="yikes">Yikes</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:2126px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="VN3tt97dHc9e3Hfpka2w7" name="Valve Steam FrameValve Steam Frame" alt="Person using Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/VN3tt97dHc9e3Hfpka2w7.jpg" mos="" align="middle" fullscreen="" width="2126" height="1196" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>It’s almost like the perfect storm of bad timing — Steam’s new hardware announced in November, just before the <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM price crisis</a> truly took off (yes, I know it technically started earlier, but it became truly noticeable around late November).</p><p>“Our goal of shipping all three products in the first half of the year has not changed,” the blog post reads. “But we have work to do to land on concrete pricing and launch dates that we can confidently announce, being mindful of how quickly the circumstances around both of these can change.”</p><p>We were already hearing rumors that the pricing was going to sting because of those skyrocketing memory costs, and this is the first time Valve has publicly acknowledged it. </p><p>Now, given that one of the FAQs Valve answers does confirm that the Steam Machine’s SSD and DDR5 RAM sticks are “accessible and upgradeable,” there could be a bare bones version to give us a cheap version. But we’ll find out soon as the company plans to “finalize those plans as soon as possible.”</p><h2 id="my-way-too-early-price-predictions">My (way too early) price predictions</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="6xBrL6Zv4c8cVa3fWMuZtQ" name="image (1)" alt="Valve Steam Machine, Steam Frame, and Steam Controller devices" src="https://cdn.mos.cms.futurecdn.net/6xBrL6Zv4c8cVa3fWMuZtQ.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: Valve)</span></figcaption></figure><p>You know the kind of writer I am — I’m a betting man and always keen to make some predictions. How much do I think they will actually cost when they launch?</p><ul><li><strong>Steam Machine: </strong>I think the <a href="https://www.tomsguide.com/gaming/steam-machine-pricing-may-have-just-leaked-by-retailer-and-its-not-cheap">European retailer leak</a> is probably on the money here. Due to the rising costs of DDR5 RAM and NVMe SSDs,<strong> I would guess a minimum of $950 (a far cry from my early guess of $699).</strong></li><li><strong>Steam Frame: </strong>The standalone VR headset is intended by Valve to be a more affordable alternative to the Valve Index, which sold at $999. But <em>how </em>much cheaper? Given it uses 16GB of LPDDR5X RAM, <strong>my guess is somewhere in the $700 range.</strong></li><li><strong>Steam Controller: </strong>This is the hardware least affected by the crisis, but it is still a pro-tier piece of hardware with magnetic thumbsticks, dual trackpads and impressive repairability. <strong>My guess is $120.</strong></li></ul><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eJl3rO"></div>                            </div>                            <script src="https://kwizly.com/embed/eJl3rO.js" async></script><h2 id="what-else-did-we-learn">What else did we learn?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="RzusMSoFqREVkoErH63pMN" name="SM_ledStrip" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>But I don’t want to end on a bummer (and with a burning pain to your bank balance). Valve did answer plenty of questions about the hardware. Let’s go through the biggest things we learned.</p><p>In terms of the Steam Machine, Valve confirmed it is upgradeable, you’ll be able to 3D print your own faceplates, and the gameplay target is “4K 60 FPS” with AMD’s FSR upscaling technology. </p><p>That said, the company did say that “some titles that currently require more upscaling than others, and it may be preferable to play at a lower framerate with VRR to maintain a 1080p internal resolution.” You can also expect driver updates that improve upscaling and ray tracing performance too.</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:2357px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="5eAPCXQRb6exzC6g8mGP2R" name="Valve Steam Frame" alt="Person wearing Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/5eAPCXQRb6exzC6g8mGP2R.jpg" mos="" align="middle" fullscreen="" width="2357" height="1326" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>As for the Steam Frame VR headset, Valve expects it to support streaming services via a theatrical mode in its built-in web browser, and it <em>sort of </em>can be used while wearing glasses. </p><p>Valve staffers have been able to wear them with specs “without issue,” but mileage may vary on how big your glasses are. “We are looking into making prescription lens inserts available ahead of launch,” the blog post confirms.</p><p>Finally, the company shared more on foveated streaming — quite the breakthrough for smooth PC VR gaming. Instead of foveated rendering (high resolution rendering of only what the display is looking at), foveated streaming uses the eye trackers to stream high-rendered data based on the specific portion of what you’re looking at.</p><p>PC VR can be super demanding on a system, and this system-level feature works across all games (rather than needing developers to update their code) so this could be huge!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/xbox/amd-hinted-the-next-gen-xbox-could-launch-in-2027-heres-why-im-not-convinced">AMD just hinted the next-gen Xbox could ‘launch in 2027’ — here’s why I’m not convinced</a></li><li><a href="https://www.tomsguide.com/computing/virtual-reality/i-used-meta-quest-3-to-turn-any-surface-into-a-futuristic-virtual-keyboard-but-its-way-too-painful-to-make-me-ditch-my-pc">I ditched my PC and used Meta Quest 3 to turn every surface into a virtual keyboard — it’s futuristic, and kind of painful</a></li><li><a href="https://www.tomsguide.com/computing/laptops/i-tested-intels-xess-3-multi-frame-generation-on-my-core-ultra-x9-388h-laptop-and-nvidia-should-be-worried-about-the-future-of-gaming-laptops">I tested Intel XeSS 3 vs Nvidia DLSS 4: my laptop tests made me rethink the future of integrated graphics</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Xbox gaming makes the jump to Windows on Arm, but can it stem the tide of gamers turning to Linux? ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/xbox-gaming-makes-the-jump-to-windows-on-arm-but-can-it-stem-the-tide-of-gamers-turning-to-linux</link>
                                                                            <description>
                            <![CDATA[ Microsoft’s Xbox app just arrived on ARM, but is it enough as gamers are swayed by Linux? ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">XTPkYbbBGTBPNqDa3YhRpP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/RuNWKoHrPChprENYnaWtw4-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 25 Jan 2026 12:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Lloyd Coombes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xcWocVTwa9yiwXRs559XNA.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Lloyd Coombes is a freelance tech and fitness writer. He&#039;s an expert in all things Apple as well as in computer and gaming tech, with previous works published on TechRadar, Tom&#039;s Guide, Live Science and more. You&#039;ll find him regularly testing the latest MacBook or iPhone, but he spends most of his time writing about video games as Gaming Editor for the Daily Star. He also covers board games and virtual reality, just to round out the nerdy pursuits.&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/RuNWKoHrPChprENYnaWtw4-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Qualcomm Snapdragon X2 Elite]]></media:description>                                                            <media:text><![CDATA[Qualcomm Snapdragon X2 Elite]]></media:text>
                                <media:title type="plain"><![CDATA[Qualcomm Snapdragon X2 Elite]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/RuNWKoHrPChprENYnaWtw4-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Once upon a time, one of the universally accepted truths was that if you were serious about gaming on a PC or laptop, you needed Windows.</p><p>Microsoft fostered a community of PC gamers that’s been around for more than three decades now, and the ways you can game are evolving beyond relying on the x86 likes of Intel and AMD chips, and bringing Arm support for laptops sporting <a href="https://www.tomsguide.com/computing/cpus/qualcomm-is-finally-getting-serious-about-pc-gaming-and-its-snapdragon-x2-elite-chips-prove-it">Qualcomm's Snapdragon X2 Elite</a>.</p><p>But the winds of change might be blowing. The <a href="https://www.tomsguide.com/deals/steam-deck-has-rekindled-my-love-for-desktop-pc-gaming-heres-why">Steam Deck</a> showed what was possible on Linux, Valve is coming for the desktop space with <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a>, and all the <a href="https://www.tomsguide.com/uk/ai/copilot">‘Microslop’ accusations</a> are starting to sway me and other users. Let me explain.</p><h2 id="shot-in-the-arm">Shot in the Arm</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="EiGtkmKvB4CrsL2XRJbF4i" name="Screenshot 2021-09-28 151236.png" alt="Windows 11 Xbox app" src="https://cdn.mos.cms.futurecdn.net/EiGtkmKvB4CrsL2XRJbF4i.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: Future)</span></figcaption></figure><p>Before diving into the rise of Linux, there’s good news for Xbox fans who are playing on PC - the Xbox app has finally arrived on Arm-based Windows 11 PCs.</p><p>If you’ve got one such machine, Microsoft says you can play 85% of games in the Game Pass catalog of them right now by downloading the app. The company also says Epic Anti-Cheat is functional so players can enjoy Fortnite, Gears of War: Reloaded, and more.</p><p>You can check out the latest in <a href="https://blogs.windows.com/windowsexperience/2026/01/21/play-more-xbox-app-is-now-available-on-arm-based-windows-11-pcs/" target="_blank">Microsoft’s blog post</a>, with the company promising more to come with Windows.</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="pWGR4JLPuftmBZMKqfTcna" name="Snapdragon X2 Elite" alt="Snapdragon X2 Elite CPU case" src="https://cdn.mos.cms.futurecdn.net/pWGR4JLPuftmBZMKqfTcna.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>“Windows and Xbox continue to collaborate across the gaming community, OEMs, silicon innovators and game studios to expand catalog compatibility and deliver a consistently great Windows gaming experience—whether you’re on a powerful desktop, a purpose‑built handheld, or an Arm‑based Windows 11 laptop,” it says.</p><p>“Our focus remains on improving compatibility, enhancing performance and delivering experiences that make it easy to jump in and play.”</p><p>That’s just as well, because Windows might be up against its sternest test in the battle for PC gaming dominance.</p><h2 id="pressure-valve">Pressure Valve</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:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bwwoAnqrHxAbigpy8aiKhf" name="Steam_Machine_HERO" alt="Vale Steam Machine" src="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>While Xbox has fallen way behind other platforms in the console space, Microsoft still owns the biggest piece of the PC market. According to <a href="https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam">Steam’s Hardware Survey from December 2025</a>, Windows versions (including Windows 11, Windows 10, and even Windows 7) make up 94.23% of PC gamers.</p><p>And yet, macOS and Linux are climbing, too. Mac versions now make up 2.18% of the survey results, a slight jump but undeniably buoyed by Apple’s Game Porting Toolkit rollout and the power of Apple Silicon.</p><p>Linux is also on the climb, reaching 3.58% across all platforms. There’s a good chance that’s thanks to the arrival of the Steam Deck in 2022, which has given rise to handheld PCs, many of which now run (or dual boot) the Linux-based SteamOS.</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="XNzdksRT9K6CKejNJpD3r8" name="ally x 1.jpg" alt="Asus ROG Ally X running SteamOS" src="https://cdn.mos.cms.futurecdn.net/XNzdksRT9K6CKejNJpD3r8.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>These are small numbers as it stands, but they conceal the fact that Linux is a more efficient platform for extracting better performance and battery life from your games (as Jason found out in his hands-on testing with the <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-turned-the-asus-rog-ally-x-into-a-steam-deck-it-proves-windows-11-kills-power-and-battery-life">Asus ROG Ally X</a>). The tides are slowly but surely turning.</p><p>While the <a href="https://www.tomsguide.com/gaming/steam-machine-pricing-may-have-just-leaked-by-retailer-and-its-not-cheap">Steam Machine</a> could end up seeing a delay thanks to the <a href="https://www.tomsguide.com/computing/pc-gamings-never-been-as-strong-uk-ceo-talks-about-the-chaotic-ram-pricing-crisis-and-how-this-blip-will-not-kill-pc-gaming">ongoing RAM crisis</a>, it’’ offer a PC-like experience that would be shorn of the cruft that Copilot has introduced. Microsoft keeps chasing the dream of AI, but it’s done so at the cost of many of Windows’ core pillars - <a href="https://www.tomsguide.com/computing/microsoft-needed-a-win-with-windows-latest-update-but-even-its-fix-needed-fixing">including stability</a>.</p><p><a href="https://www.tomsguide.com/gaming/pc-gaming/i-tried-gaming-on-linux-and-its-better-and-worse-than-you-think">Gamers are noticing, too</a>. Anecdotally, more adventurous enthusiasts are starting to dual-boot into Linux, or even remove Windows entirely. Developers and publishers have done some of the heavy lifting already to get games onto SteamOS, and now even storefronts are having their say.</p><p>“I'm really surprised at Windows. It's such poor-quality software and product, and I'm so surprised that it's [spent] so many years on the market. I can't believe it!” Michał Kiciński, the new owner of storefront <a href="http://gog.com" target="_blank">GOG.com</a> explained to <a href="https://www.pcgamer.com/software/windows/gogs-new-owner-cant-stand-windows-either-its-such-poor-quality-software-i-cant-believe-it/" target="_blank">PC Gamer</a>.</p><p>Preaching to the choir, Michal, preaching to the choir.</p><h2 id="a-gaming-arm-race">A gaming Arm race</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JsjUeAN9AybsfyYfuATxUE" name="Nvidia" alt="Nvidia" src="https://cdn.mos.cms.futurecdn.net/JsjUeAN9AybsfyYfuATxUE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Despite all this, Windows on Arm might get another boost for gamers with reports that a new <a href="https://www.tomsguide.com/computing/gaming-laptops/nvidia-n1-and-n1x-gaming-laptop-looks-set-to-launch-soon-lenovo-may-have-a-breakthrough-in-integrated-graphics-on-its-hands">Nvidia N1 and N1X chip lineup is expected to debut in new Lenovo laptops</a>. Outside of Snapdragon X2 Elite's improved GPU, this would mark the first real push for Windows 11 gaming on Arm. Will that then improve perception around Windows for gamers? Or is it too little too late?</p><p>94.23% of the market share suggests it’s likely to be a positive thing for anyone already on Windows. The Nvidia N1 and N1X chips will also bring Blackwell features to Dell XPS systems if reports are correct.</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="MmYxFrvrGR2iqT9yD5h2BL" name="DLSS 4.5" alt="DLSS 4.5" src="https://cdn.mos.cms.futurecdn.net/MmYxFrvrGR2iqT9yD5h2BL.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The advantage would be that the work Microsoft is doing on compatibility will undoubtedly make Arm a more compatible platform. Linux still doesn’t have access to anti-cheat systems across games like Fortnite, Battlefield 6, Destiny 2, or Call of Duty, meaning if you’re heavily invested in any of those titles, Windows (on Arm or not) is still the way to go for you.</p><p>There’s an argument that there’s never been a worse time to buy a dedicated games console, too, with the <a href="https://www.tomsguide.com/gaming/nintendo/the-switch-2-is-set-to-follow-in-sony-and-microsofts-footsteps-with-its-own-price-hike-possible-bad-news-for-nintendos-red-hot-console-but-theres-a-silver-lining">Switch 2 expected to join its Sony and Microsoft contemporaries</a> in raising prices following the AI rush for RAM.</p><p>Where do you stand? Are you considering a move away from Windows for your gaming fix? Leaning into consoles? Or staying put and hoping Windows gets better? Let us know in the comments!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/microsoft-365-more-like-microsoft-364-why-yesterdays-outage-proves-these-companies-dont-yet-have-a-backup-plan-for-the-internet">Microsoft 365? More like Microsoft 364 — why yesterday’s outage proves these companies don’t yet have a backup plan for the internet</a></li><li><a href="https://www.tomsguide.com/computing/laptops/ive-got-an-intel-core-ultra-x9-388h-laptop-in-front-of-me-and-im-taking-your-requests-live-on-what-to-test">I’m reviewing an Intel Core Ultra X9 388H laptop right now — what would you like me to test?</a></li><li><a href="https://www.tomsguide.com/computing/pc-gamings-never-been-as-strong-uk-ceo-talks-about-the-chaotic-ram-pricing-crisis-and-how-this-blip-will-not-kill-pc-gaming">‘Chaotic’ RAM pricing won’t kill PC gaming, a CEO told me — and history backs him up</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Steam Frame’s biggest problem is (ironically) Half-Life: Alyx, and Valve needs to recapture the VR magic ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/vr-ar/the-steam-frames-biggest-problem-is-ironically-half-life-alyx-and-valve-needs-to-recapture-the-vr-magic</link>
                                                                            <description>
                            <![CDATA[ Valve's Steam Frame is set to take VR gaming to new heights, but its very own Half Life: Alyx set the bar high, and more VR titles need to reach that standard. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gL6P6CQHPVUkKFAmtZRcaK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VN3tt97dHc9e3Hfpka2w7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 24 Jan 2026 11:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VR &amp; AR]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/VN3tt97dHc9e3Hfpka2w7-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Person using Valve Steam Frame]]></media:description>                                                            <media:text><![CDATA[Person using Valve Steam Frame]]></media:text>
                                <media:title type="plain"><![CDATA[Person using Valve Steam Frame]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VN3tt97dHc9e3Hfpka2w7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It's been six years since the release of <a href="https://www.tomsguide.com/news/half-life-alyx-review-roundup">Half Life: Alyx</a>, and to this day, there's not much that reaches the heights of Valve's VR masterpiece. And ironically, that's looking to be quite the problem for the upcoming <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a> — for now. </p><p>From its highly immersive atmosphere that drops you right into the fascinating yet terrifying City 17 under Combine occupation, to the iconic gameplay that I could <em>easily </em>spend hours messing around with just catching glass bottles and more with the Gravity Gloves (or "Russells," of course), and that's just scratching the surface. Half-Life: Alyx not only hit an all-time high for VR gaming, it's an achievement for gaming as a whole. </p><p>Don't just take it from me though. At the time, it got the highest marks across the board on multiple sites, now sitting at a <em>very </em>strong 93 on <a href="https://www.metacritic.com/game/half-life-alyx/" target="_blank">Metacritic</a>, and even in 2022, it was still one of the top-selling VR games on <a href="https://store.steampowered.com/sale/BestOf2022?tab=5" target="_blank">Steam</a>. That's no easy feat, but even today, over half a decade later, it's still considered the pinnacle of PC VR gaming.</p><p>So, the good news? It continues to be the best VR experience I've had. The bad? It's (sort of) ruined every other VR title. The ugly? The industry has had a <em>long</em> time to catch up now, and it's still hard to beat. Don't get me wrong; there have been several hits like <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3-is-putting-psvr-2-to-shame-batman-arkham-shadow-proves-it">Batman: Arkham Shadow</a>, <a href="https://www.tomsguide.com/reviews/asgards-wrath-2">Asgard's Wrath 2</a> and even the recent Arken Age, but none quite to the level of Alyx. </p><p>This poses a problem for Valve's next VR headset. The Steam Frame is set to drop in early 2026, but there's no blockbuster follow-up in sight. As we've learned, a gaming device can thrive or die depending on its pool of games, but in this case, Valve also has a high bar to reach to see its Steam Frame soar. </p><h2 id="the-need-for-blockbuster-vr-gaming">The need for blockbuster VR gaming</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:2117px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="yynoinYzr2VuNJppQy3t9h" name="Valve Steam Frame Half-life Alyx" alt="Back of person watching Half-Life: Alyx gameplay" src="https://cdn.mos.cms.futurecdn.net/yynoinYzr2VuNJppQy3t9h.jpg" mos="" align="middle" fullscreen="" width="2117" height="1191" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/computing/vr-ar/steam-frame-will-take-over-vr-in-2026-3-key-features-i-cant-wait-for">Steam Frame is already set to take over VR this year</a>, with features like its Foveated Streaming for optimized image quality, lag-free wireless streaming straight from a PC thanks to a 6GHz wireless adapter and the ability to play both VR and non-VR games from your Steam library. </p><p>Exciting stuff, but are there any upcoming, sure-fire games to take advantage of the VR headset's capabilities and reel in a wider audience? There isn't a peep from Valve (yet). I know, there's a lot of talk of the near-mythical <a href="https://www.tomsguide.com/computing/half-life-3-and-steam-machine-could-be-delayed-and-you-can-blame-the-ram-price-crisis-for-that">Half-Life 3</a> being a launch hit for the highly anticipated <a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">Steam Machine</a>, but I can hardly imagine this being a VR exclusive if it <em>actually</em> arrives (despite Half-Life: Alyx setting this up quite nicely). </p><p>Sure, Alyx is far from the only PC VR game to make it big. Head on over to <a href="https://steamdb.info/charts/?tagid=21978" target="_blank">SteamDB</a>'s most played VR games right now, and you'll find titles like Blade & Sorcery, Bonelab, Skyrim VR and more. Interestingly, though, a majority of these titles <em>aren't</em> VR exclusives. </p><p>Many of the most-played titles are VR versions of popular PC games, from Sons of the Forest and Phasmophobia to Hitman: World of Assassination and Subnautica. There's even <a href="https://www.tomsguide.com/reviews/resident-evil-4">Resident Evil 4</a> and <a href="https://www.tomsguide.com/reviews/resident-evil-village-review-its-almost-perfect">Resident Evil Village</a> (that's for the <a href="https://www.tomsguide.com/reviews/psvr2-review">PSVR 2</a>), which don't have an official VR mode on PC, but well-built mods change that. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ega6rO"></div>                            </div>                            <script src="https://kwizly.com/embed/ega6rO.js" async></script><p>That's a fantastic array of games to try out, especially for newcomers grabbing a Steam Frame, but these are titles you can already play with a <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a> and a good USB-C link cable connecting to a PC. I don't know about you, but seeing a "fresh" slate of VR titles hit the store will surely be a winning way to stoke the fire for Valve's VR headset. </p><p>But then the "Half-Life: Alyx problem" swings back around. Thanks to Valve's accomplishment, we've seen how absurdly good VR gaming can get, and that's a hard feat to top. But for a new VR headset from Valve itself in 2026, it's only fitting we see more games of the like, or how much further virtual reality can be pushed. </p><p>Valve hasn't exactly shot itself in the foot by making Alyx such an amazing experience, but those who've played it now know what developers are capable of, and a continuation of this standard can turn VR gaming from more of a niche gimmick into a force to be reckoned with. </p><h2 id="third-party-help">Third-party help</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:1764px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="axkbzggT6NdCLp9FUJ9xH" name="Valve Steam Frame (3)" alt="Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/axkbzggT6NdCLp9FUJ9xH.jpg" mos="" align="middle" fullscreen="" width="1764" height="992" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Over on Valve's Steam Frame <a href="https://store.steampowered.com/sale/steamframe" target="_blank">listing page</a>, one of the first videos you'll see is someone putting on the VR headset and stepping into Half-Life: Alyx. Despite coming out in 2020, Valve is still proud to show off that this is a must-play title for its upcoming headset. But it also shows there's not much else that's coming. </p><p>I mean, it's not like the successful <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck</a> had games made for it, but considering Valve <em>has </em>made a VR game tells a different story. Perhaps more high-level titles are on the way, seeing as there is a developer kit. </p><p>These have been given out to developers well before the launch of the Steam Frame to test and optimize their games on the Steam store, making sure they're ready and "Steam Frame Verified." But more importantly, it also gives them a chance to create a game made specifically for Valve's headset. </p><p>Of course, there's no telling if anything is in the works as of now, or even if there is an upcoming VR game from Valve itself. But it's at least a good sign that we'll see more blockbuster VR titles made for Steam — and, hopefully, for the headset itself. </p><p>With <a href="https://www.tomsguide.com/computing/vr-ar/oculus-founder-says-meta-abandoning-vr-is-obviously-false-but-metas-own-actions-scream-the-opposite-about-quests-future">Meta shutting down several of its first-party gaming studios</a>, including Armature Studio (behind <a href="https://www.tomsguide.com/news/i-just-played-the-best-reason-to-buy-an-oculus-quest-2">Resident Evil 4 VR</a>), Twisted Pixel (making the recent <a href="https://www.tomsguide.com/computing/vr-ar/i-played-over-200-hours-on-meta-quest-3-and-these-are-the-5-best-vr-games-of-2025">Marvel's Deadpool VR</a>) and Sanzaru Games (developing Asgard's Wrath), we're seeing more potential AAA VR games being scrapped. Reportedly, that includes a now-canceled Batman: Arkham Shadows sequel and even a Harry Potter VR title. </p><p>Having this in mind, the state of VR gaming is already in shaky territory, so seeing another Alyx hit the scene will breathe much-needed new life — something the Steam Frame will have to contend with. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/vr-ar/this-simple-meta-quest-3-feature-just-changed-how-i-watch-shows-in-vr-heres-the-trick">This simple Meta Quest 3 feature just changed how I watch shows in VR — here's the trick</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-was-stoked-for-the-steam-machine-but-this-one-thing-could-be-a-deal-breaker">I was stoked for the Steam Machine — but this one thing could be a deal-breaker</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/steam-frame-will-take-over-vr-in-2026-3-key-features-i-cant-wait-for">Steam Frame will take over VR in 2026 — 3 key features I can't wait for</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Machine pricing may have just leaked by retailer — and it's not cheap ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/steam-machine-pricing-may-have-just-leaked-by-retailer-and-its-not-cheap</link>
                                                                            <description>
                            <![CDATA[ A European retailer may have sort of leaked pricing for the Steam Machine, and it looks expensive. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nog5RJqKfBjr98VjcrmNYf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EWEFvfXcTi2HKWLY5zAAck-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 09 Jan 2026 22:23:08 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &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/EWEFvfXcTi2HKWLY5zAAck-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine ]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine ]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EWEFvfXcTi2HKWLY5zAAck-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When Valve <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">announced the Steam Machine</a> and Steam Frame in November 2025, the company declined to share pricing for either device. But we may have an idea of pricing thanks to a Czech retailer and some code snooping.</p><p><a href="https://www.tomsguide.com/gaming/nintendo/nintendo-might-be-forced-to-raises-prices-on-the-switch-2-says-analyst-tariffs-to-blame">Video games</a> and <a href="https://www.tomsguide.com/gaming/playstation/every-ps5-model-is-getting-a-price-hike-in-the-u-s-and-todays-the-last-day-to-get-one-cheaper">consoles have</a> gotten <a href="https://www.tomsguide.com/gaming/xbox/microsoft-raises-prices-on-xbox-series-s-and-x-for-the-second-time-this-year">more expensive</a> in the last year, and unfortunately, if this rumor holds up, the Steam Machine will not alleviate those concerns.</p><p>Pricing for the Steam Machine was discovered on the website for the Czech retailer <a href="https://www.smarty.cz/">Smarty, </a>reportedly an authorized seller of Valve devices in Europe. You can find the Steam Machine on the front-end of the Smarty website, but it doesn't show pricing. </p><p>However, <a href="https://x.com/Clawsomegamer/status/2009619612280017118" target="_blank">ClawSomeGamer</a> explored the site's source code and discovered prices for both the 512GB and 2TB versions of the hybrid PC/console. They discovered unlisted prices of 19,826 CZK and 22,306CZK or about $950 and $1,070 USD, respectively.</p><p>Of course, take all of this with a grain of salt.</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:640px;"><p class="vanilla-image-block" style="padding-top:32.66%;"><img id="T7HU8QT4YLfDowbpMYw4UX" name="grain-of-salt-steam-machine-pric" alt="Leaked Steam Machine pricing" src="https://cdn.mos.cms.futurecdn.net/T7HU8QT4YLfDowbpMYw4UX.jpg" mos="" align="middle" fullscreen="" width="640" height="209" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Clawsomegaming)</span></figcaption></figure><p>They do note that Smarty apparently adds a 17% markup on products it sells, meaning the price could be closer to $814 for the 512GB model and $916 for the 2TB version. They added that these prices might be internal guesses by Smarty. </p><p>For comparison, even with price hikes, the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> and the <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a>'s most expensive variants are still under $800. The cheapest version of the PS5 and the Series X, both with 1TB hard drives, are $499 and $649. </p><p>With all that in mind, anything sold directly from Valve might feature a lower price. The Steam Deck OLED sells for <a href="https://store.steampowered.com/steamdeck" target="_blank">$649 directly from Valve</a>, but is nearly <a href="https://www.amazon.com/Valve-Steam-Handheld-Gaming-Console/dp/B0CQ3L4726/" target="_blank">$200 more expensive on Amazon</a> because its sold by a third party.</p><h2 id="prices-are-going-up-everywhere">Prices are going up everywhere</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:986px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="zNviMu5gMGfq9wfeskjxXG" name="uUbdizcsnwBrWE7pkxThXE" alt="A man counting money by hand" src="https://cdn.mos.cms.futurecdn.net/zNviMu5gMGfq9wfeskjxXG.jpg" mos="" align="middle" fullscreen="" width="986" height="555" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Regardless of whether the Smarty leak is true, I would expect to the <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-was-stoked-for-the-steam-machine-but-this-one-thing-could-be-a-deal-breaker">Steam Machine to have a hefty price tag</a>. Across the tech world, prices will be going up.</p><p>The <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">worsening RAM crisis</a> due to <a href="https://www.tomsguide.com/computing/samsung-reportedly-raises-ddr5-ram-prices-by-100-percent-with-no-stock-left">AI's insatiable need for memory</a> is forcing companies to raise prices across the board, from <a href="https://www.tomsguide.com/phones/phone-prices-are-expected-to-go-up-in-2026-heres-how-to-avoid-the-sticker-shock">phones </a>and <a href="https://www.tomsguide.com/computing/macbook-and-iphone-prices-could-rise-in-2026-as-apples-ram-supply-advantage-begins-to-fade">MacBooks </a>to <a href="https://www.tomsguide.com/computing/brace-yourself-pcs-laptops-and-phones-may-jump-in-price-as-early-as-december-thanks-to-a-500-percent-ram-ssd-surge">laptops </a>and <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-might-be-forced-to-raises-prices-on-the-switch-2-says-analyst-tariffs-to-blame">gaming consoles</a>. At <a href="https://www.tomsguide.com/tech-events/best-of-ces-2026-awards-the-top-25-new-gadgets">CES 2026</a>, Samsung execs admitted that <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-could-be-more-expensive-due-to-ram-shortage-but-one-of-the-companys-execs-still-has-a-positive-outlook">prices are going to go up</a> due to semiconductor supply issues.</p><p>RAMaggedon may not find any kind of resolution until well into 2027. So whenever Valve's hybrid console launches, expect the price to reflect the shortage. </p><p>There is no current official release date for the Steam Machine or the Steam Frame VR headset. Stay tuned for more info. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/vr-ar/the-steam-frame-is-the-vr-headset-ive-longed-for-but-i-cant-get-over-this-one-key-spec">The Steam Frame is the VR headset I've longed for — but I can't get over this one key spec</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/valve-quietly-discontinues-its-most-affordable-steam-deck">Valve quietly discontinues its most affordable Steam Deck</a></li><li><a href="https://www.tomsguide.com/computing/valve-just-dropped-a-massive-hint-that-the-steam-deck-2-could-switch-to-arm-heres-why">Valve just dropped a massive hint that the Steam Deck 2 could switch to Arm — here's why</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Frame will take over VR in 2026 — 3 key features I can't wait for ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/vr-ar/steam-frame-will-take-over-vr-in-2026-3-key-features-i-cant-wait-for</link>
                                                                            <description>
                            <![CDATA[ Valve's Steam Frame is hitting shelves in early 2026, and it's already looking to be the standalone VR headset to get thanks to a few unique features. Here's why it's at the top of my list of devices to get in 2026. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Mno6UTH2EuNc8SFcgjwime</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/axkbzggT6NdCLp9FUJ9xH-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 02 Jan 2026 08:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VR &amp; AR]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/axkbzggT6NdCLp9FUJ9xH-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Frame]]></media:description>                                                            <media:text><![CDATA[Valve Steam Frame]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Frame]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/axkbzggT6NdCLp9FUJ9xH-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There's been a lull in the VR space. Since the release of the <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a>, along with the more affordable <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3s-review">Quest 3S</a>, there hasn't been much in the way of headsets to expand the scope of virtual reality. Well, Valve changed this with the announcement of the <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a>. </p><p>Kicking off a new era of hardware devices from Valve, along with the <a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">Steam Machine</a> and new Steam Controller, the upcoming VR headset is gearing up to be <em>the </em>virtual reality device to grab for PC VR gaming. It's not like it has much competition, with the latest <a href="https://www.tomsguide.com/computing/vr-ar/htc-vive-focus-vision-review">HTC Vive Focus Vision</a> arriving back in 2024 and Meta <a href="https://www.roadtovr.com/meta-horizon-os-third-party-headset-cancelled-asus-lenovo/" target="_blank">pausing plans</a> for third-party VR headsets from Asus and Lenovo.</p><p>In any case, that gives the Steam Frame plenty of time to shine. Not only is it a bonafide "PC," according to Valve, but it's also made for VR and non-VR gaming. It may not be the mixed-reality headset some were expecting (no full color passthrough cameras here), but with a <em>huge </em>backlog of VR and non-VR PC games via SteamOS it can delve into, the gaming giant's priorities have become clear. </p><p>This is a VR headset made for PC gaming, through and through, and Valve is delivering a host of unique features I can't wait to try out. If these tools give me the best experience while playing the mythical <a href="https://www.tomsguide.com/computing/half-life-3-and-steam-machine-could-be-delayed-and-you-can-blame-the-ram-price-crisis-for-that">Half-Life 3</a> (if it ever comes out), then the Steam Frame will have achieved its goals. </p><h2 id="optimized-for-your-eyes">Optimized for your eyes</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:2341px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="6Rtek72xGr6M7EswS4BvuQ" name="Valve Steam Frame" alt="Person wearing Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/6Rtek72xGr6M7EswS4BvuQ.jpg" mos="" align="middle" fullscreen="" width="2341" height="1317" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>One of the most premium features to come out of headsets like the <a href="https://www.tomsguide.com/computing/augmented-reality/apple-vision-pro-m5-2025-review">Apple Vision Pro</a> and <a href="https://www.tomsguide.com/computing/augmented-reality/galaxy-xr-review">Samsung Galaxy XR headset</a> is eye tracking. Lo and behold, the Steam Frame will arrive with two interior cameras just for that — but for something more than just navigation or selecting apps. </p><p>A unique feature Valve is introducing with the Steam Frame is Foveated Streaming. This feature will track your eyes to bring the best image quality to where you're looking. It's said to bring "over a 10x improvement" in details, and works for all games in Steam. </p><p>Essentially, it uses eye-tracking data to boost the quality of pixels of exactly where you're looking, with everything else in your peripheral vision at a lower quality. Not that you would notice, as this would be blurry, anyway. Not only will this give you the best visual quality, but it also reduces bandwidth needs for smoother, less resource-heavy gameplay. </p><p>It's a genius move from Valve, one that will take full advantage of the 2160 x 2160 pancake lenses with up to a 144Hz refresh rate, especially for streaming. That should beat the quality of its standalone headset competitor, the Quest 3, with its 2,064 x 2,208 pixels per eye resolution. </p><p>Since Meta's headset can already offer up some truly stunning VR games, I imagine the Steam Frame will push the bar even further in visual quality thanks to this feature. But speaking of streaming...</p><h2 id="seamless-streaming">Seamless streaming</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:1845px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="ghp6A3aqEWeRLqYHRabqFV" name="Valve Steam Frame" alt="Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/ghp6A3aqEWeRLqYHRabqFV.jpg" mos="" align="middle" fullscreen="" width="1845" height="1038" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Initially, I wasn't too impressed with <a href="https://www.tomsguide.com/computing/vr-ar/the-steam-frame-is-the-vr-headset-ive-longed-for-but-i-cant-get-over-this-one-key-spec#viafoura-comments">Valve opting for a last-gen Snapdragon 8 Gen 3 chip</a> over the latest and greatest processors on offer. It's a standalone headset, after all, but that wasn't much of an issue when I saw that it was made for a "high quality streaming-first experience."</p><p>Valve includes a 6GHz wireless adapter with the VR headset, and it aims to bridge the gap between wireless, standalone VR gaming and powerful PC VR gaming. How so? Through a simple dongle that connects the Steam Frame to a PC. </p><p>The adapter uses a dual-radio system that has one dedicated to streaming the audio and visuals, and the other purely for Wi-Fi. It lightens the load on bandwidth, and it should be a wildly significant improvement for wireless PC VR gameplay and 2D Steam titles, especially over Meta's <a href="https://www.tomsguide.com/news/oculus-quest-2-killer-upgrade-just-went-live-how-pc-streaming-works">Air Link</a>. </p><p>For those with one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-laptops">best gaming laptops</a> or <a href="https://www.tomsguide.com/us/best-gaming-pc,review-2219.html">best gaming PCs</a>, it will turn the Steam Frame into a mighty VR headset — no wires needed. I mean, imagine having an RTX 50-series GPU while playing a VR title like <a href="https://www.tomsguide.com/news/half-life-alyx-review-roundup">Half-Life: Alyx</a> or a non-VR game such as <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a>, right on your face. </p><p>Now, I've heard that the<strong> </strong><a href="https://www.tomsguide.com/computing/vr-ar/confirmed-steam-frame-will-lack-this-apple-vision-pro-and-meta-quest-feature-at-launch-valve-says-its-on-our-list">Steam Frame doesn't support stereoscopic 3D rendering</a>, meaning we won't see 2D games or content with a three-dimensional effect like the Quest or Vision Pro headsets. It would make gameplay <em>that </em>much more immersive, but at the very least, the gaming giant states that it's "on the list."</p><p>So, better visuals and PC-powered gameplay via wireless streaming, but how easy will it be to play VR <em>and</em> non-VR games on the fly? Valve found a solution with its controllers. </p><h2 id="controllers-for-everything">Controllers for everything</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="V2WRYAbgWtTT4mK4sdBj6C" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/V2WRYAbgWtTT4mK4sdBj6C.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Those Steam Frame VR controllers sure look familiar... some inspiration from the Meta Quest 3's Touch Plus controllers, perhaps? No complaints here, but there's a key difference that gives Valve's new VR controllers an edge. </p><p>The controllers feature a full range of VR-focused tech, including 6DoF (degrees of freedom) tracking, haptic feedback, capacitive finger tracking and sensing on all input surfaces and dual-stage grip buttons, too. Plus, they run on AA batteries to offer up 40 hours of gameplay, as Valve claims. </p><p>But put those two controllers together, and you'll find that these look more like a traditional gamepad split in two. That's for good reason, as the VR controllers will also work on Steam's entire library of non-VR games. </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="n5qdfqq22rBpJzNYkGA3HB" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/n5qdfqq22rBpJzNYkGA3HB.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>You'll get your typical D-pad, triggers, bumpers, ABXY buttons and thumbsticks as with the <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">best gaming PC controllers</a>, just with VR optimizations. So, 6DoF (degrees of freedom) tracking, haptic feedback, capacitive finger tracking and sensing on all input surfaces and dual-stage grip buttons, too.</p><p>What may be the best addition of all is the full-size magnetic <a href="https://www.tomsguide.com/gaming/gaming-peripherals/so-long-hall-effect-im-only-using-controllers-with-tmr-sensors-from-now-on">TMR thumbsticks</a> (Tunnel Magnetoresistance), which offer up even more precise levels of accuracy than what Hall Effect is capable of. </p><p>I'm sure the upcoming Steam Controller will be a better fit for playing PC games on the Steam Frame for a more precise, traditional feel (there will even be a virtual Steam Controller that shows up in the headset's VR space if you grab one), but a full-blown set of controllers for both VR and PC gaming? I mean, the split Joy-Cons work for the ever-popular <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a>, so why not for Valve's VR headset? </p><p>Of course, it's only a matter of time until we see all of this in action once Valve launches its Steam Frame. But already, it's looking to have the features to top our list of the <a href="https://www.tomsguide.com/best-picks/best-vr-headsets">best VR headsets</a>. Fingers crossed the price isn't too high...</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/smart-glasses/ray-ban-meta-glasses-just-got-a-big-upgrade-9-new-features-to-try-now">Ray-Ban Meta glasses just got a big upgrade: 9 new features to try now</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-was-stoked-for-the-steam-machine-but-this-one-thing-could-be-a-deal-breaker">I was stoked for the Steam Machine — but this one thing could be a deal-breaker</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/i-binge-watched-shows-using-metas-horizon-tv-hub-on-quest-3-heres-the-good-the-bad-and-the-immersive">I binge-watched shows using Meta's Horizon TV hub on Quest 3 — the good, the bad and the immersive</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I test gaming handhelds for a living — and this was my favorite of 2025 ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/handheld-gaming/i-test-gaming-handhelds-for-a-living-and-this-was-my-favorite-of-2025</link>
                                                                            <description>
                            <![CDATA[ In 2025, several notable gaming handhelds were released, but only one ran on SteamOS. Here's why the Legion Go S with SteamOS is my favorite handheld of 2025. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TW8NF6YQnFuF4fb3qHkn7g</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/vvwa4nNLJqTc2Ya6Tkd6t7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 26 Dec 2025 11:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/vvwa4nNLJqTc2Ya6Tkd6t7-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Lenovo Legion Go S SteamOS]]></media:description>                                                            <media:text><![CDATA[Lenovo Legion Go S SteamOS]]></media:text>
                                <media:title type="plain"><![CDATA[Lenovo Legion Go S SteamOS]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/vvwa4nNLJqTc2Ya6Tkd6t7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>2025 was a banner year for the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best handheld gaming consoles</a>. We saw new and updated systems from Asus, MSI and Lenovo. And these weren’t just spec bumps, as SteamOS finally left Valve’s ecosystem, and we finally got a more handheld-friendly version of Windows. There were several handhelds to choose from, but one stood out above the rest.</p><p>And which handheld was that? If you’ve read my articles or have seen our handheld videos on the <a href="https://www.youtube.com/@TomsGuideUS">Tom’s Guide YouTube channel</a>, then you know it’s the <a href="https://www.tomsguide.com/gaming/handheld-gaming/the-lenovo-legion-go-s-with-steamos-is-the-gaming-handheld-ive-been-waiting-for">Lenovo Legion Go S with SteamOS</a>. This machine has exactly what I’ve wanted from a handheld, namely, it runs on <a href="https://www.tomsguide.com/us/steamos-faq-machines,news-17614.html">SteamOS</a> and packs the still-powerful AMD Ryzen Z1 Extreme chip. That one-two punch helps it compete with the more powerful <a href="https://www.tomsguide.com/gaming/handheld-gaming/lenovo-legion-go-2-review">Legion Go 2</a> and <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a>.</p><p>Here’s why the Lenovo Legion Go S with SteamOS is my favorite gaming handheld of 2025.</p><h2 id="steamos-is-the-magic-sauce">SteamOS is the magic sauce</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fUGgWGJhQbLwYE9VHTecPi" name="Legion Go S testing-5" alt="Lenovo Legion Go S" src="https://cdn.mos.cms.futurecdn.net/fUGgWGJhQbLwYE9VHTecPi.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>SteamOS is the most handheld-friendly operating system since it is specifically designed to work for such systems. Because of that, it’s easy to navigate through menus and jump straight into your games. If you’re familiar with the <a href="https://www.tomsguide.com/opinion/steam-deck-oled-is-the-must-buy-handheld-of-2023-and-the-perfect-holiday-gift-for-gamers">Steam Deck OLED</a> or Steam Big Picture mode on desktop, you’ll feel right at home.</p><p>Unlike with Windows 11 handhelds such as the original <a href="https://www.tomsguide.com/reviews/asus-rog-ally">Asus ROG Ally</a>, you won’t spend an inordinate amount of time setting up the Legion Go S. Like the Steam Deck, you can start playing games in less than ten minutes. This is impossible on a Windows 11 handheld. This alone makes the Legion Go S more palatable to the average person.</p><p>The Legion Go S might not be the most powerful handheld available, but the fact that it runs on SteamOS gives it a huge advantage over machines that run stock Windows. It’s the first third-party manufacturer to utilize SteamOS on a handheld, but I suspect it won’t be the last. In that sense, we can view the Legion Go S as a pioneer.</p><h2 id="strong-handheld-performance">Strong handheld performance</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zUGdwFRL3hsNmfGNq66ABA" name="Lenovo Legion Go S (SteamOS)-11" alt="Lenovo Legion Go S SteamOS" src="https://cdn.mos.cms.futurecdn.net/zUGdwFRL3hsNmfGNq66ABA.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>I reviewed the high-end SteamOS Legion Go S, which packs an AMD Ryzen Z1 Extreme chip and 32GB of RAM. You might not get the best performance out of the box; however, with the right settings, you can enjoy extremely smooth gameplay for a handheld.</p><p>For instance, at 1200p resolution, medium graphical settings and FSR disabled, <a href="https://www.tomsguide.com/gaming/doom-the-dark-ages-review">Doom: The Dark Ages</a> runs at a pretty poor 25 frames per second. The frame rate can hit 35 fps with the frame-boosting FSR enabled, and between 56 to 61 fps if you drop the resolution to 800p. Games don’t look as sharp at that lower resolution, but they also don’t look terrible.</p><p>While the Legion Go S with SteamOS doesn’t deliver mind-blowing performance, it’s still a very capable machine if you’re willing to spend some time fiddling with a game’s settings. Seeing this kind of performance on a handheld is quite impressive.</p><h2 id="comfortable-design">Comfortable design</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="G6CRcBvnueThNYa7uSKLvE" name="Lenovo Legion Go S (SteamOS)-13" alt="Lenovo Legion Go S SteamOS" src="https://cdn.mos.cms.futurecdn.net/G6CRcBvnueThNYa7uSKLvE.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Legion Go S ditches the removable controllers of the <a href="https://www.tomsguide.com/reviews/lenovo-legion-go">Legion Go</a> (and Legion Go 2) and instead has a uniform design that’s similar to the <a href="https://www.tomsguide.com/gaming/handheld-gaming/asus-rog-ally-x-review">Asus ROG Ally X</a> or <a href="https://www.tomsguide.com/gaming/handheld-gaming/msi-claw-a8-review">MSI Claw A8</a>. While detachable controllers are cool, I prefer this kind of handheld design. Not only is this design classy, but it also helps the Legion Go S feel more comfortable to hold.</p><p>I’m a fan of the asymmetrical Hall Effect thumbsticks, which accurately respond to even the most subtle movements. I also can’t forget about the rounded D-pad, which is pretty darn good for fighting games. The big face buttons and easy-to-reach shoulder buttons are also great.</p><p>Though the Steam Deck is still more comfortable to hold since it’s thinner and lighter, the Legion Go S is still one of the most ergonomic handhelds available.</p><h2 id="bottom-line-2">Bottom line</h2><p>The Lenovo Legion Go S with SteamOS was tailor-made for me since it features my favorite handheld OS on a device with strong performance and an ergonomic design. It’s a great system on its own, but it also promises a brighter future for handhelds since we’re no longer shackled to Windows on non-Valve machines.</p><p>Though it’s admittedly pricy, the SteamOS version of the Legion Go S is worth the money if you want something more powerful than the Steam Deck that offers the same user-friendly interface. It’s not the <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-2">Steam Deck 2</a>, but it’s close enough for me.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/thinking-about-buying-a-handheld-console-heres-how-to-choose-the-right-one-for-you">5 tips for buying a gaming handheld</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-review-gaming-handhelds-for-a-living-and-these-are-the-3-i-would-buy-with-my-own-money">These are the 3 gaming handhelds I would buy with my own money</a></li><li><a href="https://www.tomsguide.com/gaming/playstation/playstation-6-handheld-could-take-inspiration-from-the-nintendo-switch-per-new-leak">PlayStation 6 handheld could take inspiration from the Switch</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve quietly discontinues its most affordable Steam Deck ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/handheld-gaming/valve-quietly-discontinues-its-most-affordable-steam-deck</link>
                                                                            <description>
                            <![CDATA[ Valve has discontinued its most affordable Steam Deck. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Vn3mFDyC56AcPBiET9HufJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/yxQxzs5y7HZvkj7x6dxxK6-1280-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sun, 21 Dec 2025 19:55:42 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Alyse Stanley ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/BxNnQuBWRHqkv5xWZsjrjc.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Alyse Stanley is a news editor at Tom’s Guide, overseeing weekend coverage and writing about the latest in tech, gaming, and entertainment. Before Tom’s Guide, Alyse worked as an editor for the Washington Post’s sunsetted video game section, Launcher, where she also wrote about indie games you shouldn’t miss, how to tackle your gaming backlog, and all things Nintendo. She previously led Gizmodo’s weekend news desk covering breaking tech news and has written game reviews and features for outlets like Polygon, Unwinnable, and Rock, Paper, Shotgun. A recent Chicago-area transplant born and raised in Virginia, Alyse is a big fan of horror movies, cartoons, and roller skating. She&#039;s also a puzzle fan and can often be found contributing to the NYT Connections coverage on Tom&#039;s Guide &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/yxQxzs5y7HZvkj7x6dxxK6-1280-80.png">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Deck]]></media:description>                                                            <media:text><![CDATA[Steam Deck]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Deck]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/yxQxzs5y7HZvkj7x6dxxK6-1280-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you were hoping to check out Valve's hit handheld gaming PC this Christmas without shelling out for the newer, pricier <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck OLED</a>, I've got some bad news. This week, Valve announced it's discontinuing the $399 256GB LCD Steam Deck, the original version that launched in 2022 with an LCD screen. </p><p>In a short notice on its <a href="https://store.steampowered.com/steamdeck" target="_blank">Steam Deck page</a> (h/t <a href="https://www.gamingonlinux.com/2025/12/valve-discontinuing-the-last-steam-deck-lcd-model/" target="_blank">GamingOnLinux</a>), the company confirmed it's "no longer producing the Steam Deck LCD 256 GB model," and that "once sold out, it will no longer be available." In whatever's the opposite of a Christmas miracle, it looks like the LCD model is already sold out, at least in the U.S. Gamers now only have the option between the Steam Deck OLED with 512GB of storage ($549) or 1TB ($649). </p><p>Valve didn't explain why it's ending production, and we've reached out for more information. If I had to wager a guess, it's likely the <a href="https://www.tomsguide.com/news/live/ram-price-crisis-updates">recent surge in RAM prices</a> ate into the company's profit margins for the LCD model too much to justify making more. PC component prices are only expected to rise as we head into 2026, inflating the costs even further. A huge influx of demand from AI and data center companies has hoovered up available supplies of standard DRAM chips, a shortage compounded by manufacturers shifting production to make the kind of RAM that fuels cloud computing, as seen in the likes of <a href="https://www.tomsguide.com/news/chatgpt" target="_blank">ChatGPT</a> and <a href="https://www.tomsguide.com/ai/google-gemini/gemini-3-is-here-googles-most-powerful-ai-model-yet-is-crushing-benchmarks-improving-search-and-outperforming-chatgpt" target="_blank">Gemini</a>.</p><p>It's a bummer for gamers on a budget. Though the Steam Deck OLED bumped it from our <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best handheld gaming consoles</a> ranking, the original Steam Deck is an absolute workhorse for the price. I got mine in 2023, and it's still chugging along nicely. To play the <a href="https://www.tomsguide.com/best-picks/best-PC-games">best PC games</a> on the go, I tend to reach for something more powerful like the <a href="https://www.tomsguide.com/gaming/handheld-gaming/lenovo-legion-go-steamos-review">Lenovo Legion Go S with SteamOS</a>, but it can handle some of my favorite indie games and even Baldur's Gate 3 without breaking a sweat. Handheld gaming PCs already had a reputation for being pricey, and now the cheapest option on the market is the base <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-review" target="_blank">Asus ROG Ally</a>, starting at $489. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-was-stoked-for-the-steam-machine-but-this-one-thing-could-be-a-deal-breaker">I was stoked for the Steam Machine — but this one thing could be a deal-breaker</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/nintendo-switch-2-vs-steam-deck-oled-i-took-both-on-a-trip-to-determine-the-best-gaming-handheld">Nintendo Switch 2 vs Steam Deck OLED — I took both on a trip to determine the best gaming handheld</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/microsoft-promises-to-improve-pc-gaming-in-2026-but-will-it-be-enough-to-topple-steam">Microsoft promises to improve PC gaming in 2026, but will it be enough to topple Steam?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Steam Frame is the VR headset I've longed for — but I can't get over this one key spec ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/vr-ar/the-steam-frame-is-the-vr-headset-ive-longed-for-but-i-cant-get-over-this-one-key-spec</link>
                                                                            <description>
                            <![CDATA[ Valve's Steam Frame is already looking to take over VR headsets in 2026, but is it as powerful as we think? I see one key upgrade it could have. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">cQgNRWkYW3C6Re4XKmPWnZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/xXAsG95xpdDjJHrHgAER2R-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 21 Dec 2025 10:15:00 +0000</pubDate>                                                                                                                                <updated>Sun, 21 Dec 2025 23:20:30 +0000</updated>
                                                                                                                                            <category><![CDATA[VR &amp; AR]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/xXAsG95xpdDjJHrHgAER2R-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Person wearing Valve Steam Frame]]></media:description>                                                            <media:text><![CDATA[Person wearing Valve Steam Frame]]></media:text>
                                <media:title type="plain"><![CDATA[Person wearing Valve Steam Frame]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/xXAsG95xpdDjJHrHgAER2R-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>After years of keeping it under wraps, Valve finally unveiled the <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a>. Not only has it easily become my most anticipated VR headset of 2026 (I mean, there isn't much competition... for now), but I also foresee it being the main way I play VR games <em>and </em>non-VR PC games. </p><p>There's a lot going for this standalone headset: Valve introduced Foveated Streaming that enhances image details to where your eyes are looking, there's a 6GHz wireless adapter for uninterrupted, high-quality PC gaming, it brings pancake lenses featuring 2160 x 2160 panels with up to a 144Hz refresh rate and the controllers are essentially a normal gamepad split in two. </p><p>That's just to name a few of its many welcome features. The <a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">Steam Machine</a> and new Steam Controller impress, but as someone who makes the most of the <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a>, I have high hopes that the Steam Frame will introduce a new era of VR <em>and</em> PC gaming — Valve does call it a "PC," after all. </p><p>But there's one element that's been nagging me after pitting the <a href="https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-vs-meta-quest-3-heres-how-the-vr-headsets-compare">Steam Frame and Quest 3</a> against each other. There I was, scrolling through Valve's list of specs until I came across its processor, and in a very Jack Skellington-like fashion, I exclaimed, "what's this?"</p><p>Valve decided to use a <a href="https://www.tomsguide.com/news/qualcomm-snapdragon-8-gen-3">Snapdragon 8 Gen 3</a> processor to power its Steam Frame, despite the chip launching in 2023. It's not the latest, nor has it been used for XR devices. Surely, there was room for an upgrade. So, just how powerful will it be to play demanding VR and non-VR titles? And will it be able to keep up with the <a href="https://www.tomsguide.com/best-picks/best-vr-headsets">best VR headsets</a>?</p><h2 id="behind-the-times">Behind the times?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="V2WRYAbgWtTT4mK4sdBj6C" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/V2WRYAbgWtTT4mK4sdBj6C.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Based on a 4nm process and using ARM64 architecture, Qualcomm's Snapdragon 8 Gen 3 in the Steam Frame is the very same chip that powers the likes of the <a href="https://www.tomsguide.com/reviews/samsung-galaxy-s24">Samsung Galaxy S24</a> and <a href="https://www.tomsguide.com/reviews/oneplus-12">OnePlus 12</a>. In case you missed it, we should soon see the <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s26-everything-we-know-so-far">Galaxy S26</a> equipped with the next-gen might of the <a href="https://www.tomsguide.com/phones/android-phones/qualcomms-snapdragon-8-elite-gen-5-promises-big-performance-and-ai-upgrades-and-we-could-see-them-in-the-galaxy-s26-ultra">Snapdragon 8 Elite Gen 5</a>. </p><p>That's just around the corner, and Qualcomm has even dubbed it the "world's fastest mobile system on chip." That's not just marketing hype; we've <a href="https://www.tomsguide.com/phones/android-phones/snapdragon-8-elite-gen-5-benchmarks-apples-a19-pro-meets-its-match">benchmarked the Snapdragon 8 Gen 5</a> ahead of its official launch on smartphones, and it beats the likes of the A19 Pro found in the <a href="https://www.tomsguide.com/phones/iphones/iphone-17-pro-max-review">iPhone 17 Pro Max</a> in performance and graphics. </p><p>I don't know about you, but that sounds like a great fit for a next-gen VR headset that's also releasing in 2026. But perhaps there are a few reasons the Steam Frame was given the Gen 3 processor over the latest and greatest. One could be that it wasn't geared to deliver the performance of a Gen 5 chipset, and it just wasn't the right timing. </p><p>Valve has been working on the Steam Frame even before its first VR headset, the Valve Index, was released in 2019, as noted by <a href="https://www.roadtovr.com/steam-frame-development-timeline-started-before-index/">Road to VR</a>. It's clearly been long in development, and in those six years, the company may have settled on the Snapdragon 8 Gen 3 and worked around the chip. </p><p>Now, while it would of course be great to see one of the most powerful mobile chips on the market make its way onto the Steam Frame to deliver cutting-edge performance, I wouldn't want to knock the VR headset so soon. One perk, at least, is that a past-gen processor should take the price down a peg or two, but there's more to it. </p><h2 id="unexpected-power">Unexpected power</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:1792px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XuB3esXkip3NJd8UyqVgL" name="Valve Steam Frame" alt="Person using Valve Steam Frame with controller" src="https://cdn.mos.cms.futurecdn.net/XuB3esXkip3NJd8UyqVgL.jpg" mos="" align="middle" fullscreen="" width="1792" height="1008" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>So, if not the latest chip Qualcomm has to offer, then why not an XR-focused chip? Well, this is where Valve will have made the better choice. </p><p>Valve wanted to use the Snapdragon 8 Gen 3 over usual XR chips, like the Snapdragon XR2 Gen 2 in the Quest 3 or the XR2+ Gen 2 in the <a href="https://www.tomsguide.com/computing/augmented-reality/galaxy-xr-review">Samsung Galaxy XR</a> headset, to prioritize gaming performance thanks to its higher CPU frequency, according to <a href="https://steamdb.info/blog/steam-hardware-2025/" target="_blank">SteamDB</a>. </p><p>Plus, it will support Valve's Proton translation layers and Fex emulation to allow <a href="https://www.tomsguide.com/computing/valve-just-dropped-a-massive-hint-that-the-steam-deck-2-could-switch-to-arm-heres-why">Windows PC games on Arm devices</a> (a.k.a. the Steam Frame), which is a massive leap forward in letting PC games be played on, well, anything. However, for a standalone VR headset, using the Snapdragon 8 Gen 3 will see performance benefits. </p><p>It's tricky to benchmark the Snapdragon XR2 Gen 2 chips, but we know it's based on the Snapdragon 8 Gen 2. Plus, the XR2+ Gen 2 processor offers 15% higher GPU and 20% higher CPU max frequency for XR headsets, but is only a minimal bump to support higher display resolutions for spatial computing. </p><p>With this in mind, we can see the performance gains based on our benchmarks in smartphones, like the <a href="https://www.tomsguide.com/reviews/oneplus-12">OnePlus 12</a> with a Snapdragon 8 Gen 3 chipset and the <a href="https://www.tomsguide.com/reviews/xiaomi-13-review-a-solid-flagship-stuck-in-a-crowded-market">Xiaomi 13</a> with a Gen 2 processor. Samsung's Snapdragon chips are made for Galaxy phones, so I've left these out. </p><div ><table><caption>Benchmark scores</caption><tbody><tr><td class="firstcol empty" ></td><td  ><p><strong>OnePlus 12 (Snapdragon 8 Gen 3)</strong></p></td><td  ><p><strong>Xiaomi 13 (Snapdragon 8 Gen 2)</strong></p></td><td  ><p><strong>Qualcomm Reference Device (Snapdragon 8 Elite Gen 5)</strong></p></td></tr><tr><td class="firstcol " ><p><strong>Geekbench (single-core / multicore</strong></p></td><td  ><p>2,188 / 6,525</p></td><td  ><p>1,037 / 5,066</p></td><td  ><p>3,832 / 12,208</p></td></tr><tr><td class="firstcol " ><p><strong>3DMark Wild Life Unlimited</strong></p></td><td  ><p>117.2 fps</p></td><td  ><p>67 fps </p></td><td  ><p>40.83 fps (for 3DMark Wild Life Extreme Unlimited)</p></td></tr></tbody></table></div><p>As you can see, the Snapdragon 8 Gen 3 vastly outperforms its previous-gen sibling, especially when it comes to graphics. That said, you can see how well the Snapdragon 8 Elite Gen 5 performs, and while we didn't get the 3DMark Wild Life Unlimited test for it, we did see it perform incredibly in the much harder Wild Life Extreme Unlimited benchmark, which runs at 4K. </p><p>In any case, the main takeaway from all this is that, yes, Valve's Steam Frame will perform better than the Meta Quest 3. Well, that's hardly a surprise, seeing as the Frame comes with double the RAM at 16GB and storage at 1TB, too. But there's another interesting point. </p><p>I have to give credit to Reddit user <a href="https://www.reddit.com/r/OculusQuest/comments/16urf6u/psa_xr2_gen_2_on_the_quest_3_is_slower_than_the/" target="_blank">wwbulk</a>, showing the differences between the Snapdragon 8 Gen 2 and its Snapdragon XR2 Gen 2 counterpart. The 8 Gen 2 comes with a CPU frequency of 3.2GHz and a GPU frequency of 680MHz, while the latter sports a CPU-heavy frequency of 2.05GHz and a GPU-heavy frequency of 599MHz. </p><p>So, not only is the XR2 Gen 2 in the Quest 3 not up to par with the 8 Gen 2, but it also shows that it will be far behind the 8 Gen 3 in the Steam Frame. Of course, we'll have to see this performance in real time, but either way, when there's seamless, wireless streaming straight from the power of a PC, this standalone VR headset's power reaches new heights. </p><h2 id="the-performance-of-a-pc-too">The performance of a PC, too</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:2357px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="5eAPCXQRb6exzC6g8mGP2R" name="Valve Steam Frame" alt="Person wearing Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/5eAPCXQRb6exzC6g8mGP2R.jpg" mos="" align="middle" fullscreen="" width="2357" height="1326" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>It took some time, but the Meta Quest 3 and Quest 3S offer up PC VR gaming wirelessly via <a href="https://www.tomsguide.com/news/oculus-quest-2-killer-upgrade-just-went-live-how-pc-streaming-works">Air Link</a>. It's improved over the years, but you'll need a strong 5GHz Wi-Fi network connection (and even then, it's a tad spotty), or simply use a USB-C 3.2 wired connection for low latency. At the very least, it works well when <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3s-xbox-edition-is-real-and-after-months-of-cloud-gaming-id-choose-it-over-an-actual-xbox">streaming Xbox Cloud Gaming</a> (with fast internet). </p><p>A strong start, but the Steam Frame? It's essentially made for wireless streaming to a gaming PC. Using the 6GHz wireless adapter that comes in the box, you can pop it into your rig and start playing VR and non-VR games with a high-quality streaming experience. </p><p>Whether you've got yourself one of the <a href="https://www.tomsguide.com/best-picks/best-gaming-laptops">best gaming laptops</a> or <a href="https://www.tomsguide.com/us/best-gaming-pc,review-2219.html">best gaming PCs</a>, you can get the power of that beamed straight to your face — wirelessly. Think playing the likes of Half-Life: Alyx with the power of an RTX 50-series GPU, and the Snapdragon 8 Gen 3 chipset becomes an afterthought. (Perhaps "<em>Stream</em> Frame" may be a more fitting name? Probably not.)</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:800px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TCXxpHzVxZLe8AAcCh6Ccf" name="Meta Quest 3S" alt="Meta Quest 3S" src="https://cdn.mos.cms.futurecdn.net/TCXxpHzVxZLe8AAcCh6Ccf.gif" mos="" align="middle" fullscreen="" width="800" height="450" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Valve is making sure the Steam Frame has the finest streaming connection, using a dual-radio system that has one dedicated to streaming the audio and visuals, and the other purely for Wi-Fi. It lightens the load on bandwidth, and it should make wireless PC VR gameplay and 2D Steam titles a heck of a lot better to play on the VR headset. </p><p>Yes, the Steam Frame will work for standalone games, too, as there will even be a Steam Frame Verified program for titles, just like the <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck</a>. That will put its processor to work, but if it's not enough power, just plug in the wireless adapter and you'll be off to the virtual races.</p><p>Regardless of the Steam Frame not having the latest Snapdragon chip Qualcomm has to offer mobile devices, it will still have more than enough power to play the <a href="https://www.tomsguide.com/best-picks/best-meta-quest-3-games">best VR games</a> around. And even if it doesn't, that wireless adapter should solve the problem. My high hopes still remain for Valve's VR PC for your face, and it's only a matter of time until we see the performance this headset brings to the table. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-was-stoked-for-the-steam-machine-but-this-one-thing-could-be-a-deal-breaker">I was stoked for the Steam Machine — but this one thing could be a deal-breaker</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/i-binge-watched-shows-using-metas-horizon-tv-hub-on-quest-3-heres-the-good-the-bad-and-the-immersive">I binge-watched shows using Meta's Horizon TV hub on Quest 3 — the good, the bad and the immersive</a></li><li><a href="https://www.tomsguide.com/computing/smart-glasses/tcl-rayneo-x3-pro-smart-glasses-review">I wore the most advanced smart glasses for two months — the tech is futuristic, but the look is not</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Half-Life 3 and Steam Machine could be delayed — and you can blame the RAM price crisis for that ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/half-life-3-and-steam-machine-could-be-delayed-and-you-can-blame-the-ram-price-crisis-for-that</link>
                                                                            <description>
                            <![CDATA[ Half-Life 3 is tipped to be the Steam Machine's big launch game, but Valve may be putting the brakes on its upcoming gaming PC's release, and it's all thanks to the RAM crisis. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hCZSQdz2iyyz2TStfEAJs5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/fxjrTdyzqLUEwFD4VrQB2h-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 15 Dec 2025 11:52:45 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/fxjrTdyzqLUEwFD4VrQB2h-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Machine (left) and Half Life 3 (right) on split image]]></media:description>                                                            <media:text><![CDATA[Steam Machine (left) and Half Life 3 (right) on split image]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Machine (left) and Half Life 3 (right) on split image]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/fxjrTdyzqLUEwFD4VrQB2h-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve's <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a> is gearing up to be a hugely anticipated launch in early 2026, but thanks to the ongoing <a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM crisis</a>, we may have to wait longer to get our hands on it. And now, it could also mean one of the biggest releases in PC gaming could be pushed back: <a href="https://www.tomsguide.com/gaming/latest-half-life-3-rumors-point-to-a-2025-release-and-maybe-pigs-will-fly">Half-Life 3</a>. </p><p>As noted by Insider Gaming's Mike Straw in its <a href="https://www.youtube.com/watch?v=x7GRLcaZtgA&t=1662s" target="_blank">podcast</a>, Valve is still working out the price of its Steam Machine in response to the price hikes set by <a href="https://www.tomsguide.com/computing/laptops/worsening-ram-crisis-starting-to-impact-smartphones-and-laptops-with-worse-specs-and-higher-prices">RAMageddon</a>. Unfortunately, this may delay the launch of the small gaming PC past its expected spring 2026 release, and this is backed up by the long-awaited Half-Life 3 missing key reveal dates. </p><p>"Every single date that they were told has passed," said Straw in the Insider Gaming podcast. "Everybody I've talked to are still adament this is a game that will be a launch title with the Steam Machine. There is a concern, however, that they haven't made a decision on price... and the reason is because of PC RAM memory prices and storage prices right now." </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/x7GRLcaZtgA?start=1662" allowfullscreen></iframe></div></div><p>Not only is the memory shortage rumored to be pushing back the launch of the Steam Machine and a PC title gamers have been wanting for two decades, but it also means a possible higher price point for Valve's compact PC when it <em>does</em> arrive. </p><p>Valve has yet to officially announce the price of the Steam Machine, including its <a href="https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-vs-meta-quest-3-heres-how-the-vr-headsets-compare">Steam Frame</a> VR headset and new Steam Controller. However, we know <a href="https://www.tomsguide.com/gaming/pc-gaming/dont-expect-console-pricing-for-valves-steam-machine-unless-its-a-ps5-pro">not to expect console pricing</a>, as it aims to match the rest of the PC market. Many have speculated it could cost around $700 to $800, but with <a href="https://www.tomsguide.com/computing/laptops/worsening-ram-crisis-starting-to-impact-smartphones-and-laptops-with-worse-specs-and-higher-prices">RAM prices rising dramatically</a>, there are big concerns that number will be much higher. </p><h2 id="ram-crisis-isn-t-just-affecting-pricing">RAM crisis isn't just affecting pricing </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WLec9wkyEhDpZxRRLJYEqE" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>It's been 20 years since the release of <a href="https://www.tomsguide.com/gaming/pc-gaming/i-just-went-back-to-ravenholm-in-half-life-2-rtx-nvidias-new-rtx-remix-tech-makes-it-10x-more-terrifying">Half-Life 2</a> (and just under since Episode 2), and we've heard rumors of the now near-mythical Half-Life 3 ever since. Recently, some had hoped for a massive reveal during the <a href="https://www.tomsguide.com/news/live/game-awards-2025-live-updates-and-reveals">Game Awards 2025</a>, but (perhaps unsurprisingly) this didn't happen. </p><p>As Straw mentions, the DRAM shortage holding up the hardware likely means Valve pressing pause on software reveals. With Half-Life 3 tipped to be the Steam Machine's major launch title (which makes sense considering this is a major hardware release), this means the sought-after sequel will be pushed back. </p><p>There's still time before the Steam Machine's early 2026 launch, so Valve may land on a price by then. That said, it's clear that the company is in a tough spot in terms of the small gaming PC's cost, as it's already tipped to be more expensive than consoles like the <a href="https://www.tomsguide.com/reviews/ps5">PS5</a>, <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> and <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a>.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bK4CU877eRt4CD9h8YjRVD" name="TG_Best-Picks_Half-Life-2.jpg" alt="Half-Life 2" src="https://cdn.mos.cms.futurecdn.net/bK4CU877eRt4CD9h8YjRVD.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>It goes without saying that Valve would want to entice console buyers, and keeping the price as low as possible is how to do it. But the RAM crisis just puts another hurdle in Valve's way, so it isn't surprising we're yet to hear a decision on the final cost of the system. After all, <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-was-stoked-for-the-steam-machine-but-this-one-thing-could-be-a-deal-breaker">we're excited for the Steam Machine, but the price could be a deal-breaker</a>. </p><p>Perhaps Valve is waiting for RAM pricing to even out after the initial impact, or thinking of another strategy to keep the starting price low. In any case, we may have to wait longer for the Steam Machine, and now, even the release of Half-Life 3. Then again, after 20 years of waiting, what's a few more months? Let us know your thoughts in the comments below.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/nintendo-switch-2-vs-steam-deck-oled-i-took-both-on-a-trip-to-determine-the-best-gaming-handheld">Nintendo Switch 2 vs Steam Deck OLED — I took both on a trip to determine the best gaming handheld</a></li><li><a href="https://www.tomsguide.com/computing/macbook-and-iphone-prices-could-rise-in-2026-as-apples-ram-supply-advantage-begins-to-fade">MacBook and iPhone prices could rise in 2026, as Apple’s RAM supply advantage begins to fade</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/confirmed-steam-frame-will-lack-this-apple-vision-pro-and-meta-quest-feature-at-launch-valve-says-its-on-our-list">Confirmed: Steam Frame will lack this Apple Vision Pro and Meta Quest feature at launch — Valve says it's 'on our list'</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Game Awards 2025 live — all the reveals, announcements, trailers and all the winners ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/news/live/game-awards-2025-live-updates-and-reveals</link>
                                                                            <description>
                            <![CDATA[ The Game Awards 2025 is set to be the biggest night in gaming, with the best of the year honored and brand new games revealed. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UQ87guPnXp5uT2SD8DFpge</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/aQoTzc6q8kssrcZECQGWYJ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 11 Dec 2025 17:02:29 +0000</pubDate>                                                                                                                                <updated>Fri, 12 Dec 2025 15:23:16 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ rory.mellon@futurenet.com (Rory Mellon) ]]></author>                    <dc:creator><![CDATA[ Rory Mellon ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5Rv6LtQXMj5JB4Eu8Lt4Sn.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                        <dc:contributor><![CDATA[ Dave LeClair ]]></dc:contributor>
                                            <dc:contributor><![CDATA[ Scott Younker ]]></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/aQoTzc6q8kssrcZECQGWYJ-1280-80.jpg">
                                                            <media:credit><![CDATA[The Game Awards / Geoff Keighley]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Game Awards 2025 image showing a Game Awards statue and the logo for the live event]]></media:description>                                                            <media:text><![CDATA[The Game Awards 2025 image showing a Game Awards statue and the logo for the live event]]></media:text>
                                <media:title type="plain"><![CDATA[The Game Awards 2025 image showing a Game Awards statue and the logo for the live event]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/aQoTzc6q8kssrcZECQGWYJ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Game Awards 2025 are over for another year. The biggest night in gaming, hosted by Geoff Keighly, celebrated the best games of the past 12 months and was packed with new reveals and exciting trailers.</p><p>RPG Clair Obscur: Expedition 33 dominated the awards. It went into the night with a record-setting 13 nominations, and ultimately took home eight out of a possible 10, including Game of the Year. Other winners included Donkey Kong Bananza, Hades 2 and ARC Raiders.</p><p>As for the new trailers, there was plenty to get gamers hyped. From the reveal of Star Wars: Fate of The Old Republic, to that mysterious statue being revealed as a teaser for Larian's next game, Divinity. Other highlights included Control: Resonant and two new Tomb Raider games. </p><p>The Game Awards are always the biggest annual event in the gaming calendar, and if you missed any of the show, you can read through our live coverage that includes all the biggest reveals and the full winners.</p><h3 class="article-body__section" id="section-how-to-watch-the-game-awards-2025"><span>How to watch The Game Awards 2025</span></h3><p>The Game Awards 2025 took place on Thursday, December 12. While the show has now concluded. You can watch it back on demand if you missed the live broadcast or just want to relive your favorite moments.</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/d-BDeU3R5ic" allowfullscreen></iframe></div></div><h3 class="article-body__section" id="section-live-latest-updates"><span>LIVE — Latest Updates</span></h3><h2 id="welcome-to-the-game-awards-2025-live">Welcome to The Game Awards 2025 live</h2><p>Hello! Welcome to our live coverage of The Game Awards 2025. I’m Rory, a Senior Entertainment Editor at Tom’s Guide, and I’ll be guiding you through the biggest night in gaming, with some help from my fellow gaming-obsessed colleagues. Showtime is still several hours away, but we’ve got plenty of rumors, leaks, and maybe even a prediction or two to dive into to help pass the time until the awards begin live, so let’s get started…</p><h2 id="the-secret-of-the-desert-statue-may-have-been-solved">The secret of the desert statue may have been solved </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="39cdBMLtSmscmZ5PySAtsL" name="game-awards-statue-image" alt="The Game Awards statue in the Mojave Desert" src="https://cdn.mos.cms.futurecdn.net/39cdBMLtSmscmZ5PySAtsL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: KingVision18 / PC Gamer)</span></figcaption></figure><p>If you've been following along with the pre-show hype surrounding The Game Awards 2025, you'll know the online gaming community has been in a frenzy trying to work out what new game a mysterious statue placed in the Mojave Desert is teasing. </p><p>There have been plenty of guesses and theories, from Saros to Lords of the Fallen 2 to Elder Scrolls Online. Then we also had theories about why it had to be for Diablo 4 DLC, or a new FromSoftware title, or even a new God of War game. And those are just the tip of the iceberg. There have been so <em>many </em>predictions. </p><p>However, it appears that the internet may have cracked the code, as reported by our friends over at <a href="https://www.pcgamer.com/games/rpg/the-mystery-of-the-game-awards-statue-in-the-desert-may-be-solved-and-i-have-to-admit-i-did-not-see-this-one-coming/">PC Gamer</a>, a European trademark filing might have just spoiled the surprise. Here's your <strong>spoiler warning</strong>, if you want to keep the mystery alive until it's revealed during the Game Awards 2025...</p><p>It appears that the statue is for the latest game from Larian, developer of Baldur's Gate 3. Based on the trademark filing, which includes a logo that matches up with images on the statue, it'll be a new game in the studio's long-running Divinity series. And it might be a new reboot just called Divinity.</p><h2 id="these-are-the-6-games-up-for-goty">These are the 6 games up for GOTY</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XUqUzFx4LqP29HP7XL8A9X" name="Clair Obscur Expedition 33_Screenshot_15" alt="A Clair Obscur: Expedition 33 screenshot showing Lune and Gustave (L-R) standing on a battlefield with the Paintress' monolith in the background" src="https://cdn.mos.cms.futurecdn.net/XUqUzFx4LqP29HP7XL8A9X.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sandfall Interactive)</span></figcaption></figure><ul><li><em>Clair Obscur: Expedition 33</em></li><li><em>Death Stranding 2: On the Beach</em></li><li><em>Donkey Kong Bananza</em></li><li><em>Hades 2</em></li><li><em>Hollow Knight: Silksong</em></li><li><em>Kingdom Come Deliverance 2</em></li></ul><p>Like most awards show, there is one prize that every developer wants to win most, and at The Game Awards, that is Game of the Year. The six nominees are listed above. Clair Obscur: Expedition 33 is the bookie's favorite, and it has a record-setting 13 nominations, so the odds of it walking home empty handed are pretty remote. However, Donkey Kong Bananza looks the most likely to put off an upset, but if I was putting my own money on a winner, I'd say Clair Obscur.</p><h2 id="lara-croft-will-appear-at-game-awards-2025">Lara Croft will appear at Game Awards 2025</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wy6B5D3NU3QGGBnUSv8hxC" name="tombraider.jpg" alt="Lara Croft in Tomb Raider (2013) game poster" src="https://cdn.mos.cms.futurecdn.net/wy6B5D3NU3QGGBnUSv8hxC.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>One of gaming's biggest icons is confirmed to make an appearance at The Game Awards 2025: Lara Croft. </p><p>The <a href="https://x.com/tombraider/status/1998102351358669148?s=20" target="_blank">franchise's official social media accounts</a> took to X (formerly Twitter) to announce that the show will include "a look at the future" of the Tomb Raider series. Rumors have been flying around about a new Tomb Raider game for a while, so that will likely be the announcement (though it could be an update on the upcoming Prime Video show, which stars Sophie Turner as Lara Croft). </p><p>The last mainline Tomb Raider game was Shadow of the Tomb Raider, released in 2018, which capped off the popular "survivor" reboot trilogy. Will the next Tomb Raider game be a continuation, a fresh reboot, or maybe even a remake of one of Croft's classic adventures? We've only got to wait a few hours to find out.</p><h2 id="did-valve-finally-learn-to-count-to-3">Did Valve finally learn to count to 3?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.50%;"><img id="EL4BNcsdh6Jw4E8MTJU2iC" name="Half Life 2.jpg" alt="Half-Life 2 keyart showing Gordon Freeman" src="https://cdn.mos.cms.futurecdn.net/EL4BNcsdh6Jw4E8MTJU2iC.jpg" mos="" align="middle" fullscreen="" width="1200" height="678" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve/PC Gamer)</span></figcaption></figure><p>No bamboozle. We might actually be merely a few hours from the reveal of Half-Life 3. Since the release of Half-Life 2: Episode Two in October 2007, it's become the gaming white whale for millions of players, and part of a long-running joke that Valve can't count to three (the Portal franchise also went dormant after Portal 2).</p><p>But this year, the internet noise and unverified insider leaks that point towards Half-Life 3 being real, and maybe even coming soon, have been more prominent than ever. There was much speculation that Valve might confirm the game alongside the announcement of its new <a href="https://www.tomsguide.com/news/live/valve-steam-machine-2025">Steam Machine</a>. That didn't happen. </p><p>However, the hardware is set to launch in 2026, and it stands to reason that Valve would want a flagship game to showcase its new machine. Could that be Half-Life 3? Fans have been burnt before, so I wouldn't place a bet on it appearing tonight, but for now, I'm dreaming of a world where Half-Life 3 is confirmed. </p><h2 id="resident-evil-9-s-big-surprise-may-have-been-leaked">Resident Evil 9's big surprise may have been leaked</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2tqeSY7WPbmdRewccWcqtQ" name="Resident_Evil_Requiem_-_Screenshot_2" alt="Resident Evil Requiem" src="https://cdn.mos.cms.futurecdn.net/2tqeSY7WPbmdRewccWcqtQ.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: Capcom)</span></figcaption></figure><p>We know that Resident Evil Requiem is going to be showcased at The Game Awards 2025, but thanks to a PlayStation Store listing, the big surprise of this new trailer might have just been spoiled (news comes via <a href="https://www.gamesradar.com/games/horror/please-act-surprised-resident-evil-requiem-stars-leon-kennedy-and-i-cant-imagine-capcom-is-too-pleased-about-playstation-leaking-that-fact/">GamesRadar</a>). </p><p>The listing image for Resi 9 was recently updated on the PlayStation Store, and it now includes none other than Leon S. Kennedy himself. His inclusion in the upcoming survival-horror game has been rumored for a while, but this essentially confirms it. But will he be playable or just a mentor to new playable protagonist, Grace Ashcroft? </p><p>Leon is a fan-favorite character and star of arguably the most beloved installment in the series, Resident Evil 4, so I've no doubt Resi players will be pleased (after all, I'm a huge Resident Evil fan myself, and I'm certainly happy). </p><p>We don't know for sure, but it's a very safe prediction at this point that whatever Capcom has to show Game Awards viewers tonight will include Leon!</p><h2 id="this-game-award-winner-looks-like-a-complete-lock">This Game Award winner looks like a complete lock</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hyce8Ftu8N8gj3Dx5Dqg6b" name="gta-6-Jason_Duval_01" alt="Grand Theft Auto VI screenshot" src="https://cdn.mos.cms.futurecdn.net/hyce8Ftu8N8gj3Dx5Dqg6b.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rockstar)</span></figcaption></figure><p>Returning to the awards part of the Game Awards, while several categories will no doubt be fiercely contested (I'm really not sure who will scoop Best Art Direction), there's one that looks very easy to predict: Most Anticipated Game. </p><p>This award looks to the future and picks an upcoming title that gamers around the world can't wait to play. The nominees include highly anticipated releases like Marvel's Wolverine and The Witcher IV, but surely, the award is Rockstar's to lose. Grand Theft Auto VI is set to be the biggest entertainment launch in history, and the launch of a new GTA is a special thing because they happen so rarely.  </p><p>I will be stunned if Geoff Keighley is calling out any name other than GTA 6 when the Most Anticipated Game award is dished out. </p><h2 id="i-m-desperate-to-see-more-of-the-duskbloods">I'm desperate to see more of The Duskbloods</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="GKs4E7arM3wLC6sh8LZ33B" name="Nintendo Switch 2 Direct" alt="Nintendo Switch 2 Direct" src="https://cdn.mos.cms.futurecdn.net/GKs4E7arM3wLC6sh8LZ33B.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: Nintendo)</span></figcaption></figure><p>Let's dive into my own personal wishlist for The Game Awards 2025. The one game that I'm really hoping is included in the numerous trailers coming us our is a new look at The Duskbloods. </p><p>This Nintendo Switch 2 exclusive comes from Dark Souls and Elden Ring developer FromSoftware, and as somebody who's fallen in love with From's work over the past three years (sorry, it took me so long to warm up to Souls), I can't wait to dive into their new PvPvE experience. </p><p>With an aesthetic that looks more than a little reminiscent of their 2015 game Bloodborne (the studio's magnum opus to many From fans), I can't wait to see more from The Duskbloods. It's confirmed to launch in 2026, so it feels like the right time to get a fresh peak at the game, maybe even a hard release date?</p><h2 id="this-game-awards-hype-trailer-will-get-you-hyped">This Game Awards 'hype trailer' will get you... hyped</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/7RpWks5qh_4" allowfullscreen></iframe></div></div><p>At the start of the week, Geoff Keighley posted a "hype trailer" for the Game Awards 2025, running through some of the best moments of the 2025 nominees. And kudos to Mr. Keighley because it certainly does its job, and then some. </p><p>I'm of the opinion that 2025 has been a slightly weaker year for gaming compared to the excellent few years we've recently enjoyed (2023 was a real corker), but it's a great reminder that we've been treated to some great gaming experiences over the past 12 months. Give it a watch, and let the hype build. </p><h2 id="what-time-do-the-game-awards-2025-start">What time do the Game Awards 2025 start?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JUfJpkaMRDzgCNj9vEJ4on" name="game-awards-2025-image-live-blog-02" alt="Game Awards 2025 keyart showing a statue award and the show's logo and date" src="https://cdn.mos.cms.futurecdn.net/JUfJpkaMRDzgCNj9vEJ4on.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Game Awards / Geoff Keighley)</span></figcaption></figure><ul><li><strong>4:30 p.m. PT - U.S. (Pacific)</strong></li><li><strong>7:30 p.m. ET - U.S. (Eastern)</strong></li><li><strong>12:30 a.m. GMT (Dec. 12) - U.K.</strong></li><li><strong>9:30 a.m. JST (Dec. 12) - Japan</strong></li><li><strong>11:30 a.m. AEST (Dec. 12) - Australia</strong></li></ul><p>Want to make sure you don't miss a moment of The Game Awards 2025? Above I've listed the show's start time. It's well-timed for the folks in the U.S., naturally, as it's an awards show held in North America, but for those in Europe, expect a late night. I'm sure it'll be worth the lost sleep!</p><h2 id="dave-tagging-in">Dave tagging in</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:1200px;"><p class="vanilla-image-block" style="padding-top:56.50%;"><img id="EL4BNcsdh6Jw4E8MTJU2iC" name="Half Life 2.jpg" alt="Half-Life 2" src="https://cdn.mos.cms.futurecdn.net/EL4BNcsdh6Jw4E8MTJU2iC.jpg" mos="" align="middle" fullscreen="" width="1200" height="678" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve/PC Gamer)</span></figcaption></figure><p>This is Dave LeClair, Senior News Editor, tagging in for Rory to discuss the Game Awards and bring you the latest details and rumors as we approach the event so Rory can take a breather. </p><p>And no, I personally don't see Half-Life 3 ever happening, not at the awards show tonight or in the future. But in the world of video games, you just never know. </p><h2 id="the-game-awards-temperature-check">The Game Awards temperature check</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VaUnGcfqdYa9dKQghKMYVa" name="PS5 restock.jpg" alt="PS5 restock" src="https://cdn.mos.cms.futurecdn.net/VaUnGcfqdYa9dKQghKMYVa.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I'm curious how many of you are excited for the Game Awards and whether you plan to watch the show live, follow along but not watch, or ignore it completely. </p><p>If you'd like your voice to be heard, please vote in the poll below, and I'll let you know where everyone stands once the dust settles (or you can make a Tom's Guide account to find out the results right away).</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-O6VrBO"></div>                            </div>                            <script src="https://kwizly.com/embed/O6VrBO.js" async></script><h2 id="massive-breaking-news-from-geoff-keighley">MASSIVE breaking news from Geoff Keighley</h2><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">There will be new game announcements tonight at The Game Awards.<a href="https://twitter.com/cantworkitout/status/1999189488959148158">December 11, 2025</a></p></blockquote><div class="see-more__filter"></div></div><p>I can't believe what I just read on X. There will be game announcements tonight at The Game Awards. I'm so glad he cleared that up; otherwise, we probably wouldn't have known this was happening.</p><p>Jokes aside, The Game Awards will most certainly have some big game news coming out of it. There's a lot of speculation regarding what games will be announced, and some big leaks like Lara Croft's presence, but we'll have to wait until the show to get confirmation of what is coming. </p><p>No matter how you slice it, it's an exciting evening to be a gamer!</p><h2 id="assassin-s-creed-at-the-game-awards">Assassin's Creed at The Game Awards</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NLpeN4RrdSKf8B8PT7rTkC" name="Assassin's Creed" alt="Ezio from Assassin's Creed franchise" src="https://cdn.mos.cms.futurecdn.net/NLpeN4RrdSKf8B8PT7rTkC.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Ubisoft)</span></figcaption></figure><p>I've been an Assassin's Creed fan since the first game, and I really peaked during the AC2 era with Ezio. Assassin's Creed IV: Black Flag was also among my favorite games in the series, as it introduced some of the best ship combat in gaming history. </p><p>Now, there's a rumor floating around that Ubisoft may rerelease Black Flag under the title "Black Flag Resynced," as shown on the PEGI ratings board. The information was deleted quickly, but once the internet got hold of it, the rumors started flying.</p><p>The board didn't specifically mention The Game Awards, but it would make sense for Ubisoft to announce the remake there, as it'll have the attention of a large portion of the gaming world.</p><h2 id="007-did-an-oops">007 did an oops?</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/nTUoIyTMw0Q" allowfullscreen></iframe></div></div><p>A trailer for the upcoming 007 First Light game from Hitman developer IO hit the internet today, but was quickly deleted (the trailer above isn't the leaked one).</p><p>Clearly, someone pulled the trigger on that one before they were supposed to. But as is always the case on the internet, people noticed immediately, and word spread fast.</p><p>With the accidental trailer hitting the internet, we can assume it'll show up at The Game Awards tonight, especially because the 007 game is scheduled to hit the market in just a few months on March 27, 2026.   </p><h2 id="spotify-and-the-game-awards">Spotify and The Game Awards</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:2432px;"><p class="vanilla-image-block" style="padding-top:52.22%;"><img id="5TL33hhFwBgYthuqep2vYB" name="Screenshot 2025-12-11 at 3.01.11 PM" alt="Spotify The Game Awards" src="https://cdn.mos.cms.futurecdn.net/5TL33hhFwBgYthuqep2vYB.png" mos="" align="middle" fullscreen="" width="2432" height="1270" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Spotify)</span></figcaption></figure><p>Spotify teamed up with The Game Awards to spotlight the composers and songs that define the gaming experience.</p><p>"To get in the game, we’ve commissioned three brand-new Spotify Singles from artists who are also avid gamers," said Spotify in a <a href="https://newsroom.spotify.com/2025-12-11/game-awards-spotify-singles-evanescence-gunship-labrinth-bilmuri/" target="_blank">blog post</a>. It's an interesting mix with Labrinth reimagining a Sonic song, Bilmuri playing a song from Cyberpunk: Edgerunners, and Evanescence and GUNSHIP teaming up to play a track from Devil May Cry.</p><p>If you want to check it out, </p><h2 id="wait-a-trailer-costs-how-much">Wait, a trailer costs how much?!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:60.00%;"><img id="aPeES2Kec7X7M6mH4MjBzM" name="shutterstock_137691590-money-scam.jpg" alt="Money trap" src="https://cdn.mos.cms.futurecdn.net/aPeES2Kec7X7M6mH4MjBzM.jpg" mos="" align="middle" fullscreen="" width="1500" height="900" attribution="" endorsement="" class="inline"></p></div></div></figure><p>According to a <a href="https://kotaku.com/game-awards-geoff-keighley-tickets-trailers-clair-obscur-2000652243" target="_blank">Kotaku report</a>, having a trailer on The Game Awards is expensive. Really expensive. </p><p>According to two of Kotaku's sources familiar with this year’s show, a one-minute trailer can cost up to $450,000 and a three-minute trailer costs over $1 million. For small developers, that three-minute trailer is probably out of reach. Even $450,000 is a lot for a developer who spends only a couple of hundred thousand on their entire development cost.</p><p>But that extra cost comes with extra eyeballs. The Game Awards continue to grow each year and have become a primary promotional platform for upcoming video games. You could even argue that the trailers are a bigger part of The Game Awards than the awards themselves.</p><p>I'm not suggesting that it should be cheaper — the video game world converging on one event is expensive. But it is unfortunate that smaller developers are left out of the event unless they can scrape together some serious money.</p><h2 id="wholesome-excitement">Wholesome excitement</h2><blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:pmgake5ztgmqcrcmlri7g3vo/app.bsky.feed.post/3m7pwj3j26k2k" data-bluesky-cid="bafyreidwxrtvjnnv7fjwninbio2pgqsqrai63kn23zvm7jktcg3ifyrrcu"><p lang="en">We’re deeply honored that HADES II is in the running for Game of the Year and more at #TheGameAwards tonight, especially since we’re in the company of such an amazing group of wildly different and beautiful games.Congratulations to all our fellow nominees — we salute you!! 🙏👏</p>— @supergiantgames.bsky.social (<a href="https://bsky.app/profile/did:plc:pmgake5ztgmqcrcmlri7g3vo?ref_src=embed">@supergiantgames.bsky.social.bsky.social</a>) <a href="https://bsky.app/profile/supergiantgames.bsky.social/post/3m7pwj3j26k2k">2025-12-11T21:00:28.841Z</a></blockquote><p>Supergiant Games, developer of Hades 2, has shared a heartfelt message on Bluesky ahead of The Game Awards.</p><p>The developer even shared a cute image showing the characters from some of the Game of the Year nominees on the red carpet. It's adorable and wholesome, and it makes us even more excited to tune in to tonight's shows.</p><p>The company's social media post finishes off with, "Congratulations to all our fellow nominees — we salute you!! 🙏👏"</p><h2 id="no-witcher-3-dlc-sorry-fans">No Witcher 3 DLC... Sorry fans</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ExHiiYsrCmBQ59FvyGFMYR" name="witcher-3-wild-hunt-steam-01.jpg" alt="Witcher 3" src="https://cdn.mos.cms.futurecdn.net/ExHiiYsrCmBQ59FvyGFMYR.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: CD Projekt Red)</span></figcaption></figure><p>The Witcher 3 is one of my favorite games of all time, and getting some new content to bridge the gap before the next game (presumably called The Witcher 4) would be nice. </p><p>Recently, a leak from a reliable industry insider, RockAlone2k, said CD Projekt Red would announce new content at The Game Awards, but that appears to be inaccurate. </p><p>During an investor call, CD Projekt Red joint CEO Michał Nowakowski said that the studio would not have any new content at this year’s show, ending the speculation.</p><p>Or does the company just want to preserve the surprise? We'll find out soon, but it's unlikely that Nowakowski would lie on an investor call about something as significant as that.</p><h2 id="scott-swinging-through">Scott swinging through</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wy6B5D3NU3QGGBnUSv8hxC" name="tombraider.jpg" alt="Lara Croft in Tomb Raider (2013) game poster" src="https://cdn.mos.cms.futurecdn.net/wy6B5D3NU3QGGBnUSv8hxC.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>Hey, this is Scott Younker, West Coast Reporter, subbing in for Dave to talk about the Game Awards and bring you any news or rumors as we get closer to the event. </p><p>Speaking of, the livestream kicks off in less than two hours, though the show won't start until 4:30 p.m. PT/7:30 p.m. ET/12:30A UK. </p><p>A new era of Tmb Raider is supposed to be announced tonight, which I'm personally excited for even if I did burn out on the last trilogy.</p><h2 id="tomb-raider-catalyst-leak">Tomb Raider Catalyst leak</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:1024px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d9RqAnmReNsYzVhY6SYCuX" name="tomb_raider_underworld.jpg" alt="tomb raider" src="https://cdn.mos.cms.futurecdn.net/d9RqAnmReNsYzVhY6SYCuX.jpg" mos="" align="middle" fullscreen="" width="1024" height="576" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Square Enix)</span></figcaption></figure><p>As mentioned in my last post, something Tomb Raider is supposed to be announced at the Game Awards. </p><p>Now we might know the title thanks to a leak: Tomb Raider Catalyst. According to a <a href="https://www.reddit.com/r/TombRaider/comments/1pk4c4i/to_be_announced_titles/" target="_blank">Reddit post</a> in the Tomb Raider subreddit, two new titles are coming: a remake and an original game.</p><p>The remake titled 'Tomb Raider: Legacy of Atlantis' appears to be a remake of the original Lara Croft game. This one is supposedly going to be a "unified" retelling that combines the original story with characters and plots from the Survivor trilogy.</p><p>Tomb Raider: Catalyst looks to be a new game following Croft through Northern India after a "mythical cataclysm." </p><p>Color me interested</p><h2 id="indie-games-strike-big-at-the-games-awards-show">Indie games strike big at the Games Awards Show</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8czudngbhmgYKNEbGn93pB" name="Expedition 33_Cast Reveal_Screenshot 04 (1)" alt="Gustave looks down the lens in a screenshot from Clair Obscur: Expedition 33" src="https://cdn.mos.cms.futurecdn.net/8czudngbhmgYKNEbGn93pB.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sandfall Interactive)</span></figcaption></figure><p>If you're looking for an interesting read before the Awards Show starts might I suggest this <a href="https://www.reddit.com/r/TombRaider/comments/1pk4c4i/to_be_announced_titles/" target="_blank">article from Bloomberg</a>.</p><p>It explores how lower-budget titles are seeing big wins and acclaim from the industry and players alike. Just as major studios have been slashing jobs and closing studios left and right in an attempt to...make more money somehow.</p><p>It also features interviews with people across the industry who claim that AAA titles will decline over the next few years. We'll see.</p><h2 id="so-what-awards-won-t-clair-obscur-win">So what awards won't Clair Obscur win</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MkhgvU7pdcdmrfSiijLpKP" name="Expedition 33_Release Date Announce_Screenshot 11" alt="Clair Obscur: Expedition 33 screenshot featuring the party talking to a paintbrush-like Gestral creature" src="https://cdn.mos.cms.futurecdn.net/MkhgvU7pdcdmrfSiijLpKP.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sandfall Interactive)</span></figcaption></figure><p>Clair Obscur: Expedition 33 has been nominated for 11 awards at the show tonight, the most ever by one game at the Game Awards. It's expected to handily win several of them, if not all.</p><p>There are 20 awards that don't feature the popular RPG. A full list of which you can find <a href="https://www.forbes.com/sites/paultassi/2025/12/11/heres-the-full-nominee-list-for-the-game-awards-2025-in-all-categories/">here</a>.</p><h2 id="a-little-less-than-two-hours-to-show-time">A little less than two hours to show time</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yea58eALRRArEVk4dtxYB9" name="game-awards-2025-image-live-blog" alt="An image of a Game Awards award statue on a blue background" src="https://cdn.mos.cms.futurecdn.net/yea58eALRRArEVk4dtxYB9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Game Awards / Geoff Keighley)</span></figcaption></figure><p>We're less than two hours until show time. Pre show kicks off in less than 90 minutes. </p><p>The livestream will be available on YouTube, Twitch, Steam, Prime Video, X, TikTok, Instagram, Kick, Gamespot and IGN. The full list is <a href="https://thegameawards.com/watch" target="_blank">here</a>.</p><p>Or you can scroll up to the top of this nice little live blog and find the YouTube stream embedded. </p><h2 id="tom-s-guide-awards-coming-soon">Tom's Guide Awards coming soon</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tPo9yo8DGLiPzvqSJQW9VN" name="TG Best Games of 2024" alt="Best Games of 2024" src="https://cdn.mos.cms.futurecdn.net/tPo9yo8DGLiPzvqSJQW9VN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Credit: Studio Zero/Camouflaj/Team Asobi/Game Science)</span></figcaption></figure><p>Did you know that Tom's Guide puts together our own Game Awards list? We do!</p><p>Gamers from across our masthead debated and chose from games that we actually played this year. That list will be launching in the coming days. </p><p>In the meantime, you should check out the winners of the <a href="https://www.tomsguide.com/gaming/our-favorite-games-of-2024-ps5-nintendo-switch-xbox-series-x-and-pc">best games from 2024</a>. Plus, we also highlighted <a href="https://www.tomsguide.com/gaming/12-best-games-of-2024-that-you-probably-missed-on-ps5-switch-xbox-series-x-and-pc">13 games that you may have missed</a> last year.</p><h2 id="new-wildflower-game">New Wildflower game</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MR6Nm2pAAbYLKdJqXiwSTK" name="Uncharted_4_meerkat.jpg" alt="Uncharted 4" src="https://cdn.mos.cms.futurecdn.net/MR6Nm2pAAbYLKdJqXiwSTK.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Naughty Dog)</span></figcaption></figure><p>Wildflower Interactive is a new studio headed by Bruce Straley, formerly of Naughty Dog and the game director for the Uncharted series and The Last of Us.</p><p>The studio teased an announcement on X yesteday.</p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">ICYMI - Just one day left until we announce our first game at #TheGameAwards 👀🕰️Subscribe for updates: https://t.co/1IMqFWYHP1 pic.twitter.com/EFyy5zeWXB<a href="https://twitter.com/cantworkitout/status/1998813714342900029">December 10, 2025</a></p></blockquote><div class="see-more__filter"></div></div><p>I am a big fan of Uncharted and The Last of Us, so I'm really excited to see what Straley comes up with. </p><p>I do wonder if this is a situation where he has the magic touch or if some combination of him, Amy Hennig, and Neil Druckmann helped push those Naughty Dog games to their heights. We shall see. </p><h2 id="the-game-awards-pre-show-kicks-off-soon">The Game Awards Pre-Show kicks off soon</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/d-BDeU3R5ic" allowfullscreen></iframe></div></div><p>The livestream for The Game Awards is supposed to start at 4 pm PT/7 pm PT/12 am UK. That's 10 minutes from now.</p><p>I'm not sure if it will just be a 10 minute countdown or if there will be videos or interviews beforehand. Usually, Geoff Keighley shows do feature something like that ahead of the main show so I'm expecting something similar but a schedule has not been released.</p><h2 id="what-are-you-interested-in">What are you interested in?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="yea58eALRRArEVk4dtxYB9" name="game-awards-2025-image-live-blog" alt="An image of a Game Awards award statue on a blue background" src="https://cdn.mos.cms.futurecdn.net/yea58eALRRArEVk4dtxYB9.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Game Awards / Geoff Keighley)</span></figcaption></figure><p>Outside of the Awards themselves, we expect to see a ton of trailers, previews and fluffy interviews. </p><p>Is there anything that you're excited to see or want to know more about? Let us know, we want to hear your opinion as well.</p><h2 id="15-minutes-until-pre-showtime">15 minutes until (pre)showtime!!!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JUfJpkaMRDzgCNj9vEJ4on" name="game-awards-2025-image-live-blog-02" alt="Game Awards 2025 keyart showing a statue award and the show's logo and date" src="https://cdn.mos.cms.futurecdn.net/JUfJpkaMRDzgCNj9vEJ4on.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Game Awards / Geoff Keighley)</span></figcaption></figure><p>Hey all, it's Rory here. I'm back online, refreshed and ready to guide you through The Game Awards 2025 from start to finish. The pre-show starts in just 30 minutes, which will give some winners in a few of the (smaller) categories, and our very first reveals and new trailers. So, if you haven't already, now is the time to get your snacks and drinks ready, as The Game Awards 2025 are about to begin...</p><h2 id="there-s-time-for-one-last-prediction">There's time for one last prediction</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:920px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="YjQgFQT9J6kopyr5nu4evh" name="Playstation store.jpg" alt="PlayStation Store Holiday Sale" src="https://cdn.mos.cms.futurecdn.net/YjQgFQT9J6kopyr5nu4evh.jpg" mos="" align="middle" fullscreen="" width="920" height="518" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sony)</span></figcaption></figure><p>Now that we're just a few minutes away from the pre-show, and the start of The Game Awards 2025, I'm throwing out one last prediction. Although, this one is more of a hopeful wish than something I'm confident will actually happen. </p><p>I have a feeling we might see <em>something </em>new from PlayStation Studios tonight. We already know that Saros, the spiritual follow-up to 2021's Returnal, is going to be featured with a new look, and last year Naughty Dog took to the Game Awards stage to announce its new game, Intergalactic: The Heretic Prophet. </p><p>It's clear that Sony likes revealing things at this show, and I'm keeping my fingers crossed the iconic PlayStation logo pops up at the 2025 Game Awards as well.</p><h2 id="the-countdown-to-launch-has-begun">The countdown to launch has begun</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/d-BDeU3R5ic" allowfullscreen></iframe></div></div><p>If you haven't already, now is the time to boot up your stream of The Game Awards 2025 (But if you can't watch along, you're in the right place, as I'll bring you all the news as it happens live). The Game Awards 2025 stream is LIVE, and the five minute countdown timer is underway. This year's show is almost here...</p><h2 id="the-game-awards-2025-pre-show-is-live">The Game Awards 2025 pre-show is LIVE</h2><p>It's time, The Game Awards 2025 pre-show has just gone live. We've got 30 minutes of this, and then we dive into the main event. So let's see the first winners and the first new games revealed from Peacock Theatre, L.A.</p><h2 id="the-first-announcement-of-the-night-is">The first announcement of the night is..</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:2816px;"><p class="vanilla-image-block" style="padding-top:68.89%;"><img id="yyQsagFmps92Ssuwo8bhjC" name="IMG_0009" alt="The GAme Awards" src="https://cdn.mos.cms.futurecdn.net/yyQsagFmps92Ssuwo8bhjC.png" mos="" align="middle" fullscreen="" width="2816" height="1940" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TGA)</span></figcaption></figure><p>The Free Shepherd, a new indie game coming to PS5 in 2027, and it looks like you play as an adorable dog in a mysterious, somewhat spooky, open world</p><h2 id="winner-donkey-kong-bananza-wins-best-family-game">Winner: Donkey Kong Bananza wins Best Family Game</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="xRozaDv7iRn4yNJaj7RBXL" name="Donkey Kong Bananza" alt="Donkey Kong Bananza screenshot" src="https://cdn.mos.cms.futurecdn.net/xRozaDv7iRn4yNJaj7RBXL.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Nintendo)</span></figcaption></figure><p>Right after our first new trailer, we get our first winner of the night, and it's a pretty predictable one, Donkey Kong Bananza wins Best Family Game. This one was I had in my Game Awards pool, so I'm pretty pleased to start off strong.</p><h2 id="another-soulslike-for-the-pile">Another Soulslike for the pile</h2><p>If you're a Souls superfan, here's a new announcement for you, Decrepit. It's a first-person action game made by a huge fan of FromSoftware's work, and that influence clearly shows.   </p><h2 id="winner-doom-the-dark-ages-wins-best-accessibility">WINNER: Doom The Dark Ages wins Best Accessibility </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VegSqUshqinfD8muqWMEW8" name="DOOM The Dark Ages_06_Slayer" alt="Doom: The Dark Ages" src="https://cdn.mos.cms.futurecdn.net/VegSqUshqinfD8muqWMEW8.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Bethesda Softworks)</span></figcaption></figure><p>Accessibility is a increasingly important topic in gaming, and Doom the Dark Ages takes home this award!</p><h2 id="pragmata-is-getting-a-demo-today">Pragmata is getting a demo today</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GmcGfnYEsLzbT9SXuMePsj" name="PRAGMATA_SS_09" alt="Pragmata screenshot" src="https://cdn.mos.cms.futurecdn.net/GmcGfnYEsLzbT9SXuMePsj.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Capcom)</span></figcaption></figure><p>Capcom is getting the stage next as we see the latest from its upcoming sci-fi game Pragmata! It's releasing on April 24, 2026, and it's now been announced for Nintendo Switch 2. So you can save the world on your handheld device!</p><h2 id="the-first-of-likely-many-awards-for-clair-obscur-expedition-33">The first (of likely many) awards for Clair Obscur Expedition 33</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XUqUzFx4LqP29HP7XL8A9X" name="Clair Obscur Expedition 33_Screenshot_15" alt="A Clair Obscur: Expedition 33 screenshot showing Lune and Gustave (L-R) standing on a battlefield with the Paintress' monolith in the background" src="https://cdn.mos.cms.futurecdn.net/XUqUzFx4LqP29HP7XL8A9X.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sandfall Interactive)</span></figcaption></figure><p>It's predicted to be the big winner of the night, and Clair Obscur Expedition 33 has already scooped it's first statue of the evening, Best Independent Game. There was so controversy about it being eligible for this category, but it's not a huge surprise to see it picking up the win. I doubt it'll be it's only of the night. </p><h2 id="bradley-the-badger-looks-like-silly-fun">Bradley the Badger looks like silly fun</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="2pxSGQWrePWDMLr7sM8gVC" name="THE GAME AWARDS 2025_ ASL Feed 1-9-20 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/2pxSGQWrePWDMLr7sM8gVC.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>Another new game, and it's Bradley the Badger. I'm getting some big Conkers vibe from this colorful looking title, and that's certainly not a bad thing. </p><h2 id="another-new-game-confirmed">Another new game confirmed</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="n6kgk5A7tcJeUwWXkNmnwR" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-9-27 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/n6kgk5A7tcJeUwWXkNmnwR.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: Future)</span></figcaption></figure><p>Stupid Never Dies! is the last reveal of the pre-show, and it looks well a little stupid, to be honest It's a zombie guy with a colorful style, not sure it's for me, but if you like the undead mixed with over the top humor, you might like it!</p><h2 id="winner-the-last-of-us-season-2-wins-best-adaptation">WINNER: The Last of Us season 2 wins Best Adaptation</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="JRdUc829xBvLJk2ZeH2pUf" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-11-33 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/JRdUc829xBvLJk2ZeH2pUf.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: Future)</span></figcaption></figure><p>The Last of Us season 2 picks up Best Adaptation, and as somebody who was very unimpressed by the HBO show's take on one of my favorite video games of all time, I'll just say, it certainly wouldn't have been mine pick of the award...</p><h2 id="now-it-s-time-for-the-real-show">Now it's time for the REAL show</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="jzJvTaZT4EqAYwq2ASRKPD" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-14-27 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/jzJvTaZT4EqAYwq2ASRKPD.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: Future)</span></figcaption></figure><p>The pre-show is over, and now we're heading into the real deal, it's time for The Game Awards 2025! The show begins with a performance from one of the tracks from Clair Obscur: Expedition 33's soundtrack, and it's a pretty magical moment.</p><h2 id="geoff-has-taken-to-the-stage">Geoff has taken to the stage</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="C9awVTVVLMCbbAgS4T2Evf" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-18-51 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/C9awVTVVLMCbbAgS4T2Evf.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: Future)</span></figcaption></figure><p>The man himself, Geoff Keighley has taken to the Game Awards stage. First up he thanks all the watchers at home, including those in Europe staying up late for the showcase, and I feel seen!</p><h2 id="i-think-we-ll-be-seeing-diablo-tonight">I think we'll be seeing Diablo tonight...</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="Af8Q3aA5VNFpVJDZMgiyX8" name="Diablo 4.jpg" alt="Diablo 4" src="https://cdn.mos.cms.futurecdn.net/Af8Q3aA5VNFpVJDZMgiyX8.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: Microsoft)</span></figcaption></figure><p>In all the madness of the pre-show and build-up, you might have missed that the official <a href="https://x.com/Diablo/status/1999223592655982638?s=20" target="_blank">Diablo social account</a> took to X to tease that "death has arrived" in L.A. </p><p>I think we're going to be seeing something from Diablo over the next couple of hours!</p><h2 id="winner-hades-2-wins-best-action-game">WINNER: Hades 2 wins Best Action Game</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="joTRG2XfkagWQ52npfCpde" name="hades-2-screenshot.jpg" alt="Hades 2 screenshot" src="https://cdn.mos.cms.futurecdn.net/joTRG2XfkagWQ52npfCpde.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Supergiant Games)</span></figcaption></figure><p>The hellishly good (that's a term right?) Hades 2 just scooped Best Action Game in the first award of the main event. Hades 2 is also up for Game of the Year, and got perfect scores from several outlets, so this one feels very well deserved. </p><h2 id="our-first-world-premiere-of-the-game-awards-2025">Our first world premiere of The Game Awards 2025</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="EKEKfpvyBJkRrgNxqHEPW" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-27-16 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/EKEKfpvyBJkRrgNxqHEPW.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: Future)</span></figcaption></figure><p>And here we go, it's time for the first reveal of The Game Awards 2025, and I'm getting a HUGE Star Wars vibe from the opening moments of this trailer... </p><h2 id="star-wars-knight-of-the-old-republic-is-back">Star Wars Knight of the Old Republic is BACK</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="yrHicfdZYEVfUCB4Mbvj47" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-27-41 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/yrHicfdZYEVfUCB4Mbvj47.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: Future)</span></figcaption></figure><p>Bingo! I was spot on, Star Wars Fate of the Old Republic has just been announced, it appears to be a follow-up to the beloved Star Wars Knights of the Old Republic RPG, and as Geoff said, "it's going to be hard to top that one". </p><h2 id="looks-like-the-mystery-of-the-statue-is-being-revealed-next">Looks like the mystery of the statue is being revealed next</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="EZsdpMCTt5K3yt8DEMiQ5j" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-33-35 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/EZsdpMCTt5K3yt8DEMiQ5j.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>After a few ads for Capcom games, Battlefield Redsec and John Carpenter's Toxic Commando The Video Game, Geoff confirms it's time to put an end to gaming's most controversial mystery. I think this is the big statue reveal we've been waiting for. Will it be Divinity as I predicted earlier?</p><h2 id="well-that-was-one-intense-trailer-for-divinity">Well that was one INTENSE trailer for Divinity</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="YbHwqZhnHqx44mkGAQTz33" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-34-28 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/YbHwqZhnHqx44mkGAQTz33.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 trailer is brutal. People are being burned at the stake, and I'm a little freaked out. But also, I definitely want to play this game! It looks like the rumors were true, it's the new game from Baldur's Gate 3 dev Larian, and it's called Divinity (as the European trademark filing spoiled, thanks European trademark board)! </p><h2 id="winner-jennifer-english-wins-best-performance-for-clair-obscur">WINNER: Jennifer English wins Best Performance for Clair Obscur</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HGNE2fv8Af29JwzWbHrzJj" name="Clair Obscur Expedition 33_Screenshot_19 (1)" alt="Maelle performs a flourishing attack in a battle in Clair Obscur: Expedition 33" src="https://cdn.mos.cms.futurecdn.net/HGNE2fv8Af29JwzWbHrzJj.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sandfall Interactive)</span></figcaption></figure><p>The second (And I'll say now, won't be last) award for Clair Obscur: Expedition 33. Jennifer English wins Best Performance for her incredible work as Maelle, hugely well deserved, her voice brought that compelling character to life masterfully.</p><h2 id="4-loop-a-new-game-from-jj-abrams-and-playstation">4 Loop, a new game from JJ Abrams and PlayStation</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="aiu5TwdytThiqmKMb9ov9D" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-43-12 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/aiu5TwdytThiqmKMb9ov9D.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>I thought we might see something new from PlayStation, and it looks like I was right (pat on the back for me). The game is called 4 Loop, and JJ Abrams is involved. It appears to be an online co-op game (I think?) with a quirky sci-fi tone. I'm not super sold, but with the recent success of ARC Raiders, it too might be able to find a space in the increasingly crowded live service battlegrounds.</p><h2 id="coven-of-the-chicken-foot-announced">Coven of the Chicken Foot announced </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="ctgoFeYgdgaHkHXnJxJDQi" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-47-45 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/ctgoFeYgdgaHkHXnJxJDQi.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>We've already seen some quirky game titles today, but Coven of the Chicken Foot has to be the most bizarre yet. It's got a vibrant aesthetic and looks like a puzzle-action game. You can wishlist on Steam now, I might have to just for the name!</p><h2 id="ontos-is-our-next-new-game-reveal">Ontos is our next new game reveal</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="aHP3okE4qg6zmevjo7Gqu7" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-49-32 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/aHP3okE4qg6zmevjo7Gqu7.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>Ontos is a spiritual successor to cult sci-fi-horror game Soma, which appears to be enough information to have sold by colleague, Ryan Epps, on playing! </p><h2 id="winner-south-of-midnight-wins-games-for-impact">WINNER: South of Midnight wins Games for Impact</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LUBDvDfvJYMSyi3vWxknfH" name="South of Midnight" alt="Screenshot taken from "South of Midnight" game" src="https://cdn.mos.cms.futurecdn.net/LUBDvDfvJYMSyi3vWxknfH.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Compulsion Games)</span></figcaption></figure><p>The underplayed, South of Midnight just won Games for Impact. Our reviewer really enjoyed this one back at launch, so if you skipped now it is the time to circle back. And on stage the developers confirm it's heading to PS5 and Switch 2 (no dates), so you'll soon have no excuse not to check it out. </p><h2 id="resident-evil-9-time">Resident Evil 9 time!</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RN8Td4NaRFPMmDXQ7gEeQm" name="Resident_Evil_Requiem_-_Screenshot_8" alt="Resident Evil Requiem" src="https://cdn.mos.cms.futurecdn.net/RN8Td4NaRFPMmDXQ7gEeQm.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: Capcom)</span></figcaption></figure><p>I hope you enjoy this new trailer for Resident Evil Requiem. As for me, I'm temporarily switching off my stream, because I don't want any more of Resi 9 spoiled. I'm fully sold, and don't need to see a single second more footage. </p><h2 id="leon-confirmed-as-playable-in-resi-9">Leon confirmed as playable in Resi 9</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="hn2faBcDV3ZuGyCYX57WxN" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-59-5 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/hn2faBcDV3ZuGyCYX57WxN.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>Well, I did catch Geoff's post trailer speech, Resi 9 will have two playable characters: Grace and Leon. The former will offer a traditional survival-horror experience, while Leon's portion of the game will be more action packed.</p><h2 id="puzzle-puzzles-and-even-more-puzzles">Puzzle, puzzles and even more puzzles</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="ZQSUaKt8mhtMvogcYNkpad" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-1-24 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/ZQSUaKt8mhtMvogcYNkpad.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>Do you like puzzles? Well, this new game has over 1,400 of them, it's called Order of the Sinking Star, and promises lots of head-scratchers, and also a story to keep you attention in between having to Google the solutions when you get stuck.</p><h2 id="is-that-matthew-mcconaughey">Is that Matthew McConaughey?</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="Z4KCAWXzrmRPSg6ghJbSe6" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-3-40 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/Z4KCAWXzrmRPSg6ghJbSe6.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>Exodus has just been showcased from Wizards of the Coast, and I'm pretty sure I just heard the distinctive voice of a certain Matthew McConaughey. It's set to launch in early 2027 and is an epic sci-fi game, where you seemingly have to save the universe, standard stuff. </p><h2 id="these-wizards-aren-t-done">These Wizards aren't done!</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="3ko3Tw3YNSncJHwH7xfMrX" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-7-29 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/3ko3Tw3YNSncJHwH7xfMrX.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>If the latest look at Exodus wasn't enough, we're now getting a look at another game from Wizards of the Coast: Warlock. It'll be properly showcased in summer 2026, but it's part of the Dungeons & Dragons universe, so will no doubt be popular. </p><h2 id="there-s-a-cube-on-stage-more-info-when-i-have-it">There's a cube on stage, more info when I have it</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="xjtexSXKMcGGjDLj5aoujP" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-13-33 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/xjtexSXKMcGGjDLj5aoujP.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>Well, there's a strange cube on stage! And I have no idea what it's all about! </p><h2 id="could-this-be-remedy">Could this be Remedy? </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="Lwd6QbigRJGW9koF3tVhuV" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-14-31 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/Lwd6QbigRJGW9koF3tVhuV.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>Getting a big whiff of Remedy from this CG trailer, perhaps this is the reveal of their next game, Control 2?</p><h2 id="remedy-announces-control-resonant">Remedy announces Control Resonant</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="BD5pSALUFi5xo6UFS4MhMg" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-15-59 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/BD5pSALUFi5xo6UFS4MhMg.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>Yup, it's Remedy, and it is a follow-up to Control. Coming in 2026, it looks awesome, and the trailer promises it's "going to get weirder." I'm day one!</p><h2 id="gang-of-dragon-is-the-next-trailer-up">Gang of Dragon is the next trailer up</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="Kiez38NN9jEjZRuNEs2gk9" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-18-31 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/Kiez38NN9jEjZRuNEs2gk9.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>I thought this might be a new Like a Dragon game, but it's close enough: Gang of Dragon. Geoff says it's "deep into development" so expect to see more, maybe.</p><h2 id="the-new-street-fighter-movie-takes-the-spotlight">The new Street Fighter movie takes the spotlight</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="nB9UrVjc3nTYsc64dxz6ve" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-22-29 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/nB9UrVjc3nTYsc64dxz6ve.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 might be The Game Awards, but there's still some time to tease some cinema, and in this case, it's very game related. A new Street Fighter movie is on the way, and the cast are being confirmed on stage, Jason Momoa is playing Blanka!!!</p><h2 id="winner-no-man-s-sky-wins-best-ongoing-game">WINNER: No Man's Sky wins Best Ongoing Game</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PAQqVYKhCM9VqysfYKLKUQ" name="No Man's Sky Mac Screen 2.jpg" alt="a screenshot of No Man's Sky on macOS" src="https://cdn.mos.cms.futurecdn.net/PAQqVYKhCM9VqysfYKLKUQ.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Hello Games)</span></figcaption></figure><p>Did you forget that this is actually an awards show? After a slew of trailers and reveals, we're turning our focus back to the awards with Best Ongoing Game. And the winner is No Man's Sky, great to see one of the game's greatest redemption stories still going strong with regular free updates! </p><h2 id="lego-batman-interrupts-the-show">LEGO Batman interrupts the show! </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="UgeUkSHL2Dn6J4kofRboTP" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-27-48 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/UgeUkSHL2Dn6J4kofRboTP.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>Just as Geoff was getting on with hosting duties, he's got a phone call from LEGO Batman, and it's leading us into a new trailer for Legacy of the Dark Knight.</p><h2 id="lego-batman-arrives-in-may-2026">LEGO Batman arrives in May 2026</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="nYbpyEJvK4p9qi5yCDRZ2a" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-29-27 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/nYbpyEJvK4p9qi5yCDRZ2a.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>LEGO Batman: Legacy of the Dark Knight looks like another enjoyable Lego adventure, and it's arriving on May 26, 2026. Nice to finally have a release date.</p><h2 id="speeding-through-the-awards-now">Speeding through the awards now</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FJ8fQ6Uw8xK3UvVKuWKYBk" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-31-0 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/FJ8fQ6Uw8xK3UvVKuWKYBk.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>I guess Geoff wants to get the awards out of the way, as we've just had four of them back-to-back announced by the host. Battlefield 6 won Best Audio, MoistCr1tikal won Best Content Creator, GTA 6 won Most Anticipated Game (duh!) and Fatal Fury: City of Wolves wins Best Fighting Game, and that takes us into another ad break (well, somebody has to foot the bill for the theatre!)</p><h2 id="girls-make-games-wins-game-changer-award">Girls Make Games wins Game Changer award</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="trZQxCvZ6SZ7AwYM5WnjbL" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-34-30 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/trZQxCvZ6SZ7AwYM5WnjbL.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 Game Awards is taking a moment to recognize the work of organization Girls Makes Games, which is great to see, and these inspiring figures deserve their moment on the stage. More of this type of stuff please, Geoff!</p><h2 id="lara-croft-s-latest-adventure-is-on-the-way">Lara Croft's latest adventure is on the way</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="RTjpCPtaVuLUdLg9rsRfhB" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-40-16 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/RTjpCPtaVuLUdLg9rsRfhB.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>We knew we'd see Tomb Raider tonight, and Tomb Raider: Catalyst is coming in 2027. This is reportedly the next mainline entry in the series, but could we see the rumored remake of Tomb Raider 1 as well?</p><h2 id="yes-tomb-raider-remake-is-real-and-looking-stunning">Yes, Tomb Raider Remake is REAL and looking stunning</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="vUxEvCSEpMkm5zRkQtvFWM" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-41-37 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/vUxEvCSEpMkm5zRkQtvFWM.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>Wow! Consider me impressed, Tomb Raider fans get a one-two punch of reveals, and the second is a remake of the first Tomb Raider game from 1996, it's called Tomb Raider: Legacy of Atlantis, a name I much prefer to something like Tomb Raider: Ultra Deluxe Edition. It'll launch in 2026, with Catalyst following in 2027. </p><h2 id="invincible-vs-is-the-next-trailer-up">Invincible VS is the next trailer up</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="RFp5LmUveA4ygmr9XssKL" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-45-58 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/RFp5LmUveA4ygmr9XssKL.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>Invincible VS is the next trailer, and pre-orders are open now. Looks pretty cool, but I'm behind on the show, so guess i'll need to catch up before playing!</p><h2 id="some-more-awards-remember-this-is-an-awards-show">Some more awards, remember this is an awards show</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="96a2Xt4Z5grXTACb4eq9bB" name="Hollow Knight Silksong-4" alt="Hollow Knight: Silksong" src="https://cdn.mos.cms.futurecdn.net/96a2Xt4Z5grXTACb4eq9bB.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Team Cherry / Tom's Guide)</span></figcaption></figure><p>Geoff just remembered this is an awards show (again), so we're pausing the trailer to hand out some statues. Hollow Knight: Silksong scoops best Action/Adventure Game, Best Art Direction goes to Clair Obscur: Expedition 33, Best Sim/Strategy Game goes to Final Fantasy Tactics, and Best Debut Indie Game is won by Clair Obscur: Expedition 33. Clair Obscur is sweeping as it stands. Game of the Year looks like a lock at this point. </p><h2 id="diablo-was-promised-and-diablo-delivers">Diablo was promised, and Diablo delivers</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="BQQV4zSMfoiwugMA9Y8QCD" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-54-46 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/BQQV4zSMfoiwugMA9Y8QCD.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>Diablo fans, your time has come. The next trailer after the ad break (Which made for the perfect time to take a bathroom trip) is for Diablo 4: Lord of Hatred the latest expansion for the seriously compelling fantasy action-RPG. It's out on April 28, 2026, and will be the perfect excuse to return to the world of Diablo 4!</p><h2 id="deadpool-is-coming-to-marvel-rivals">Deadpool is coming to Marvel Rivals</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="JmrRKNkN8VcUGSPMrYqvXX" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 2-57-33 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/JmrRKNkN8VcUGSPMrYqvXX.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 Merc with a Mouth is heading to Marvel Rivals. Yup, Deadpool is the next playable character for the popular hero shooter. Didn't love the comedy writing in this trailer, Deadpool is surprisingly tricky character to nail, but hey, it's great to see him coming to the game, and I'm sure dedicated players will be excited. </p><h2 id="winner-clair-obscur-expedition-33-wins-best-score-music">WINNER: Clair Obscur: Expedition 33 wins Best Score & Music</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="4ks4KywJLudqNYg88Fq9kE" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-2-8 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/4ks4KywJLudqNYg88Fq9kE.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 most deserved award of the night as Clair Obscur: Expedition 33 collected Best Music & Score. I've had this soundtrack on repeat for months, and I'd have written Geoff a strongly worded email if it didn't win. And for those keeping track, the Clair Obscur sweep continues, surely it has the GOTY in the bag? </p><h2 id="warframe-is-still-going-strong">Warframe is still going strong</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="yizRv8nWcpxui8P5NbcnSn" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-7-8 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/yizRv8nWcpxui8P5NbcnSn.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>A look at some new content coming to Warframe, I haven't played the game in near enough a decade now, but very cool to see it's still being updated for the dedicated players still logging into its sci-fi world.</p><h2 id="lords-of-the-fallen-2-is-the-next-trailer-actually-the-third-game">Lords of the Fallen 2 is the next trailer, actually the third game</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="omkSe2FYqqzsm3kpZ3FnMX" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-11-59 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/omkSe2FYqqzsm3kpZ3FnMX.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>Let it not be forgotten that Lords of the Fallen 2 is actually the third game in the series, as the original launched in 2014, before a reboot arrived in 2023. Still, this Soulslike sequel looks epic enough to have my attention, and I'm always on board for some tough boss battles. Meanwhile, Lords of the Fallen (2023) is getting a new 2.5 update, and yes, that's the second game in the series. It's a bit confusing.</p><h2 id="geoff-speeds-through-a-few-more-awards">Geoff speeds through a few more awards</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="akjaAU7uwdaEehpN7wS7vd" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-12-59 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/akjaAU7uwdaEehpN7wS7vd.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>Best Sports/Racing Game goes to Mario Kart World, Best Community Support goes to previous GOTY winner Baldur's Gate 3, Best VR/AR Game is Midnight Walk, Best RPG is Clair Obscur: Expedition 33 and Community Choice is Wuthering Waves. Barely a moment for these games to get their chance in the spotlight, which is a shame. But hey, Expedition 33 has to win GOTY now! </p><h2 id="i-could-not-be-more-sold-on-saros">I could not be more sold on Saros</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="7WPozUow9REicyYUoX2EDE" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-16-26 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/7WPozUow9REicyYUoX2EDE.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>I loved Returnal in 2021, so Saros, the spiritual sequel (which are clearly the trend tonight) doesn't need to work hard to grab my interest. It's out April 30, 2026, and I'll be playing on day one. The new trailer is short and sweet! </p><h2 id="winner-clair-obscur-expedition-33-wins-best-narrative">WINNER: Clair Obscur: Expedition 33 wins Best Narrative</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZMmBZrnGw3cNYJqRApLmiD" name="Clair Obscur Expedition 33_Screenshot_05 (1)" alt="Clair Obscur: Expedition 33 party members Lune, Maelle, Gustave and Sciel (L-R) standing in their uniforms in an underwater region of the game" src="https://cdn.mos.cms.futurecdn.net/ZMmBZrnGw3cNYJqRApLmiD.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sandfall Interactive)</span></figcaption></figure><p>Clair Obscur: Expedition 33 wins <em>another </em>award, Best Narrative. Richly deserved. But I'm starting to get panicky as I'm running out of images to use for posts when it wins. </p><h2 id="new-game-from-the-devs-behind-the-ascent">New game from the devs behind The Ascent</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="F4zUDSDy4HQKaPMgjJikyB" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-22-59 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/F4zUDSDy4HQKaPMgjJikyB.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>Spiritual sequels and sci-fi are the themes of this year's show, and the latest new game is called No Law, which comes from the developer of The Ascent. The trailer keeps the gameplay under wraps, but does a decent job setting a mood.</p><h2 id="musical-performance-time-as-evanescence-take-the-stage">Musical performance time as Evanescence take the stage</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="euLbDW7cq4PjUQontp7fPG" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-24-0 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/euLbDW7cq4PjUQontp7fPG.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>Now we're being treated to a musical performance from Evanescence. Strong vocals, but I'm more partially to CHVRCHES, who have played this slot before.</p><h2 id="winner-arc-raiders-wins-best-multiplayer">WINNER: ARC Raiders wins Best Multiplayer</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="JVPMQFVXmzGRwbna4D6XNG" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-31-8 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/JVPMQFVXmzGRwbna4D6XNG.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>Milla Jovovich takes to the stage, confirms her debut in a video game as the next Elusive Target in Hitman: World of Assassination, and then announces that ARC Raiders has won Best Multiplayer game. Which always felt like the frontrunner.</p><h2 id="warhammer-40-000-is-getting-the-total-war-treatment">Warhammer 40,000 is getting the Total War treatment</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="s7a4pccR7CzR6uML7wAhTh" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-35-4 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/s7a4pccR7CzR6uML7wAhTh.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>David Harbour, "Stranger Things" and "Marvel" star, takes the stage to confirm that the next Total War game will be set in the world of Warhammer 40,000. Now we're getting a trailer!</p><h2 id="ace-combat-8-looks-pretty-ace">Ace Combat 8 looks pretty ace!</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="zGHETa5G25sk84nza7ibkX" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-40-39 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/zGHETa5G25sk84nza7ibkX.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>Ace Combat 8 is launching 2026. Looks like it'll offer the intense aerial dogfights the franchise is known for, with cinematic visuals an an emotional story. I reckon dedicated fans will be particularly pleased with the brief trailer shown here.</p><h2 id="i-reckon-these-developers-played-split-fiction">I reckon these developers played Split Fiction</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="3Hxk8QjFiBDLqFcetttgq8" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-44-15 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/3Hxk8QjFiBDLqFcetttgq8.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 next trailer is for a co-op adventure called Out of Words, and it certainly looks like it's been inspired by Split Fiction and It Takes Two. Its biggest selling point might be its stop-motion-style visuals, which I'll admit are pretty darn impressive. It's out in 2026.</p><h2 id="the-muppets-are-doing-a-musical-number">The Muppets are doing a musical number</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="jEYHzF5Uxruit2eQKCXu4F" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-45-14 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/jEYHzF5Uxruit2eQKCXu4F.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>We're into the odd part of the night where the Muppets are doing a musical number about all the games that have been shown already tonight. It's 3:30 a.m. my time, and I'm watching a singing pig puppet. Got to love The Game Awards!</p><h2 id="a-lengthy-new-look-at-phantom-blade-zero">A lengthy new look at Phantom Blade Zero</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="nYcUGcGzEgDuPfRTLX8QBS" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-54-4 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/nYcUGcGzEgDuPfRTLX8QBS.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>After back-to-back musical interludes, it's time for a new Phantom Blade Zero trailer. I've been on the fence about this one before, but this trailer has certainly increased my interest. And we have a release date at last, September 9, 2026. </p><h2 id="winner-clair-obscur-expedition-33-wins-best-game-direction">WINNER: Clair Obscur: Expedition 33 wins Best Game Direction</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="kCzimZhQ4UvvbR7uuGTsGk" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-56-59 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/kCzimZhQ4UvvbR7uuGTsGk.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>Todd Howards confirms that Clair Obscur: Expedition 33 is the winner of Best Game Direction. We knew with 13 nominations, it was going to take home several awards tonight, but it's sweeping the field at this point. And I love it!</p><h2 id="mega-man-makes-a-grand-entrance">Mega Man makes a grand entrance</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="Cgb82P2RU6cWJnY37gm28S" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-1-16 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/Cgb82P2RU6cWJnY37gm28S.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>Geoff teased a big reveal next, and it's the return of Mega Man, starring in a brand new 2D platforming title (of course). It's Mega Man Dual Override, and it's set to launch in 2027. It looked like, well, it looked like a Mega Man game!</p><h2 id="super-mario-galaxy-movie-gets-a-super-brief-sneak-peek">'Super Mario Galaxy Movie' gets a super brief sneak peek</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="x7qDkVa6y4YUKv7toVxv2c" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-2-44 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/x7qDkVa6y4YUKv7toVxv2c.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>Back to the world of cinema, and it's a quick look at "The Super Mario Galaxy Movie", and when I say "quick", I really do mean it, we got maybe a few seconds of new footage. </p><h2 id="another-brief-trailer-this-time-for-nioh-3">Another brief trailer, this time for Nioh 3</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CgCS2ZoTYJonZ69WiU3Kfk" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-3-56 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/CgCS2ZoTYJonZ69WiU3Kfk.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>Nioh 3 drops in February 2026, and our latest look didn't really offer any fresh details, but I'm looking forward to playing this one early next year, so happy for a few seconds of extra action-RPG gameplay footage. I'm going to die, a lot.</p><h2 id="here-we-go-it-s-the-final-world-premiere-of-the-night">Here we go, it's the final world premiere of the night</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="bz7z9ubJpyEfqjGbuGWq4E" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-6-33 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/bz7z9ubJpyEfqjGbuGWq4E.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>Geoff promises that this is the last world premiere of the night, and this one isn't "years and years away"...</p><h2 id="the-final-new-game-is-highguard">The final new game is Highguard</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="Vr2StrNqj3sqzwtk7BNRFJ" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-7-12 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/Vr2StrNqj3sqzwtk7BNRFJ.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>From some of the developers behind Apex Legends, comes Highguard a new free-to-play fantasy crossed with sci-fi shooter. It drops on January 26, 2026, so less than seven weeks until we can play it for ourselves. </p><h2 id="time-for-the-big-award-of-the-show">Time for the BIG award of the show</h2><p>It's time for Game of the Year to be crowned, I think we all know where this one is going...</p><h2 id="game-awards-orchestra-are-delivering-a-fantastic-performance">Game Awards Orchestra are delivering a fantastic performance</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="aTEnmmxKqTe2ggeGdWhXFk" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-11-15 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/aTEnmmxKqTe2ggeGdWhXFk.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>To celebrate the six games nominated for Game of the Year, a live orchestra are playing select musical highlights from each title as per tradition, it's making for great listening this year, and is the perfect way to give each game its flowers. But it seems all but certain that Clair Obscur: Expedition 33 will be the big winner!</p><h2 id="time-for-the-winner-to-be-crowned">Time for the winner to be crowned</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="mzDUtbRbuyEdp54LBSoBfG" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-14-6 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/mzDUtbRbuyEdp54LBSoBfG.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>An excellent performance, and now the winner....</p><h2 id="huge-shock-not-clair-obscur-expedition-33-wins-goty">HUGE SHOCK... not, Clair Obscur: Expedition 33 wins GOTY </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:3913px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qTzGLoJNuWKNA7WtPqao8X" name="Clair Obscur Expedition 33_Screenshot_01" alt="Gustave, Lune and Maelle (L-R) look out to the horizon in Clair Obscur: Expedition 33" src="https://cdn.mos.cms.futurecdn.net/qTzGLoJNuWKNA7WtPqao8X.jpg" mos="" align="middle" fullscreen="" width="3913" height="2201" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sandfall Interactive)</span></figcaption></figure><p>It was the favorite before, and after cleaning up winning 8 out of its 10 categories across the show, Clair Obscur: Expedition 33 has been crowned Game of the Year. This one looked likely before the Game Awards started, and a complete locked before the show was even a third of the way done. A worthy winner. </p><h2 id="and-that-s-all-folks">And that's all folks!</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="QHbSAKw2DWubo3YAsEJHBm" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-18-36 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/QHbSAKw2DWubo3YAsEJHBm.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>Geoff gets in the last word and brings The Game Awards 2025 to a close. But not before reminding us that Summer Game Fest will return on Friday, June 5, 2026. </p><h2 id="a-solid-showcase-with-a-very-worthy-winner">A solid showcase with a very worthy winner</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="vc8m2Kkd2Wh6Wi8gMSpWW8" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 4-19-53 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/vc8m2Kkd2Wh6Wi8gMSpWW8.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>So, that's The Game Awards over for another year. It was a pretty great show overall. I was pleased with the reveals (Star Wars: FOTOR, Divinity and Control: Resonant stand out as my top announcements), and as somebody who ranks Clair Obscur: Expedition 33 as their personal GOTY, I was thrilled it won the night. </p><h2 id="ryan-epps-here-tagging-in-for-rory-so-he-can-get-some-rest">Ryan Epps here, tagging in for Rory so he can get some rest! </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="VzZC2Hy8tqjRtqS7CZKp89" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 3-51-25 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/VzZC2Hy8tqjRtqS7CZKp89.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>How was it? Did the Game Awards 2025 meet your expectations? Did you get the reveal you were waiting for, or still desperately clinging to hope for a Half Life 3 tease? </p><p>Maybe next year....</p><h2 id="the-show-s-biggest-reveals">The show's biggest reveals...</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="ymxCGmGqwXZuAUpTgKYEKN" name="🔴 THE GAME AWARDS 2025_ Official 4K60FPS Livestream (Today - 7_30p ET _ 4_30p PT _ 12_30a GMT) 1-37-29 screenshot" alt="THE GAME AWARDS 2025" src="https://cdn.mos.cms.futurecdn.net/ymxCGmGqwXZuAUpTgKYEKN.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>I've had a few minutes to digest TGA 2025, and I've got to say, while Clair Obscur did sweep, it was still a phenomenal rollercoaster of reveals! Although some of those really hot ticket items didn't make an appearance, like GTA 6, BioShock 4, or Gabe Newell's Revenge, there were still a plethora of amazing items that got teased. Here are a few that come to mind:</p><ul><li>Star Wars: Fate of the Old Republic</li><li>Ontos</li><li>Phantom Blade Zero</li><li>Divinity</li><li>Control Resonant</li><li>Gang of Dragon</li><li>Lords of the Fallen 2</li><li>Highguard</li><li>007 First Light</li><li>Street Fighter movie</li></ul><h2 id="perfection-is-not-attainable-or-affordable-excellence-is">"Perfection is not attainable or affordable. Excellence is."</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XUqUzFx4LqP29HP7XL8A9X" name="Clair Obscur Expedition 33_Screenshot_15" alt="A Clair Obscur: Expedition 33 screenshot showing Lune and Gustave (L-R) standing on a battlefield with the Paintress' monolith in the background" src="https://cdn.mos.cms.futurecdn.net/XUqUzFx4LqP29HP7XL8A9X.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sandfall Interactive)</span></figcaption></figure><p>This line, quoted by David Keighley (Geoff Keighley's late father), rings true most of all in the aftermath of this year's Game Awards. Despite the odds stacked against it, Clair Obscur took home not only the prized GOTY but also eight additional awards on top of it. It's a Game Awards first, highlighting the brilliance in this medium, and the underlying truth to Mr. Keighley's message. </p><p>Excellence is everything. And Clair Obscur: Expedition 33 clearly stands the test of gaming excellence. Developed on a budget of under $10M by a team consisting of around 400 people, Sandfall Interactive's groundbreaking achievement is something game developers should always strive for, especially as we head into 2026 (and beyond). </p><p>Here's what excellence looks like:</p><ul><li>Game of the Year</li><li>Best Narrative</li><li>Best Game Direction</li><li>Best Art Direction</li><li>Best Score and Music</li><li>Best Independent Game</li><li>Best Debut Indie Game</li><li>Best Performance (Jennifer English)</li><li>Best RPG</li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I was stoked for the Steam Machine — but this one thing could be a deal-breaker ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/handheld-gaming/i-was-stoked-for-the-steam-machine-but-this-one-thing-could-be-a-deal-breaker</link>
                                                                            <description>
                            <![CDATA[ The Steam Machine's potential price could be damaging. Here's what we think Valve's gaming device will cost and how that could sway or deter customers. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xRtxYqnbfD5tZE5SsBNQo3</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 06 Dec 2025 09:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Handheld Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Machine ]]></media:description>                                                            <media:text><![CDATA[Steam Machine ]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Machine ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I could barely contain my excitement when Valve announced the new <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a>. In fact, I even said <a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">I might ditch my gaming PC for the Steam Machine</a>. The promise of a small PC gaming device, presumably nearly as powerful as a <a href="https://www.tomsguide.com/reviews/ps5">PS5</a>, was tempting. However, my initial enthusiasm has cooled in subsequent weeks.</p><p>We learned a great deal about the Steam Machine when it was unveiled. Valve claims it will be six times more powerful than the <a href="https://www.tomsguide.com/opinion/steam-deck-oled-is-the-must-buy-handheld-of-2023-and-the-perfect-holiday-gift-for-gamers">Steam Deck OLED</a> and capable of running games at 4K resolution at 60 frames per second (with FSR enabled). The system will come in 512GB and 2TB flavors, and we can expect bundles that include the new Steam Controller. The fact that the system is a small 6-inch(ish) cube is just icing on the cake.</p><p>While all of that sounds great, we didn’t get the most important piece of information. Namely, how much the Steam Machine will cost. Given the ongoing tariff situation and ballooning price of RAM, I wouldn’t be surprised if Valve itself is unsure how much their system will ultimately cost … which has me extremely worried. That said, perhaps the pricing situation isn't as grim as I fear.</p><h2 id="worst-case-scenario">Worst-case scenario</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="RzusMSoFqREVkoErH63pMN" name="SM_ledStrip" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Consoles like the <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a> and PS5 are typically sold at a loss, with the manufacturer recouping its development costs through software sales or subscription services. Some expected Valve would follow a similar route with the Steam Machine, but it appears that won’t be the case.</p><p>In an interview with <a href="https://www.youtube.com/watch?v=yvu66Y2VLq8" target="_blank">YouTuber Skill Up</a> (via <a href="https://arstechnica.com/gaming/2025/11/valves-steam-machine-looks-like-a-console-but-dont-expect-it-to-be-priced-like-one/" target="_blank">Ars Technica</a>), Valve’s Pierre-Loup Griffais said the Steam Machine will not be sold at a loss. Griffais said the hardware will be “more in line with what you might expect from the current PC market.” He said the Steam Machine’s CPU and GPU were designed to outperform 70 percent of the PCs that Steam users own (per <a href="https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam" target="_blank">Valve's hardware and software survey</a>), and that pricing will reflect what you’d pay for a desktop with comparable specs.</p><p>Then there’s a report from Linus Sebastian from <a href="https://www.youtube.com/live/dnKy4UEdiyo" target="_blank">Linus Tech Tips</a>, who attended the Steam Machine reveal event. When he suggested that a subsidized price point around $500 would make the Steam Machine a more compelling product, Valve representatives remained quiet. Linus said that “the energy of the room wasn’t great.”</p><p>All of that led many people, including myself, to think the Steam Machine could cost well over $1,000, which would be more in line with PC pricing. That price range would immediately alienate many console players who might have bought the Steam Machine. That the Steam Machine will reported be less powerful than a base PS5 would make that price point sting even worse.</p><p>Based on those comments, it’s safe to say the Steam Machine won’t cost $500 like the PS5 and Xbox Series X used to (thanks, tariffs, for raising console prices!). However, Valve’s upcoming gaming system might not be as expensive as some fear.</p><h2 id="some-hope">Some hope?</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:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="wJXzffvTBMzaw6Xbcxyufi" name="Steam Machine" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/wJXzffvTBMzaw6Xbcxyufi.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Credit: Tom’s Guide/Shutterstock/Valve/Sony/Microsoft/Apple)</span></figcaption></figure><p>Linus Tech Tips’ initial report caused quite an uproar. Ironically, the famous YouTuber has also helped assuage some of our worst fears about the Steam Machine’s price.</p><p><a href="https://www.youtube.com/watch?v=iHkBcqW-ExY">In a more recent video</a>, Linus purchased PC parts that were similar to what’s inside the Steam Machine, and he believes that the gaming device could cost around $600 to manufacture. Since Valve won’t sell the Steam Machine at a loss, Linus thinks Valve could sell its hardware for $700 at a minimum.</p><p>Obviously, this is just a guesstimate, so don’t take what Linus said to heart. That said, I think a $700 starting price seems realistic given the current state of things (i.e., tariffs and RAM prices). Upgrading to a 2TB model or getting the Steam Controller bundle will naturally raise the price. But even if a fully kitted Steam Machine costs over $1,000, that will at least be an option and not the starting price.</p><h2 id="outlook-3">Outlook</h2><p>The Steam Machine won’t arrive until sometime in Spring 2026, so we still have time to speculate (and worry) about how much Valve’s device will ultimately cost. This might be too optimistic on my end, but I expect it will cost between $700 and $1,000, depending on your chosen configuration.</p><p>That would still make for an expensive piece of equipment, but folks could justify the cost if the Steam Machine makes PC gaming as streamlined as console gaming. There's also the amount of money folks will save over time thanks to all the frequent Steam sales. And even if you can’t initially afford a fully decked-out Steam Machine, you could potentially purchase an entry-level model and then later upgrade storage and purchase the Steam Controller when you can afford it.</p><p>Right now, I’m choosing to be cautiously optimistic about the Steam Machine’s price, as I don’t believe Valve wants to alienate more customers than it needs to. I’m not expecting a system as affordable as a Steam Deck, but I also don’t expect it’ll cost as much as a gaming desktop. Of course, we’ll have to wait and see if my worst fears about an inflated price come true. Let’s keep our fingers crossed and hope for the best!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM prices are exploding — here's why</a></li><li><a href="https://www.tomsguide.com/computing/valve-just-dropped-a-massive-hint-that-the-steam-deck-2-could-switch-to-arm-heres-why">Valve dropped a massive hint that Steam Deck 2 could switch to Arm</a></li><li><a href="https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-vs-meta-quest-3-heres-how-the-vr-headsets-compare">Valve Steam Frame vs Meta Quest 3: Here's how the VR headsets compare</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Confirmed: Steam Frame will lack this Apple Vision Pro and Meta Quest feature at launch — Valve says it's 'on our list' ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/vr-ar/confirmed-steam-frame-will-lack-this-apple-vision-pro-and-meta-quest-feature-at-launch-valve-says-its-on-our-list</link>
                                                                            <description>
                            <![CDATA[ Valve has confirmed that the Steam Frame will miss out on a key 3D feature found on the Apple Vision Pro and Samsung Galaxy XR at launch, but stereoscopic rendering may still come to the VR headset in the future. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">feiDy9jHj5WpcjEB7ASDN9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/V2WRYAbgWtTT4mK4sdBj6C-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 05 Dec 2025 12:03:17 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VR &amp; AR]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/V2WRYAbgWtTT4mK4sdBj6C-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Frame VR headset]]></media:description>                                                            <media:text><![CDATA[Valve Steam Frame VR headset]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Frame VR headset]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/V2WRYAbgWtTT4mK4sdBj6C-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve's upcoming <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a> VR headset is set to arrive in spring 2026, but if you were hoping to play 2D games or view content with a 3D effect, we now know the feature won't be available — at least, not at launch. </p><div><blockquote><p>Currently, the Steam Frame doesn't support stereoscopic 3D rendering, a feature that can create a three-dimensional view of 2D content.</p></blockquote></div><p>Currently, the Steam Frame doesn't support stereoscopic 3D rendering, a feature that can create a three-dimensional view of 2D content. This can be found on the <a href="https://www.tomsguide.com/computing/augmented-reality/apple-vision-pro-m5-2025-review">Apple Vision Pro</a> and <a href="https://www.tomsguide.com/computing/augmented-reality/galaxy-xr-review">Samsung Galaxy XR</a> headset, which can render depth in spatial content and convert 2D photos or videos into 3D on the fly. </p><p>However, the feature could still be coming in the future. Valve has stated that stereoscopic 3D content for the Steam Frame is "on our list," according to a spokesperson speaking to <a href="https://www.roadtovr.com/valve-steam-frame-stereoscopic-3d-support-flat-games-spatial-video/" target="_blank">RoadtoVR</a>. In fact, the gaming giant is considering bringing support for any stereoscopic content when streamed from a PC via the 6GHz wireless adapter or just on the VR headset. </p><p>This means we may see stereoscopic 3D content for flat games, photos or videos in the future, bringing a new level of immersion. That is, if 2D games support stereoscopic 3D rendering, as there aren't many around unless used with a third-party mod to create a 3D effect. </p><p>In light of this, Valve was also asked if it was working on a way to automatically convert 2D Steam games to 3D on the Steam Frame, but stated that this wasn't something it's looking into at the moment. </p><h2 id="a-future-goal">A future goal</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:1792px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XuB3esXkip3NJd8UyqVgL" name="Valve Steam Frame" alt="Person using Valve Steam Frame with controller" src="https://cdn.mos.cms.futurecdn.net/XuB3esXkip3NJd8UyqVgL.jpg" mos="" align="middle" fullscreen="" width="1792" height="1008" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>We're impressed by how XR headsets can turn any 2D photo into a 3D one, like from Apple's Photos app on the Vision Pro and Google Photos on Samsung's Galaxy XR headset. Plus, 3D movies are also gaining traction, and seeing this implemented on Valve's Steam Frame would give the VR headset another perk. </p><p>However, this has been an exclusive feature for more premium headsets for now, although Meta has partnered up with Universal Pictures and Blumhouse to feature movies with 3D special effects on its <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a> and <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3s-review">Quest 3S</a> via its new <a href="https://www.tomsguide.com/computing/vr-ar/meta-announces-horizon-tv-streaming-hub-for-quest-vr-headsets-heres-what-we-know">Horizon TV hub</a>. </p><p>With Valve working on a so-called "Lepton" compatibility layer (via <a href="https://www.gamingonlinux.com/2025/12/valves-version-of-android-on-linux-based-on-waydroid-is-now-called-lepton/" target="_blank">GamingOnLinux</a>) to allow Android on its Linux-based SteamOS devices like the Steam Frame, this could bleed into a way to utilize <a href="https://www.tomsguide.com/computing/vr-ar/android-xr-heres-how-its-different-than-vr-headsets">Android XR</a>. This could take full advantage of more stereoscopic 3D content, but it would still be trickier for 2D gaming. </p><p>If Valve finds a way to render stereoscopic 3D for a game in real time, it would add another dimension to playing flat Steam games on the Steam Frame. But in the meantime, this won't be something that's immediately available on the anticipated VR headset. </p><p>For now, Valve has been working on other ways to bring games to more platforms, as it's been laying the groundwork to deliver Windows gaming to more Arm-based devices. And it could be a <a href="https://www.tomsguide.com/computing/valve-just-dropped-a-massive-hint-that-the-steam-deck-2-could-switch-to-arm-heres-why">sign of the Steam Deck 2 switching to an Arm-based chip</a>. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/ram-prices-are-exploding-heres-why-and-everything-you-need-to-know-about-surviving-ramageddon">RAM prices are exploding — here's why and everything you need to know about surviving RAMageddon</a></li><li><a href="https://www.tomsguide.com/computing/im-fed-up-with-gaming-on-windows-11-heres-how-valves-steam-machine-can-fix-pc-gaming">I'm fed up with gaming on Windows 11 — here's how Valve's Steam Machine can fix PC gaming</a></li><li><a href="https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-vs-meta-quest-3-heres-how-the-vr-headsets-compare">Valve Steam Frame vs Meta Quest 3: Here's how the VR headsets compare</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve just dropped a massive hint that the Steam Deck 2 could switch to Arm — here's why ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/valve-just-dropped-a-massive-hint-that-the-steam-deck-2-could-switch-to-arm-heres-why</link>
                                                                            <description>
                            <![CDATA[ Valve is paving the way to deliver Windows PC gaming on Arm devices, and now the Steam Deck 2 will benefit. Here's why Valve’s next handheld points to an Arm future. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3qrGnCG76UYSpGdQX563sH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8fX9zovNcCoFWt9b7ctUe5-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 03 Dec 2025 13:21:22 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/8fX9zovNcCoFWt9b7ctUe5-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Deck OLED]]></media:description>                                                            <media:text><![CDATA[Steam Deck OLED]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Deck OLED]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8fX9zovNcCoFWt9b7ctUe5-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>With Valve announcing its <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a> and <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a>, it's set to deliver its Linux-based SteamOS to the living room, virtual reality and beyond. But the company has another trick up its sleeve — bringing Windows games to Arm devices. </p><p>Valve has been laying the groundwork to make games that are generally only playable on Windows devices available on Arm, as SteamOS architect Pierre-Loup Griffais explains in an interview with <a href="https://www.theverge.com/report/820656/valve-interview-arm-gaming-steamos-pierre-loup-griffais" target="_blank">The Verge</a>. This is made possible by using Proton, a compatibility layer for Steam, and Fex, an open-source emulation layer, with a combination of both allowing x86 games for Windows PCs to run on Arm-based devices. </p><p>As noted, the game distribution giant has been funding open-source developers since 2016 to make this possible, with the goal of making it easier for game developers to see their titles on multiple platforms. Essentially, this takes the pain out of porting games to different devices that go beyond Windows-based x86 machines. More importantly, it hints that SteamOS (and more Windows titles) can be used and played on your smartphone, tablet, Arm-based laptop and more. </p><p>There were already signs of this on the <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck</a>, with the Linux-based gaming handheld being able to run games otherwise reserved for Windows that use Microsoft's DirectX application programming interfaces (APIs). And with the <a href="https://play.google.com/store/apps/details?id=com.xiaoji.egggame&hl=en_GB" target="_blank">GameHub</a> app for Android, you can play games from Steam on your <a href="https://www.tomsguide.com/phones/google-pixel-phones/google-pixel-10-pro-review-a-great-phone-but-it-doesnt-feel-like-much-of-an-upgrade">Google Pixel 10 Pro</a>, <a href="https://www.tomsguide.com/phones/samsung-phones/galaxy-s25-review">Samsung Galaxy S25</a> and more. </p><p>Does that mean SteamOS will come to phones? It's a possibility, but as Griffais points out: "I don’t know if that’s going to be a big focus for us to develop local content or try to develop SteamOS for devices like that." But there's one device that would see huge benefits from an Arm-based chip, and that's the <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-2-rumored-to-be-in-the-works-and-it-may-arrive-with-a-massive-amd-apu-upgrade">Steam Deck 2</a>. </p><h2 id="steam-deck-2-on-arm">Steam Deck 2 on Arm?</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:2789px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="z4aUgzMu6XUVc46DpBytFS" name="Steam Deck OLED-3.jpg" alt="Steam Deck OLED" src="https://cdn.mos.cms.futurecdn.net/z4aUgzMu6XUVc46DpBytFS.jpg" mos="" align="middle" fullscreen="" width="2789" height="1569" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>We've seen a push for Arm-based gaming recently, with the <a href="https://www.tomsguide.com/computing/laptops/im-shocked-at-how-well-snapdragon-x2-elite-can-play-games-with-cyberpunk-hitting-over-75-fps-in-my-testing">Snapdragon X2 Elite for laptops playing games like Cyberpunk 2077 and Black Myth: Wukong</a> running as high as 90 frames per second (FPS) after testing. Moreover, I'm impressed to see that the Steam Frame VR headset with a Snapdragon 8 Gen 3 chip will be able to play VR and non-VR Steam games. </p><p>It's become clear that gaming on Arm-based devices is only getting better, and this could be an advantage for the future of <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">gaming handhelds</a>. Namely, in battery life, as Arm-based chips from Qualcomm have shown incredible power efficiency while still offering peak performance. While the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a> shows strong battery life at nearly three hours, an Arm SoC that uses Valve's Proton and Fex to play games on Steam would push battery limits further. </p><p>When asked about the future of handheld gaming with Arm, Griffais states: "I think Arm devices are definitely a good fit for lower performance, like anything lower than Steam Deck. But it’s possible it’ll be a good option for something on the order of the Steam Deck performance envelope."</p><div><blockquote><p>There’s a lot of price points and power consumption points where Arm-based chipsets are doing a better job of serving the market.</p><p>Valve's Pierre-Loup Griffais</p></blockquote></div><p>Of course, this shows that Valve is staying tight-lipped about what its rumored Steam Deck 2 will come packed with, with previous tips indicating it <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-2">will feature an AMD chip</a> (as with the current Steam Deck). Still, with the advancements Valve is funding to deliver Windows games to Arm, and how these chips are already seeing a big boost in gaming performance, there's good reason for Valve's next gaming handheld to run on Arm. </p><p>"There’s a lot of price points and power consumption points where Arm-based chipsets are doing a better job of serving the market," Griffais says. And with the goal of making Arm-based devices a platform for all games to run, so gamers and developers don't have to worry about the architecture a device is using, it looks like a good fit for a next-gen Steam Deck. </p><p>There's no telling when we'll see a Steam Deck 2, as we're still waiting for the Steam Machine, Steam Frame and all-new Steam Controller to drop in spring 2026. But it's clear Valve’s Proton and Fex will make Arm chips a viable option for the next Steam Deck, and I, for one, would love to see SteamOS on more devices. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/im-fed-up-with-gaming-on-windows-11-heres-how-valves-steam-machine-can-fix-pc-gaming">I'm fed up with gaming on Windows 11 — here's how Valve's Steam Machine can fix PC gaming</a></li><li><a href="https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-vs-meta-quest-3-heres-how-the-vr-headsets-compare">Valve Steam Frame vs Meta Quest 3: Here's how the VR headsets compare</a></li><li><a href="https://www.tomsguide.com/computing/brace-yourself-pcs-laptops-and-phones-may-jump-in-price-as-early-as-december-thanks-to-a-500-percent-ram-ssd-surge">Brace yourself: PCs, laptops and phones may jump in price as early as December thanks to a '500%' RAM/SSD surge</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I'm fed up with gaming on Windows 11 — here's how Valve's Steam Machine can fix PC gaming ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/im-fed-up-with-gaming-on-windows-11-heres-how-valves-steam-machine-can-fix-pc-gaming</link>
                                                                            <description>
                            <![CDATA[ Windows 11 can sometimes be a pain to play games on. That’s why I’m super-pumped at the prospect of having a streamlined Linux PC in my living room. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">icK8QJGQaJv2REZHgJT5b4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 03 Dec 2025 06:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Windows Operating Systems]]></category>
                                                    <category><![CDATA[Software]]></category>
                                                    <category><![CDATA[Operating Systems]]></category>
                                                                                                <author><![CDATA[ dave.meikleham@futurenet.com (Dave Meikleham) ]]></author>                    <dc:creator><![CDATA[ Dave Meikleham ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Rda8e7jGfyTdZLWYJQQ8VY.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Dave is a computing editor at Tom’s Guide and covers everything from cutting-edge laptops, the latest GPU tech, to ultrawide monitors. When he’s not worrying about dead pixels, Dave enjoys regularly rebuilding his PC for absolutely no reason at all. He built his first rig over 20 years ago, and he’s gone through more motherboards than he’s had hot dinners. Probably.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;In a previous life, he worked as a video game journalist during a career spanning the best part of two decades. Over that time he worked across both online and print, with bylines for GamesRadar+, PC Gamer, TechRadar, Edge and the Official UK PlayStation Magazine. He’s almost amassed an immeasurable amount of bad puns.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;An avid PC and console gamer, Dave enjoys breaking out Fraps way too often as he obsesses over frame rates. Despite owning a graphics card that costs roughly the same as your average used car, he still enjoys gaming on the go and is regularly glued to his Switch. Away from tech, most of Dave’s time is taken up by walking his husky, obsessing about his various OLED displays and sweating over the fitness of half a dozen Arsenal players on any given week.&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/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Vale Steam Machine]]></media:description>                                                            <media:text><![CDATA[Vale Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Vale Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bwwoAnqrHxAbigpy8aiKhf-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Microsoft may have been developing operating systems for decades, yet the Redmond colossus still hasn’t cooked up an OS that feels great to game on. 20 years ago, the House That Bill Built conquered the console market with the Xbox 360. Despite that short-lived spell of class-leading success, booting your favourite titles on one of the <a href="https://www.tomsguide.com/us/best-gaming-pc,review-2219.html">best gaming PCs</a> through Windows often remains a chore two decades on. </p><p>Full disclosure: I initially didn't mean to go on an anti-<a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a> rant, as I wanted to delve deep into my impressions of the <a href="https://www.tomsguide.com/gaming/xbox/all-windows-based-handheld-gaming-consoles-are-getting-the-xbox-full-screen-experience-what-you-need-to-know">Xbox Full Screen Experience</a> (FSE) — Microsoft's answer to finally fixing playing games on Windows. Alas, such is the pain of downloading new updates on Microsoft’s latest OS; a night of failed testing misery quickly put paid to that idea. </p><p>First launched on the <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-x-review">ROG Xbox Ally X</a> and <a href="https://www.tomsguide.com/gaming/handheld-gaming/rog-xbox-ally-review">ROG Xbox Ally</a> last month, Xbox FSE quietly rolled out on all Windows-based handhelds on November 21. A few days later, it was then made available on rigs and the <a href="https://www.tomsguide.com/best-picks/best-gaming-laptops">best gaming laptops</a>, provided you’re a Windows Insider member. </p><p>Tom’s Guide Jason England described Xbox FSE as a “stellar UI to navigate." I’m guessing this is partly because it reduces Windows 11’s overall background power and performance overheads to allow for more responsive interactions with launchers like Steam and the Epic Games Store. I’ll just have to take Jason’s word for it, because try as I might, I can’t get the damn thing to work. </p><div><blockquote><p>I’ve been using Windows 11 for years now, and there are almost always rough edges in day-to-day usage</p></blockquote></div><p>Most of the time, I don’t have many issues updating Windows 11. Sadly, this was not the case when trying to download the snappily titled “Windows 11 Insider Preview Feature Update (26220.7271).” The latest Insider build is required to test drive Xbox FSE ahead of its full launch on Windows PCs, laptops and tablets, and oh boy, is it a pain to get working. </p><p>Despite being hooked up to a 1GB full-fibre optic connection, both my gaming PC and <a href="https://www.tomsguide.com/computing/gaming-laptops/asus-rog-zephyrus-g14-2025-review">Asus ROG Zephyrus G14 (2025)</a> took a veritable Ice Age to download the update. I’m pretty sure I could have skimmed "War and Peace" in the time it took to install on my two main gaming devices. When it comes to downloading apps or games from the Windows Store or key updates via the settings menu, Windows 11 is about as swift as a heavily sedated sloth. </p><p>After multiple restarts, Xbox FSE kept refusing to play ball. The three main methods of switching to this UI involve either hitting the Windows + Tab keys, Windows + F11 or by accessing it through the Windows 11 Game Bar overlay. And to my complete lack of surprise, not one of these shortcuts worked for me. </p><p>Part of the problem was that I was accessing the update through Windows Insider’s dev channel — an enthusiast-level tier that Microsoft freely admits has “some rough edges and low stability” — so I can partly accept the early FSE teething pains. The trouble is, I’ve been using Windows 11 for years now, and there are almost always rough edges in day-to-day usage. </p><h2 id="win-d-oh">Win-d’oh! </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:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="HTtgBLEkoSB8vDSAY98nhf" name="Gaming PC" alt="Red Gaming PC case on floor" src="https://cdn.mos.cms.futurecdn.net/HTtgBLEkoSB8vDSAY98nhf.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Even if you’re lucky enough to have <a href="https://www.tomsguide.com/computing/hardware/i-built-the-coolest-gaming-pc-ever-here-are-5-parts-to-buy-so-you-can-too">built the coolest gaming PC ever</a> that houses an <a href="https://www.tomsguide.com/computing/gpus/i-review-gaming-pcs-for-a-living-and-id-never-buy-the-rtx-5090-heres-why">RTX 5090</a>, top-tier hardware can’t entirely solve Windows gaming woes. I’ve been using Microsoft’s operating systems since the dreaded days of Windows Vista, so I’m dealing with a shedload of OS-based PTSD. I’d wager that over that time period, I’ve endured hundreds of random crashes and infuriating instances of the Blue Screen of Death (BSOD). </p><p>It’s not just that gaming on a Windows system often feels about as stable as driving an 18-wheeler across quicksand. Instability issues and constant grating updates are things you’re eventually forced to get used to if you want to play the <a href="https://www.tomsguide.com/best-picks/best-PC-games">best PC games</a> at frame rates far higher than even the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> can manage. </p><p>Regardless of how many updates Microsoft drops, though, Windows 11 still delivers a somewhat cluttered UI, especially when you dive into its menus. The Windows Store is a hideous beast blighted by slow downloads. I constantly find Copilot repeatedly sneaking back into my taskbar, no matter how many times I uninstall it, while HDR on many PC games feels borked compared to how PS5 and Xbox Series X handle High Dynamic Range content. </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="rUT3weVkwM9FNSUbdfors3" name="Gaming PC build" alt="Gaming PC build images" src="https://cdn.mos.cms.futurecdn.net/rUT3weVkwM9FNSUbdfors3.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>That last annoyance really grinds my gears. Despite owning one of the <a href="https://www.tomsguide.com/us/best-gaming-monitors,review-3114.html">best gaming monitors</a> — the glorious<a href="https://www.tomsguide.com/reviews/samsung-odyssey-oled-g9"> Samsung Odyssey OLED G9</a> — blacks often don’t look inky enough on my display. This is an even more glaring issue for older games that need to rely on Windows Auto HDR; a feature that still doesn’t look right years after release. To this day, I constantly find myself in the Nvidia Control Panel tediously tweaking brightness and contrast sliders to fix black levels in titles.</p><p>Unreliable Windows HDR implementation is also an issue on my beautiful ROG Zephyrus G14. It’s only by using the excellent fan-made <a href="https://www.nexusmods.com/site/mods/781">NvTrueHDR</a> software that I can get my favorite Steam games looking their best on its sensational OLED screen. I really hope Microsoft improves its subpar HDR features before Windows 12 inevitably launches. </p><p>No matter what improvements Microsoft makes to Windows — and make no mistake, I think 11 is a much better OS than Windows 10 — the software giant keeps scoring needless own goals. Just look at the recent (KB5066835) system update, a patch so disastrous for gaming performance, it pretty much halves frame rates in <a href="https://www.tomsguide.com/gaming/assassins-creed-shadows-review">Assassin’s Creed Shadows</a> (thanks, <a href="https://www.youtube.com/watch?v=NOEGamg6nf8&t=5725s" target="_blank">Digital Foundry</a>). Granted, Nvidia swiftly released an emergency patch to remedy this issue for owners of Team Green GPUs, but it’s still an embarrassing misstep for Microsoft. </p><h2 id="letting-off-steamos">Letting off SteamOS</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="dmbFwLmRHrvTKVzNxnUcif" name="Steam_Deck_OLED" alt="Steam Deck OLED in hand" src="https://cdn.mos.cms.futurecdn.net/dmbFwLmRHrvTKVzNxnUcif.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If Windows were my spouse, I’d be getting ready to file divorce papers. A newly single me would then try to slap a ring on a Linux system’s imaginary finger. Let me explain. </p><p>Due to its efficiency and winning compatibility features, I’ve really come to appreciate Linux as an operating system since picking up the fantastic <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck OLED</a> a couple of years ago. That’s mainly due to the effortlessly excellent <a href="https://www.tomsguide.com/us/steamos-faq-machines,news-17614.html">SteamOS</a> — hands-down my favorite UI on any current gaming platform. </p><p>I can count on one hand how many times I’ve had genuine issues with this Linux-based operating system. It’s responsive, it’s stable, it’s not dragged down by bloatware and it gets you into the heart of the action of your favorite games with the minimal amount of fuss. SteamOS is the main reason why I’d always choose Valve’s handheld PC over more powerful Windows-based alternatives.</p><div><blockquote><p>It’s this love for Linux’s portable operating system that has got me so jazzed for the upcoming Steam Machine</p></blockquote></div><p>It’s this love for Linux’s portable operating system that has got me so jazzed for the upcoming <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a>. As a bit of a hardware snob, Valve’s new mini PC should leave me cold on paper. Though its Gamecube-style aesthetics make me want to cuddle Gabe Newell and company’s teeny device, its specs are a little lacking. It may be 6x more powerful than the Steam Deck, but a GPU with just 8GB of VRAM means it's going to struggle to run demanding triple-A games at 60 FPS going forward. </p><p>And yet, I’m still totally into the concept of the Steam Machine. As much as I adore my mid-tower gaming PC, it’s a pain to use in my living room. That’s mainly because it houses an RTX 5090 that’s longer than an Xbox Series X… oh, and the small fact that it weighs well over 50 lbs. On the occasions I do carry it from my home office into my lounge, I can practically feel my knees shatter every time I have to lug the beast around my apartment. So long cartilage, it was nice knowing you.  </p><h2 id="gabecube">GabeCube</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WLec9wkyEhDpZxRRLJYEqE" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>The Steam Machine obviously won’t be able to run <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077: Phantom Liberty</a> at 4K/120 FPS with full path tracing enabled like my chunky rig is capable of. Yet it should be great at delivering 4K/60 FPS experiences in slightly older titles by utilising AMD’s frame-boosting FSR upscaling tech. As such, some of the <a href="https://www.tomsguide.com/best-picks/best-steam-games">best Steam games</a> should hopefully be able to hand in performance that’s closer to PS5 than the <a href="https://www.tomsguide.com/gaming/nintendo/nintendo-switch-2-console-review">Nintendo Switch 2</a>. </p><p>I’ve been a huge fan of Steam’s Big Picture mode for years. While it’s not flawless, Valve’s TV-friendly UI makes navigating through your Steam library on a controller a relative breeze. SteamOS on the Steam Machine is set to deliver a comparably intuitive experience for fans of the <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">best PC game controllers</a>, and the mini PC’s UI should play especially nicely with the upcoming Steam Controller. </p><p>Jumping between numerous games on my embarrassingly large Steam library is a doddle thanks to the Linus-based SteamOS. Give me the option of having that fantastic UI on a box you can hold in your hands rather than a Windows PC that flirts with giving me a hernia every time I pick it up, and it’s no wonder my spine wants me to buy a Steam Machine. </p><p>If nothing else, playing games in hassle-free fashion on a purpose-built Linux OS is going to be a lot more pleasurable than maddeningly messing around with Windows Insider settings. Now, let’s just hope Valve can ship the Steam Machine for less than the price of a PS5 Pro. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/dont-expect-console-pricing-for-valves-steam-machine-unless-its-a-ps5-pro">Don’t expect console pricing for Valve’s Steam Machine — unless it’s a PS5 Pro</a></li><li><a href="https://www.tomsguide.com/gaming/i-didnt-think-i-could-love-my-steam-deck-oled-more-then-i-bought-this-incredible-dollar33-accessory">I didn’t think I could love my Steam Deck OLED more — then I bought this cheap accessory </a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/dlss">Nvidia's DLSS is a game-changer for PC gaming — here's how it works</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Don’t expect console pricing for Valve’s Steam Machine — unless it’s a PS5 Pro ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/dont-expect-console-pricing-for-valves-steam-machine-unless-its-a-ps5-pro</link>
                                                                            <description>
                            <![CDATA[ Valve's new console/PC hybrid will aim to price similarly to building your own PC. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">uQ2vpxDETu4mZQjEo26mzS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 25 Nov 2025 11:30:09 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Lloyd Coombes ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xcWocVTwa9yiwXRs559XNA.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Lloyd Coombes is a freelance tech and fitness writer. He&#039;s an expert in all things Apple as well as in computer and gaming tech, with previous works published on TechRadar, Tom&#039;s Guide, Live Science and more. You&#039;ll find him regularly testing the latest MacBook or iPhone, but he spends most of his time writing about video games as Gaming Editor for the Daily Star. He also covers board games and virtual reality, just to round out the nerdy pursuits.&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/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WLec9wkyEhDpZxRRLJYEqE-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>After the success of the <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck</a> in recent years, it was still a surprise to see Valve announce even more gaming hardware.</p><p>Alongside the <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a> and new Steam Controller, the <a href="https://www.tomsguide.com/news/live/valve-steam-machine-2025">Steam Machine</a> has captured the attention of many, packing a gaming PC into a Gamecube-like form factor that’s just as well suited to being next to your TV as it is on your desk.</p><p>With Valve remaining tight-lipped about pricing, though, we haven’t had a lot of information to go on — and now, we know a little more.</p><h2 id="valve-s-steam-machine-expected-to-be-priced-like-a-pc">Valve’s Steam Machine expected to be priced like a PC</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EWEFvfXcTi2HKWLY5zAAck" name="Valve Steam Machine" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/EWEFvfXcTi2HKWLY5zAAck.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve has suggested that the Steam Machine will not have its price subsidized, which is what you see from traditional console manufacturers.</p><p>Essentially, consoles are sold at a little less than what they cost to make, with platform holders like Microsoft and Sony making money back through the sale of software. That helps keep the prices of consoles down, and as we saw with the PS4 and Xbox One generation, having the lowest sticker price can be a huge deal.</p><p>Still, Valve will be sticking to what it did for the Steam Deck back in 2022. The Steam Machine will cost what it costs, essentially — so what will it cost?</p><p>YouTuber <a href="https://www.youtube.com/watch?v=356rZ8IBCps" target="_blank">Dave2D</a> said Valve told him they’re not targeting console pricing, but that the system will be priced competitively with a compact PC.</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/356rZ8IBCps" allowfullscreen></iframe></div></div><p>Estimates suggest that it could start at a low of $700, with prices going up to around $800. But Pierre-Loup Griffais, a Valve Software Engineer, told <a href="https://www.youtube.com/watch?v=yvu66Y2VLq8">YouTuber SkillUp</a> the following:</p><p>“No, it’s more in line with what you might expect from the current PC market. Obviously, our goal is for it to be a good deal at that level of performance. And then you have features that are actually really hard to build if you are making your own gaming PC from parts.”</p><p>“Things like the small form factor, the noise level that we achieved, or lack thereof, is really impressive and we are excited that people are going to find out how quiet this thing is. But also, some integration features like HDMI CEC., the Bluetooth and wireless work that we’ve done, the four antennas, the very deliberate design, so that you can have a great experience with four Bluetooth controllers."</p><p>Of course, there's no solid price on Valve's PC machine just yet, but it does give us a good idea of the price it will be. Considering the <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> is now up to <a href="https://www.tomsguide.com/gaming/playstation/every-ps5-model-is-getting-a-price-hike-in-the-u-s-and-todays-the-last-day-to-get-one-cheaper">$749 due to an increase</a>, the Steam Machine may have some competition on the console front after all. </p><p>Given that the <a href="https://www.tomsguide.com/gaming/xbox/rog-xbox-ally-isnt-an-xbox-but-it-feels-like-the-start-of-something-big">next Xbox is expected to offer a more PC-like</a> experience with additional storefronts, this could allow Microsoft the chance to sneak in at the more affordable end of the spectrum. Although the company has said its next-gen hardware will have a more premium focus.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/hardware/i-built-the-coolest-gaming-pc-ever-here-are-5-parts-to-buy-so-you-can-too">I built the coolest gaming PC ever — here are 5 parts to buy so you can too</a></li><li><a href="https://www.tomsguide.com/computing/hardware/nvidias-rumored-gaming-laptop-apu-could-match-rtx-4070-performance-heres-what-we-know">Nvidia's rumored gaming laptop APU could match RTX 4070 performance — here's what we know</a></li><li><a href="https://www.tomsguide.com/computing/vpns/mullvads-new-obfuscation-combats-one-of-the-biggest-drawbacks-of-using-a-vpn">Mullvad's new obfuscation combats one of the biggest drawbacks of using a VPN</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve Steam Frame vs Meta Quest 3: Here's how the VR headsets compare ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-vs-meta-quest-3-heres-how-the-vr-headsets-compare</link>
                                                                            <description>
                            <![CDATA[ Valve's Steam Frame is finally bringing some competition to the Meta Quest 3, but how do these two standalone VR headsets compare? Here's what you need to know. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Jr4dSwQYV7iqd2fktmQyLg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/hudyZnw4wWT6Zz3mqrS8U6-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Nov 2025 14:29:47 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Virtual Reality]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/hudyZnw4wWT6Zz3mqrS8U6-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve / Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Frame (left) and Meta Quest 3 (right) ]]></media:description>                                                            <media:text><![CDATA[Valve Steam Frame (left) and Meta Quest 3 (right) ]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Frame (left) and Meta Quest 3 (right) ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/hudyZnw4wWT6Zz3mqrS8U6-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve unveiled a trio of highly anticipated gaming products, the <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a>, Steam Controller and, most excitingly for VR, the <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a>. Finally, the long-rumored VR headset is official, and it already appears to have one rival in its sights: the <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a>. </p><p>Holding the crown as the <a href="https://www.tomsguide.com/best-picks/best-vr-headsets">best VR headset</a> you can get, the Quest 3 has barely seen any competition since its release in 2023. Unless you count Meta's own <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3s-review">Quest 3S</a>, that is. But Valve has now stepped into the ring with its own standalone headset, and the Steam Frame is already coming out swinging. </p><p>Aimed at being an all-encompassing device for both VR and non-VR games, Valve's latest VR headset not only <em>finally </em>brings some competition to the Quest 3, but it also turns the tables on what a VR headset can be. Because yes, the Steam Frame is also a PC (for your face). </p><p>But how does the Steam Frame compare to the Quest 3? Valve's VR headset isn't arriving until spring 2026, but we already have a clear view of how it may perform against Meta's current champion. Let's dive in. </p>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7571925825516211487" data-video-id="7571925825516211487" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ Minimal for news / news suspense(1169746) - Hiraoka Kotaro" href="https://www.tiktok.com/music/Minimal-for-news-news-suspense-1169746-7055051802865862658">♬ Minimal for news / news suspense(1169746) - Hiraoka Kotaro</a></section>                    </blockquote></div>                <h3 class="article-body__section" id="section-valve-steam-frame-vs-meta-quest-3-specs"><span>Valve Steam Frame vs Meta Quest 3: Specs</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Valve Steam Frame</p></th><th  ><p>Meta Quest 3</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>N/A</p></td><td  ><p>$499</p></td></tr><tr><td class="firstcol " ><p><strong>Chipset</strong></p></td><td  ><p>Snapdragon 8 Gen 3 processor (4nm)</p></td><td  ><p>Snapdragon XR2 Gen 2 (4nm)</p></td></tr><tr><td class="firstcol " ><p><strong>Optics</strong></p></td><td  ><p>Pancake lenses</p></td><td  ><p>Pancake lensses</p></td></tr><tr><td class="firstcol " ><p><strong>Field of view (FOV)</strong></p></td><td  ><p>110 degrees</p></td><td  ><p>110 degrees</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>2160 x 2160 pixels per eye</p></td><td  ><p>2,064 x 2,208 pixels per eye</p></td></tr><tr><td class="firstcol " ><p><strong>Refresh rate</strong></p></td><td  ><p>72Hz-144Hz (144Hz experimental)</p></td><td  ><p>72Hz-120Hz</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>256GB/1TB</p></td><td  ><p>512GB</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>16GB</p></td><td  ><p>8GB</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Wi-Fi 7 (wirless adapter with Wi-Fi 6E)</p></td><td  ><p>Wi-Fi 6E</p></td></tr><tr><td class="firstcol " ><p><strong>Size</strong></p></td><td  ><p>6.8 x 4.3 x 3.7 inches</p></td><td  ><p>7.2 x 6.2 x 3.8 inches</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>0.9 pounds (including headstrap)</p></td><td  ><p>1.1 pounds (including headstrap)</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-valve-steam-frame-vs-meta-quest-3-rumored-price"><span>Valve Steam Frame vs Meta Quest 3: Rumored price</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pUsRX3wDaCkjL8D3MifevB" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/pUsRX3wDaCkjL8D3MifevB.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve has yet to announce the price for its Steam Frame, so it's hard to tell whether it will be in the same bracket as the Meta Quest 3. That said, considering its specs, there's reason to believe it will be at least below $1,000. </p><p>Sporting a Snapdragon 8 Gen 3 processor, pancake lenses and an LCD display with similar resolution, the Steam Frame shares a few key specs with the Quest 3. With this being the case, there's a lot of hope that Valve will keep the price down as much as possible (at least, that's been the goal of its <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck</a>, which is still one of the most affordable handheld gaming PCs). </p><p>The Quest 3 is now priced at $499, after dropping the price from its original $649 at launch. That made it a hugely competitive VR device, especially since it's standalone. And it's only undercut by the Quest 3S at $299. </p><p>Previously, rumors have suggested the Steam Frame will cost around $1,200 / £950 / AU$1,900, but this now seems a little steep for what's on offer. However, based on the specs shown, it appears that Valve's VR device may be more expensive than the Quest 3. Here's hoping it's not by much. </p><h3 class="article-body__section" id="section-valve-steam-frame-vs-meta-quest-3-design"><span>Valve Steam Frame vs Meta Quest 3: Design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VF2oMpV3e6c7iTeqgRAR7C" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/VF2oMpV3e6c7iTeqgRAR7C.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve appears to have taken some design cues from the Meta, as the Steam Frame looks interestingly similar to the Quest 3. But there are a few differences that already appear to give the Frame an edge.</p><p>The Steam Frame comes with cushioning on the facial interface and rear, with the latter holding the rechargeable 21.6 Wh battery that appears to plug into the headset. There's no top strap like on the Quest 3, but the modular headstrap appears to be more integrated into the headset itself, as it also includes dual audio drivers. </p><p>The headset with the strap attached is only a lightweight 0.9 pounds (440g), whereas the Quest 3 comes in at 1.1 pounds (515g), which is an impressive feat. Oh, and the Steam Frame is slightly smaller in size. </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:2798px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="CYzT88bW9aR2JEFEbqkgFF" name="Meta Quest 3-1.jpg" alt="Meta Quest 3" src="https://cdn.mos.cms.futurecdn.net/CYzT88bW9aR2JEFEbqkgFF.jpg" mos="" align="middle" fullscreen="" width="2798" height="1574" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While the Quest 3 resembles a headset, with its three slits for the cameras on its face, the Steam Frame adopts a more goggle-like design — <em>similar to the</em> <a href="https://www.tomsguide.com/computing/augmented-reality/apple-vision-pro-m5-2025-review">Apple Vision Pro</a>. There are four outward-facing monochrome cameras for tracking and passthrough. However, the Quest 3 offers two RGB cameras (in addition to four IR cameras) for full-color passthrough. </p><p>Otherwise, you'll find volume controls, a power button and an IPD (Interpupillary Distance) adjustment wheel to get the right pupil distance. Plus, just like the Quest 3, the headstrap is swappable, meaning we could see many third-party providers offering their own headstrap options. </p><p>But two big differences set the Steam Frame and Quest 3 apart: eye-tracking cameras and a microSD card slot. Valve introduced its "Foveated Streaming," which tracks your eyes to bring the best image quality to where you're looking. It's said to bring "over a 10x improvement" in details, and works for all games in Steam. </p><p>The microSD card slot is also a welcome addition, as it allows users to expand storage and even boot up games that you may have stored on your Steam Deck. Now that's a smart move. </p><h3 class="article-body__section" id="section-valve-steam-frame-vs-meta-quest-3-display"><span>Valve Steam Frame vs Meta Quest 3: Display</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1792px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XuB3esXkip3NJd8UyqVgL" name="Valve Steam Frame" alt="Person using Valve Steam Frame with controller" src="https://cdn.mos.cms.futurecdn.net/XuB3esXkip3NJd8UyqVgL.jpg" mos="" align="middle" fullscreen="" width="1792" height="1008" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>We're big fans of the pancake optics introduced in the Meta Quest 3, and thankfully, Valve is following suit with its own custom pancake lenses. </p><p>These work by layering thin lenses to reproduce images in a smaller space, resulting in better clarity and higher resolution. It's why Meta calls the LCD displays the "4K+ Infinite Display," with the 2,064 x 2,208 pixels per eye resolution combining to bring 4K quality. Plus, the Quest 3 comes with 72Hz, 90Hz and 120Hz refresh rates. </p><p>Well, the Steam Frame takes this up a notch. Valve's VR headset is equipped with LCD displays featuring a 2160 x 2160 resolution per eye, and supports refresh rates ranging from 72Hz to 144Hz — although the 144Hz option is noted to be "experimental." Still, that shows how far the headset can be pushed. </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="bZ9eLFe2ss9MrwMYyQmWrk" name="Meta Quest 3S" alt="Meta Quest 3S" src="https://cdn.mos.cms.futurecdn.net/bZ9eLFe2ss9MrwMYyQmWrk.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>It's not by much, but the Steam Frame looks to deliver cleaner, more detailed visuals compared to the Quest 3. Plus, with Foveated Streaming that uses eye tracking to beam the best visual quality to where you're looking, the Steam Frame should bring about some upscaled visuals in VR and non-VR games compared to the Quest 3. </p><p>Of course, we'll have to see how it all looks once we properly test ourselves, and the Quest 3 still delivers some impressive picture quality, especially in games like <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3-is-putting-psvr-2-to-shame-batman-arkham-shadow-proves-it">Batman: Arkham Shadow</a> and well-praised Red Matter 2. </p><h3 class="article-body__section" id="section-valve-steam-frame-vs-meta-quest-3-performance"><span>Valve Steam Frame vs Meta Quest 3: Performance</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2103px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eYDqXZNvJiMYU6C5ChJFtE" name="Valve Steam Frame (1)" alt="Person wearing Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/eYDqXZNvJiMYU6C5ChJFtE.jpg" mos="" align="middle" fullscreen="" width="2103" height="1183" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Qualcomm makes a return for yet another VR headset, as the Steam Frame comes with a <a href="https://www.tomsguide.com/news/qualcomm-snapdragon-8-gen-3">Snapdragon 8 Gen 3</a> processor based on a 4nm process and using ARM64 architecture. That actually isn't too far off the Quest 3's Snapdragon XR2 Gen 2 chip, since both are based on a 4nm process. </p><p>It's interesting that Valve decided to put this chip in its device, considering we're now on the <a href="https://www.tomsguide.com/phones/android-phones/snapdragon-8-elite-gen-5-benchmarks-apples-a19-pro-meets-its-match">Snapdragon 8 Elite Gen 5</a>. That's not to say that the Snapdragon 8 Gen 3 isn't powerful, but it is the chip that powers the <a href="https://www.tomsguide.com/reviews/samsung-galaxy-s24">Samsung Galaxy S24</a>, and the Galaxy S26 is now just around the corner. </p><p>Either way, seeing games played on the Steam Frame, especially as a standalone device, will offer proper insight into how the chip performs. However, what we do know is that the Frame will offer beefier internals compared to the Quest 3. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1440px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="z58Y9Ug6VvbaENBoVUn5jP" name="Batman: Arkham Shadow" alt="Batman: Arkham Shadow" src="https://cdn.mos.cms.futurecdn.net/z58Y9Ug6VvbaENBoVUn5jP.jpg" mos="" align="middle" fullscreen="" width="1440" height="810" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Oculus Studios)</span></figcaption></figure><p>The VR headset comes packed with 16GB of DDR5 RAM and up to a 1TB SSD, which is double what the Quest 3 offers. This should lead to faster processing speeds and more room to handle data for VR apps and more. What's more, the Steam Frame's microSD slot means its storage can easily be expanded. </p><p>Valve states the Steam Frame is a PC, with the headset being able to install different apps on the fly. It's meant to play both VR and non-VR games, and not just by streaming from <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3s-xbox-edition-is-real-and-after-months-of-cloud-gaming-id-choose-it-over-an-actual-xbox">Xbox Game Pass like on the Quest 3</a>. It supports stand-alone gameplay and comes with its own Steam Frame verification program, so you know which VR and PC games work on the device. </p><p>The Quest 3 falls behind in this department, as it's only really made for VR and mixed-reality experiences. Although you can use <a href="https://www.tomsguide.com/computing/virtual-reality/i-just-tested-mixed-reality-link-for-windows-11-with-my-meta-quest-3-and-its-shockingly-good-for-a-free-feature">Mixed Reality Link to connect to a PC</a>, again, that's streaming. It's only a matter of time until we see how well it can play Steam's vast library of games, and just how far it goes before needing to plug in the 6GHz wireless adapter to stream with low latency from a PC. </p><h3 class="article-body__section" id="section-valve-steam-frame-vs-meta-quest-3-controllers"><span>Valve Steam Frame vs Meta Quest 3: Controllers</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n5qdfqq22rBpJzNYkGA3HB" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/n5qdfqq22rBpJzNYkGA3HB.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Those Steam Frame controllers look awfully familiar, as they really aren't too unlike the Quest 3's Quest Touch Plus controllers. But the Frame appears to have more gamer-focused features, as it's also essentially your regular gaming controller split in half. </p><p>You'll get your typical D-pad, triggers, bumpers, ABXY buttons and thumbsticks as with the <a href="https://www.tomsguide.com/best-picks/best-pc-game-controllers">best gaming PC controllers</a>, just with VR optimizations. So, 6DoF (degrees of freedom) tracking, haptic feedback, capacitive finger tracking and sensing on all input surfaces and dual-stage grip buttons, too. It's like the Quest Touch Plus controllers, just with more gamer-fied functions with more buttons. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3222px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="yzjp2GfvM9nKEjwpKfGuPF" name="Meta Quest 3-2.jpg" alt="Meta Quest 3" src="https://cdn.mos.cms.futurecdn.net/yzjp2GfvM9nKEjwpKfGuPF.jpg" mos="" align="middle" fullscreen="" width="3222" height="1812" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Oh, and the welcome addition of full-size magnetic <a href="https://www.tomsguide.com/gaming/gaming-peripherals/so-long-hall-effect-im-only-using-controllers-with-tmr-sensors-from-now-on">TMR thumbsticks</a> (Tunnel Magneto Resistance), which offer up even more precise levels of accuracy than what the Hall Effect is capable of. The Quest's controllers appear to be a little barebones in comparison.</p><p>Like the Quest 3, the Steam Frame controllers are powered by AA batteries. Of course, we'd love to see rechargeable controllers, but sure enough, we're sure to see rechargeable controller batteries come into play down the line.  </p><h3 class="article-body__section" id="section-valve-steam-frame-vs-meta-quest-3-os"><span>Valve Steam Frame vs Meta Quest 3: OS</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TdSMwEbuXASrQgjzATvaDo" name="How to connect your Meta Quest to your Windows 11 PC" alt="Meta Quest 3 interface showing three virtual monitors of Windows 11 PC with Xbox Game Pass app and Tom's Guide website open" src="https://cdn.mos.cms.futurecdn.net/TdSMwEbuXASrQgjzATvaDo.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future / Tom's Guide)</span></figcaption></figure><p>It's a battle of the operating systems. Or sort of, seeing as Meta Horizon OS can also be connected to a PC, wired or wirelessly. But having SteamOS operating on the Steam Frame, just as it would on the Steam Deck, is a bonus, as it will make the Steam Frame feel more like a VR headset made for PCVR. </p><p>Meta Horizon OS is one of the first VR-first operating systems, and it's improved over the years to provide a wide library of games and apps. It's easy to navigate, provides constant updates and delivers ways to connect to other platforms, like Windows PCs, Xbox Game Pass and streaming services via the recent <a href="https://www.tomsguide.com/computing/vr-ar/meta-announces-horizon-tv-streaming-hub-for-quest-vr-headsets-heres-what-we-know">Horizon TV Hub</a>. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="S6gjbSA2j6n9UobQwyixkL" name="Legion Go S testing-1-LEDE" alt="Lenovo Legion Go S SteamOS" src="https://cdn.mos.cms.futurecdn.net/S6gjbSA2j6n9UobQwyixkL.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>SteamOS is all about gaming, with the Steam Frame being able to use quick suspend and resume, cloud saves and access to your library of games — just in VR. We've praised SteamOS time and time again, even on the <a href="https://www.tomsguide.com/gaming/handheld-gaming/lenovo-legion-go-steamos-review">Lenovo Legion Go S with SteamOS</a>.  </p><p> VR users will have seen how SteamVR looks, but with SteamOS, I'm hoping to see a simple, user-friendly experience that makes accessing games on the Steam Frame extremely easy. </p><h3 class="article-body__section" id="section-valve-steam-frame-vs-meta-quest-3-outlook"><span>Valve Steam Frame vs Meta Quest 3: Outlook</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1976px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="NeNwjtxwitNyXRWez52FGQ" name="Valve Steam Frame (2)" alt="Person in room wearing Valve Steam Frame" src="https://cdn.mos.cms.futurecdn.net/NeNwjtxwitNyXRWez52FGQ.jpg" mos="" align="middle" fullscreen="" width="1976" height="1111" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>There's still a lot to learn about Valve's Steam Frame, but for now, it's taking on the Meta Quest 3 in a big way. From the pancake optics delivering higher resolution and refresh rates, controllers that act as regular console controls and eye-tracking, the Frame aims to take the crown as the standalone VR headset to get. </p><p>Of course, that won't be taken so easily, considering the Meta Quest 3 still offers incredible value for VR (with the Quest 3S bringing even more). We'll have to see the price of Valve's latest VR device, and how it performs as a way to play VR games and regular PC games — whether it's running on the Frame itself or through a wireless connection to a PC. </p><p>I can't wait to try out the Steam Frame, but that's not all Valve has up its sleeve. For more on how the <a href="https://www.tomsguide.com/gaming/pc-gaming/steam-machine-vs-ps5-vs-xbox-series-x-s-vs-mac-mini-how-does-valves-new-console-compare">Steam Machine compares to the PS5, Xbox Series X</a> and more, we've got the latest. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">I might ditch my gaming PC for the Steam Machine — here's why</a></li><li><a href="https://www.tomsguide.com/computing/virtual-reality/samsung-galaxy-xr-vs-apple-vision-pro-m5-vs-meta-quest-3">Samsung Galaxy XR vs Apple Vision Pro vs Meta Quest 3: Which headset is right for you?</a></li><li><a href="https://www.tomsguide.com/tech/i-got-this-compact-power-bank-for-my-meta-quest-3-but-now-i-use-it-for-everything">I got this compact power bank for my Meta Quest 3, but now I use it to charge everything</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Machine vs PS5 vs Xbox Series X/S vs Mac mini: How does Valve's new console compare? ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/steam-machine-vs-ps5-vs-xbox-series-x-s-vs-mac-mini-how-does-valves-new-console-compare</link>
                                                                            <description>
                            <![CDATA[ The Steam Machine is not quite a console and not quite a gaming PC. It’s the best of both worlds, and I’ve compared it to the PS5, Xbox Series X/S and Mac mini to prove it. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">sdC9pk5BWYdbjjcsh6ySfa</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/wJXzffvTBMzaw6Xbcxyufi-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Nov 2025 09:13:42 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&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/wJXzffvTBMzaw6Xbcxyufi-1280-80.jpg">
                                                            <media:credit><![CDATA[Credit: Tom’s Guide/Shutterstock/Valve/Sony/Microsoft/Apple]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Machine]]></media:description>                                                            <media:text><![CDATA[Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/wJXzffvTBMzaw6Xbcxyufi-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a> is not quite a console and not quite a gaming PC. It’s the best of both worlds, and I’ve compared it to its living room (and desk) competition to prove it.</p><p>I’m the kind of guy who installs SteamOS on mini PCs and ponders “will Valve actually make a console?” They tried ten years ago and it flopped, but the Steam Machine is back in a big way that bridges the gap between a gaming PC and a console.</p><p>Throw in a new Steam Controller that essentially chops off the sides of a Steam Deck and crams them together, and you’re onto a winner in my mind. </p><p>But while a lot of people have gone hands-on with the system, none have really put it in the context of seeing where it stands in comparison to the machines it's clearly gunning for — the <a href="https://www.tomsguide.com/reviews/ps5">PS5</a>, the <a href="https://www.tomsguide.com/opinion/ive-never-been-happier-to-own-my-xbox-series-x-heres-why">Xbox Series X</a>/S and mini PCs like the <a href="https://www.tomsguide.com/computing/desktop-computers/mac-mini-m4-review">M4 Mac mini</a>. So that’s what I’m going to do. </p><h3 class="article-body__section" id="section-a-goth-gamecube"><span>A 'goth gamecube'</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="sJthZiHkM5CLN6Ur7BGtmE" name="SM_front_b" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/sJthZiHkM5CLN6Ur7BGtmE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>My colleague Scott wrote this in the team’s Slack channel, and while it got a quick laugh out of me, he’s onto something. That Steam Machine makes for a sleek system under any TV — emphasized by that glowing LED light bar indicator. Plus, it’s customizable with magnetic covers on the front to fit into any aesthetic you have.</p><p>And size-wise, it’s significantly smaller than its games console competition.</p><div ><table><thead><tr><th class="firstcol " ><p>System</p></th><th  ><p>Dimensions</p></th><th  ><p>Weight</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steam Machine</strong></p></td><td  ><p>6.39 x 6.14 x 5.98 inches</p></td><td  ><p>5.7 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>PS5</strong></p></td><td  ><p>14.1 x 8.5 x 3.8 inches</p></td><td  ><p>7.1 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>PS5 Pro</strong></p></td><td  ><p>15.3 x 8.5 x 3.5 inches</p></td><td  ><p>6.8 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>Xbox Series X</strong></p></td><td  ><p>11.9 x 5.9 x 5.9 inches</p></td><td  ><p>9.8 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>Xbox Series S</strong></p></td><td  ><p>10.8 x 5.9 x 2.6 inches</p></td><td  ><p>4.3 pounds</p></td></tr><tr><td class="firstcol " ><p><strong>Mac mini M4</strong></p></td><td  ><p>2 x 5 x 5 inches</p></td><td  ><p>1.5 pounds</p></td></tr></tbody></table></div><p>That being said, the Mac mini does have a far smaller footprint in dimensions and weight. But that is also because of drastically smaller components needed to run it vs the Steam Machine.</p><h3 class="article-body__section" id="section-specs-and-predicted-performance"><span>Specs and predicted performance</span></h3><div ><table><caption>Steam Machine specs</caption><tbody><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD 6-core Zen 4 x86, up to 4.8 GHz, 30W TDP</p></td></tr><tr><td class="firstcol " ><p><strong>GPU</strong></p></td><td  ><p>Semi-custom AMD RDNA3 28CU (8GB GDDR6, 2.45GHz max sustained clock, 110W TDP)</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>16GB DDR5 SO-DIMMs</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>512GB or 2TB models, microSD card slot</p></td></tr><tr><td class="firstcol " ><p><strong>Power Supply</strong></p></td><td  ><p>300 W, internal</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>DisplayPort 1.4, HDMI 2.0, Ethernet (1Gbps), USB Type-C 3.2 Gen 2, 2x USB Type-A Gen 3 (front), 2x USB Type-A Gen 2 (rear)</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Wi-Fi 6E, dedicated Bluetooth antennae, integrated 2.4 GHz Steam Controller radio</p></td></tr><tr><td class="firstcol " ><p><strong>Controller</strong></p></td><td  ><p>Steam Controller (optional bundle)</p></td></tr><tr><td class="firstcol " ><p><strong>OS</strong></p></td><td  ><p>SteamOS</p></td></tr></tbody></table></div><p>Of course, this isn’t going to be completely accurate as these are not off-the-shelf parts, but there are some similarities in some of AMD’s more common parts to the custom silicon in here.</p><p>The custom Zen 4 chip with 6 cores and 12 threads is eerily similar to the AMD Ryzen 5 7600 on a specs level — with the real difference coming down to the power being pumped through it (30W for the Steam Machine vs a 65W limit for the desktop chip). </p><p>As for the GPU, it looks like you’re getting something more akin to the Radeon RX 7400. But this time around, the wattage is flipped on its head, as 110W is going to the custom RDNA 3 chip in the Steam Machine vs the typical 55W.</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:970px;"><p class="vanilla-image-block" style="padding-top:56.19%;"><img id="MA5aScDQ8u3bGwd9LR6r2i" name="6n3Pfuz63A72YkUj99ydyd-970-80.pn" alt="Steam Machine seen by Tom's Hardware" src="https://cdn.mos.cms.futurecdn.net/MA5aScDQ8u3bGwd9LR6r2i.jpg" mos="" align="middle" fullscreen="" width="970" height="545" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>This puts the Steam Machine in roughly similar territory performance-wise to the PS5 and way ahead of the Xbox Series S. But its mid-range specs do fall a little behind the graphical capabilities of the Xbox Series X and PS5 Pro. That’s even more prevalent when you see the Steam Machine only has HDMI 2.0 — making that claim of 4K at 60 FPS with AMD’s FSR an absolute maximum.</p><p>But then again, the PS5 and Xbox have an RDNA 2 architecture, whereas the Steam Machine supports more of AMD’s more modern resolution scaling tech with RDNA 3. The big unknown here is its performance vs the Mac mini, because it’s very much like comparing apples and oranges in terms of GPU performance and game support.</p><h3 class="article-body__section" id="section-does-steamos-fit-in-the-living-room"><span>Does SteamOS fit in the living room?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="RzusMSoFqREVkoErH63pMN" name="SM_ledStrip" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>As someone who used Bazzite to install SteamOS on a mini PC in my living room, the answer is a resounding “yes.” The console UI of the Steam Deck works great on a big screen, and the Steam Machine borrows some really nice-to-have features like fast game resume and quick sleep/wake.</p><p>And given that, according to Valve, roughly 20% of Steam Deck owners connected it to their TV via the official dock, it’s clear there is a want for home gaming.</p><p>And all of that comes with Proton — the breakthrough in game compatibility that allows a lot of Windows titles to run on the Linux-based OS. That immediately gives you access to over 19,000 games verified for Steam Deck, and the verification program is coming to the Steam Machine, too.</p><p>And while the PS5 does have an impressive library and Xbox Game Pass is packed with some solid first-party titles, Steam is the cheat code as the service packs games from both of these consoles. Driving from the rear is the Mac mini, which is starting to get some AAA titles to play, but nowhere near the same library depth as you’d find on any of these systems.</p><h3 class="article-body__section" id="section-best-of-both-worlds"><span>Best of both worlds</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="p7bernaLEm4CdAJq4wuD8f" name="SC_front_b" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/p7bernaLEm4CdAJq4wuD8f.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Of course, this is all very early speculation until I can get my hands on one next spring, but I do believe Valve is definitely onto something here. The original Steam Machine decidedly flopped, but one decade later, the game has changed.</p><p>Proton brings a new level of game compatibility, the vastly improved controller inspired by Steam Deck brings new ways to play and the sleek, customizable design will take pride of place on any TV stand.</p><p>We don’t know the price yet, but given the specs, I’m hoping for $499 or less to make it make sense. If it’s around here, I think the traditional idea of a games console is going to be altered.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Valve announces Steam Frame VR headset — a premium standalone rival to the Meta Quest 3</a></li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why">I might ditch my gaming PC for the Steam Machine — here's why</a></li><li><a href="https://www.tomsguide.com/gaming/gaming-peripherals/asetek-forte-review">I drove 1,000 miles with the Asetek Forte sim rig and it humbled me in the best way</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I might ditch my gaming PC for the Steam Machine — here's why ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/i-might-ditch-my-gaming-pc-for-the-steam-machine-heres-why</link>
                                                                            <description>
                            <![CDATA[ Valve just announced the Steam Machine, and if its claims are true, then it could cause some folks to consider getting it over a gaming PC. Here's why I'm considering making the switch. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">oj6rcwZr4TPRjANA9wAcMm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/sJthZiHkM5CLN6Ur7BGtmE-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Nov 2025 05:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/sJthZiHkM5CLN6Ur7BGtmE-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/sJthZiHkM5CLN6Ur7BGtmE-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I might ditch my gaming PC for the newly announced <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine</a>. That might sound ludicrous — it certainly does, even to me. However, if the diminutive gaming platform delivers the kind of gaming experience Valve promises, I might seriously consider doing the unthinkable.</p><p>What’s so special about the Steam Machine? It’s effectively a Steam Deck shaped (roughly) like a 6-inch cube you can comfortably place in your entertainment center. Naturally, it runs on the user-friendly <a href="https://www.tomsguide.com/us/steamos-faq-machines,news-17614.html">SteamOS</a>, which gives you access to your Steam gaming library. It also boasts some impressive specs on paper, and should be nearly as powerful as a <a href="https://www.tomsguide.com/reviews/ps5">PS5</a> or <a href="https://www.tomsguide.com/reviews/xbox-series-x">Xbox Series X</a>.</p><p>I’ll make a final decision after I’ve had extensive hands-on time with the Steam Machine when it arrives next year, but based on what we currently know, I’m pretty stoked for this platform. Here’s why I might ditch my gaming PC for a Steam Machine.</p><h2 id="an-easier-way-to-play-pc-games">An easier way to play PC games</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ykRy32GfJmDiDjqymNueJf" name="shutterstock_703264159.jpg" alt="Steam storefront on laptop screen." src="https://cdn.mos.cms.futurecdn.net/ykRy32GfJmDiDjqymNueJf.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Though I own a gaming PC and have a sizeable library of Steam games, I rarely play the <a href="https://www.tomsguide.com/best-picks/best-PC-games">best PC games</a>. It’s not a question of power, since my rig can generally outperform my <a href="https://www.tomsguide.com/gaming/playstation/ps5-pro-review">PS5 Pro</a> in terms of performance. The reason I almost always game on my PlayStation is that it’s <em>simple</em>.</p><p>While <a href="https://www.tomsguide.com/gaming/gaming-peripherals/i-review-gaming-monitors-but-i-prefer-playing-games-on-my-lg-oled-tv-heres-why">I review gaming monitors, I prefer playing games on my LG OLED TV</a>. I have the TV connected to my PC, but I have to go through several more steps before I can start playing. That’s under ideal conditions. There are times when I’ll have to readjust the display settings because they changed for some inexplicable reason.</p><p>If the Steam Machine functions as promised, I should be able to just turn it on and jump right into a game. Basically, it should work like a console. This also includes not having to use a mouse to tweak things like I sometimes have to when playing a PC game, which isn’t fun when I’m in front of my TV.</p><h2 id="what-about-performance">What about performance?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="RzusMSoFqREVkoErH63pMN" name="SM_ledStrip" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>According to Valve, the Steam Machine is capable of running games at 4K resolution and at 60 frames per second. I’ll take that claim with a grain of salt since I’ll be surprised if graphically demanding games like <a href="https://www.tomsguide.com/reviews/cyberpunk-2077">Cyberpunk 2077</a> can achieve those marks at default graphical settings. However, if I can get a sizable chunk of my games to run at 60 fps, even at 1440p resolution, then I’ll be a happy camper.</p><p>Based on the Steam Machine’s specs, it should be nearly (though not exactly) as powerful as a regular PS5. My gaming PC can crush that system’s performance, but I’m less concerned with raw power these days as I am with an overall enjoyable gaming experience. I also have difficulty telling the difference between 60 fps and 120 fps, so I’m not bothered that the Steam Machine doesn’t support HDMI 2.1, which facilitates outputting at 120Hz.</p><p>My TV does a great job of upscaling 1440p images for its 4K display, so I’ll likely keep games at that resolution and medium graphical settings to achieve the best possible frame rates. Yes, this requires some tweaking in settings, but I already do that on my <a href="https://www.tomsguide.com/opinion/steam-deck-oled-is-the-must-buy-handheld-of-2023-and-the-perfect-holiday-gift-for-gamers">Steam Deck OLED</a>, so it’s not too bad. Regardless, the trade-offs I’ll have to make to get ideal gaming performance shouldn’t be great.</p><h2 id="space-saving">Space saving</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="QcMDP6km6TkZsowwFYNCYN" name="SM_3Q" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/QcMDP6km6TkZsowwFYNCYN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>I currently live in a modest studio apartment, so I’m always trying to optimize my living space. While my gaming PC isn’t exactly giant, it still takes up considerable space on my desk. Because of that, there are only so many ways I can configure my desk since I have to account for my relatively unwieldy desktop.</p><p>That won’t be an issue if I can replace my gaming PC with a Steam Machine. Without the desktop, I can configure my dual-monitor setup differently, or even consider getting an ultrawide monitor. I will also be able to keep other items on my desk, such as a small shelf or other knick-knacks. For work, I can use one of the <a href="https://www.tomsguide.com/best-picks/best-laptops">best laptops</a> or one of the <a href="https://www.tomsguide.com/best-picks/best-macbook">best MacBooks</a>, which would be easy to find a place for on an unencumbered desk.</p><h2 id="final-thoughts">Final thoughts</h2><p>Right now, I only really use my PC when I work from home or when I run my podcast, both of which I do twice a week. I can perform both of these tasks on a laptop, especially with peripherals like my monitors, keyboard, and mouse connected. And if I can play my PC games on the Steam Machine, then I’ll have to seriously consider ditching it entirely (or rather, giving it to my grateful nephew).</p><p>Again, I’ll decide what I’m going to do when the Steam Machine is out in the wild. That said, the fact that I’m seriously considering making Valve’s upcoming device my main PC gaming machine is a huge deal for me. If that happens, not only will it make my life a little easier, but it could spur me to actually make a dent in my Steam backlog.</p><p>I’ve been looking to ditch my gaming rig for some time now, and it’s possible that Valve just provided the reason I need to go all in with the Steam Machine. We’ll see what happens!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Valve announces Steam Frame VR headset</a></li><li><a href="https://www.tomsguide.com/news/live/valve-steam-machine-2025">Steam Machine Is Back: live updates on Valve's console comeback</a></li><li><a href="https://www.tomsguide.com/gaming/i-made-steam-deck-even-better-thanks-to-this-new-update-heres-how">Here's how I made Steam Deck even better thanks to this update</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Machine Is Back: live updates on Valve's console comeback and Steam Frame VR launch ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/news/live/valve-steam-machine-2025</link>
                                                                            <description>
                            <![CDATA[ Valve has revealed a trio of Steam hardware devices including a new living room console and a VR headset. Here's a live look at what's coming. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">x3b6U6ye3Gh2Un2ypHg7qD</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 12 Nov 2025 18:29:49 +0000</pubDate>                                                                                                                                <updated>Wed, 12 Nov 2025 21:01:41 +0000</updated>
                                                                                                                                            <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &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/RzusMSoFqREVkoErH63pMN-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Machine]]></media:description>                                                            <media:text><![CDATA[Valve Steam Machine]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Machine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>A decade after the original Steam Machines flopped, Valve is dipping its toes back into the console waters with a new ecosystem of gaming hardware. </p><p>Joining the successful <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-finally-got-a-steam-deck-and-i-like-it-even-better-than-my-nintendo-switch-heres-why">Steam Deck</a> is a new Steam Machine, a revamped Steam Controller and a VR headset dubbed the Steam Frame.</p><p>The Machine and Controller use the same nomenclature as the original devices released by Valve ten years ago. These new ones don't look anything like their predecessors. </p><p>Valve released the Index headset in 2019, but discontinued it in the last few years after the headset also didn't take off. The new Frame is lightweight and meant to be its own device without connecting to a gaming PC, though you can do that too.</p><p>For detailed breakdowns on the devices, we have a separate article about the <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine and Steam Controller</a> and another on the <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a>.</p><p>Tom's Guide is taking a look at each device, how we got here, and what to expect from Valve going forward. </p><h2 id="valve-s-3-big-announcements-what-s-new">Valve's 3 Big Announcements: What's New</h2><ul><li><a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck"><strong>Steam Machine</strong></a><strong>: </strong>A Gamecube looking console with a replaceable front plate and mid-level</li><li><a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3"><strong>Steam Frame</strong></a><strong>:</strong> A lightweight and slim VR headset that is a PC on its own featuring a Snapdragon 8 Gen 3 processor</li><li><a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck"><strong>Steam Controller</strong></a><strong>: </strong>A redesigned Steam Controller with touchpads, extra shoulder buttons and a claimed 35 hours of battery life.</li></ul><h2 id="first-look-at-the-new-steam-machine">First look at the new Steam Machine</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="QcMDP6km6TkZsowwFYNCYN" name="SM_3Q" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/QcMDP6km6TkZsowwFYNCYN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Nearly a decade after Valve launched the original Steam Machine, the gaming giant is announcing a new Steam Machine.</p><p>Unlike its predecessor, the new version looks more like a goth Gamecube minus the carrying handle.</p><h2 id="steam-frame-headset">Steam Frame headset</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pUsRX3wDaCkjL8D3MifevB" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/pUsRX3wDaCkjL8D3MifevB.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve's long-rumored "Deckard" headset has finally arrived. The new Steam Frame headset is a standalone VR headset that runs SteamOS.</p><p>Like the revamped Steam Machine, the Frame is Valve's second go at a headset, after the Valve Index which originally launched in 2019.</p><h2 id="valve-adds-devices-to-steam">Valve adds devices to Steam</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:1199px;"><p class="vanilla-image-block" style="padding-top:64.05%;"><img id="pzok49E9ieU8rWdhgPK6Q3" name="Screenshot 2025-11-12 103240" alt="Steam Machine" src="https://cdn.mos.cms.futurecdn.net/pzok49E9ieU8rWdhgPK6Q3.png" mos="" align="middle" fullscreen="" width="1199" height="768" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve has officially launched new hardware pages for the Machine, Frame and Controller on Steam. </p><p>Check it out <a href="https://store.steampowered.com/sale/steammachine">here</a>.</p><h2 id="lest-you-forgot-steam-is-dominant-in-pc-gaming">Lest you forgot: Steam is dominant in PC gaming</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:60.88%;"><img id="WkBpCHEpGZXnsGKfDvKcbW" name="Steam-Logo.jpg" alt="Steam logo" src="https://cdn.mos.cms.futurecdn.net/WkBpCHEpGZXnsGKfDvKcbW.jpg" mos="" align="middle" fullscreen="" width="800" height="487" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve Corporation)</span></figcaption></figure><p>In case you're wondering what the addressable market is for the Steam Deck,<a href="https://www.bloomberg.com/news/articles/2025-11-12/valve-announces-steam-machine-a-new-living-room-console-for-pc-video-games" target="_blank"> Bloomberg reports</a> that Steam has 40 million daily active players. That's a lot of gamers.</p><p>But why release this console now? The success of the Steam Deck has certainly helped. “We’ve been super happy with the success of Steam Deck, and a lot of the feedback we’ve received from gamers about it is what encouraged us to expand the options for Steam users,” Valve said in a statement.</p><h2 id="valve-s-announcement-video">Valve's announcement video</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/OmKrKTwtukE" allowfullscreen></iframe></div></div><p>Valve dropped an announcement video showing off the Controller, Machine and Frame in action. </p><p>There are some impressive specs relayed in the video including a claimed 35 hour play time with the new Controller. Or that the Steam Machine is 6x more powerful than the Steam Deck. </p><p>The Steam Frame looks set to take on the <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a> for VR gaming with similar looking controllers. It's standalone, Valve says "It is a PC," and it has expandable storage.</p><p>The video notes that all three devices are shipping in "early 2026" but no pricing yet.</p><h2 id="steam-machine-specs">Steam Machine specs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="QcMDP6km6TkZsowwFYNCYN" name="SM_3Q" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/QcMDP6km6TkZsowwFYNCYN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>We don't yet know the price for the Steam Machine but we do have some specs for the new console. </p><p>Here's what you can expect:</p><div ><table><caption>Steam Machine specs</caption><tbody><tr><td class="firstcol " ><p>CPU</p></td><td  ><p>AMD Zen 4</p></td></tr><tr><td class="firstcol " ><p>Cores/threads</p></td><td  ><p>6/12</p></td></tr><tr><td class="firstcol " ><p>RAM</p></td><td  ><p>16 GB</p></td></tr><tr><td class="firstcol " ><p>GPU</p></td><td  ><p>Semi-custom AMD RDNA 3</p></td></tr><tr><td class="firstcol " ><p>VRAM</p></td><td  ><p>8 GB</p></td></tr><tr><td class="firstcol " ><p>Storage</p></td><td  ><p>512 GB, 2 TB</p></td></tr><tr><td class="firstcol " ><p>Wireless connectivity</p></td><td  ><p>Wi-Fi 6E 2x2, Bluetooth</p></td></tr><tr><td class="firstcol " ><p>Display ports</p></td><td  ><p>DisplayPort 1.4, HDMI 2.0</p></td></tr><tr><td class="firstcol " ><p>Front ports</p></td><td  ><p>2x USB 3.0 Type-A (front), microSD card slot</p></td></tr><tr><td class="firstcol " ><p>Rear ports</p></td><td  ><p>2x USB 2.0 Type-A, 1x USB 3.2 Gen 2 Type-C (10 Gbps), ethernet (1 Gbps)</p></td></tr><tr><td class="firstcol " ><p>Dimensions</p></td><td  ><p>6.39 x 6.14 x 5.98 inches, 5.7 lbs</p></td></tr></tbody></table></div><h2 id="initial-hands-on-from-ign">Initial hands-on from IGN</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n5qdfqq22rBpJzNYkGA3HB" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/n5qdfqq22rBpJzNYkGA3HB.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>The crew over at IGN got an early <a href="https://www.ign.com/articles/steam-machine-hands-on-first-impressions" target="_blank">hands-on session</a> with the Steam Machine. </p><p>They said at first glance its similar to the original Machine as a modest gaming PC meant to run games using SteamOS.  Now though SteamOS has Proton which translates Windows games to Linux letting you play more of the games in your Steam library.</p><p>In person it's half the size of the Xbox Series X and features a magnetic front panel that can add some personal flair.</p><p>They said it ran Cyberpunk 2077 and some other games well but seemed to struggle a bit with the recently released <a href="https://www.tomsguide.com/gaming/silent-hill-f-review">Silent Hill F</a>, something to keep an eye on.</p><h2 id="steam-frame-key-specs">Steam Frame key specs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="V2WRYAbgWtTT4mK4sdBj6C" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/V2WRYAbgWtTT4mK4sdBj6C.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>The Steam Frame is a new wireless VR headset that is its own PC featuring a Snapdragon 8 Gen 3 processor and SteamOS.</p><p>Here are some key specs for the headset. At first glance, it really seems to be slim and lightweight compared to the Meta Quest 3 or the recently released <a href="https://www.tomsguide.com/computing/vr-ar/ive-been-testing-samsung-galaxy-xr-and-this-is-the-one-feature-that-makes-it-stand-out">Samsung Galaxy XR</a>. At 435 grams (.9 lbs) that's 100 grams less than Samsung's headset which weighs 545 grams (1.2 lbs).</p><div ><table><caption>Valve Frame VR headset specs</caption><tbody><tr><td class="firstcol " ><p><strong>Optics</strong></p></td><td  ><p>Pancake</p></td></tr><tr><td class="firstcol " ><p><strong>Resolution</strong></p></td><td  ><p>2160 x 2160</p></td></tr><tr><td class="firstcol " ><p><strong>Tracking</strong></p></td><td  ><p>Inside-out</p></td></tr><tr><td class="firstcol " ><p><strong>FOV</strong></p></td><td  ><p>Up to 110 degrees</p></td></tr><tr><td class="firstcol " ><p><strong>Processor</strong></p></td><td  ><p>Qualcomm Snapdragon 8 Gen 3 </p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>16 GB</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>256 GB / 1 TB</p></td></tr><tr><td class="firstcol " ><p><strong>Controllers</strong></p></td><td  ><p>2x Steam Frame Controller</p></td></tr><tr><td class="firstcol " ><p><strong>OS</strong></p></td><td  ><p>SteamOS</p></td></tr><tr><td class="firstcol " ><p><strong>Weight</strong></p></td><td  ><p>435 grams</p></td></tr></tbody></table></div><h2 id="first-look-from-the-verge">First look from The Verge</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:750px;"><p class="vanilla-image-block" style="padding-top:101.20%;"><img id="GphCAMXqND8LK7Y4y3JtZk" name="258049_Valve_2025_EverythingTime" alt="Steam machine with Team Fortress 2 faceplate" src="https://cdn.mos.cms.futurecdn.net/GphCAMXqND8LK7Y4y3JtZk.jpg" mos="" align="middle" fullscreen="" width="750" height="759" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: The Verge)</span></figcaption></figure><p><a href="https://www.theverge.com/tech/818111/valve-steam-machine-hands-on-preview-specs-announcement" target="_blank">The Verge</a> is another space who were able to get some hands-on time with the Steam Machine. </p><p>Their article is paywalled but Sean Hollister said he though the laptop-esque AMD chip combined with the GPU should offer similar performance to the PS5 Pro.</p><p>"While I didn’t have time for robust testing at Valve’s headquarters, my first impressions were promising," he said.</p><p>He even saw a version with an e-paper display that showed off the console's stats. The extra panels sound pretty interesting if it goes beyond just flair. Though they said Valve might not sell those types of panels.</p><p>They do note that the Steam Machine isn't really upgradeable beyond adding an SSD since everything inside is soldered on. Though it's probable most people will treat the Machine like a normal console.</p><h2 id="steam-controller-key-specs">Steam Controller key specs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="p7bernaLEm4CdAJq4wuD8f" name="SC_front_b" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/p7bernaLEm4CdAJq4wuD8f.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Unlike the experimental original Steam Controller with its circular pads, the new version looks a little more traditional with the addition of track pads below the buttons.</p><p>However, the most impressive thing is a claimed 35 or more hours of battery life. Most wireless controllers do not offer battery life like that and it's one we'll have to test out once we get our hands on a set.</p><div ><table><caption>Steam Controller key specs</caption><tbody><tr><td class="firstcol " ><p><strong>Thumbsticks</strong></p></td><td  ><p><strong> </strong>2x TMR sticks</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>2.4 GHz (puck included), Bluetooth, wired</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life</strong></p></td><td  ><p>35+ hours</p></td></tr><tr><td class="firstcol " ><p><strong>Extra features</strong></p></td><td  ><p>2x trackpads, gyro controls</p></td></tr></tbody></table></div><h2 id="pair-with-your-steam-deck">Pair with your Steam Deck</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:3718px;"><p class="vanilla-image-block" style="padding-top:53.71%;"><img id="GT6FL9j3Xbmxjbp3CdJJ8C" name="Steam Deck QAM.jpg" alt="Steam Deck QAM" src="https://cdn.mos.cms.futurecdn.net/GT6FL9j3Xbmxjbp3CdJJ8C.jpg" mos="" align="middle" fullscreen="" width="3718" height="1997" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>One nice feature of the Steam Machine is that you can use your Steam Deck with the console.</p><p>Valve says you can stream games to your Deck ala the <a href="https://www.tomsguide.com/reviews/playstation-portal">PlayStation Portal</a>. For those who have a Steam Deck this will be a nice way to continue gaming when you want to remove rooms.</p><p>You can also send games to the Steam Frame, or any other device that runs Steam or Steam Link. </p><h2 id="what-about-price">What about price?</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:966px;"><p class="vanilla-image-block" style="padding-top:66.77%;"><img id="8uDHABkquxxtRnvJThz5cP" name="laptop-money-flutter-shst.jpg" alt="Man sits on his laptop while money falls around" src="https://cdn.mos.cms.futurecdn.net/8uDHABkquxxtRnvJThz5cP.jpg" mos="" align="middle" fullscreen="" width="966" height="645" attribution="" endorsement="" class=""></p></div></div></figure><p>Unfortunately, Valve has not released pricing for any of the new Steam devices. </p><p>At a simple level, the new Galaxy XR headset costs $1800 while the Meta Quest 3 will set you back $500. I think the Steam Frame will be closer to the Quest 3 but probably a bit more expensive.</p><p>As for the Steam Machine, using the specs we have you could get a gaming PC for about $800. That's not friendly for a console, even if they are getting more expensive. The smaller 512GB version should be much cheaper than the 2 TB model.</p><p>We won't know until "early 2026."</p><h2 id="it-s-a-full-ecosystem">It's a full ecosystem</h2>                    <div class= "tiktok-wrapper" style="min-height: 750px;"><blockquote class="tiktok-embed" cite="https://www.tiktok.com/@tomsguide/video/7571925825516211487" data-video-id="7571925825516211487" style="max-width: 605px; min-width: 325px;">                        <section>                            <a target="_blank" title="@tomsguide" href="https://www.tiktok.com/@tomsguide">@tomsguide</a>                            <p></p><a target="_blank" title="♬ Minimal for news / news suspense(1169746) - Hiraoka Kotaro" href="https://www.tiktok.com/music/Minimal-for-news-news-suspense-1169746-7055051802865862658">♬ Minimal for news / news suspense(1169746) - Hiraoka Kotaro</a></section>                    </blockquote></div>                <p>We highlighted the new Steam devices on our TikTok account.</p><p>If you're not following us on TikTok or YouTube, we react to news, do hands-ons, unboxings and first looks at tech shows, conferences and more.</p><p>Give us a follow.</p><h2 id="a-closer-look-at-the-frame">A closer look at the Frame</h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/gJY8LkikCUdTwZjGmXv4zB.jpg" alt="Valve Steam Frame VR headset" /><figcaption><small role="credit">Valve</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/VF2oMpV3e6c7iTeqgRAR7C.jpg" alt="Valve Steam Frame VR headset" /><figcaption><small role="credit">Valve</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/AQVisVYHv5HV8657ucvJAC.jpg" alt="Valve Steam Frame VR headset" /><figcaption><small role="credit">Valve</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/n5qdfqq22rBpJzNYkGA3HB.jpg" alt="Valve Steam Frame VR headset" /><figcaption><small role="credit">Valve</small></figcaption></figure></figure><p>Above, we have some detail shots of the Steam Frame, including the controllers, knobs, strap, and passthrough cameras.</p><h2 id="tom-s-hardware-hands-on">Tom's Hardware hands-on</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:970px;"><p class="vanilla-image-block" style="padding-top:56.19%;"><img id="MA5aScDQ8u3bGwd9LR6r2i" name="6n3Pfuz63A72YkUj99ydyd-970-80.pn" alt="Steam Machine seen by Tom's Hardware" src="https://cdn.mos.cms.futurecdn.net/MA5aScDQ8u3bGwd9LR6r2i.jpg" mos="" align="middle" fullscreen="" width="970" height="545" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Hardware)</span></figcaption></figure><p>Our colleagues at Tom's Hardware were able to go to Bellevue, Washington to see the new Steam Machine in person.</p><p>They were impressed with the massive heatsink, which should make it a quiet and cool device. </p><p>They said the new Controller didn't feel overly bulky, nor heavy or light and that the plastic felt similar to the Steam Deck.</p><p>"With newer hardware, better game compatibility, and the Steam Deck as a strong proof of concept, it sure seems from a brief hands-on that the Steam Machine has a better chance this time around."</p><h2 id="steam-machine-verified">Steam Machine Verified</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="KRxqrPisCWaFBibYdJNZCW" name="SM_powerButton" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/KRxqrPisCWaFBibYdJNZCW.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>The Steam Machine and Frame both run on SteamOS, Valve's gaming optimized operating system. </p><p>Not every game worked with SteamOS until Valve installed its Proton layer that lets Windows games work in the Linux based OS. </p><p>For Steam Decks Valve introduced Steam Deck verified which tells you how games will run on the handheld console.</p><p>The Steam Machine is getting a similar rating system so you'll understand how games should perform. With the Steam Machine reportedly 6x more powerful than the Steam Deck it should run even more games, even better.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Steam Machine console challenges PS5 and Xbox — 6x more powerful than Steam Deck ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck</link>
                                                                            <description>
                            <![CDATA[ Valve is entering the home console space with the new Steam Machine and Steam Controller. Here's everything you need to know. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Ff47qEGZpTxw2qQiaDieDK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 12 Nov 2025 18:09:19 +0000</pubDate>                                                                                                                                <updated>Wed, 12 Nov 2025 19:39:00 +0000</updated>
                                                                                                                                            <category><![CDATA[PC Gaming]]></category>
                                                    <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ tony.polanco@futurenet.com (Tony Polanco) ]]></author>                    <dc:creator><![CDATA[ Tony Polanco ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/atzRNqFt5wYgEUPBDahWsD.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam Machine ]]></media:description>                                                            <media:text><![CDATA[Steam Machine ]]></media:text>
                                <media:title type="plain"><![CDATA[Steam Machine ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/djtjcDyxp27vCNuxWeTJ8B-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://store.steampowered.com/sale/steammachine" target="_blank">Steam Machine</a> is real and it just put the PS5 and Xbox Series X on notice. Valve's new home console appears to be as powerful as those systems, except it comes in a smaller size that’s perfect for the living room. If this newly announced gaming device is as user-friendly as the popular <a href="https://www.tomsguide.com/reviews/steam-deck-review-the-nintendo-switch-for-adults">Steam Deck</a>, it could be a serious game-changer.</p><p>Inside, the Steam Machine packs an AMD APU built on the company’s Zen 4 and RDNA3 architecture. Valve says the device supports 4K gaming at 60 frames per second with FSR (AMD’s answer to Nvidia’s DLSS frame-boosting tech), and that it’s over six times more powerful than the Steam Deck.</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/OmKrKTwtukE" allowfullscreen></iframe></div></div><p>We don’t have details on pricing, but Valve will offer models with 512GB and 2TB of SSD storage. You can get the system on its own or bundled with the new Steam Controller. There’s no exact release date at the moment, but it should be sometime in early 2026.</p><h3 class="article-body__section" id="section-specs"><span>Specs</span></h3><div ><table><caption>Steam Machine specs</caption><tbody><tr><td class="firstcol " ><p><strong>CPU</strong></p></td><td  ><p>AMD 6-core Zen 4 x86, up to 4.8 GHz, 30W TDP</p></td></tr><tr><td class="firstcol " ><p><strong>GPU</strong></p></td><td  ><p>Semi-custom AMD RDNA3 28CU (8GB GDDR6, 2.45GHz max sustained clock, 110W TDP)</p></td></tr><tr><td class="firstcol " ><p><strong>RAM</strong></p></td><td  ><p>16GB DDR5 SO-DIMMs</p></td></tr><tr><td class="firstcol " ><p><strong>Storage</strong></p></td><td  ><p>512GB or 2TB models, microSD card slot</p></td></tr><tr><td class="firstcol " ><p><strong>sPower Supply</strong></p></td><td  ><p>300 W, internal</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions (D x W x H)</strong></p></td><td  ><p>6.39 x 6.14 x 5.98 inches / 162.4 x 156 x 152 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Ports</strong></p></td><td  ><p>DisplayPort 1.4, HDMI 2.0, Ethernet (1Gbps), USB Type-C 3.2 Gen 2, 2x USB Type-A Gen 3 (front), 2x USB Type-A Gen 2 (rear)</p></td></tr><tr><td class="firstcol " ><p><strong>Connectivity</strong></p></td><td  ><p>Wi-Fi 6E, dedicated Bluetooth antennae, integrated 2.4 GHz Steam Controller radio</p></td></tr><tr><td class="firstcol " ><p><strong>Controller</strong></p></td><td  ><p>Steam Controller (optional bundle)</p></td></tr><tr><td class="firstcol " ><p><strong>OS</strong></p></td><td  ><p>SteamOS</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-design"><span>Design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="sJthZiHkM5CLN6Ur7BGtmE" name="SM_front_b" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/sJthZiHkM5CLN6Ur7BGtmE.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Our friends over at <a href="https://www.tomshardware.com/video-games/console-gaming/valve-brings-back-steam-machine-and-steam-controller-hands-on-with-valves-new-amd-based-living-room-gaming-hardware" target="_blank">Tom's Hardware</a> got to check out the Steam Machine, and you should definitely read their hands-on report. The device measures 6.39 x 6.14 x 5.98 inches and has a cube-like shape. Tom's Hardware says most of the computer is on the bottom, with most of the space inside taken up by a huge heatsink and fan.</p><p>The front has a customizable light bar you can personalize to show the system status when it's booting up, downloading games, or updating. One fun thing is that the front is magnetic. Valve says it will release files for folks with 3D printers to create their own designs they can slap on the front of the Steam Machine.</p><h3 class="article-body__section" id="section-specs-and-features"><span>Specs and features</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="RzusMSoFqREVkoErH63pMN" name="SM_ledStrip" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/RzusMSoFqREVkoErH63pMN.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>According to Valve, the Steam Machine supports 4K gaming at 60 frames per second thanks to its APU. The APU in question has a 6-core Zen 4 X86 CPU and a semi-custom AMD RDNA3 GPU with 28 compute units. Based on that, the Steam Machine should be less powerful than a PS5 but still have plenty of power for most games.</p><p>You'll be able to configure the Steam Machine with either a 512GB or 2TB SSD. You can also expand storage via the microSD slot.</p><p>Connectivity-wise, the Steam Machine supports Wi-Fi 6E and Bluetooth 5.3. The company says the Steam Controller's wireless adapter is built right into the device for direct pairing. Thanks to that, you can turn the machine on with the controller.</p><p>Best of all, you won't have to contend with a big power brick since the Steam Machine's power supply is built into the device.</p><h3 class="article-body__section" id="section-software-and-compatibility"><span>Software and compatibility</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="KRxqrPisCWaFBibYdJNZCW" name="SM_powerButton" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/KRxqrPisCWaFBibYdJNZCW.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>As expected, the Steam Machine runs on SteamOS, which means it will be as easy to use as the Steam Deck or Steam's Big Picture Mode on PC. Valve says it will expand its Verified program to include ratings for Steam Machine, which will let you know what games run best on the system.</p><p>Valve also says you can use the Steam Machine as your PC. You can install apps or even another operating system. This is also the case with the Steam Deck, so this aspect isn't surprising.</p><p>You can pair up to four Steam Deck Controllers with the Steam Machine. If you don't have this controller, you can use your Bluetooth controller of choice, though we doubt you'll be able to wake the system up with a third-party peripheral. Lastly, you'll be able to stream to your Steam Deck, Steam Frame, or any other device that runs Steam or Steam Link.</p><h3 class="article-body__section" id="section-steam-controller"><span>Steam Controller</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:60.68%;"><img id="p7bernaLEm4CdAJq4wuD8f" name="SC_front_b" alt="Valve Steam Machine" src="https://cdn.mos.cms.futurecdn.net/p7bernaLEm4CdAJq4wuD8f.jpg" mos="" align="middle" fullscreen="" width="3840" height="2330" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>Valve also announced a new Steam Controller which you can use with the Steam Machine. It features magnetic thumbsticks that utilize TMR tech that's supposedly more responsive and durable than Hall Effect sticks. The sticks will also support capacitibe touch to enable motion controls.</p><p>The controller has rumble support, and Valve says it's capable of handling complex waveforms for more accurate haptics. "Grip Sense," is what Valve is calling its new input for the controller that enables gyro with capacitive touch. You can hold and release to enable or disable gyro aiming or map it like a regular button.</p><p>You'll find all the inputs for most games on this controller. This means four face buttons, four shoulder buttons, four back buttons, two thumbsticks, two trackpads, and the aforementioned pair of thumbsticks. The Steam Controller will be pre-populated with community configurations for thousands of games from day one, or you can make and share your own.</p><p>The controller will naturally be compatible with the Steam Deck, along with the Steam Frame and even your gaming PC or laptop.</p><h3 class="article-body__section" id="section-outlook"><span>Outlook</span></h3><p>We'll have to wait until early 2026 to go hands-on with the Steam Machine, but this system has the potential to be a viable PS5 and Xbox Series X contender. This is especially true if Valve can offer this machine for a reasonable price, which might not be difficult considering how its rivals are now more expensive than ever.</p><p>We'll bring you more news on the Steam Machine, the <a href="https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3">Steam Frame</a>, and the Steam Controller as we learn more, so stay tuned!</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">The best handheld gaming consoles in 2025</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/thinking-about-buying-a-handheld-console-heres-how-to-choose-the-right-one-for-you">5 tips for buying a gaming handheld</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-review-gaming-handhelds-for-a-living-and-these-are-the-3-i-would-buy-with-my-own-money">These are the 3 handhelds I would buy with my own money</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve announces Steam Frame VR headset — a premium standalone rival to the Meta Quest 3 ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/virtual-reality/valve-announces-steam-frame-vr-headset-a-premium-standalone-rival-to-the-meta-quest-3</link>
                                                                            <description>
                            <![CDATA[ Valve's long-rumored Steam Frame VR headset is real, with a Snapdragon ARM processor, pancake lenses, 4K visuals and up to a 120Hz refresh rate. Here's what you need to know. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TVhawbi238RPn8hTjVXNuU</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/V2WRYAbgWtTT4mK4sdBj6C-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 12 Nov 2025 18:08:44 +0000</pubDate>                                                                                                                                <updated>Wed, 12 Nov 2025 18:22:15 +0000</updated>
                                                                                                                                            <category><![CDATA[Virtual Reality]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/V2WRYAbgWtTT4mK4sdBj6C-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Steam Frame VR headset]]></media:description>                                                            <media:text><![CDATA[Valve Steam Frame VR headset]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Steam Frame VR headset]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/V2WRYAbgWtTT4mK4sdBj6C-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It's official. Valve just announced its new Steam Frame VR headset, a standalone virtual reality device that looks to take on the <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a> — and it's built for SteamOS. </p><p>Valve finally revealed its long-awaited VR headset today, previously rumored to be <a href="https://www.tomsguide.com/computing/vr-ar/valves-answer-to-meta-quest-could-launch-very-soon-heres-what-we-know-about-valve-deckard">Valve Deckard</a>, and it's a wireless device that comes equipped with a Snapdragon ARM processor, an LCD display with 2160 x 2160 per eye resolution, 16GB of DDR5 RAM, up to a 120Hz refresh rate (144Hz experimental) and pancake optic lenses — with that last one being similar to the Quest 3.</p><p>Along with featuring eye-tracking, camera passthrough and a 110-degree field of view (FOV), the Steam Frame also comes equipped with a wireless adapter as a low-latency link between the headset and a PC. Plus, it runs on SteamOS, like a VR version of the <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck</a>. What's more, it also focuses on <em>non-VR </em>gaming, but we'll still be getting "Steam Frame verified" games. </p><p>Along with the headset, Valve also introduced new Steam Frame controllers, which come with 6DoF tracking, TMR thumbsticks, haptic feedback and finger sensors. </p><p>Valve's Steam Frame is set to be released in spring 2026, while no price has been announced just yet. It's already looking to rival the <a href="https://www.tomsguide.com/best-picks/best-vr-headsets">best VR headsets</a> around, but we'll have to wait and see once it officially arrives. </p><h2 id="valve-steam-frame-specs">Valve Steam Frame: Specs</h2><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Valve Steam Frame</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Chipset</p></td><td  ><p>Snapdragon 8 Gen 3 processor (4nm)</p></td></tr><tr><td class="firstcol " ><p>Resolution</p></td><td  ><p>2160 x 2160 pixels per eye</p></td></tr><tr><td class="firstcol " ><p>Storage</p></td><td  ><p>Up to 1TB</p></td></tr><tr><td class="firstcol " ><p>RAM</p></td><td  ><p>16GB</p></td></tr><tr><td class="firstcol " ><p>Connectivity</p></td><td  ><p>Wi-Fi 7 (wirless adapter with Wi-Fi 6E)</p></td></tr><tr><td class="firstcol " ><p>Weight</p></td><td  ><p>0.9 pounds (including headstrap)</p></td></tr></tbody></table></div><h2 id="valve-steam-frame-everything-we-know-so-far">Valve Steam Frame: Everything we know so far</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pUsRX3wDaCkjL8D3MifevB" name="Valve Steam Frame VR headset" alt="Valve Steam Frame VR headset" src="https://cdn.mos.cms.futurecdn.net/pUsRX3wDaCkjL8D3MifevB.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>From the looks of it, the Steam Frame and its VR controllers look similar to the Meta Quest 3, just without the strap on top. It comes with cushioning on the facial interface and rear, with the latter holding the rechargeable 21.6 Wh battery that appears to plug into the headset. </p><p>It also comes in at a lightweight 0.9 pounds with the headstrap included (the Quest 3 weighs 1.1 pounds). </p><p>Excitingly, the headset comes with hugely welcome pancake lenses, which is what the Meta Quest 3 has been praised for. But the specs fall more in line with the <a href="https://www.tomsguide.com/reviews/psvr2-review">PSVR 2</a>, with the 2160 x 2160 per eye LCD displays, 72 to 120Hz refresh rate, with 144Hz being experimental, and a wide 110-degree FOV.</p><p>More than just a successor to the Valve Index, the Steam Frame doesn't require a Base Station for tracking, as it acts as a standalone VR headset. It comes with four outward-facing cameras and two interior cameras for eye tracking, and even passthrough to see your immediate space even with the headset on (much like Meta Quest headsets). </p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/VF2oMpV3e6c7iTeqgRAR7C.jpg" alt="Valve Steam Frame VR headset" /><figcaption><small role="credit">Valve</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/AQVisVYHv5HV8657ucvJAC.jpg" alt="Valve Steam Frame VR headset" /><figcaption><small role="credit">Valve</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/n5qdfqq22rBpJzNYkGA3HB.jpg" alt="Valve Steam Frame VR headset" /><figcaption><small role="credit">Valve</small></figcaption></figure></figure><p>As for under the hood, it comes with a Snapdragon ARM processor based on 4nm architecture, like the Snapdragon XR2 Gen 2, and comes with 16GB of DDR5 RAM, 256GB or 1TB storage options and a microSD card slot for even more storage. With its <a href="https://www.tomsguide.com/reference/wi-fi-7-explained">Wi-Fi 7</a> connectivity, it's also offering up some faster connection speeds. </p><p>While it's a standalone headset that runs on SteamOS, it also comes with a wireless adapter to offer a direct, cordless link between the headset and your PC. That means we could see extended PCVR gaming. Plus, you can expect dual speakers in the headstrap itself, along with a microphone. </p><p>The Steam Frame comes announced with two other exciting products: The <a href="https://www.tomsguide.com/gaming/pc-gaming/valve-steam-machine-console-just-announced-6x-more-powerful-than-steam-deck">Steam Machine home console</a> and new Steam Controller. With a new VR headset now arriving in 2026, though, here's hoping Valve's Steam Frame is a tease of a follow-up to <a href="https://www.tomsguide.com/news/half-life-alyx-review-roundup">Half-Life: Alyx</a>. But for now, only time will tell what's to come. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/virtual-reality/i-just-tested-mixed-reality-link-for-windows-11-with-my-meta-quest-3-and-its-shockingly-good-for-a-free-feature">I just tested Mixed Reality Link for Windows 11 with my Meta Quest 3, and it’s shockingly good for a free feature</a></li><li><a href="https://www.tomsguide.com/tech/i-got-this-compact-power-bank-for-my-meta-quest-3-but-now-i-use-it-for-everything">I got this compact power bank for my Meta Quest 3, but now I use it to charge everything</a></li><li><a href="https://www.tomsguide.com/computing/virtual-reality/samsung-galaxy-xr-vs-apple-vision-pro-m5-vs-meta-quest-3">Samsung Galaxy XR vs Apple Vision Pro vs Meta Quest 3: Which headset is right for you?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve 'Steam Frame' VR headset rumors: Everything we know so far ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/vr-ar/valve-steam-frame-vr-headset-rumors-everything-we-know-so-far</link>
                                                                            <description>
                            <![CDATA[ The successor to the Valve Index is expected to arrive soon, with Valve's "Steam Frame" rumors heating up. Here's everything you need to know about the next-gen virtual reality headset. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">JRFCsq7pUnLbDxVnvdToSk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jYrELHV4pou2etBuuiJHFF-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 12 Oct 2025 05:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VR &amp; AR]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/jYrELHV4pou2etBuuiJHFF-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Valve Index VR headset next to controllers ]]></media:description>                                                            <media:text><![CDATA[Valve Index VR headset next to controllers ]]></media:text>
                                <media:title type="plain"><![CDATA[Valve Index VR headset next to controllers ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jYrELHV4pou2etBuuiJHFF-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you've been waiting for the next <a href="https://www.tomsguide.com/best-picks/best-vr-headsets">best VR headset</a> to release, Valve may just have the next-gen device coming to shelves soon. The successor to the Valve Index has been hinted at being in the works, and rumors are pointing to a Valve "Steam Frame."</p><p>Also known as <a href="https://www.tomsguide.com/computing/vr-ar/valves-answer-to-meta-quest-could-launch-very-soon-heres-what-we-know-about-valve-deckard">Valve Deckard</a>, rumors of the next-gen virtual reality headset from the Bellevue gaming company have been swirling. But the new device is no mere speculation, as Valve has been talking about developing a new VR headset for a while. Even CEO Gabe Newell <a href="https://x.com/SadlyItsBradley/status/1465940500930875396" target="_blank">confirmed</a> "new headsets and games" are set to arrive. </p><p>It's believed that the upcoming headset will be named "Steam Frame." With Meta now focusing its efforts on smart glasses such as its <a href="https://www.tomsguide.com/computing/smart-glasses/meta-ray-ban-display-hands-on-this-is-the-future">Meta Ray-Ban Display</a>, leaving the <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-4-everything-we-know-so-far">Meta Quest 4</a> and <a href="https://www.tomsguide.com/computing/virtual-reality/meta-reportedly-confirms-more-vr-headsets-with-horizon-os-are-coming-what-we-know">Asus ROG "Tarius" VR headset</a> to a possible later date, all eyes are on what Valve's cooking up.</p><p>And we may not have to wait much longer to find out. For all the latest details on Valve's next-gen VR headset, here's what you need to know about the rumored Steam Frame.</p><h3 class="article-body__section" id="section-valve-steam-frame-rumored-price-and-release-date"><span>Valve Steam Frame: Rumored price and release date</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NMJ7du2vzJiyiwDWSdRAND" name="Valve Index.jpg" alt="A photo of the Valve index VR headset" src="https://cdn.mos.cms.futurecdn.net/NMJ7du2vzJiyiwDWSdRAND.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>The leading question on the Steam Frame is a simple one: "When will it launch?" Over the past year, all rumors have been pointing to the end of 2025. That means we'll hopefully see it soon. </p><p>Most recently, the Chinese analyst group XR Research Institute (via <a href="https://www.uploadvr.com/valves-next-headset-reportedly-enters-mass-production/" target="_blank">UploadVR</a>) has reported that the <a href="https://www.tomsguide.com/computing/vr-ar/valve-steam-frame-vr-headset-nearing-release-new-report-claims-mass-production-has-begun">Steam Frame has entered mass production</a>. That's a good sign that Valve is getting ready to announce the headset soon, but the group also notes that it's reportedly set to launch this year. This is further backed up by Valve tipster Gabe Follower on <a href="https://x.com/gabefollower/status/1894636466480771136" target="_blank">X</a>, who claimed the <a href="https://www.tomsguide.com/computing/vr-ar/valve-vr-headset-just-tipped-to-launch-by-end-of-this-year-and-this-could-be-the-price">new headset should be released by the end of 2025</a> back in February.</p><p> Apparently, the VR device will cost around $1,200 / £950 / AU$1,900, leading many to believe this will be more of a premium PC VR gaming headset. However, since the leak came from much earlier this year, that cost may change, especially considering tariffs. </p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">Several people have confirmed that Valve is aiming to release new standalone, wireless VR headset (codename Deckard) by the end of 2025. The current price for the full bundle is set to be $1200. Including some "in-house" games (or demos) that are already done. Valve want to give… pic.twitter.com/alHzQuwNvc<a href="https://twitter.com/cantworkitout/status/1894636466480771136">February 26, 2025</a></p></blockquote><div class="see-more__filter"></div></div><p>According to the XR Research Institute, an estimated 400,000 to 600,000 units per year are expected to be in production. Not only does this further confirm the likelihood of a premium headset, but it also shows that Valve is looking to reveal a different kind of VR headset compared to the more affordable (and popular) <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a> and <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3s-review">Quest 3S</a> — with these expected to have at least been sold in the millions. </p><p>While the Steam Frame may be expected to launch over the next few months, it's hard to predict when this announcement will happen. Many initially believed it <a href="https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-may-make-a-surprise-appearance-today-heres-what-we-know">would be revealed during Meta Connect 2025</a>, with many popular VR YouTubers teasing a new reveal. As you can tell, this didn't happen. </p><p>For context, the Valve Index was announced in April 2019, with the VR headset releasing a couple of months later at the end of June. Valve may have a different timeframe in mind with its Steam Frame, so now, only time will tell when we'll see Valve release its upcoming headset. </p><h3 class="article-body__section" id="section-valve-steam-frame-features"><span>Valve Steam Frame: Features</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rk87GJvjbW6SgzJEj26hHT" name="HTC Vive Focus Vision" alt="HTC Vive Focus Vision" src="https://cdn.mos.cms.futurecdn.net/rk87GJvjbW6SgzJEj26hHT.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>It's still up in the air what kind of VR headset the Steam Frame will be, and the specs it will offer. However, considering its expected price and what the Valve Index brings to the table, it gives us a good idea of what the next-gen VR headset could deliver. </p><p>Leaker Gabe Follower suggested it would be a new standalone wireless headset, expected to run SteamOS like the <a href="https://www.tomsguide.com/reviews/steam-deck-oled">Steam Deck</a> (and <a href="https://www.tomsguide.com/gaming/handheld-gaming/lenovo-legion-go-steamos-review">Lenovo Legion Go S</a>, for that matter). Moreover, there are also talks of a SteamVR Link Wireless Dongle on <a href="https://www.reddit.com/r/ValveDeckard/comments/1lugyst/steamvr_link_wireless_dongle_strings_spotted_in/" target="_blank">Reddit</a> to wirelessly connect the Steam Frame to a PC to allow for higher-quality VR gaming. </p><p>Valve's Steam Frame could be like a premium version of the Meta Quest 3, but with more gaming-centric features, unlike the <a href="https://www.tomsguide.com/reviews/meta-quest-pro-review-its-awesome-but-no-way-am-i-working-in-this-thing">Meta Quest Pro</a>. If that's the case, we would expect a higher 1440p resolution (given the Quest 3S is a higher resolution than Index), faster 120Hz refresh rate and smaller, more ergonomic controllers.</p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">Closer look of the left hand rendermodel in Blender pic.twitter.com/P1EvM0Qo4n<a href="https://twitter.com/cantworkitout/status/1963678062702215397">September 4, 2025</a></p></blockquote><div class="see-more__filter"></div></div><p>Speaking of, we've seen leaked details on the tipped <a href="https://www.tomsguide.com/gaming/valve-reportedly-reviving-the-steam-controller-heres-all-the-details">Roy VR controllers</a>, and reliable tipster SadlyItsBradley on <a href="https://x.com/SadlyItsBradley/status/1963678060152336465" target="_blank">X</a> showed renders of what they will look like. Apparently, the Roy controllers may have a full gamepad's worth of buttons. That includes a Dpad, bumpers, triggers, grip buttons, ABXY buttons and system button, along with "some sort of strap." This hints at a device that you can use as a normal controller when not in VR.</p><p>But there's another piece to the puzzle: <a href="https://www.tomsguide.com/gaming/valve-might-be-working-on-a-new-steam-console-that-connects-to-your-tv-and-its-specs-just-got-leaked">Valve's rumored Steam Console</a>. Codenamed "Fremont," there's reason to believe the VR headset could launch alongside the home console, with the two devices being able to connect. This would be an interesting twist, but this is purely speculation. </p><p>In any case, with Valve <a href="https://uspto.report/TM/99370861" target="_blank">trademaking</a> new hardware called "Steam Frame," and SadlyItsBradley confirming that Valve is "rebranding SteamVR 'Overlays' to 'Frames,'" it's clear that this "Frame" will be linked to VR in some manner. </p><p>Otherwise, we'll have to wait and see what Valve's next VR headset can do once the company (finally) announces its expected device. </p><h3 class="article-body__section" id="section-valve-steam-frame-worth-the-wait"><span>Valve Steam Frame: Worth the wait?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:768px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YLtRvVDcyNnzDbXm2xNwBC" name="Project Cambria VR headset.jpg" alt="Project Cambria VR headset teaser" src="https://cdn.mos.cms.futurecdn.net/YLtRvVDcyNnzDbXm2xNwBC.jpg" mos="" align="middle" fullscreen="" width="768" height="432" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Meta)</span></figcaption></figure><p>It's been six years since we've seen a new VR headset from Valve, with the Index launching in 2019. That's left a lot of breathing space for VR to grow, with the Meta Quest 3 leading the charge. If Valve's latest products are anything to go by, with the success of the Steam Deck and SteamOS on some of the <a href="https://www.tomsguide.com/round-up/best-handheld-gaming-consoles">best handheld gaming consoles</a>, the Steam Frame is sure to impress.</p><p>We hope to see a launch <em>very </em>soon, especially as rumors point to a fall 2025 release at the earliest. I'll be keeping track of the latest rumors and news on Valve's rumored VR headset, so stay tuned for more up-to-date details. </p><p>In the meantime, find out the latest on another rumored VR headset, the <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-4-everything-we-know-so-far">Meta Quest 4</a>, and what Valve may be planning for the <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-2">Steam Deck 2</a>. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/virtual-reality/i-just-went-podracing-in-star-wars-beyond-victory-and-its-the-most-addictive-mixed-reality-game-ive-ever-played">I just went podracing in Star Wars: Beyond Victory — and it’s one of the most addictive mixed reality game I’ve ever played</a></li><li><a href="https://www.tomsguide.com/computing/virtual-reality/meta-reportedly-confirms-more-vr-headsets-with-horizon-os-are-coming-what-we-know">Meta reportedly confirms more VR headsets with Horizon OS are coming — what we know</a></li><li><a href="https://www.tomsguide.com/computing/smart-glasses/apple-smart-glasses-may-be-closer-than-you-think-tipped-for-2026-reveal">Apple smart glasses may see an unusual launch strategy — here's when they could arrive</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve 'Steam Frame' VR headset nearing release? New report claims mass production has begun ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/vr-ar/valve-steam-frame-vr-headset-nearing-release-new-report-claims-mass-production-has-begun</link>
                                                                            <description>
                            <![CDATA[ Valve's rumored "Steam Frame" is tipped to launch by the end of 2025, as the company's next VR headset has reportedly entered mass production. Here's what we know. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jmMvT6ZBccYEZiGhcbCqLV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 09 Oct 2025 09:25:39 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VR &amp; AR]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A photo of the Valve index VR headset]]></media:description>                                                            <media:text><![CDATA[A photo of the Valve index VR headset]]></media:text>
                                <media:title type="plain"><![CDATA[A photo of the Valve index VR headset]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve's next VR headset may be preparing to launch before the end of 2025, with a new report claiming the rumored "<a href="https://www.tomsguide.com/computing/vr-ar/valves-steam-frame-is-looking-more-like-a-standalone-vr-headset-to-take-on-meta-quest-what-we-know">Steam Frame</a>" has entered mass production.</p><p>The next-gen VR headset, also referenced as <a href="https://www.tomsguide.com/computing/vr-ar/valves-answer-to-meta-quest-could-launch-very-soon-heres-what-we-know-about-valve-deckard">Valve Deckard</a>, is reportedly set to launch this year. This comes from the Chinese analyst group XR Research Institute (via <a href="https://www.uploadvr.com/valves-next-headset-reportedly-enters-mass-production/" target="_blank">UploadVR</a>), who claim production has already begun on the headset, and we can expect 400,000 to 600,000 units per year.</p><p>As noted, this puts it along the same numbers as the <a href="https://www.tomsguide.com/news/apple-vision-pro-headset-reportedly-suffering-big-production-delay-what-we-know">Apple Vision Pro at around 400,000 units</a>, after production had been cut. This points to more of a niche headset, and likely a pricey one, especially compared to the <a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a> and <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-3s-review">Quest 3S</a>, which are <em>at least </em>set to be in the millions. </p><p>Rumors of Valve's "Steam Frame" have been ramping up, with many recently <a href="https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-may-make-a-surprise-appearance-today-heres-what-we-know">believing it would be revealed during Meta Connect 2025</a>. This didn't come to be, but the VR headset had also been <a href="https://www.tomsguide.com/computing/vr-ar/valve-vr-headset-just-tipped-to-launch-by-end-of-this-year-and-this-could-be-the-price">rumored to launch by the end of 2025 before</a>. According to known leaker Gabe Follower on <a href="https://x.com/gabefollower/status/1894636466480771136" target="_blank">X</a>, it will apparently be priced around  $1,200 / £950 / AU$1,900. </p><p>If the report is true, it's looking more likely that we'll finally see the long-rumored Valve VR headset. Recently, tipster <a href="https://x.com/SadlyItsBradley/status/1963491451049771216" target="_blank">SadlyItsBradley on X</a> confirmed that Valve rebranded  "SteamVR 'Overlays' to 'Frames,'" and seeing as <a href="https://www.tomsguide.com/computing/vr-ar/valves-steam-frame-is-looking-more-like-a-standalone-vr-headset-to-take-on-meta-quest-what-we-know">Valve trademarked the "Steam Frame" moniker</a>, it's likely that the next piece of hardware will be all about VR gaming. </p><h2 id="a-standalone-vr-headset">A standalone VR headset?</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:1772px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="xNjEYaK66dGyCd6mWqjASG" name="Valve Deckard" alt="Valve Deckard patent drawing" src="https://cdn.mos.cms.futurecdn.net/xNjEYaK66dGyCd6mWqjASG.png" mos="" align="middle" fullscreen="" width="1772" height="1181" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: US Patent office)</span></figcaption></figure><p>Of course, it's worth taking this in with a pinch of salt, seeing as the "Steam Frame" was rumored to be revealed back in September. However, now that it's reported to have entered mass production, it's a good sign that the VR headset is well on its way. </p><p>We've seen many rumors of Valve's next headset, with a Valve product designer seemingly <a href="https://www.uploadvr.com/valve-reaffirms-work-on-new-vr-headset-interview/" target="_blank">confirming work on a VR headset</a> in an interview. The question is, will it be a standalone headset to take on the Meta Quest 3, or a headset that takes advantage of a link to a PC?</p><p>Rumors of a SteamVR Link Wireless Dongle on <a href="https://www.reddit.com/r/ValveDeckard/comments/1lugyst/steamvr_link_wireless_dongle_strings_spotted_in/" target="_blank">Reddit</a> via <a href="https://www.tweaktown.com/news/107581/valves-steam-frame-is-an-all-in-one-vr-headset-close-to-being-released/index.html" target="_blank">TweakTown</a> to wirelessly connect the "Steam Frame" to a PC to allow for higher-quality VR gaming, and SadlyItsBradley has also <a href="https://x.com/SadlyItsBradley/status/1963678062702215397" target="_blank">unveiled</a> what the Roy controllers may look like.</p><p>In any case, it may not be much longer until we find out. Valve is expected to have many hugely anticipated products in the works, including its <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-2-rumored-to-be-in-the-works-and-it-may-arrive-with-a-massive-amd-apu-upgrade">Steam Deck 2 </a>and a <a href="https://www.tomsguide.com/gaming/valve-might-be-working-on-a-new-steam-console-that-connects-to-your-tv-and-its-specs-just-got-leaked">new Steam "Fremont" console</a>. But for now, we'll be keeping an eye out for a "Steam Frame" announcement. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/virtual-reality/i-just-went-podracing-in-star-wars-beyond-victory-and-its-the-most-addictive-mixed-reality-game-ive-ever-played">I just went podracing in Star Wars: Beyond Victory — and it’s one of the most addictive mixed reality game I’ve ever played</a></li><li><a href="https://www.tomsguide.com/computing/virtual-reality/meta-reportedly-confirms-more-vr-headsets-with-horizon-os-are-coming-what-we-know">Meta reportedly confirms more VR headsets with Horizon OS are coming — what we know</a></li><li><a href="https://www.tomsguide.com/computing/smart-glasses/apple-smart-glasses-may-be-closer-than-you-think-tipped-for-2026-reveal">Apple smart glasses may see an unusual launch strategy — here's when they could arrive</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve 'Steam Frame' may make a surprise appearance today — here's what we know ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/virtual-reality/valve-steam-frame-may-make-a-surprise-appearance-today-heres-what-we-know</link>
                                                                            <description>
                            <![CDATA[ While Meta is set to reveal all new smart glasses, Valve may be preparing for a surprise announcement, with VR YouTubers and Reddit users hinting at a "Steam Frame" VR headset reveal. Here's what we know. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">CpMdtYz984L87MpMyX6nR5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 17 Sep 2025 11:25:13 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Virtual Reality]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A photo of the Valve index VR headset]]></media:description>                                                            <media:text><![CDATA[A photo of the Valve index VR headset]]></media:text>
                                <media:title type="plain"><![CDATA[A photo of the Valve index VR headset]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>With <a href="https://www.tomsguide.com/news/live/meta-connect-2025-live">Meta Connect 2025</a> set to reveal next-gen <a href="https://www.tomsguide.com/computing/smart-glasses/youtube-video-reveals-new-meta-smart-glasses-and-wristband-right-before-meta-connect">Ray-Ban Meta Display specs</a>, the chances of a VR headset reveal are looking slim. But Valve may make a surprise announcement instead. </p><p>Hints that Valve is preparing to unveil its <a href="https://www.tomsguide.com/computing/vr-ar/valves-steam-frame-is-looking-more-like-a-standalone-vr-headset-to-take-on-meta-quest-what-we-know">rumored "Steam Frame" VR headset</a> (also known as Valve Deckard) are swirling, as Reddit users on <a href="https://www.reddit.com/r/GamingLeaksAndRumours/comments/1nhlo8w/possible_steam_frame_deckard_news_coming_on/" target="_blank">r/GamingLeaksAndRumors</a> have pointed out that a possible announcement may happen today (September 17). </p><p>This is due to multiple VR YouTubers making their way to Seattle, which is close to Valve headquarters in Bellevue. This includes notable VR YouTuber <a href="https://www.youtube.com/nathie/videos" target="_blank">Nathie</a> posting on <a href="https://x.com/NathieVR/status/1967783728685650176" target="_blank">X</a> about being in Seattle, <a href="https://www.youtube.com/@habie147" target="_blank">Habie147</a> stating in a <a href="https://www.youtube.com/watch?v=y8Z-eMRr7J4&t=501s" target="_blank">video</a> that there is a "special report incoming," and <a href="https://www.youtube.com/watch?v=VPiNJ4pcCtc" target="_blank">MRTV</a> heading to see a "mystery VR headset soon."</p><p>Interestingly, this wouldn't be the first time Valve dropped news during a Meta (or Facebook) showcase. As pointed out in the Reddit thread, the Valve Index was officially announced on April 30, 2019, just when Facebook's F8 2019 developer conference took place. </p><p>More hints have been suggesting Valve has something in store, with Habie147 <a href="https://i.ibb.co/W4DwDCfR/image.png" target="_blank">stating</a> "I am busily editing tomorrow’s emergency Wednesday video...on the (REDACTED)," and Cas and Chary XR <a href="https://xcancel.com/CasandChary/status/1967663524248949062" target="_blank">posting</a> a "wink" when referring to a Valve "Frame" announcement. Apparently, many VR content creator aren't heading to Meta Connect this year, as they're travelling to Seattle for this surprise announcement instead. </p><h2 id="will-valve-announce-its-steam-frame-today">Will Valve announce its "Steam Frame" today?</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:1772px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="iJNyudY67nro8QFaa8cupW" name="Valve Deckard Headset" alt="A potential look at Valve's VR headset, patent drawings" src="https://cdn.mos.cms.futurecdn.net/iJNyudY67nro8QFaa8cupW.png" mos="" align="middle" fullscreen="" width="1772" height="1181" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Gabe Follower)</span></figcaption></figure><p>There are signs that Valve is developing a VR headset, its successor to the Index. As reported earlier this month, <a href="https://www.tomsguide.com/computing/vr-ar/valves-steam-frame-is-looking-more-like-a-standalone-vr-headset-to-take-on-meta-quest-what-we-know">Valve trademarked new hardware called "Steam Frame,"</a> with reports expecting this to be its next-gen headset. </p><p>However, a leak from notable tipster <a href="https://x.com/SadlyItsBradley/status/1963491451049771216" target="_blank">SadlyItsBradley on X</a> revealed that Valve is "rebranding SteamVR 'Overlays' to 'Frames,'" and seeing how the "Steam Frame" moniker now exists, it's likely that this hardware will be made for virtual reality. </p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">After datamining tonight's HUGE SteamVR Beta:I can confirm that Valve is definitely rebranding SteamVR "Overlays" to "Frames"Therefore, if Deckard's product name is The Steam Frame: you should now understand what it's major selling point is going to be...SPATIAL GAMING ✨ pic.twitter.com/Bm00LhMMhv<a href="https://twitter.com/cantworkitout/status/1963491451049771216">September 4, 2025</a></p></blockquote><div class="see-more__filter"></div></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/vr-ar/meta-connect-2025-may-reveal-a-new-vr-headset-but-not-the-one-you-think-and-i-cant-wait-for-it">Meta Connect 2025 may reveal a new VR headset, but not the one you think — and I can't wait for it</a></li><li><a href="https://www.tomsguide.com/computing/smart-glasses/snap-os-is-finally-ready-for-snap-specs-in-2026-i-just-tested-the-game-changing-update">Snap OS is finally ready for Snap Specs in 2026 — I just tested the game-changing update</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/these-vr-shoes-let-me-walk-in-place-and-control-game-movement-and-somehow-i-didnt-fall-flat-on-my-face">These VR shoes let me walk in place and control game movement — and somehow I didn’t fall flat on my face</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve's 'Steam Frame' is looking more like a standalone VR headset to take on Meta Quest — what we know ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/computing/vr-ar/valves-steam-frame-is-looking-more-like-a-standalone-vr-headset-to-take-on-meta-quest-what-we-know</link>
                                                                            <description>
                            <![CDATA[ Valve's mysterious 'Steam Frame' looks to be a standalone VR headset thanks to a new leak, and it's rumored to launch by the end of 2025 to take on Meta Quest headsets. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jd5PZExR3TCY6Z4sfatYpm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 05 Sep 2025 10:28:45 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VR &amp; AR]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Darragh Murphy ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/5QiaTSWf9FcVB7STxcdo4M.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Darragh is Tom’s Guide’s Computing Editor and is fascinated by all things bizarre in tech. This usually leads to assorted coverage varying from washing machines designed for earbuds to the wild world of laptops. Whether it&#039;s connecting Scar from The Lion King to two-factor authentication or turning his love for laptops into a fabricated rap battle from 8 Mile, he believes there’s always a quirky spin to be made.&lt;br&gt;&lt;br&gt;Darragh has previously been an Editor for Laptop Mag and a News Editor for Time Out Dubai, where he also headed the gaming and tech section. His work can be seen in Mashable, Android Police, Shortlist Dubai, Proton, theBit.nz, ReviewsFire and more. &lt;br&gt;&lt;br&gt;While laptops are his bread and butter, he’s also reviewed smartphones, monitors, speakers, docking stations and VPNs. He’s covered IFA, MWC Barcelona, the Consumer Electronics Show (&lt;a href=&quot;https://www.tomsguide.com/uk/tag/ces&quot; target=&quot;_blank&quot;&gt;CES&lt;/a&gt;) and more.&lt;br&gt;&lt;br&gt;When he&#039;s not checking out the latest devices and all things computing, he can be found going for dreaded long runs, watching terrible shark movies, and trying to find time to game.&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/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg">
                                                            <media:credit><![CDATA[Valve]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A photo of the Valve index VR headset]]></media:description>                                                            <media:text><![CDATA[A photo of the Valve index VR headset]]></media:text>
                                <media:title type="plain"><![CDATA[A photo of the Valve index VR headset]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/NMJ7du2vzJiyiwDWSdRAND-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve is rumored to be developing several hotly anticipated devices, with its <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-2-rumored-to-be-in-the-works-and-it-may-arrive-with-a-massive-amd-apu-upgrade">Steam Deck 2 expected to be in the works</a> and a <a href="https://www.tomsguide.com/gaming/valve-might-be-working-on-a-new-steam-console-that-connects-to-your-tv-and-its-specs-just-got-leaked">new Steam console tipped to be on the way</a>. But its next hardware release is now pointing towards a standalone VR headset. </p><p>Recently, Valve <a href="https://uspto.report/TM/99370861" target="_blank">trademarked</a> new hardware called "Steam Frame," with reports indicating this could be the company's long-rumored <a href="https://www.tomsguide.com/entertainment/streaming-devices/forget-nvidia-shield-valves-follow-up-to-the-steam-deck-could-be-a-tv-based-streaming-box-for-gamers">Valve Fremont</a>, a dedicated home console with SteamOS, or the <a href="https://www.tomsguide.com/computing/vr-ar/valves-answer-to-meta-quest-could-launch-very-soon-heres-what-we-know-about-valve-deckard">Valve Deckard</a>, its expected next-gen VR headset. </p><p>Now, thanks to a new leak from reliable tipster <a href="https://x.com/SadlyItsBradley/status/1963491451049771216" target="_blank">SadlyItsBradley on X</a>, the "Frame" is very much looking like a headset for VR gaming. The leaker confirms that Valve is "rebranding SteamVR 'Overlays' to 'Frames,'" and seeing how the "Steam Frame" moniker now exists, it's likely that this hardware will be made for virtual reality. </p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">After datamining tonight's HUGE SteamVR Beta:I can confirm that Valve is definitely rebranding SteamVR "Overlays" to "Frames"Therefore, if Deckard's product name is The Steam Frame: you should now understand what it's major selling point is going to be...SPATIAL GAMING ✨ pic.twitter.com/Bm00LhMMhv<a href="https://twitter.com/cantworkitout/status/1963491451049771216">September 4, 2025</a></p></blockquote><div class="see-more__filter"></div></div><p>Many other rumors point to a standalone VR headset from Valve, <em>à la </em><a href="https://www.tomsguide.com/reviews/meta-quest-3">Meta Quest 3</a>. This includes <a href="https://www.tomsguide.com/gaming/valve-reportedly-reviving-the-steam-controller-heres-all-the-details">leaked details on its Roy VR controllers</a>, along with a tip that the <a href="https://www.tomsguide.com/computing/vr-ar/valve-vr-headset-just-tipped-to-launch-by-end-of-this-year-and-this-could-be-the-price">Valve Deckard would arrive by the end of 2025</a>. What's more, this headset is rumored to be priced around $1,200 / £950, although this <a href="https://x.com/gabefollower/status/1894636466480771136" target="_blank">leak</a> came from earlier this year, and with tariffs, that cost may all change. </p><h2 id="is-steam-frame-just-for-vr">Is 'Steam Frame' just for VR?</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:1772px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="xNjEYaK66dGyCd6mWqjASG" name="Valve Deckard" alt="Valve Deckard patent drawing" src="https://cdn.mos.cms.futurecdn.net/xNjEYaK66dGyCd6mWqjASG.png" mos="" align="middle" fullscreen="" width="1772" height="1181" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: US Patent office)</span></figcaption></figure><p>While it's yet to be official, if Valve ends up naming its expected Valve Deckard the "Steam Frame," as SadlyItsBradley suggests, we could have an all-new VR headset on our hands by the end of the year. That said, there's still a chance this could be part of a home console setup after all, with a previous rumor suggesting the VR headset would launch alongside the Valve Fremont. </p><p>There are also murmurs of a SteamVR Link Wireless Dongle on <a href="https://www.reddit.com/r/ValveDeckard/comments/1lugyst/steamvr_link_wireless_dongle_strings_spotted_in/" target="_blank">Reddit</a> via <a href="https://www.tweaktown.com/news/107581/valves-steam-frame-is-an-all-in-one-vr-headset-close-to-being-released/index.html" target="_blank">TweakTown</a> to wirelessly connect the "Steam Frame" to a PC to allow for higher-quality VR gaming, and SadlyItsBradley has also <a href="https://x.com/SadlyItsBradley/status/1963678062702215397" target="_blank">unveiled</a> what the Roy controllers may look like. </p><div class="see-more see-more--clipped"><blockquote class="twitter-tweet hawk-ignore" data-lang="en"><p lang="en" dir="ltr">Closer look of the left hand rendermodel in Blender pic.twitter.com/P1EvM0Qo4n<a href="https://twitter.com/cantworkitout/status/1963678062702215397">September 4, 2025</a></p></blockquote><div class="see-more__filter"></div></div><p>So, we may see this "Steam Frame" VR headset as part of the launch of Valve's console, too. But of course, we won't know until Valve officially reveals its next set of hardware. Fortunately, this may not be too far off, with leakers claiming it will arrive by the end of 2025. </p><p>If it's to take on the Meta Quest 3, it will already have a tough time with its asking price. Compared to the Valve Index, we'd like to see at least 1440p resolution and a 120Hz refresh rate, along with complete access to SteamOS for VR without needing a VR-ready PC. </p><p>That's not the only headset that may be coming our way soon, as Samsung's <a href="https://www.tomsguide.com/computing/vr-ar/i-tried-out-samsungs-project-moohan-headset-android-xr-won-me-over">Project Moohan</a> is set to be coming (at an <a href="https://www.tomsguide.com/computing/vr-ar/samsungs-vr-headset-tipped-to-cost-nearly-usd2k-still-less-than-the-apple-vision-pro">expected $1,800 cost</a>), and we may see the <a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-4-everything-we-know-so-far">Meta Quest 4</a> arrive further down the line. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/lenovo-legion-go-2-review">I went hands-on with the Lenovo Legion Go 2 — I love the OLED panel, but I’m worried about the price</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/meta-quest-4-everything-we-know-so-far">Meta Quest 4 rumors: Everything we know so far</a></li><li><a href="https://www.tomsguide.com/computing/vr-ar/these-vr-shoes-let-me-walk-in-place-and-control-game-movement-and-somehow-i-didnt-fall-flat-on-my-face">These VR shoes let me walk in place and control game movement — and somehow I didn’t fall flat on my face</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Valve might be working on a new Steam console that connects to your TV — and its specs just got leaked ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/gaming/valve-might-be-working-on-a-new-steam-console-that-connects-to-your-tv-and-its-specs-just-got-leaked</link>
                                                                            <description>
                            <![CDATA[ Valve could be developing a new console for your living room and some specs have released. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">QwSYDEQ4XDhdbpzPPNRSoa</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZcAgkvRRvN9pHsa9idTw6Y-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 22 Aug 2025 09:56:41 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Gaming]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &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/ZcAgkvRRvN9pHsa9idTw6Y-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Steam logos]]></media:description>                                                            <media:text><![CDATA[Steam logos]]></media:text>
                                <media:title type="plain"><![CDATA[Steam logos]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZcAgkvRRvN9pHsa9idTw6Y-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Valve's handheld Steam Deck is still one of the <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-review-gaming-handhelds-for-a-living-and-these-are-the-3-i-would-buy-with-my-own-money">best gaming handhelds</a>, despite being several years old at this point. A new leak suggests Valve may be working on a TV-based console and not the <a href="https://www.tomsguide.com/gaming/handheld-gaming/steam-deck-2">Steam Deck 2</a>.</p><p>Benchmarks for the potential console, dubbed Fremont, were shared by VR leaker <a href="https://x.com/SadlyItsBradley/status/1958024995273068544" target="_blank">SadlyItsBradley </a>on X. Some specs for the device were also shared.</p><p>This isn't the first time <a href="https://www.tomsguide.com/entertainment/streaming-devices/forget-nvidia-shield-valves-follow-up-to-the-steam-deck-could-be-a-tv-based-streaming-box-for-gamers">Fremont has been leaked,</a> but it is the first time actual specs for the device have been revealed. The last leak, from December 2024, made the console seem more like a streaming box, a la <a href="https://www.tomsguide.com/opinion/google-stadia-shutdown-analysis">Google Stadia </a>(R.I.P.), than a standard console.</p><p>This time, the specs reveal a device that appears to be more powerful than the Steam Deck but not quite up to the same level as the <a href="https://www.tomsguide.com/gaming/playstation/ps5-slim">PS5</a>. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1235px;"><p class="vanilla-image-block" style="padding-top:71.17%;"><img id="vhVPoKFQDFC5vYxuHcWUi" name="Gyv4YLZWMAAgu9S" alt="Valve Fremont alleged specs" src="https://cdn.mos.cms.futurecdn.net/vhVPoKFQDFC5vYxuHcWUi.jpg" mos="" align="middle" fullscreen="" width="1235" height="879" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: SadlyItsBradley)</span></figcaption></figure><p>The benchmark reveals Fremont and another device codenamed Galileo, which may be a <a href="https://x.com/SadlyItsBradley/status/1699220402646482976" target="_blank">lower-tier version</a> of Fremont. Both devices feature an AMD custom CPU with the model number 1772, which ahs six cores and 12 threads. </p><p>It also shows the CPU is an AMD Hawk Point 2 model, like the Ryzen 200-series mobile chip, which does suggest that it's built on the Zen 4 architecture, which <a href="https://www.tomsguide.com/computing/cpus/amd-ryzen-8000hx-cpus-unveiled-for-gaming-laptops-but-whats-changed">AMD is still using</a>. </p><p>On face value, the CPU appears better than the AMD Zen 2 CPU in the Steam Deck, and the 7,451 multi-core score from the benchmark appears to back that up, nearly double the seen Steam Deck scores, which I've seen closer to 4,200. </p><p>SadlyItsBradley wrote in <a href="https://x.com/SadlyItsBradley/status/1958024995273068544" target="_blank">another post</a> that Fremont would have a dedicated RX 7600 GPU with dedicated memory, and not an integrated GPU like the Steam Deck.</p><h2 id="other-steam-machines">Other Steam machines</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="MxudhW7vKBouHhGaBpE2Bj" name="Steam Controller" alt="Steam controller slightly angled" src="https://cdn.mos.cms.futurecdn.net/MxudhW7vKBouHhGaBpE2Bj.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Valve)</span></figcaption></figure><p>They added the <a href="https://x.com/SadlyItsBradley/status/1958024995273068544" target="_blank">device might launch</a> alongside the <a href="https://www.tomsguide.com/computing/vr-ar/valves-answer-to-meta-quest-could-launch-very-soon-heres-what-we-know-about-valve-deckard">rumored Steam Deckard VR headset </a>with a <a href="https://www.tomsguide.com/gaming/valve-reportedly-reviving-the-steam-controller-heres-all-the-details">new Steam controller</a> and the rumored <a href="https://www.tomsguide.com/computing/vr-ar/valve-vr-headset-just-tipped-to-launch-by-end-of-this-year-and-this-could-be-the-price">Roy VR controllers</a>. The Deckard headset has been tipped to <a href="https://www.tomsguide.com/computing/vr-ar/valves-answer-to-meta-quest-could-launch-very-soon-heres-what-we-know-about-valve-deckard">release later this year</a>; if Fremont is coming in addition, it would be quite the surprise.</p><p>Valve tried this route more than a decade ago with the <a href="https://www.tomsguide.com/us/steam-machine-faq,news-18228.html">Steam Machine and Steam Boxes</a>, but with limited support and the controversial Steam Controller, it never really took off.</p><h2 id="a-weaker-gpu">A weaker GPU?</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:1510px;"><p class="vanilla-image-block" style="padding-top:59.60%;"><img id="GVnPLckzGH5CdAj7PVPoST" name="radeon_rx_7600xt.jpg" alt="AMD Radeon RX 7600 XT" src="https://cdn.mos.cms.futurecdn.net/GVnPLckzGH5CdAj7PVPoST.jpg" mos="" align="middle" fullscreen="" width="1510" height="900" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: AMD)</span></figcaption></figure><p>At this point the Radeon RX 7600 GPU is nearly three years old, and it wasn't high-end when it launched. Plus, it's odd that the device is listed as featuring 8GB of memory; the Steam Deck features 16GB of RAM.</p><p>Bradley claims the benchmark comes from Quanta factory debug, which suggests the tested Fremont is a prototype since that term refers to testing a device for commercial viability.</p><p>If this is a new console from Valve, I'd be surprised if the company released it with a weaker GPU and less memory than the Steam Deck. Something with 16GB of RAM and perhaps a newer mid-range <a href="https://www.tomsguide.com/computing/gpus/amds-radeon-rx-9060-xt-is-a-direct-shot-at-nvidias-rtx-5060-heres-why-i-think-it-will-hit-the-bullseye">Radeon RX 9060 XT GPU. </a></p><h2 id="when-could-it-arrive">When could it arrive?</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:1772px;"><p class="vanilla-image-block" style="padding-top:66.65%;"><img id="xNjEYaK66dGyCd6mWqjASG" name="Valve Deckard" alt="Valve Deckard patent drawing" src="https://cdn.mos.cms.futurecdn.net/xNjEYaK66dGyCd6mWqjASG.png" mos="" align="middle" fullscreen="" width="1772" height="1181" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: US Patent office)</span></figcaption></figure><p>There's no word on when this new "Steam Box" could arrive. If SadlyItsBradley's prediction is true, it could launch with the Deckard headset. That device is allegedly going to debut before the end of 2025.</p><p>We've got a few months before the end of the year, so we'll have to wait patiently with our ear to the ground for any more rumors. </p><p>Still, <a href="https://www.tomsguide.com/gaming/handheld-gaming/i-turned-the-asus-rog-ally-x-into-a-steam-deck-it-proves-windows-11-kills-power-and-battery-life">SteamOS is coming to more devices</a> making a Steam console a potential reality sooner than later.</p><h2 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h2><ul><li><a href="https://www.tomsguide.com/gaming/razer-will-let-you-playtest-unreleased-aaa-games-for-rewards-with-its-new-program-heres-how-it-works">Razer will let you playtest unreleased AAA games for rewards with its new program — here's how it works</a></li><li><a href="https://www.tomsguide.com/gaming/pragmata-is-one-of-the-most-interesting-games-ive-played-in-years-and-its-combat-is-the-major-highlight">Pragmata is one of the most interesting games I’ve played in years — and its combat is the major highlight</a></li><li><a href="https://www.tomsguide.com/gaming/handheld-gaming/i-replaced-my-steam-deck-with-a-modern-game-boy-and-its-the-perfect-love-letter-to-my-inner-90s-kid">I replaced my Steam Deck with a modern Game Boy, and it's the perfect love letter to my inner '90s kid</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>