If you don't talk to me about the price, I will tell you the Asus ProArt P16 is an unbelievably good gaming laptop. It is beautifully slim, runs incredibly well gaming on battery, and has an absolutely stunning 16-inch OLED screen. And its Arm-based SoC is almost entirely transparent when it comes to running pretty much anything on Windows 11.But this is no mere Snapdragon device, this the RTX Spark; Nvidia's first foray into the world of full Windows SoCs. It's pairing a relatively beefy RTX Blackwell GPU with a whole bunch of Arm CPU cores, and doing so with lots and lots and lots of LPDDR5X memory. Y'know, for AI.Which, er, is why you might not want to ask about that price. Memory's expensive, and these RTX Spark laptops—of which the Asus ProArt P16 is, in my opinion, the most desirable—are likewise brutally priced. I have the 64 GB version, with the top Nvidia N1X SoC inside it, and it will set you back $4,400.It is that price both for AI and because of AI, and is being sold as the 'One PC' that can do everything. It can game, it can run creative apps, and it can slam through local AI workloads like no other laptop before. But where you're probably expecting me to trot out the old 'jack of all trades, master of none' line here, that's not really the case. There are tradeoffs, sure, but it's really, really good at the lot. And did I mention it was pretty? The real question here, however, is whether a PC gamer ought to be considering this machine for their next laptop. And if it's just to play games on, this would not be my first choice, however good a device I think it is. The performance, for an Arm-powered laptop, is impressive in terms of the experience, but not faultless. While Microsoft is working hard on Prism and opening up support for every anti-cheat software going, it is not complete. And checking against my back-of-the-napkin list of the 15 biggest PC games around right now you're looking at around half of them not being playable. Yet.Buy if...✅ You're a creator or local AI head who games on the side: If you're after an almost workstation style thin and light machine, but also want to play after dark, the ProArt P16 will cover all basesDon't buy if...❌ You just want a gaming laptop: There are other thin and light gaming machines that will cost a fraction of what this does, but perform as well in-game.❌ You have to ask the price: These are machines for the very well-off PC user.Asus ProArt P16 - FeaturesCPUNvidia RTX Spark N1XCores20 total(10 Arm Cortex-X925 + 10 Arm Cortex-A725)GPUNvidia Blackwell RTXCores6144 CUDA coresMemory64 GB LPDDR5X RAMStorage1 TB NVMe M.2 SSDScreen16-inch 3K OLED 100% DCI-P3 120 Hz TouchscreenOSMicrosoft Windows 11 Home 64-bitColourNano BlackWarrantyASUS 12 Month Collect & Return WarrantyPrice£3,900 | $4,400There are many like it, but this one is mine: The 20-core N1X chip, with 10 performance and 10 efficient cores, and the 6144 CUDA core GPU component. This version also comes with a 1 TB SSD (for a $4,400 spec? 😬 I know) and 64 GB of LPDDR5X-9400 memory. This version of the ProArt P16 is rocking the 16-inch 2880 x 1800 touchscreen OLED display, while there is also a 3840 x 2400 OLED screen available (both 120 Hz) if you go for one of the even pricier models. That one's a touch brighter, but this 1800p OLED will still output at 500 nits, with a 1100 nit peak HDR output, so it's no slouch.The paucity of storage is a definite disappointment for something at this price—look lower down the stack and you'll still be paying $2800 for the 24 GB version with just a 512 GB SSD. And I honestly do not see the point in that one except for all concerned to be able to say RTX Spark laptops "start from $2800". There is, however, a spare PCIe Gen5 SSD slot in the rear of the machine, which is easily accessible once you remove lots of torx screws.FutureFutureThe keyboard would be a genuinely lovely thing for this device if I wasn't regularly getting additional keystrokes I did not ask for. I've had to keep deleting the extra spaces this thing keeps adding into my copy. There. I just had to kill another one. It's annoying. What isn't annoying at all, though, is the glorious, massive haptic touchpad Asus has jammed onto this thing. It quite literally takes up half the width of the device. It's great to the touch, and impressively responsive as your digits glide across its surface. Mmm. Smooth.It's meant to have a webcam, too, but I cannot for the life of me find out how to turn the damned thing on. I'm assuming that somewhere in there a ribbon cable has become ejected because the device sees nothing. This is what I mean by some quality control issues...Asus ProArt P16 - ValueHaha. Hahahahahaha. Hahahahahahahahahahahaha.C'mon. This is the mid-range ProArt P16 for $4,400. Any sense of value left the station a loooooooong time ago.Asus ProArt P16 - Sound(Image credit: Future)This is a very pleasant surprise. The up-firing speakers set either side of the ProArt P16's keyboard are really, really good. Obviously that's still really, really good for laptop speakers, and they're are never going to replace your bookshelf speakers, but for clarity and, yes, even bass they do incredibly well.And they're loud enough that they can largely overcome the sound coming out of the vents on the ProArt P16 when it's running in full performance mode. It does get rather chatty when the silicon is running at full throttle, and when you're talking about a system that's going to max out its GPU component when running both games and local large language models, that's probably going to happen quite a lot.The pleasing thing, however, is that knocking things down to the Balanced preset in the ProArt Creator Hub (essentially a reskinned Armoury Crate) means that your performance only drops by a few percentage points but the fan noise drops by a whole hell of a lot. It's not silent—you have to dip into Whisper mode for that—but this is the preset you're going to want to spend most of your time running in.Asus ProArt P16 - Performance(Image credit: Future)Somewhat inevitably, performance is a mixed bag of chips when it comes to the RTX Spark. For one, this is a first-gen product from Nvidia, fusing essentially off-the-shelf Arm cores with its own GPU cores, so broad, mature support was never going to be 100% there from the get-go. For another we're talking about games especially that are being run through the Microsoft Prism emulation layer in order for them to run at all on the Asus ProArt P16.But even taking all that into account I think the gaming performance of this device is pretty damned impressive. The general suggestion ahead of the launch was that the 6144 CUDA core version would deliver gaming performance at a similar level to the RTX 5070 mobile GPUs. It has more cores than the mobile silicon, but is running at a lower clock speed and with a lower power budget, too.Take a look at the relative 1080p gaming performance of Cyberpunk 2077 and Metro Exodus Enhanced Ed. running on the RTX Spark versus the 100 W Framework 16 or 115 W Razer Blade 14 and you can see where it doesn't quite match up to the GPU performance of the more thirsty graphics parts.@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap'); #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper *, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper *:before, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper *:after, #fv-chart-1792075982248-y64zpc686-slideshow *, #fv-chart-1792075982248-y64zpc686-slideshow *:before, #fv-chart-1792075982248-y64zpc686-slideshow *:after { box-sizing: border-box !important; margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper, #fv-chart-1792075982248-y64zpc686-slideshow { font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper { position: relative !important; overflow: visible !important; --riv-primary: #E33235; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-inner-wrapper { color: #1F2937 !important; background-color: #ededed !important; padding: 1.5rem 1.5rem 2rem !important; border-radius: 0.5rem !important; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important; margin: 1rem 0 !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-inner-wrapper.fv-no-header.fv-is-image-compare { padding-top: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.fv-full-bleed { width: 100vw !important; margin-left: calc(50% - 50vw) !important; } body { overflow-x: clip !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.fv-full-bleed .fv-inner-wrapper { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-inner-wrapper.fv-is-shop-the-look { padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; background-color: transparent !important; } #fv-chart-1792075982248-y64zpc686-slideshow { position: relative !important; width: 100% !important; margin: 1rem 0 !important; --riv-primary: #E33235; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-slides-wrapper { position: relative !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-slide { width: 100% !important; animation: fv-fade-in 0.3s ease-in-out; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-slideshow-nav-row { position: relative !important; display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 0 0 16px 0 !important; width: 100% !important; z-index: 20 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-nav-btn { background-color: var(--riv-primary) !important; color: #ffffff !important; border: none !important; border-radius: 4px !important; padding: 8px 16px !important; font-size: 14px !important; font-weight: 700 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; transition: opacity 0.2s, background-color 0.2s !important; height: 36px !important; text-transform: none !important; box-shadow: 0 1px 2px rgba(0,0,0,0.1) !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-nav-btn svg { width: 18px !important; height: 18px !important; stroke-width: 3px !important; filter: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-nav-btn:hover { opacity: 0.9 !important; transform: translateY(-1px) !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-nav-btn.disabled, #fv-chart-1792075982248-y64zpc686-slideshow .fv-nav-btn:disabled { background-color: #E5E7EB !important; color: #9CA3AF !important; cursor: default !important; pointer-events: none !important; box-shadow: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-slide-counter { font-family: 'Poppins', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: #374151 !important; text-align: center !important; min-width: 40px !important; background-color: rgba(255,255,255,0.8) !important; padding: 2px 8px !important; border-radius: 10px !important; user-select: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-slideshow-select { position: absolute !important; top: 10px !important; right: 10px !important; z-index: 20 !important; appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background-color: white !important; border: 1px solid #d1d5db !important; color: #1F2937 !important; font-family: 'Open Sans', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; padding: 6px 32px 6px 12px !important; border-radius: 4px !important; cursor: pointer !important; box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important; background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e") !important; background-position: right 0.5rem center !important; background-repeat: no-repeat !important; background-size: 1.5em 1.5em !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-slideshow-select:focus { outline: 2px solid #E33235 !important; border-color: #E33235 !important; } @keyframes fv-fade-in { from { opacity: 0; } to { opacity: 1; } } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-chart-title { font-weight: bold !important; text-align: center !important; margin-bottom: 0.5rem !important; color: var(--riv-primary) !important; font-size: 20px !important; line-height: 1.2 !important; font-family: 'Open Sans', sans-serif !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; padding: 0 20px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-chart-subhead { font-size: 18px !important; font-weight: 500 !important; text-align: center !important; margin-bottom: 2rem !important; color: #374151 !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; text-transform: none !important; padding: 0 20px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .rv-chart-caption { font-size: 15px !important; color: #374151 !important; text-align: center !important; font-style: normal !important; font-weight: normal !important; line-height: 1.7 !important; font-family: 'Open Sans', sans-serif !important; display: block !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-wrapper { flex: 1; min-width: 0; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select { background: transparent; border: none; border-bottom: 2px solid; font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; padding: 0.25rem 0; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; max-width: 100%; width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select option { font-family: 'Open Sans', sans-serif; font-weight: 400; font-size: 14px; color: #374151; direction: ltr; text-align: left; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-vs { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; color: #374151; letter-spacing: 0.1em; padding: 0 1rem; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-bar { height: 32px; width: var(--target-width); transition: width 0.8s ease-out; animation: fv-grow-max-width 0.8s ease-out forwards; display: flex; align-items: center; overflow: hidden; color: #ffffff; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-bar-right { border-radius: 0 4px 4px 0; justify-content: flex-start; padding: 0 8px; } @keyframes fv-grow-max-width { from { max-width: 0; } to { max-width: 100%; } } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-center-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; background-color: #ffffff; transform: translateX(-50%); z-index: 1; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-inside-left { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-inside-right { white-space: nowrap; flex-shrink: 0; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-pct-diff { font-size: 12px; font-weight: 600; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-label { position: absolute; left: 50%; transform: translateX(-50%); top: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; font-family: 'Open Sans', sans-serif; font-weight: 700; font-size: 14px; color: #374151; white-space: nowrap; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-footer-content { text-align: center !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-logo { display: block !important; margin: 0 auto !important; width: 120px !important; min-width: 120px !important; max-width: 120px !important; height: auto !important; object-fit: contain !important; flex-shrink: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-dropdown-title { appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important; background: transparent !important; border: none !important; font-size: 18px !important; font-weight: 600 !important; color: var(--riv-primary) !important; padding-right: 28px !important; padding-left: 10px !important; cursor: pointer !important; text-align: center !important; text-align-last: center !important; width: auto !important; max-width: 100% !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; margin: 0 !important; text-overflow: ellipsis !important; overflow: hidden !important; white-space: nowrap !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-dropdown-title:focus { outline: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-dropdown-title::-ms-expand { display: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-dropdown-chevron { position: absolute !important; right: 0 !important; top: 50% !important; transform: translateY(-50%) !important; pointer-events: none !important; color: var(--riv-primary) !important; display: flex !important; align-items: center !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-carousel-title-controls { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; width: 100% !important; gap: 12px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-carousel-nav-btn { background: transparent !important; border: 1px solid #d1d5db !important; border-radius: 6px !important; padding: 6px 10px !important; cursor: pointer !important; font-size: 14px !important; color: #374151 !important; display: flex !important; align-items: center !important; gap: 4px !important; font-family: 'Open Sans', sans-serif !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 8px 16px !important; margin: 0 !important; padding: 0 !important; margin-top: 1rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-multi-value-legend { display: flex !important; justify-content: center !important; flex-wrap: wrap !important; gap: 12px 24px !important; margin-bottom: 1.5rem !important; padding: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-multi-legend-item { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: #374151 !important; font-weight: 500 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-benchmark-group { margin-bottom: 1rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-benchmark-title { font-size: 18px !important; font-weight: 600 !important; margin-bottom: 16px !important; margin-top: 0 !important; padding: 0 !important; text-align: center !important; color: var(--riv-primary) !important; flex: 1 !important; min-width: 0 !important; font-family: 'Open Sans', sans-serif !important; line-height: 1.3 !important; text-transform: none !important; white-space: normal !important; overflow-wrap: break-word !important; word-wrap: break-word !important; max-width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-row, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-label { width: 150px !important; flex-shrink: 0 !important; font-size: 14px !important; color: #374151 !important; padding-right: 10px !important; text-align: right !important; font-weight: 500 !important; display: block !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-container { flex-grow: 1 !important; background-color: #E5E7EB !important; border-radius: 4px !important; min-height: 25px !important; border: 1px solid #D1D5DB !important; position: relative !important; display: flex !important; align-items: center !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-commentary-inline { display: none !important; position: absolute !important; left: 150px !important; top: 0 !important; bottom: 0 !important; right: 0 !important; width: calc(100% - 150px) !important; margin: 0 !important; padding: 0 8px !important; font-size: 13px !important; color: #fff !important; background: rgba(0,0,0,0.8) !important; border-radius: 4px !important; line-height: 1.4 !important; font-weight: normal !important; text-transform: none !important; word-wrap: break-word !important; z-index: 10 !important; align-items: center !important; overflow-y: auto !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar { height: 100% !important; border-radius: 3px !important; display: flex !important; align-items: center !important; transition: opacity 0.2s ease, width 0.8s ease-out !important; min-height: 23px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar:hover { opacity: 0.8 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-inner-content { display: flex !important; justify-content: space-between !important; align-items: center !important; width: 100% !important; height: 100% !important; padding: 0 8px !important; font-size: 14px !important; font-weight: bold !important; overflow: hidden !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-inner-value { flex-shrink: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-value-outside { padding-left: 8px !important; font-size: 14px !important; font-weight: bold !important; color: #374151 !important; white-space: nowrap !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stacked-bar { display: flex !important; overflow: hidden !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stacked-segment { height: 100% !important; display: flex !important; align-items: center !important; justify-content: flex-end !important; padding-right: 8px !important; border-right: 1px solid rgba(255,255,255,0.3) !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stacked-segment:last-child { border-right: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-segment-value { font-size: 14px !important; font-weight: bold !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-grouped-product-title-wrapper { padding-left: 150px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.5rem !important; font-weight: 700 !important; font-size: 14px !important; color: #374151 !important; text-transform: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-cluster .fv-bar-container { height: 20px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .riv-grid line { stroke: #D1D5DB !important; stroke-dasharray: 3 3 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-ticks { display: flex !important; justify-content: space-between !important; padding-top: 4px !important; font-size: 13px !important; color: #374151 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-ticks span { position: relative !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-ticks span::before { content: '' !important; position: absolute !important; top: -6px !important; left: 50% !important; transform: translateX(-50%) !important; width: 2px !important; height: 4px !important; background-color: #D1D5DB !important; border-radius: 1px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-title { text-align: center !important; font-size: 15px !important; color: #374151 !important; margin-top: 8px !important; margin-bottom: 16px !important; line-height: 1.5 !important; padding: 0 1rem !important; display: block !important; font-weight: bold !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-y-axis-title { font-size: 15px !important; color: #374151 !important; line-height: 1.5 !important; text-align: left !important; padding-left: 5.83% !important; margin-bottom: 4px !important; display: block !important; font-weight: bold !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-pie-container, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-product-title-wrapper, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-stacked-product, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-bar-product, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-stacked-product, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-label:not(.fv-grouped-product-title), #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-label, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-grouped-product-title, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-label, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-container, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-cluster, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-container, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-cluster { width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-wrapper, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-label-space, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-label-space { display: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-x-axis-chart-space, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-benchmark-title, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-dropdown-title, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-carousel-nav-btn, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-chart-title, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-chart-subhead, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-header, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper.fv-left, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-wrapper.fv-right, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select.fv-select-left, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select.fv-select-right, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-vs, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select-container, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-versus-select, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-btn, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-logo, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-icon, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-logo, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-stl-shop-all-icon svg, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.labels-on-top .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.mobile-view.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } @media (max-width: 599px) { #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-pie-container { flex-direction: column !important; gap: 1rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-grouped-product-title-wrapper { padding-left: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-row, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stacked-product, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-grouped-bar-product { flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-label:not(.fv-grouped-product-title) { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-label, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-grouped-product-title { width: 100% !important; text-align: left !important; padding-right: 0 !important; margin-bottom: 0.25rem !important; font-size: 14px !important; font-weight: 700 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-container, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-cluster { width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-row .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-row .fv-bar-commentary-inline:focus, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-row .fv-bar-commentary-inline:focus-within { position: static !important; display: block !important; width: 100% !important; margin: 4px 0 0 0 !important; padding: 0 !important; background: transparent !important; color: #6B7280 !important; font-size: 12px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-wrapper { margin-left: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-label-space { display: none !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-x-axis-chart-space { padding-right: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-benchmark-title { font-size: 16px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-dropdown-title { font-size: 16px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-carousel-nav-btn { padding: 8px 12px !important; font-size: 14px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-chart-title { padding: 0 8px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-chart-subhead { padding: 0 8px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-header { flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-wrapper { flex: 1 !important; min-width: 0 !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-left { text-align: center !important; padding-right: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-wrapper.fv-right { text-align: center !important; padding-left: 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-left { text-align: center !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select.fv-select-right { text-align: center !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-vs { text-align: center !important; padding: 0.25rem 0 !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select-container { max-width: 100% !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-versus-select { font-size: 14px !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stl-shop-all-btn { bottom: 0.5rem !important; right: 0.5rem !important; height: 2rem !important; font-size: 0.75rem !important; padding: 0 0.75rem 0 2.5rem !important; max-width: calc(100% - 1rem) !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stl-shop-all-logo, #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stl-shop-all-icon { width: 2rem !important; height: 2rem !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-stl-shop-all-icon svg { width: 14px !important; height: 14px !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-bar-commentary-inline { display: block !important; margin-left: 0 !important; width: 100% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper .fv-y-axis-title { padding-left: 5% !important; } #fv-chart-1792075982248-y64zpc686-slideshow .fv-chart-wrapper.fv-contains-line-chart .fv-footer-content { margin-left: -1rem !important; margin-right: -1rem !important; } }[{ "@context": "https://schema.org", "@type": "Dataset", "name": "1080p gaming performance", "description": "Testing the relative gaming performance of different laptops across multiple games.", "creator": { "@type": "Organization", "name": "PC Gamer", "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" }, "isAccessibleForFree": true, "dateCreated": "2026-10-15T14:53:02.249Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "Asus ProArt P16 | RTX Spark", "Framework 16", "Razer Blade 14 (2025)", "Cyberpunk 2077 (1080p RT Ultra)", "Baldur's Gate 3 (1080p Ultra)", "Black Myth: Wukong benchmarking tool (1080p High)", "Metro Exodus Enhanced Edition (1080p Ultra)", "benchmark", "comparison", "performance", "review", "PC Gamer" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark – Cyberpunk 2077 (1080p RT Ultra)", "value": 36, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W – Cyberpunk 2077 (1080p RT Ultra)", "value": 43, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W – Cyberpunk 2077 (1080p RT Ultra)", "value": 45, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark – Baldur's Gate 3 (1080p Ultra)", "value": 42, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W – Baldur's Gate 3 (1080p Ultra)", "value": 69, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W – Baldur's Gate 3 (1080p Ultra)", "value": 65, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark – Black Myth: Wukong benchmarking tool (1080p High)", "value": 66, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W – Black Myth: Wukong benchmarking tool (1080p High)", "value": 64, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W – Black Myth: Wukong benchmarking tool (1080p High)", "value": 65, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark – Metro Exodus Enhanced Edition (1080p Ultra)", "value": 75, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W – Metro Exodus Enhanced Edition (1080p Ultra)", "value": 82, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W – Metro Exodus Enhanced Edition (1080p Ultra)", "value": 84, "unitText": "Avg FPS" } ]},{ "@context": "https://schema.org", "@type": "Dataset", "name": "Native gaming performance", "description": "Testing the relative gaming performance across multiple games at the laptop screen's native resolution.", "creator": { "@type": "Organization", "name": "PC Gamer", "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" }, "isAccessibleForFree": true, "dateCreated": "2026-10-15T14:53:02.249Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "Asus ProArt P16 | RTX Spark", "Framework 16", "Razer Blade 14 (2025)", "Cyberpunk 2077 (Native res. RT Ultra)", "Baldur's Gate 3 (Native res. Ultra)", "Black Myth: Wukong benchmarking tool (Native res. High)", "Metro Exodus Enhanced Edition (Native res. Ultra)", "benchmark", "comparison", "performance", "review", "PC Gamer" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark | 1880p – Cyberpunk 2077 (Native res. RT Ultra)", "value": 18, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W | 1600p – Cyberpunk 2077 (Native res. RT Ultra)", "value": 18, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W | 1800p – Cyberpunk 2077 (Native res. RT Ultra)", "value": 7, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark | 1880p – Baldur's Gate 3 (Native res. Ultra)", "value": 36, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W | 1600p – Baldur's Gate 3 (Native res. Ultra)", "value": 67, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W | 1800p – Baldur's Gate 3 (Native res. Ultra)", "value": 61, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark | 1880p – Black Myth: Wukong benchmarking tool (Native res. High)", "value": 38, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W | 1600p – Black Myth: Wukong benchmarking tool (Native res. High)", "value": 72, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W | 1800p – Black Myth: Wukong benchmarking tool (Native res. High)", "value": 63, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark | 1880p – Metro Exodus Enhanced Edition (Native res. Ultra)", "value": 46, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W | 1600p – Metro Exodus Enhanced Edition (Native res. Ultra)", "value": 54, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W | 1800p – Metro Exodus Enhanced Edition (Native res. Ultra)", "value": 49, "unitText": "Avg FPS" } ]},{ "@context": "https://schema.org", "@type": "Dataset", "name": "Upscaled gaming performance", "description": "Testing the relative gaming performance of different laptops across multiple games.", "creator": { "@type": "Organization", "name": "PC Gamer", "logo": "https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png" }, "isAccessibleForFree": true, "dateCreated": "2026-10-15T14:53:02.249Z", "citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized", "keywords": [ "Asus ProArt P16 | RTX Spark", "Framework 16", "Razer Blade 14 (2025)", "Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)", "Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))", "benchmark", "comparison", "performance", "review", "PC Gamer" ], "measurementTechnique": "Performance Benchmarking", "variableMeasured": [ { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark – Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)", "value": 54, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W – Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)", "value": 75, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W – Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)", "value": 62, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Asus ProArt P16 | RTX Spark – Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))", "value": 62, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Framework 16 | RTX 5070 100 W – Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))", "value": 72, "unitText": "Avg FPS" }, { "@type": "PropertyValue", "name": "Razer Blade 14 | RTX 5070 115 W – Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))", "value": 63, "unitText": "Avg FPS" } ]}]{"version":2,"exportedAt":"2026-10-15T14:53:02.249Z","state":{"data":[{"productName":"Asus ProArt P16 | RTX Spark","attribute":"Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)","value":54,"unit":"Avg FPS","multiValues":[{"value":54,"unit":"Avg FPS"},{"value":34,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Asus ProArt P16 | RTX Spark","attribute":"Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))","value":62,"unit":"Avg FPS","multiValues":[{"value":62,"unit":"Avg FPS"},{"value":37,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Framework 16","attribute":"Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)","value":75,"unit":"Avg FPS","multiValues":[{"value":75,"unit":"Avg FPS"},{"value":58,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Framework 16","attribute":"Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))","value":72,"unit":"Avg FPS","multiValues":[{"value":72,"unit":"Avg FPS"},{"value":62,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 14 (2025)","attribute":"Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)","value":62,"unit":"Avg FPS","multiValues":[{"value":62,"unit":"Avg FPS"},{"value":43,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"},{"productName":"Razer Blade 14 (2025)","attribute":"Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))","value":63,"unit":"Avg FPS","multiValues":[{"value":63,"unit":"Avg FPS"},{"value":55,"unit":"1% Low FPS"}],"color":"","site":"PC Gamer"}],"products":["Asus ProArt P16 | RTX Spark","Framework 16","Razer Blade 14 (2025)"],"attributes":["Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)","Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))"],"selectedProducts":[],"selectedPrimaryProduct":null,"selectedAttributes":[],"productColors":[{"productName":"Asus ProArt P16 | RTX Spark","color":"#E33235"},{"productName":"Framework 16","color":"#FE9F58"},{"productName":"MSI Crosshair 16 HX (AI)","color":"#1CA9C4"},{"productName":"Razer Blade 14 (2025)","color":"#EB6F71"}],"initialProductColors":[{"productName":"Asus ProArt P16 | RTX Spark","color":"#E33235"},{"productName":"Framework 16","color":"#FE9F58"},{"productName":"MSI Crosshair 16 HX (AI)","color":"#1CA9C4"},{"productName":"Razer Blade 14 (2025)","color":"#EB6F71"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"Dropdown","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Upscaled gaming performance","subhead":"Testing the relative gaming performance of different laptops across multiple games.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{"Framework 16":"Framework 16 | RTX 5070 100 W","MSI Crosshair 16 HX (AI)":"MSI Crosshair 16 HX | RTX 5070 115 W","Razer Blade 14 (2025)":"Razer Blade 14 | RTX 5070 115 W"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":false,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":true,"experimentalEnablePieChart":false,"slideshowUseDropdown":false},"slides":[{"id":"slide-1792068864174","snapshot":{"selectedProducts":["Asus ProArt P16 | RTX Spark","Framework 16","Razer Blade 14 (2025)"],"selectedPrimaryProduct":"Asus ProArt P16 | RTX Spark","selectedAttributes":["Cyberpunk 2077 (1080p RT Ultra)","Baldur's Gate 3 (1080p Ultra)","Black Myth: Wukong benchmarking tool (1080p High)","Metro Exodus Enhanced Edition (1080p Ultra)"],"productColors":[{"productName":"Asus ProArt P16 | RTX Spark","color":"#E33235"},{"productName":"Framework 16","color":"#FE9F58"},{"productName":"MSI Crosshair 16 HX (AI)","color":"#1CA9C4"},{"productName":"Razer Blade 14 (2025)","color":"#EB6F71"}],"initialProductColors":[{"productName":"Asus ProArt P16 | RTX Spark","color":"#E33235"},{"productName":"Framework 16","color":"#FE9F58"},{"productName":"MSI Crosshair 16 HX (AI)","color":"#1CA9C4"},{"productName":"Razer Blade 14 (2025)","color":"#EB6F71"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"Dropdown","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"1080p gaming performance","subhead":"Testing the relative gaming performance of different laptops across multiple games.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{"Framework 16":"Framework 16 | RTX 5070 100 W","MSI Crosshair 16 HX (AI)":"MSI Crosshair 16 HX | RTX 5070 115 W","Razer Blade 14 (2025)":"Razer Blade 14 | RTX 5070 115 W"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":false,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":true,"experimentalEnablePieChart":false,"slideshowUseDropdown":false}},{"id":"slide-1792075946078","snapshot":{"selectedProducts":["Asus ProArt P16 | RTX Spark","Framework 16","Razer Blade 14 (2025)"],"selectedPrimaryProduct":"Asus ProArt P16 | RTX Spark","selectedAttributes":["Cyberpunk 2077 (Native res. RT Ultra)","Baldur's Gate 3 (Native res. Ultra)","Black Myth: Wukong benchmarking tool (Native res. High)","Metro Exodus Enhanced Edition (Native res. Ultra)"],"productColors":[{"productName":"Asus ProArt P16 | RTX Spark","color":"#E33235"},{"productName":"Framework 16","color":"#FE9F58"},{"productName":"MSI Crosshair 16 HX (AI)","color":"#1CA9C4"},{"productName":"Razer Blade 14 (2025)","color":"#EB6F71"}],"initialProductColors":[{"productName":"Asus ProArt P16 | RTX Spark","color":"#E33235"},{"productName":"Framework 16","color":"#FE9F58"},{"productName":"MSI Crosshair 16 HX (AI)","color":"#1CA9C4"},{"productName":"Razer Blade 14 (2025)","color":"#EB6F71"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"Dropdown","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Native gaming performance","subhead":"Testing the relative gaming performance across multiple games at the laptop screen's native resolution.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{"Framework 16":"Framework 16 | RTX 5070 100 W | 1600p","MSI Crosshair 16 HX (AI)":"MSI Crosshair 16 HX | RTX 5070 115 W | 1600p","Razer Blade 14 (2025)":"Razer Blade 14 | RTX 5070 115 W | 1800p","Asus ProArt P16 | RTX Spark":"Asus ProArt P16 | RTX Spark | 1880p"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":false,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":true,"experimentalEnablePieChart":false,"slideshowUseDropdown":false}},{"id":"slide-1792075980795","snapshot":{"selectedProducts":["Asus ProArt P16 | RTX Spark","Framework 16","Razer Blade 14 (2025)"],"selectedPrimaryProduct":"Asus ProArt P16 | RTX Spark","selectedAttributes":["Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)","Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))"],"productColors":[{"productName":"Asus ProArt P16 | RTX Spark","color":"#E33235"},{"productName":"Framework 16","color":"#FE9F58"},{"productName":"MSI Crosshair 16 HX (AI)","color":"#1CA9C4"},{"productName":"Razer Blade 14 (2025)","color":"#EB6F71"}],"initialProductColors":[{"productName":"Asus ProArt P16 | RTX Spark","color":"#E33235"},{"productName":"Framework 16","color":"#FE9F58"},{"productName":"MSI Crosshair 16 HX (AI)","color":"#1CA9C4"},{"productName":"Razer Blade 14 (2025)","color":"#EB6F71"}],"attributeColors":[],"attributeGroups":[],"chartType":"Bar","stlSelectedHotspotId":null,"iaSelectedNodeId":null,"barChartMaxValueOverrides":{},"barChartMinValueOverrides":{},"displayMode":"Dropdown","brand":{"name":"PC Gamer","logoUrl":"https://cdn.mos.cms.futurecdn.net/bkwSqn4ocKYaQwBeFt2HHb.png","sliderLogoUrl":"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png","sliderLogoShape":"square","embedBg":"#ededed","colors":{"primary":"#E33235","secondary":"#FE9F58","accent":"#1CA9C4","background":"#ededed","text":"#1F2937","productColors":["#E33235","#FE9F58","#1CA9C4","#EB6F71","#FFC08B","#66C5D7","#B5282A","#D07F46"]}},"textContent":{"title":"Upscaled gaming performance","subhead":"Testing the relative gaming performance of different laptops across multiple games.","caption":"Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","productNameOverrides":{"Framework 16":"Framework 16 | RTX 5070 100 W","MSI Crosshair 16 HX (AI)":"MSI Crosshair 16 HX | RTX 5070 115 W","Razer Blade 14 (2025)":"Razer Blade 14 | RTX 5070 115 W"},"attributeNameOverrides":{},"chartTitleOverrides":{},"xAxisLabelOverrides":{},"subheadOverrides":{},"captionOverrides":{},"unitOverrides":{},"multiValueLegendOverrides":{},"barCommentaryOverrides":{}},"dataEverLoaded":true,"showAISuggestionsButton":false,"barChartShowXAxis":false,"groupedBarChartShowProductName":false,"barChartLabelsOnTop":true,"experimentalEnablePieChart":false,"slideshowUseDropdown":false}}]}Previous1 / 3Next1080p gaming performanceTesting the relative gaming performance of different laptops across multiple games.Cyberpunk 2077 (1080p RT Ultra)Baldur's Gate 3 (1080p Ultra)Black Myth: Wukong benchmarking tool (1080p High)Metro Exodus Enhanced Edition (1080p Ultra)Avg FPS1% Low FPSAsus ProArt P16 | RTX Spark3627Framework 16 | RTX 5070 100 W4333Razer Blade 14 | RTX 5070 115 W4528Cyberpunk 2077 (1080p RT Ultra) DataProductValueAsus ProArt P16 | RTX Spark36 Avg FPS, 27 1% Low FPSFramework 16 | RTX 5070 100 W43 Avg FPS, 33 1% Low FPSRazer Blade 14 | RTX 5070 115 W45 Avg FPS, 28 1% Low FPSAvg FPS1% Low FPSAsus ProArt P16 | RTX Spark4224Framework 16 | RTX 5070 100 W6941Razer Blade 14 | RTX 5070 115 W6538Baldur's Gate 3 (1080p Ultra) DataProductValueAsus ProArt P16 | RTX Spark42 Avg FPS, 24 1% Low FPSFramework 16 | RTX 5070 100 W69 Avg FPS, 41 1% Low FPSRazer Blade 14 | RTX 5070 115 W65 Avg FPS, 38 1% Low FPSAvg FPS1% Low FPSAsus ProArt P16 | RTX Spark6642Framework 16 | RTX 5070 100 W6455Razer Blade 14 | RTX 5070 115 W6556Black Myth: Wukong benchmarking tool (1080p High) DataProductValueAsus ProArt P16 | RTX Spark66 Avg FPS, 42 1% Low FPSFramework 16 | RTX 5070 100 W64 Avg FPS, 55 1% Low FPSRazer Blade 14 | RTX 5070 115 W65 Avg FPS, 56 1% Low FPSAvg FPS1% Low FPSAsus ProArt P16 | RTX Spark7529Framework 16 | RTX 5070 100 W8251Razer Blade 14 | RTX 5070 115 W8450Metro Exodus Enhanced Edition (1080p Ultra) DataProductValueAsus ProArt P16 | RTX Spark75 Avg FPS, 29 1% Low FPSFramework 16 | RTX 5070 100 W82 Avg FPS, 51 1% Low FPSRazer Blade 14 | RTX 5070 115 W84 Avg FPS, 50 1% Low FPSNative gaming performanceTesting the relative gaming performance across multiple games at the laptop screen's native resolution.Cyberpunk 2077 (Native res. RT Ultra)Baldur's Gate 3 (Native res. Ultra)Black Myth: Wukong benchmarking tool (Native res. High)Metro Exodus Enhanced Edition (Native res. Ultra)Avg FPS1% Low FPSAsus ProArt P16 | RTX Spark | 1880p1813Framework 16 | RTX 5070 100 W | 1600p188Razer Blade 14 | RTX 5070 115 W | 1800p73Cyberpunk 2077 (Native res. RT Ultra) DataProductValueAsus ProArt P16 | RTX Spark | 1880p18 Avg FPS, 13 1% Low FPSFramework 16 | RTX 5070 100 W | 1600p18 Avg FPS, 8 1% Low FPSRazer Blade 14 | RTX 5070 115 W | 1800p7 Avg FPS, 3 1% Low FPSAvg FPS1% Low FPSAsus ProArt P16 | RTX Spark | 1880p3622Framework 16 | RTX 5070 100 W | 1600p6737Razer Blade 14 | RTX 5070 115 W | 1800p6130Baldur's Gate 3 (Native res. Ultra) DataProductValueAsus ProArt P16 | RTX Spark | 1880p36 Avg FPS, 22 1% Low FPSFramework 16 | RTX 5070 100 W | 1600p67 Avg FPS, 37 1% Low FPSRazer Blade 14 | RTX 5070 115 W | 1800p61 Avg FPS, 30 1% Low FPSAvg FPS1% Low FPSAsus ProArt P16 | RTX Spark | 1880p3826Framework 16 | RTX 5070 100 W | 1600p7262Razer Blade 14 | RTX 5070 115 W | 1800p6355Black Myth: Wukong benchmarking tool (Native res. High) DataProductValueAsus ProArt P16 | RTX Spark | 1880p38 Avg FPS, 26 1% Low FPSFramework 16 | RTX 5070 100 W | 1600p72 Avg FPS, 62 1% Low FPSRazer Blade 14 | RTX 5070 115 W | 1800p63 Avg FPS, 55 1% Low FPSAvg FPS1% Low FPSAsus ProArt P16 | RTX Spark | 1880p4617Framework 16 | RTX 5070 100 W | 1600p5439Razer Blade 14 | RTX 5070 115 W | 1800p4935Metro Exodus Enhanced Edition (Native res. Ultra) DataProductValueAsus ProArt P16 | RTX Spark | 1880p46 Avg FPS, 17 1% Low FPSFramework 16 | RTX 5070 100 W | 1600p54 Avg FPS, 39 1% Low FPSRazer Blade 14 | RTX 5070 115 W | 1800p49 Avg FPS, 35 1% Low FPSUpscaled gaming performanceTesting the relative gaming performance of different laptops across multiple games.Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG)Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%))Avg FPS1% Low FPSAsus ProArt P16 | RTX Spark5434Framework 16 | RTX 5070 100 W7558Razer Blade 14 | RTX 5070 115 W6243Cyberpunk 2077 (Native res. RT Ultra + upscaling (quality), 2x FG) DataProductValueAsus ProArt P16 | RTX Spark54 Avg FPS, 34 1% Low FPSFramework 16 | RTX 5070 100 W75 Avg FPS, 58 1% Low FPSRazer Blade 14 | RTX 5070 115 W62 Avg FPS, 43 1% Low FPSAvg FPS1% Low FPSAsus ProArt P16 | RTX Spark6237Framework 16 | RTX 5070 100 W7262Razer Blade 14 | RTX 5070 115 W6355Black Myth: Wukong benchmarking tool (Native res. High + upscaling (quality, 67%)) DataProductValueAsus ProArt P16 | RTX Spark62 Avg FPS, 37 1% Low FPSFramework 16 | RTX 5070 100 W72 Avg FPS, 62 1% Low FPSRazer Blade 14 | RTX 5070 115 W63 Avg FPS, 55 1% Low FPS window.iFrameResizer = { heightCalculationMethod: 'taggedElement' }; (function() { function createChartAnimator() { return function animateChartWrapper(chartWrapper) { if (!chartWrapper) return; function animateBars(chartElement) { if (!chartElement) return; var bars = chartElement.querySelectorAll('.fv-bar, .fv-stacked-segment'); bars.forEach(function(bar, index) { bar.style.setProperty('width', '0%', 'important'); bar.style.setProperty('transition', 'none', 'important'); var targetWidth = bar.dataset.targetWidth; if (targetWidth === undefined) return; void bar.offsetWidth; var targetMargin = bar.dataset.targetMargin; var baseMargin = bar.dataset.baseMargin; if (baseMargin !== undefined) { bar.style.setProperty('margin-left', baseMargin + '%', 'important'); } setTimeout(function() { var marginTransition = baseMargin !== undefined ? ', margin-left 0.8s ease-out' : ''; bar.style.setProperty('transition', 'opacity 0.2s ease, width 0.8s ease-out' + marginTransition, 'important'); bar.style.setProperty('width', targetWidth + '%', 'important'); if (targetMargin !== undefined && baseMargin !== undefined) { bar.style.setProperty('margin-left', targetMargin + '%', 'important'); } }, index * 50 + 50); }); } function animateLineChart(chartElement) { if (!chartElement) return; var lineSvg = chartElement.querySelector('svg'); if (!lineSvg) return; var paths = lineSvg.querySelectorAll('.riv-line-path'); paths.forEach(function(p, i) { if (typeof p.getTotalLength === 'function') { var len = p.getTotalLength(); p.style.transition = 'none'; p.style.strokeDasharray = len; p.style.strokeDashoffset = len; p.getBoundingClientRect(); setTimeout(function() { p.style.transition = 'stroke-dashoffset 1s ease-out ' + (i * 0.1) + 's, stroke-width 0.2s, opacity 0.2s'; p.style.strokeDashoffset = '0'; }, 100); } }); var dots = lineSvg.querySelectorAll('.riv-dot'); dots.forEach(function(dot, i) { dot.style.opacity = '0'; setTimeout(function() { dot.style.transition = 'opacity 0.3s ease'; dot.style.opacity = '1'; }, 500 + i * 10); }); } var charts = chartWrapper.querySelectorAll('.fv-chart-item'); charts.forEach(function(chart) { if (window.getComputedStyle(chart).display === 'none') return; var chartType = chart.dataset.chartType; if (chartType === 'Line') { animateLineChart(chart); } else if (chartType !== 'Pie') { animateBars(chart); } }); }; } var fvLocalAnimate = createChartAnimator(); window.fvAnimateCharts = fvLocalAnimate; function initialize(uniqueId, isSlideshow) { var root = document.getElementById(uniqueId); if (!root && !isSlideshow) return; function setupWrapper(chartWrapper) { if (!chartWrapper) return; /* Responsive mobile view handling */ function checkMobileView() { var width = chartWrapper.getBoundingClientRect().width; var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) rightNum) { winner = 'left'; if (rightNum > 0) { var diff = Math.round(((leftNum - rightNum) / rightNum) * 100); pctDiffStr = '+' + diff.toLocaleString() + '%'; } } else if (rightNum > leftNum) { winner = 'right'; if (leftNum > 0) { var diff = Math.round(((rightNum - leftNum) / leftNum) * 100); pctDiffStr = '+' + diff.toLocaleString() + '%'; } } } var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-')); var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-')); var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) || (data.productData[rightProduct] && data.productData[rightProduct].unit) || ''; var leftTextStr = leftDisplay; var rightTextStr = rightDisplay; var leftBar = row.querySelector('.fv-versus-bar-left'); var rightBar = row.querySelector('.fv-versus-bar-right'); var leftText = row.querySelector('.fv-inside-left'); var rightText = row.querySelector('.fv-inside-right'); var labelText = row.querySelector('.fv-versus-label span'); var existingPctDiffs = row.querySelectorAll('.fv-versus-pct-diff'); existingPctDiffs.forEach(function(el) { el.remove(); }); if (winner === 'left' && pctDiffStr) { var pctSpan = document.createElement('span'); pctSpan.className = 'fv-versus-pct-diff'; pctSpan.style.color = 'rgba(255, 255, 255, 0.9)'; pctSpan.textContent = pctDiffStr; if (leftBar) leftBar.insertBefore(pctSpan, leftBar.firstChild); } else if (winner === 'right' && pctDiffStr) { var pctSpan = document.createElement('span'); pctSpan.className = 'fv-versus-pct-diff'; pctSpan.style.color = 'rgba(255, 255, 255, 0.9)'; pctSpan.textContent = pctDiffStr; if (rightBar) rightBar.appendChild(pctSpan); } if (leftBar) { leftBar.style.backgroundColor = leftColor; leftBar.dataset.targetWidth = leftWidth; leftBar.style.setProperty('--target-width', leftWidth + '%'); leftBar.style.width = leftWidth + '%'; } if (rightBar) { rightBar.style.backgroundColor = rightColor; rightBar.dataset.targetWidth = rightWidth; rightBar.style.setProperty('--target-width', rightWidth + '%'); rightBar.style.width = rightWidth + '%'; } if (leftText) { leftText.innerHTML = leftTextStr; } if (rightText) { rightText.innerHTML = rightTextStr; } if (labelText) { labelText.textContent = data.attribute + (unit ? ' (' + unit + ')' : ''); } }); } if (leftSelect) leftSelect.addEventListener('change', updateVersusChart); if (rightSelect) rightSelect.addEventListener('change', updateVersusChart); }); /* Bar Commentary Hover Logic */ var barRows = chartWrapper.querySelectorAll('.fv-bar-row'); var globalCaptionEl = chartWrapper.querySelector('.rv-chart-caption'); var fallbackCaptionHtml = globalCaptionEl ? globalCaptionEl.innerHTML : ''; barRows.forEach(function(row) { var commentaryEl = row.querySelector('[data-commentary-key]'); if (commentaryEl) { var commentaryText = commentaryEl.textContent; if (commentaryText && commentaryText.trim().length > 0) { row.addEventListener('mouseenter', function() { if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) { globalCaptionEl.innerHTML = commentaryText; globalCaptionEl.classList.add('fv-bar-active-caption'); } }); row.addEventListener('mouseleave', function() { if (!chartWrapper.classList.contains('mobile-view') && globalCaptionEl) { globalCaptionEl.innerHTML = fallbackCaptionHtml; globalCaptionEl.classList.remove('fv-bar-active-caption'); } }); } } }); /* Carousel & Dropdown Logic */ var charts = chartWrapper.querySelectorAll('.fv-chart-item'); var dropdown = chartWrapper.querySelector('.fv-dropdown-title'); var prevBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.prev'); var nextBtn = chartWrapper.querySelector('.fv-carousel-nav-btn.next'); var carouselTitle = chartWrapper.querySelector('.fv-carousel-title-controls .fv-benchmark-title'); var counter = chartWrapper.querySelector('.fv-carousel-counter'); var subheadEl = chartWrapper.querySelector('.fv-chart-subhead'); var captionEl = chartWrapper.querySelector('.rv-chart-caption'); var footerContentEl = chartWrapper.querySelector('.fv-footer-content'); var bottomBarEl = chartWrapper.querySelector('.fv-bottom-bar'); var logoEl = chartWrapper.querySelector('.fv-logo'); if (charts.length > 1 && (dropdown || prevBtn)) { var currentChartIndex = 0; var titles = []; if (dropdown) { titles = Array.from(dropdown.options).map(function(o) { return o.text; }); } else { charts.forEach(function(c) { titles.push(c.getAttribute('data-title') || ''); }); } function showInternalChart(index) { if (index < 0) index = charts.length - 1; if (index >= charts.length) index = 0; currentChartIndex = index; charts.forEach(function(c, i) { c.style.display = i === index ? 'block' : 'none'; if (i === index) { var cType = c.dataset.chartType; if (cType !== 'Pie') { fvLocalAnimate(chartWrapper); } var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true'; if (labelsOnTop && (cType === 'Bar' || cType === 'Diverging Bar' || cType === 'Stacked Bar' || cType === 'Versus')) { chartWrapper.classList.add('labels-on-top'); } else { chartWrapper.classList.remove('labels-on-top'); } } }); if (dropdown) dropdown.value = index; if (carouselTitle && titles[index]) carouselTitle.textContent = titles[index]; if (counter) counter.textContent = (index + 1) + ' of ' + charts.length; var activeChart = charts[index]; if (activeChart) { var newSubhead = activeChart.getAttribute('data-subhead'); var newCaption = activeChart.getAttribute('data-caption'); var currentChartType = activeChart.getAttribute('data-chart-type'); var hideGlobalCaption = currentChartType === 'Countdown' || currentChartType === 'Image Comparison' || currentChartType === 'Shop the Collection'; if (subheadEl) subheadEl.textContent = newSubhead || ''; if (captionEl) { captionEl.textContent = newCaption || ''; fallbackCaptionHtml = newCaption || ''; } if (footerContentEl) { if (newCaption && newCaption.trim().length > 0 && !hideGlobalCaption) { footerContentEl.style.display = 'block'; if (bottomBarEl) bottomBarEl.style.display = 'flex'; } else { footerContentEl.style.display = 'none'; if (bottomBarEl && !logoEl) { bottomBarEl.style.display = 'none'; } } } } } if (dropdown) dropdown.addEventListener('change', function(e) { showInternalChart(parseInt(e.target.value)); }); if (prevBtn) prevBtn.addEventListener('click', function() { showInternalChart(currentChartIndex - 1); }); if (nextBtn) nextBtn.addEventListener('click', function() { showInternalChart(currentChartIndex + 1); }); } /* Image Comparison Logic */ var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper'); imageCompareWrappers.forEach(function(wrapper) { var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper; var slider = wrapper.querySelector('.fv-image-compare-slider'); var fgImage = wrapper.querySelector('.fv-image-compare-fg'); var bgImage = wrapper.querySelector('.fv-image-compare-bg'); var labelLeft = wrapper.querySelector('.fv-image-compare-label-left'); var labelRight = wrapper.querySelector('.fv-image-compare-label-right'); var isDragging = false; var scale = 1; var panX = 0; var panY = 0; var isPanning = false; var hasPanned = false; var lastClientX = 0; var lastClientY = 0; var initialDistance = null; var lastCenterX = null; var lastCenterY = null; function updateTransform() { if (wrapper.classList.contains('fv-image-compare-fullscreen')) { inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important'); } else { inner.style.removeProperty('transform'); scale = 1; panX = 0; panY = 0; } } function constrainPan() { var rect = wrapper.getBoundingClientRect(); var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2); var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2); panX = Math.max(-maxPanX, Math.min(panX, maxPanX)); panY = Math.max(-maxPanY, Math.min(panY, maxPanY)); } wrapper.addEventListener('wheel', function(e) { if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return; e.preventDefault(); var zoomSensitivity = 0.005; var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity); var newScale = Math.max(1, Math.min(scale * zoomFactor, 5)); if (newScale === scale) return; var rect = wrapper.getBoundingClientRect(); var mouseX = e.clientX - rect.left - rect.width / 2; var mouseY = e.clientY - rect.top - rect.height / 2; var ratio = newScale / scale; panX = mouseX - (mouseX - panX) * ratio; panY = mouseY - (mouseY - panY) * ratio; scale = newScale; constrainPan(); updateTransform(); }, { passive: false }); wrapper.addEventListener('mousedown', function(e) { if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale 2 || Math.abs(dy) > 2) { hasPanned = true; } lastClientX = e.clientX; lastClientY = e.clientY; panX += dx; panY += dy; constrainPan(); updateTransform(); }); window.addEventListener('mouseup', function() { isPanning = false; }); wrapper.addEventListener('touchstart', function(e) { if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return; if (e.touches.length === 2) { e.preventDefault(); var dx = e.touches[0].clientX - e.touches[1].clientX; var dy = e.touches[0].clientY - e.touches[1].clientY; initialDistance = Math.sqrt(dx * dx + dy * dy); var rect = wrapper.getBoundingClientRect(); lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2; lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2; hasPanned = true; } else if (e.touches.length === 1 && scale > 1) { if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return; isPanning = true; hasPanned = false; lastClientX = e.touches[0].clientX; lastClientY = e.touches[0].clientY; } }, { passive: false }); wrapper.addEventListener('touchmove', function(e) { if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return; if (e.touches.length === 2 && initialDistance !== null) { e.preventDefault(); var dx = e.touches[0].clientX - e.touches[1].clientX; var dy = e.touches[0].clientY - e.touches[1].clientY; var distance = Math.sqrt(dx * dx + dy * dy); if (initialDistance > 0) { var zoomFactor = distance / initialDistance; var newScale = Math.max(1, Math.min(scale * zoomFactor, 5)); var rect = wrapper.getBoundingClientRect(); var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2; var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2; var ratio = newScale / scale; panX = centerX - (centerX - panX) * ratio; panY = centerY - (centerY - panY) * ratio; if (lastCenterX !== null && lastCenterY !== null) { panX += (centerX - lastCenterX); panY += (centerY - lastCenterY); } scale = newScale; lastCenterX = centerX; lastCenterY = centerY; constrainPan(); updateTransform(); } initialDistance = distance; } else if (e.touches.length === 1 && isPanning) { e.preventDefault(); var dx = e.touches[0].clientX - lastClientX; var dy = e.touches[0].clientY - lastClientY; if (Math.abs(dx) > 2 || Math.abs(dy) > 2) { hasPanned = true; } lastClientX = e.touches[0].clientX; lastClientY = e.touches[0].clientY; panX += dx; panY += dy; constrainPan(); updateTransform(); } }, { passive: false }); wrapper.addEventListener('touchend', function(e) { if (e.touches.length < 2) { initialDistance = null; } if (e.touches.length === 0) { isPanning = false; } }); function handleMove(clientX) { var rect = inner.getBoundingClientRect(); var x = Math.max(0, Math.min(clientX - rect.left, rect.width)); var percent = Math.max(0, Math.min((x / rect.width) * 100, 100)); if (slider) slider.style.setProperty('left', percent + '%', 'important'); if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important'); if (labelLeft) { if (percent < 10) { labelLeft.style.setProperty('opacity', '0', 'important'); } else { labelLeft.style.setProperty('opacity', '1', 'important'); } } if (labelRight) { if (percent > 90) { labelRight.style.setProperty('opacity', '0', 'important'); } else { labelRight.style.setProperty('opacity', '1', 'important'); } } } function onMouseMove(e) { if (!isDragging) return; handleMove(e.clientX); } function onTouchMove(e) { if (!isDragging) return; e.preventDefault(); handleMove(e.touches[0].clientX); } function stopDragging() { isDragging = false; window.removeEventListener('mousemove', onMouseMove); window.removeEventListener('mouseup', stopDragging); window.removeEventListener('touchmove', onTouchMove); window.removeEventListener('touchend', stopDragging); } if (slider) { var startDrag = function(clientX) { isDragging = true; handleMove(clientX); window.addEventListener('mousemove', onMouseMove); window.addEventListener('mouseup', stopDragging); }; var startTouchDrag = function(clientX) { isDragging = true; handleMove(clientX); window.addEventListener('touchmove', onTouchMove, { passive: false }); window.addEventListener('touchend', stopDragging); }; slider.addEventListener('mousedown', function(e) { e.preventDefault(); startDrag(e.clientX); }); slider.addEventListener('touchstart', function(e) { e.preventDefault(); startTouchDrag(e.touches[0].clientX); }, { passive: false }); } var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn'); var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn'); if (expandBtn) { if (window !== window.parent) { expandBtn.style.display = 'none'; } else { expandBtn.addEventListener('click', function(e) { e.stopPropagation(); wrapper.classList.add('fv-image-compare-fullscreen'); document.body.style.overflow = 'hidden'; if (fgImage && fgImage.dataset.highresSrc) { fgImage.src = fgImage.dataset.highresSrc; fgImage.removeAttribute('srcset'); fgImage.removeAttribute('sizes'); } if (bgImage && bgImage.dataset.highresSrc) { bgImage.src = bgImage.dataset.highresSrc; bgImage.removeAttribute('srcset'); bgImage.removeAttribute('sizes'); } }); } } if (closeBtn) { closeBtn.addEventListener('click', function(e) { e.stopPropagation(); wrapper.classList.remove('fv-image-compare-fullscreen'); document.body.style.overflow = ''; updateTransform(); }); } document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) { wrapper.classList.remove('fv-image-compare-fullscreen'); document.body.style.overflow = ''; updateTransform(); } }); }); /* Shop The Look Hotspots */ var hotspots = chartWrapper.querySelectorAll('.fv-stl-hotspot-btn'); var allProductsModal = chartWrapper.querySelector('.fv-stl-all-products-modal'); var shopAllBtn = chartWrapper.querySelector('.fv-stl-shop-all-btn'); var stlContainer = chartWrapper.querySelector('.fv-stl-container'); function closeAllModals() { if (allProductsModal) { allProductsModal.classList.remove('is-active'); var items = allProductsModal.querySelectorAll('.fv-stl-all-products-item'); items.forEach(function(item) { item.classList.remove('is-highlighted'); }); if (stlContainer) { setTimeout(function() { if (!allProductsModal.classList.contains('is-active')) { stlContainer.style.minHeight = ''; if ('parentIFrame' in window) { window.parentIFrame.size(); } } }, 300); } } hotspots.forEach(function(btn) { btn.setAttribute('aria-expanded', 'false'); }); if ('parentIFrame' in window) { window.parentIFrame.size(); } } hotspots.forEach(function(btn) { btn.addEventListener('click', function(e) { e.stopPropagation(); var hotspotId = btn.getAttribute('data-hotspot-id'); var isExpanded = btn.getAttribute('aria-expanded') === 'true'; closeAllModals(); if (!isExpanded && allProductsModal) { btn.setAttribute('aria-expanded', 'true'); allProductsModal.classList.add('is-active'); var container = btn.closest('.fv-stl-container'); if (container && container.offsetHeight < 450) { container.style.minHeight = '450px'; } var targetItem = allProductsModal.querySelector('.fv-stl-all-products-item[data-product-id="' + hotspotId + '"]'); if (targetItem) { targetItem.classList.add('is-highlighted'); setTimeout(function() { targetItem.scrollIntoView({ behavior: 'smooth', block: 'center' }); }, 100); } if ('parentIFrame' in window) { window.parentIFrame.size(); } } }); }); if (shopAllBtn && allProductsModal) { shopAllBtn.addEventListener('click', function(e) { e.stopPropagation(); closeAllModals(); allProductsModal.classList.add('is-active'); var container = shopAllBtn.closest('.fv-stl-container'); if (container && container.offsetHeight < 450) { container.style.minHeight = '450px'; } if ('parentIFrame' in window) { window.parentIFrame.size(); } }); } if (allProductsModal) { var closeAllBtn = allProductsModal.querySelector('.fv-stl-all-products-close'); if (closeAllBtn) { closeAllBtn.addEventListener('click', function(e) { e.stopPropagation(); closeAllModals(); }); } } chartWrapper.addEventListener('click', function(e) { if (!e.target.closest('.fv-stl-all-products-content')) { closeAllModals(); } }); if (allProductsModal) { allProductsModal.addEventListener('click', function(e) { if (!e.target.closest('.fv-stl-all-products-content')) { closeAllModals(); } }); } /* Image Annotation Logic */ var iaNodes = chartWrapper.querySelectorAll('.fv-ia-node-button'); var iaWrapper = chartWrapper.querySelector('.fv-ia-wrapper'); var originalCaption = chartWrapper.querySelector('.fv-original-caption') || captionEl; var dynamicCaption = chartWrapper.querySelector('.fv-ia-dynamic-caption'); var exploreBtn = chartWrapper.querySelector('.fv-ia-explore-btn'); var currentIaIndex = -1; function closeAllIANodes() { iaNodes.forEach(function(btn) { btn.classList.remove('is-active'); }); if (originalCaption) originalCaption.style.display = 'block'; if (dynamicCaption) dynamicCaption.style.display = 'none'; } function resetExploreBtn() { currentIaIndex = -1; if (exploreBtn) { var exploreSpan = exploreBtn.querySelector('span'); if (exploreSpan) exploreSpan.textContent = 'Explore'; } } iaNodes.forEach(function(btn, index) { btn.addEventListener('click', function(e) { e.stopPropagation(); var isActive = btn.classList.contains('is-active'); closeAllIANodes(); if (!isActive) { currentIaIndex = index; if (exploreBtn) { var exploreSpan = exploreBtn.querySelector('span'); if (exploreSpan) exploreSpan.textContent = 'Next'; } btn.classList.add('is-active'); if (dynamicCaption) { var title = btn.getAttribute('data-title') || ''; var desc = btn.getAttribute('data-desc') || ''; dynamicCaption.innerHTML = ''; var strongTag = document.createElement('strong'); strongTag.textContent = title; dynamicCaption.appendChild(strongTag); if (desc) { dynamicCaption.appendChild(document.createTextNode(' - ' + desc)); } if (originalCaption) originalCaption.style.display = 'none'; dynamicCaption.style.display = 'block'; if (footerContentEl) footerContentEl.style.display = 'block'; } } else { resetExploreBtn(); } }); }); if (exploreBtn) { exploreBtn.addEventListener('click', function(e) { e.stopPropagation(); if (iaNodes.length === 0) return; var nextIndex = currentIaIndex + 1; if (nextIndex >= iaNodes.length) { closeAllIANodes(); resetExploreBtn(); } else { currentIaIndex = nextIndex; var targetBtn = iaNodes[currentIaIndex]; if (targetBtn) { if (targetBtn.classList.contains('is-active')) { targetBtn.click(); } targetBtn.click(); } } }); } if (iaWrapper) { iaWrapper.addEventListener('click', function(e) { if (!e.target.closest('.fv-ia-node-button') && !e.target.closest('.fv-ia-explore-btn')) { closeAllIANodes(); resetExploreBtn(); } }); } /* Initial Animation */ chartWrapper._fvAnimate = fvLocalAnimate; fvLocalAnimate(chartWrapper); /* Countdown Logic */ var countdownContainer = chartWrapper.querySelector('.fv-countdown-container'); if (countdownContainer) { var targetDateAttr = countdownContainer.getAttribute('data-target-date'); if (targetDateAttr) { var targetDate = new Date(targetDateAttr); var pad = function(n) { return (n < 10 ? '0' : '') + n; }; var updateCountdown = function() { var difference = +targetDate - +new Date(); var d = 0, h = 0, m = 0, s = 0; if (difference > 0) { d = Math.floor(difference / (1000 * 60 * 60 * 24)); h = Math.floor((difference / (1000 * 60 * 60)) % 24); m = Math.floor((difference / 1000 / 60) % 60); s = Math.floor((difference / 1000) % 60); } var daysEl = countdownContainer.querySelector('[data-time="days"]'); var hoursEl = countdownContainer.querySelector('[data-time="hours"]'); var minsEl = countdownContainer.querySelector('[data-time="minutes"]'); var secsEl = countdownContainer.querySelector('[data-time="seconds"]'); if (daysEl) daysEl.textContent = d; if (hoursEl) hoursEl.textContent = pad(h); if (minsEl) minsEl.textContent = pad(m); if (secsEl) secsEl.textContent = pad(s); }; updateCountdown(); setInterval(updateCountdown, 1000); } } } if (false) { var slideshowContainer = document.getElementById(uniqueId + '-slideshow'); if (slideshowContainer) { var slides = slideshowContainer.querySelectorAll('.fv-slide'); slides.forEach(function(slide) { setupWrapper(slide.querySelector('.fv-chart-wrapper')); }); } } else { setupWrapper(root); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { initialize('fv-chart-1792069147073-kaaqw666i', false); }); } else { initialize('fv-chart-1792069147073-kaaqw666i', false); } })(); I'll be honest, this is one of the real disappointments with the RTX Spark as a laptop platform. The battery life is really not great. With a 99.9 Whr battery inside it, and a relatively power-sipping, efficient platform, I was expecting the battery life to be a lot better than it actually turns out to be.My expectation was that with an energy efficient Arm SoC I would be happily slapping the lid shut on the ProArt P16 and then flipping it open again ten hours later and it would spring back into life with barely a scratch on the battery capacity. That was effectively my experience from running a Samsung Galaxy Book4 Edge and its Qualcomm Snapdragon chip, and I was hoping to see it replicated. But no dice. I'm seeing definite power drain when the system suspends, much in the same way as the x86 Ryzen chip in my Blade 14 does. And then in use it chews through the battery surprisingly quickly, too. I used the PCMark 10 CLI to run the Gaming Battery Life test, which loops 3DMark FireStrike tests until the battery runs dry, and I only got a paltry 86 minutes out of it. That's less than an hour and a half, when the Blade 14 and Framework 16, both with RTX 5070 GPUs, will easily top 130 minutes each.Now, that is an emulated test, so not quite perfectly set up for this platform, but it's not been inconsistent with my experience actually using this device unplugged. When running a local AI model on Hermes Agent, for example, I've regularly had to plug into a power source while it churns through a tough problem (or sometimes what I thought was a simple one) because running the memory and the GPU at 100% have drained the battery very quickly. The same is true for gaming, which feels odd given that in Balanced Mode it's running at a total SoC wattage of just over 40 W, and that shouldn't slam through the battery as quickly as it seems to. You can run in Whisper Mode, which cuts the power draw down by a healthy amount again, but then you are running at well under 1000 MHz on the GPU side and it does make gaming a little tougher on the eye.