Error message

  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /home/cay45lq1/public_html/includes/common.inc).
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /home/cay45lq1/public_html/includes/menu.inc).

Reviews

New forum topics

Asus ROG Zephyrus Duo (2026) review: an unmatched dual-screen monster

TechRadar Reviews - Wed, 09/30/2026 - 08:19
Asus ROG Zephyrus Duo (2026): Two-minute review

The ROG Zephyrus Duo is a mighty gaming laptop with an outstanding spec, which includes not one but two 3K OLED touchscreens.

It looks, though, bely its capabilities. There isn’t much branding or brashness here, and the dark colorway keeps things modest. It also lacks the sleekness of some models, with its various jutting edges and angles sullying its contours. The materials don’t seem all that premium, either. However, the ROG Zephyrus Duo is still a solidly made machine, and considering what lurks beneath, it’s surprisingly thin and compact.

The way the dual displays are set up is clever and well engineered, too. The keyboard can be detached to reveal the second screen, and there’s a sturdy stand underneath the unit to prop up both displays. These solutions provide plenty of scope for your preferred setup, and the various hinges operate smoothly while providing plenty of stability.

(Image credit: Future)

What’s more, there’s a generous selection of ports on the ROG Zephyrus Duo, matching some of the best gaming laptops on this front. In addition to two Thunderbolt 4 USB-C ports and two USB-A ports, you also get an SD card reader and an HDMI output.

My review unit was the top-spec model with the RTX 5090 GPU, so naturally its gaming performance was superb. It ran Cyberpunk 2077 between 50-60fps on the highest preset and at full resolution. There was a lot of fan noise and heat, but the former isn’t too disruptive, and the latter is confined to the underside of the unit.

Both displays are as vivid and as sharp as you would expect given their OLED technology and 3K resolution. Their touchscreens are responsive and sufficiently smooth, although they can feel a little grabby at times. They’d be better served by a stylus, but unfortunately you’ll have to provide your own, since the ROG Zephyrus Duo doesn’t come with one.

The keyboard functions well, whether attached to the bottom screen or detached and connected via Bluetooth. The keys have a generous travel and a tactile feel, which makes them great for typing. However, they feel a little cramped when gaming in the WASD position, and it’s a shame the layout isn’t full size, given the space available. The integrated touchpad works well for cursor navigation, thanks to its large surface.

As with most gaming laptops, the battery life of the ROG Zephyrus Duo is a weak point. It didn’t even last four hours when I ran a movie on a continuous loop, a poor result even by the measly standards of your typical gaming laptop.

The ROG Zephyrus Duo certainly demands a large chunk of money, but it's an undeniably high-end device with just about the best performance you could wish for in a portable gaming machine. What’s more, there aren’t many dual-screen laptops built for gaming at this level, so the ROG Zephyrus Duo is a must if that’s a priority for you.

(Image credit: Future)Asus ROG Zephyrus Duo (2026) review: Price & availability
  • Starts from $4,499.99 / £3,999.99 / AU$8,999
  • Available now
  • Incredibly expensive

Given its almighty spec, it shouldn't come as a surprise that the ROG Zephyrus Duo has a price tag to match. Exact model specifications vary with region, but the starting price is $4,499.99 / £3,999.99 / AU$8,999. For this, you get an RTX 5070 Ti GPU, 32GB of RAM, and 1TB of storage.

If a dual-screen setup is a must for your laptop, you could also look at the Lenovo Yoga Book 9i. It too comes with Bluetooth keyboard, but also comes with a mouse and a stylus, both of which the ROG Zephyrus Duo omits. Additionally, it costs a lot less than ROG Zephyrus Duo, although the big drawback is that it doesn’t have a dedicated GPU, so it isn’t one for heavy gamers.

If you don’t need dual screens, but just want an all-conquering gaming laptop, then the Razer Blade 18 is about the best we’ve tried in this category. We were overawed by its performance, while we also loved its keyboard, display, and form factor. It too has a seriously daunting price, though.

Asus ROG Zephyrus Duo (2026) review: Specs

Asus ROG Zephyrus Duo (2026) base configuration

Asus ROG Zephyrus Duo (2026) mid configuration

Asus ROG Zephyrus Duo (2026) max configuration

Price

$4,499.99 / £3,999.99 / AU$8,999

$5,499.99

$(TBC) / £6,099.99 / AU$12,999

CPU

Intel Core Ultra 9 386H (up to 4.9 GHz, 16 cores)

Intel Core Ultra 9 386H (up to 4.9 GHz, 16 cores)

Intel Core Ultra 9 386H (up to 4.9 GHz, 16 cores)

Graphics

NVIDIA GeForce RTX 5070 Ti Laptop GPU (12GB GDDR7)

NVIDIA GeForce RTX 5090 Laptop GPU (24GB GDDR7)

NVIDIA GeForce RTX 5090 Laptop GPU (24GB GDDR7)

RAM

32GB LPDDR5X

32GB LPDDR5X

64GB LPDDR5X

Screen

2x 16-inch 3K (2880 x 1800) OLED, 16:10, 120Hz, HDR, Touchscreen, G-Sync

2x 16-inch 3K (2880 x 1800) OLED, 16:10, 120Hz, HDR, Touchscreen, G-Sync

2x 16-inch 3K (2880 x 1800) OLED, 16:10, 120Hz, HDR, Touchscreen, G-Sync

Storage

1TB PCIe 4.0 NVMe M.2

1TB PCIe 4.0 NVMe M.2

2TB PCIe 4.0 NVMe M.2

Ports

1x power input (DC), 2x Thunderbolt 4 (DisplayPort / power delivery, 40Gbps), 2x USB-A (3.2 Gen 2, 10Gbps), 1x HDMI 2.1 FRL, 1x SD card reader, 1x 3.5mm combo audio

1x power input (DC), 2x Thunderbolt 4 (DisplayPort / power delivery, 40Gbps), 2x USB-A (3.2 Gen 2, 10Gbps), 1x HDMI 2.1 FRL, 1x SD card reader, 1x 3.5mm combo audio

1x power input (DC), 2x Thunderbolt 4 (DisplayPort / power delivery, 40Gbps), 2x USB-A (3.2 Gen 2, 10Gbps), 1x HDMI 2.1 FRL, 1x SD card reader, 1x 3.5mm combo audio

Wireless

Wi-Fi 7, Bluetooth 6.0

Wi-Fi 7, Bluetooth 6.0

Wi-Fi 7, Bluetooth 6.0

Battery

90WHrs

90WHrs

90WHrs

Weight

2.82kg (6.22 lbs)

2.82kg (6.22 lbs)

2.82kg (6.22 lbs)

Dimensions

13.98 x 9.72 x 0.98 inches (355 x 247 x 24.9mm)

13.98 x 9.72 x 0.98 inches (355 x 247 x 24.9mm)

13.98 x 9.72 x 0.98 inches (355 x 247 x 24.9mm)

(Image credit: Future)Asus ROG Zephyrus Duo (2026) review: Design
  • Understated looks
  • Smart and versatile dual-screen setup
  • Generous port selection

The ROG Zephyrus Duo cuts a rather unassuming figure, with its dark gray colorway and lack of branding. On the lid, the diagonal strip that’s become the mark of the Zephyrus line doesn’t add much interest. But the matte finish on the lid is a nice touch.

However, the rest of the unit’s materials don’t look or feel particularly premium. Its form is quite utilitarian, too, lacking the totally flat and flush surfaces of more sleek laptops. Thankfully, though, it feels very solid, and although the top display enclosure is quite thin and has some flex to it, it’s sturdy enough.

The ROG Zephyrus Duo is actually quite a discreet device. There’s no denying its thickness, but when you consider it hides a second screen and a detachable wireless keyboard, as well as featuring up to an RTX 5090 GPU, it’s quite impressive Asus has managed to make it this compact. It’s still expectedly heavy, though.

Two 3K OLED touchscreen displays are the standout feature of the ROG Zephyrus Duo. You can set them up in various ways: by reclining the main display back past 180 degrees so you can prop the unit like a tent, or leave the laptop in the standard position and simply remove the keyboard to use the display underneath. This would be perfect for drawing or handwriting while you keep your eyes on the main display. It’s a shame, though, that the ROG Zephyrus Duo doesn’t come with a stylus despite supporting them, although if you’re an enthusiastic creative you may already have one you can use.

(Image credit: Future)

The hinge offers a smooth pivot and provides plenty of stability, no matter what angle you have the main display at. However, it doesn’t allow for a full 360-degree rotation, so the ROG Zephyrus Duo can’t be used like a tablet — although this wouldn’t exactly be practical, given its size and weight.

Perhaps the best way to make use of the ROG Zephyrus Duo’s dual displays is to unfold the integrated kickstand underneath the unit so that both displays are stacked on top of each other. This stand provides a reassuring stability and, despite how thin it is, it doesn’t feel flimsy.

Switching between dual- and single-screen use is made easy thanks to the removable keyboard. It’s magnetically attached to the bottom screen, so it simply requires a light pry to detach it. At the same time, it’s also very stable when in place; I didn’t experience any wobbling or displacement when using it.

When detached, it connects to the ROG Zephyrus Duo via Bluetooth, which you enable by flicking a switch on the side of the keyboard. It charges when attached to the bottom screen, but you can also charge it using the USB-C port on its side when it’s not.

Its build quality is less impressive than the rest of the ROG Zephyrus Duo, though. The soft outer material feels cheap and is prone to scuff marks and the like, while the board itself is quite flimsy. However, this is a price worth paying for its lightness, and it remains stable while typing.

Given its real estate, the layout is disappointingly compromised. It seems like there’s space to include a number pad or at least more navigation keys. The arrow keys are inconveniently small, too, although the integrated touchpad is a good size at least.

I was also glad to see a number of ports on board the ROG Zephyrus Duo. In addition to two Thunderbolt 4 USB-C ports and two USB-A ports, there’s also a full-sized SD card reader, an HDMI port, and a 3.5mm headset jack. These ports are spread quite evenly across both sides of the unit and are sensibly positioned.

(Image credit: Future)Asus ROG Zephyrus Duo (2026) review: Performance
  • Phenomenal performance
  • Consistent fan noise
  • Keyboard not great for gaming
Asus ROG Zephyrus Duo (2026) benchmarks

3DMark: Night Raid: 63,017; Fire Strike: 34,724; Steel Nomad: 4,818; Solar Bay: 88,856; Solar Bay Unlimited: 86,289; Solar Bay Extreme: 17,498; Solar Bay Extreme Unlimited: 16,958
Geekbench 6.5: Multicore: 17,119; Single-core: 2,857
Cinebench R23: Multi Core: 20,933; Cinebench R24: Single Core: 124; Multi Core: 1,252
Crossmark: Overall: 2,177; Productivity: 1,975; Creativity: 2,532; Responsiveness: 1,852
Passmark Overall: 15,847.2; CPU: 39,981.9; 2D Graphics: 1,462.5; 3D Graphics: 30,730.9; Memory: 40,56.3; Disk: 82,992.7
BlackMagicDisk: Read: 9,501MB/s; Write: 8,190MB/s
HandBrake 4K to 1080p: 104.26fps
Civilization VII: (Max resolution, High, XeSS Balanced): 149fps; (1080p, High): 183fps
Shadow of the Tomb Raider: (Max resolution, Highest, DLSS Balanced): 173fps; (1080p, Highest, SMAA x4): 162fps
Total War: Warhammer III: Mirrors of Madness: (Max Resolution, Ultra): 48fps; (1080p, Ultra): 53fps
Cyberpunk 2077: (1600p, Ray Tracing: Ultra, DLSS Balanced): 66fps; (Max resolution, Ultra, DLSS Balanced): 94fps; (1080p, Ultra): 124fps
Marvel Rivals: (Max resolution, DLSS Balanced, Ultra): 75fps; (1200p, Low): 149fps
Battery Life (TechRadar movie test): 3 hours and 37 minutes

My review unit was equipped with the top-tier RTX 5090, which, combined with the Intel Core Ultra 9 and 64GB of RAM, made for blistering performance. I was getting around 30fps on Cyberpunk 2077 with the maximum Ray Tracing: Overdrive preset and the maximum 2880 x 1800 resolution selected, with DLSS set to Balanced. This jumped to between 50-60fps when I enabled Frame Generation on top.

As expected, though, fan noise accompanied this performance. Thankfully, it’s not too disruptive, but more troubling is the fact that the fans can whir up sporadically, even when fairly lightweight tasks are being undertaken, such as browsing the web.

Scorching temperature can also afflict the ROG Zephyrus Duo, although mercifully the heat is confined to the underside of the base, with the commonly contactable surfaces, such as the keyboard and bottom screen, remaining perfectly comfortable to touch. Using the kickstand also helps to dissipate some of the heat.

As you would expect, the two 3K OLED displays are a visual treat, with plenty of sharpness, contrast, and vividness. They both have small bezels, which helps them to maximize their respective 16-inch canvases, and they do a reasonable job of keeping reflections at bay thanks to their high brightness levels.

Their touchscreen functionality is also quite good. Although they can be a little grabby at times, they’re smooth enough for the most part. They’re also quick to respond to inputs.

The keyboard is a tactile affair, with low-profile keys that offer more dampening and travel than you might expect, but they're still snappy, making for a fast and satisfying experience. They’re comfortably spaced for typing, although I found gaming in the WASD position a little cramped and awkward. The large touchpad makes general navigation practical, though.

(Image credit: Future)Asus ROG Zephyrus Duo (2026) review: Battery life
  • Short-lived, even by gaming laptop standards
  • Quick to charge

For such a large and feature-packed gaming laptop, it’s no real surprise that the ROG Zephyrus Duo isn’t a particularly enduring machine. However, it drains faster than many other gaming laptops. It lasted just over three and a half hours in our movie playback test, and this was with just the main screen active.

To put this result into context, the Lenovo Legion 7i Gen 10, another 16-inch gaming laptop, lasted almost eight hours in the same test, while the Razer Blade 18, which is 18-inches, lasted closer to eight and a half hours.

Fortunately, the ROG Zephyrus Duo is quick to charge, taking between 60-90 minutes to fully replenish, which is more impressive.

Should I buy the Asus ROG Zephyrus Duo (2026)?Scorecard

Attributes

Notes

Rating

Value

The ROG Zephyrus Duo is incredibly expensive, but that’s hardly a surprise considering its two displays and superlative spec.

3 / 5

Design

That dual-display setup is well thought-out, but while the construction is strong, it doesn’t look or feel especially premium.

4 / 5

Performance

My review unit had just about the highest spec a gaming laptop could have, so naturally outright performance was peerless. The fans frequently make themselves known, though, and the keyboard isn’t the best for gaming.

5 / 5

Battery life

Disappointing, even by gaming laptop standards. It’s at least quick to charge, though.

3 / 5

Overall Rating

The ROG Zephyrus Duo is a unique proposition in the gaming laptop market, and it's certainly an accomplished machine. The poor battery and awkward keyboard are drawbacks, but the real issue is the price. Still, if you need an incredibly powerful dual-screen laptop, nothing fits the bill better.

4 / 5

Buy it if…

You want two displays
I don’t think I’ve seen a more powerful laptop with dual displays, and their clever versatility is an added bonus.

You want a high spec
With heaps of RAM and storage space, not to mention a top-tier CPU and GPU, there aren’t many portable devices more powerful.

Don't buy it if…

You’re on a budget
With that godlike spec comes an unholy price tag.

You want a long battery life
Not many gaming laptops can keep going all day, but the ROG Zephyrus Duo is particularly short lived.

Asus ROG Zephyrus Duo (2026) review: Also consider

Razer Blade 18
The Razer Blade 18 is easily one of the best gaming laptops we’ve ever tested. It gets pretty much everything right: the performance is phenomenal, the keyboard is a dream to use, and even the form factor is reasonable for an 18-inch machine. More remarkable is that it has a superior battery life to many of its rivals. Read our full Razer Blade 18 review.

Lenovo Yoga Book 9i
If you want a powerful dual-screen laptop, but don’t need all that gaming prowess, the Yoga Book 9i is a fine choice. We loved this laptop’s everyday performance and interesting arrangements for its two displays. Its port selection is a little disappointing, but it’s a veritable bargain next to the ROG Zephyrus Duo. Read our full Lenovo Yoga Book 9i review.

How I tested the Asus ROG Zephyrus Duo (2026)
  • Tested for a few days
  • Used for a variety of tasks
  • Plenty of gaming laptop experience

I tested the ROG Zephyrus Duo for several days, during which time I used it for a variety of tasks besides gaming, such as general browsing and video streaming.

I also ran our comprehensive series of benchmark tests, designed to assess every facet of a gaming laptop. I tested the battery life by running a movie on a continuous loop.

I’ve been PC gaming for over a decade, and have used a variety of systems and components during that time. I’ve also reviewed many gaming laptops previous to the ROG Zephyrus Duo, including other Asus models.

Categories: Reviews

The LG Gram Pro 16 might be the ultimate large screen portable Windows 11 laptop

TechRadar Reviews - Wed, 09/30/2026 - 08:16
LG Gram Pro 16 review: Two Minute Review

Thin. Light. And a big screen. Say less. Add in a surprising amount of power for this form factor, and you have the LG Gram Pro 16. There’s a lot to like with this laptop, including some interesting LG-specific software and a very impressive battery life. The only thing that might give me pause in recommending it as one of the best laptops out there is its very high price.

Now, I should clarify that there is a version of the LG Gram Pro 16 that skips the Aerominum material of the pricier version (more on that later) and has the most basic integrated graphics instead of the Intel Arc B390 Graphics included on the configuration reviewed here. Even though the Intel Arc B390 Graphics in the review unit are also integrated, it’s surprisingly on par with an Nvidia GeForce RTX 4050.

So that version might be one of the best Ultrabooks out there for someone who wants that thin and light package with a big screen but doesn’t need all the bells and whistles. But that version pales in performance. Of course, the LG Gram Pro 16 reviewed here is much more expensive. I don’t want to tell you to wait for a sale, but its price is its biggest drawback.

The LG Gram Pro 16 is very portable thanks ot its light weight, thin design, and powerful battery. (Image credit: Future / James Holland)LG Gram Pro 16 review: Price & Availability
  • How much does it cost? Starting at $2,699.99 (about £2,010/ AU$3,830)
  • When is it available? Available now
  • Where can you get it? Available in the US

While the LG Gram Pro 16 is available in US, UK, and Australia, the 2026 configuration, which has the model designation of 16Z90U (or 16Z95U for the AMD powered ones), is mostly just available in the US at the time of writing. It most certainly will make it to the UK, and one configuration is sold in Australia with an MSRP of AU$4,199, though it’s already discounted to AU$2,899. This configuration comes with a Intel Core Ultra 7 355 CPU, 32GB RAM, Intel Arc graphics, and 1TB of storage. It also features a 2560x1600 touchscreen.

For the US, there are seven configurations. The cheapest one, not accounting for any slashed prices, goes for $2,699.99, which has an Intel Core Ultra 7 CPU and its integrated graphics, 32GB RAM, 512GB storage, and that same 2560x1600 touch screen. The price starts to creep up with more storage (though some models have a 1TB SSD but 16GB of RAM and are maybe fifty bucks more).

The most expensive model doesn’t have a touchscreen, but does have slightly higher resolution with a 2560x1800 screen. More importantly, it comes with an Intel Core Ultra X7 CPU, integrated Intel Arc graphics B390 Graphics which have the power of an Nvidia Geforce RTX 4050, 32GB of RAM and 1TB of storage.

The Samsung Galaxy Book6 Ultra is a good laptop to compare the LG Gram Pro 16 to. Its price tag of $2,449.99 / £2,999 (around AU$6,000) for a laptop with an Nvidia RTX 5060 GPU and 1TB of storage, similar CPU, and similar screen is also expensive, though less expensive than the LG Gram Pro 16 at its maxed out configuration. Or, if you look at the Dell 2026 XPS 16, you’ll find a very similarly priced and specced laptop that also comes with an OLED screen (again comparing to the max configuration).

I think there are a few reasons that LG costs more. The first is that they’re using a new material called Aerominum for the chassis, and semi-relatedly, weighs under three pounds, unlike either of the other mentioned laptops. Hopefully as LG keeps using Aerominum, the price will come down.

  • Value score: 4 / 5
LG Gram Pro 16 review: specs

The LG Gram Pro 16 has about seven different configurations at the time of writing, all with slightly different combinations of CPU (Intel Core Ultra 7, AMD Ryzen AI 7 450, Intel Core Ultra X7), RAM (16 or 32GB), storage space (512GB, 1TB, or 2TB), and graphics, with the cheapest configuration utilizing the basic integrated Intel Graphics and more substantial configurations using the Ryzen AI 7 450’s integrated AMD Radeon 860M graphics or at the top of the price range, Intel’s integrated but powerful Arc B390 GPU.

Base

Review / Max

Price

$1,399.99 (about £1,040 / AU$1,980)

$3,499.99 (about £2,600 / AU$9,000)

CPU

Intel Core Ultra 7

Intel Core Ultra X7

GPU

Intel graphics

Intel Arc B390 Graphics

RAM

32GB LPDDR5X

32GB LPDDR5X (Dual Channel, 8533MHz)

Storage

512GB M.2 SSD

1TB M.2 SSD

Display

16-inch diagonal, WQXGA (2560x1600) touch IPS @120Hz

16-inch diagonal, WQXGA+ (2560x1800) non-touch IPS @120Hz

Ports and Connectivity

USB 3.2 Gen1 (x2), USB 4 Gen3x2 Type C (x2, with Power Delivery, Display Port, Thunderbolt 4), HDMI, Aux out

USB 3.2 Gen1 (x2), USB 4 Gen3x2 Type C (x2, with Power Delivery, Display Port, Thunderbolt 4), HDMI, Aux out

Wireless

Intel Wi-Fi 7 (WiFi7, 2x2, BT Combo) and Bluetooth 6

Intel Wi-Fi 7 (WiFi7, 2x2, BT Combo) and Bluetooth 6

Camera

FHD IR Webcam with Dual Mic (Face recognition)

FHD IR Webcam with Dual Mic (Face recognition)

Dimensions

2.97 lbs (1.35 kg)

2.64 lbs (1.2 kg)

Weight

14.1 x 9.9 x 0.49~0.5 inches / 358.1 x 251.5 x 12.4~12.7 mm

14.1 x 9.9 x 0.49~0.5 inches / 358.1 x 251.5 x 12.4~12.7 mm

On the exterior, there are two different screen options. The less powerful models come with a 2560x1600 resolution, some of which have touchscreens including the cheapest configuration. The more powerful ones with either the Ryzen or Intel Arc graphics have a slightly sharper 2560x1800 resolution – none of them touchscreen.

LG Gram Pro 16 review: Design
  • Light, thin, but with a big screen!
  • Keyboard doesn’t have much travel
  • Good ports, but not ideal port placement

First things first, the LG Gram Pro 16 reviewed here is like all the other LG Grams, as it manages to be light and portable while still providing a pretty large screen. Those things are typically mutually exclusive. Yet here, you get a 16-inch screen in a package that weighs under three pounds. And since the bezels are pretty thin, it’s only fourteen inches wide. Plus, it’s half an inch thick.

It’s taken me a while to figure out why the LG Gram Pro 16 comes with such a high price tag. Part of it is the robust components. Part of it is the engineering to get it so light and thin. But part of it is, in my opinion, the use of a proprietary material called Aerominum instead of the usual aluminum alloy or plastic. It feels like plastic but is a little tougher, and the LG Gram Pro 16's chassis is made from it. There is, however, a little bit of give in the bottom shell where the venting is.

The LG Gram Pro 16 has both USB-C ports on the same side. (Image credit: Future / James Holland)

Since the LG Gram Pro 16 is so thin, the keyboard doesn’t have much travel. Because of this, I don’t really enjoy typing on it for long periods of time. It’s fine. It’s accurate. And it doesn’t bother me when browsing or more casual use, but it just doesn’t have much cushion. I can feel the keys bottom out on every press. At least, it’s a full size keyboard.

The trackpad, on the other hand, is nice to use. It’s also big, though I have to be careful to not accidentally touch it when typing as it is sensitive, and I’m somewhat lazy with my hand placement. And if you use all the different gestures Windows is capable of, the trackpad will register them.

Lastly, I’m appreciative of the port selection, but less so the port placement. A laptop like this doesn’t need anything beyond the two USB-4 type C, two USB, headphone jack, and an HDMI port that it comes with, but the LG Gram Pro 16 makes the same mistake that many laptops do. If you have two USB-C ports and that’s the only way to power the laptop, put one on each side and not on the same side. The power cable it comes with is not that long, and I’ve created a few tripping hazards trying to charge just because of the port placement.

  • Design score: 4.5 / 5
LG Gram Pro 16 review: Performance
  • Plenty of power for demanding tasks, though with some adjustments
  • Mostly great suite of additional software
  • Good audio, camera, and mic performance
LG Gram Pro 16 benchmarks

3DMark: Solar Bay: 25,811; Steel Nomad: 1,607
Geekbench 7.0: (Single Core) 2,254; (Multi Core) 17,471
Crossmark: Overall: 1,981; Productivity: 1,763; Creativity: 2,334; Responsiveness: 1,716
HandBrake 1.11.1: 4:01
Total War: Warhammer III: Mirrors of Madness (1080p): 61.7fps; (2880x1800) 29.7fps
Cyberpunk 2077: (1080p, Ray Tracing): 18.29fps; (1080p, Ray Tracing off) 50.07fps
Battery Life (PCMark 10): 15:34:02

Between the Intel Core Ultra X7, Intel Arc B390 Graphics, and 32GB or RAM the LG Gram Pro 16 I’m reviewing has, it’s a fairly powerful computer. Despite the fact that the Intel Arc graphics are integrated and not actually a discrete GPU, it compares favorably to an Nvidia Geforce RTX 4050 (which is admittedly entry level for discrete graphics).

That means that I can take this somewhere to do a little work – maybe write this review, for instance – and then switch to a demanding video game like Starfield, South of Midnight or Clair Obscur: Expedition 33 for a bit of fun. While the computer struggles a little at the highest settings for these games, it’s also running at a 120Hz refresh rate.

Now, I assume that many people wanting to read about the LG Gram Pro 16 care about its gaming capabilities, but those are among the more demanding tasks you can ask from a computer. If it can run one of those games, it can handle photo and video editing (we also have benchmarks to show how they would handle those tasks). It can handle recording audio. This is a powerful computer, though, as a gaming computer, it just barely clears the bar of running those more demanding titles.

The keyboard is full size, but a little shallow. (Image credit: Future / James Holland)

Now, since LG proudly advertises the AI capabilities of this laptop – if you look on the website, the thumbnail puts “AI” next to the computer’s name as if it’s part of it – it makes sense that AI is all over this thing.

When I open LG’s My Gram app, which is the LG Gram Pro 16’s software interface for fine-tuning its performance, I see things like AI microphone and speaker optimization settings (you can also register your voice so that the laptop only hears / recognizes it), AI cooling for the fan settings, and an AI mode for the battery settings where it adjusts battery usage based on what it’s learned about how one uses their computer and how to allocate battery based on that. The My Gram software can also turn off the screen automatically when you walk away from the laptop.

LG also includes its own LLM tool for interacting with the laptop: AI Gram Chat. Instead of letting you write prompts to generate an image or a short story, it is made as almost an interactive interface for the computer. I can ask it to summarize a document, change settings, or troubleshoot, to name just a few things it's capable of.

The unique software suite on the LG Gram Pro 16 isn’t limited to AI-focused apps. LG Gram Link is an interesting one that’s included, and lets you quickly share files with other compatible devices, like other LG Grams from 2021 and on, LG TVs and smart monitors, and mobile devices. You can download the LG Gram Link for both Android and iOS, so you’re not limited to an LG device.

The last thing worth mentioning on the software front is that, as interesting as those other apps are and as expensive as this computer can be, you’ll still be subjected to dealing with a free McAfee trial. Since I don’t use or like McAfee, it’s an annoyance with its constant pop-ups. And it’s a piece of software that makes you jump through hoops to uninstall. I don’t like it. Minus five points to LG.

For a laptop, the audio here is pretty good. There’s almost no low end to speak of, but that’s the case for most laptops. Content, whether it’s a movie or music, sounds clear without sounding harsh. If you want excellent audio, get some wireless headphones, but if you don’t have any, the speakers on this laptop are good enough.

Those who are stuck on video calls all day will be happy to know that the webcam looks pretty good. There’s some graininess in low light situations, which is to be expected, but the image is clear and smooth. Plus, you can do the auto framing where the camera zooms in on your face like a 70’s Western. The eye contact feature and background effects are also here. Just be aware that there’s no physical shutter to block the camera. And the built-in mic is similarly capable for Zoom and voice calls.

  • Performance score: 4.5 / 5
LG Gram Pro 16 review: Battery life
  • Very long battery life
  • Has some AI features to extend battery life even longer

LG claims that the Gram Pro 16’s 77Wh battery can last for 27 hours when playing back video when using its AI Battery Efficiency feature). And it might just be able to do that. But I like to test battery life without any special features or tricks. I want to get a good sense of what the battery itself is capable of.

During use, it did in fact last quite a while. I was able to actually play computer games unplugged without running the battery completely down in an hour or two, though it did take a hit. And I would use it unplugged multiple days at a time without charging. Running the PCMark 10 battery benchmark for office use with all the settings midway between performance and battery took almost 17 hours. A chore to sit through, but a great indicator of how good the battery life is.

Using the LG Gram Link app, you can share files between devices. (Image credit: Future / James Holland)
  • Battery Life score: 4.5 / 5
Should I buy the LG Gram Pro 16?

Attributes

Notes

Rating

Value

If you compare the LG Gram Pro 16 to similarly specced laptops trying to do the MacBook Pro 16 thing, they’re all at the same somewhat hard-to-stomach price.

4 / 5

Design

I might have some issue with a few choices on this laptop, but it’s thin and light while still offering a big screen. That’s hard to find.

4.5 / 5

Performance

In that thin and light chassis is a pretty powerful computer, able to handle pretty powerful tasks along with its own AI apps. Just beware the McAfee popups.

4.5 / 5

Battery Life

Even without LG’s battery efficiency, the battery on this laptop lasts a very long time.

5 / 5

Final Score

If price is no object, the LG Gram Pro 16 is a very impressive computer. It’s the full packet (but a light one).

4.5 / 5

Buy it if…

You want thin, light, and powerful
This laptop comes in under three pounds and is half an inch thick, yet you can run a lot of demanding software on it.View Deal

You need long battery life
The LG Gram Pro 16 surprised me with its battery life, especially after experiencing its power. I think you’ll be surprised by it too.View Deal

You want to drag and drop files between devices
Using LG Gram Link, you can share files between devices. So, if you want to send a couple pictures from your phone to the laptop for editing, the app makes it simple.View Deal

Don't buy it if…

You have any budget concerns
The LG Gram Pro 16 is just priced too high. While I hazard to guess that it’s the use of a new type of material, its price tag is just out of reach for most people.View Deal

You don’t like McAfee
This is bloatware. Yes, it can be removed, but you get an added inconvenience to counteract the laptop’s actual conveniences like LG Gram Link.View Deal

LG Gram Pro 16 review: Also Consider

If our LG Gram Pro 16 review has you considering other options, here are two laptops to consider...

Samsung Galaxy Book6 Ultra

Thin. Light. With a 16-inch screen. Sound familiar? Well, the Samsung Galaxy Book6 Ultra checks those boxes too. Plus, it’s similarly expensive. However, it does come with more powerful graphics (and a bigger issue with heat).

Read our full Samsung Galaxy Book6 Ultra review

Dell XPS 16 (2026)

The Dell XPS 16 is a premium laptop that’s thin and light with a big screen like the LG Gram Pro 16. Plus, it comes with an OLED screen for about the same price. Its port selection is a bit more limited, however, and it’s a pound heavier.

Read our full Dell XPS 16 (2026) review

How I tested the LG Gram Pro 16
  • Tested for a couple weeks
  • Used it for work, gaming, and streaming
  • Messed with its AI capabilities

I used the LG Gram Pro 16 for a couple weeks. I used it for work, including typing up most of this review (along with the requisite online research). I used it to stream video. I even did some serious gaming. I also played around with the AI and first-party software.

After spending time with the LG Gram Pro 16, it’s clear that this is meant for those who want a large screen in a thin, light package without sacrificing power. That might be a big ask, but LG has done it for a price.

I’ve spent the last few years reviewing tech gear for gaming and otherwise, where I’ve gotten a feel for what to look for and how to put a piece of kit through its paces to see whether it’s worth the recommendation.

  • First reviewed: August 2026
Categories: Reviews

Logitech G316 X 98 review: a super-thocky keyboard with a useless screen

TechRadar Reviews - Wed, 09/30/2026 - 05:47
Logitech G316 X 98: One-minute review

The G316 X is Logitech’s new gaming keyboard, featuring mechanical switches and an integrated display for good measure.

In typical Logitech fashion the G316 X sports a minimalist appearance, available in monotone colorways (black or white), and free of unnecessary details or angles. The vibrant RGB backlighting is a nice touch, though, as is the thin LED strip at the top.

These smart looks are complimented by exceptional build quality. The chassis is solid yet light, while the PBT keycaps feel great thanks to their subtle texturing and sturdy fit, putting the G316 X's construction up there with the best gaming keyboards.

Also worth highlighting are the adjustable feet. Rather than plastic flaps that fold out, the G316 X enlists soft rubber blocks that you remove and turn over when you want to adjust the tilt angle from four to eight degrees. The integrated screen, however, is a letdown. It may look good, but it's small and displays no real information.

(Image credit: Future)

Thankfully, G HUB — the software used for customizing the G316 X — is more useful. There are numerous assignments available, including the ability to map up to five inputs to a single key. There are also three different mapping layers for you to play around with.

Thanks to its stock tactile switches, I enjoyed gaming with the G316 X. Their solid, thocky response imparts plenty of feedback, yet they're still snappy enough to feel quick. They’re damped enough to remove harshness from impact, but they’re not the quietest switches around.

In addition to gaming, I also found the G316 X great for typing. My one small complaint is that the feet don’t tilt the board quite enough for my liking. Nevertheless, I still found it sufficiently comfortable to use without a wrist-rest — not something I can say about every gaming keyboard.

The G316 X isn’t the most affordable mechanical keyboard around, but it's cheaper than some of its key rivals. It’s a shame its screen is merely a gimmick and it lacks wireless connectivity, but the G316 X is still a strong choice for those after a solid-feeling experience.

(Image credit: Future)Logitech G316 X 98 review: Price & availability
  • $119.99 / £109.99 / AU$199.95
  • Available now in black or white
  • Cheaper than some rivals

The G316 X costs $119.99 / £109.99 / AU$199.95 and is available now. It comes preinstalled with tactile switches, although these are hot-swappable. There are two colorways to choose from: black or white.

It's quite expensive for a wired mechanical keyboard, although cheaper than those from other premium brands. For instance, it comes in lower than the HyperX Origins 2 1800, and a lot less than the Razer BlackWidow V4 Pro 75% — the latter is one of the best-made and best-performing examples in the sector, though.

In today’s marketplace, however, there are more budget-friendly gaming keyboards available. The MonsGeek FUN60 Ultra, for example, offers multiple wireless connectivity options, but also analog switches that feel great and offer plenty of tweakability.

Logitech G316 X 98 review: Specs

Layout

98%

Switch

Mechanical (Tactile)

Programmable keys

Yes

Dimensions

15.1 x 5.5 x 1.6 inches (384 x 140 x 40mm)

RGB or backlighting

Yes (customizable)

(Image credit: Future)Logitech G316 X 98 review: Design and features
  • Minimalist looks with bright RGB
  • Premium-feeling materials and build
  • Practical adjustable feet

The G316 X has a retro-modern look, sporting an ultra-square form and minimalist design. There aren’t any odd angles or contours that sometimes blight gaming peripherals; the only flourishes here are a translucent green Escape key and volume wheel, and an LED strip between the number and F rows.

These are actually quite attractive, as is the bright customizable RGB backlighting against the white option of the keyboard, in particular.

Although the G316 X is made of plastic, it’s one of the best around. It’s solid yet light — the ideal combination. The PBT keycaps help lend the board a premium feel, featuring a subtle texture that makes them satisfying to touch.

Like many gaming keyboards, the G316 X comes with adjustable feet, but they’re not of your typical fold-out type. Instead, they’re rubber blocks that you have to remove and flip over to switch the tilt angle from four to eight degrees.

This may appear a less elegant solution at first, but it’s actually rather clever. The static design provides greater stability, so there’s no danger of the blocks closing in when moving the board around. Also, their large surface area and rubber material delivers a better grip.

(Image credit: Future)

Ironically, it’s the integrated LED screen that turns out to be the least sophisticated aspect of the G316 X. It may look sharp, but it’s seriously lacking in functionality, merely displaying a few basic animations when adjusting the volume or or playing back media — none of which are helpful.

The 98% layout is compact yet practical, even including a dedicated number pad, although there are a few navigation keys absent that I would’ve liked to see remain. There aren’t many default Fn shortcuts labelled on the keys, either.

Thankfully, you can make your own shortcuts using Logitech’s G HUB peripheral software. There are plenty of assignments available here, and three different layers in which to arrange them. There’s even the ability to assign up to five inputs to a single key.

You can also customize the Game Mode button next to the aforementioned screen in order for it to disable more keys beyond the Windows key. However, you won’t find many performance-based settings to play with, beyond the ability to adjust the polling rate, which has a maximum value of 8KHz.

(Image credit: Future)Logitech G316 X 98 review: Performance
  • Excellent feedback from tactile switches
  • Great for gaming and typing
  • Tilt angle is limited

The standout aspect of the G316 X is its stock tactile switches. I found they provided plenty of feedback, actuating with a solid and noticeable thock, yet they still able to rebound quickly, making them feel snappy. There’s just enough dampening to prevent presses feeling harsh, but relative to many other gaming keyboards, it’s minimal. This means the G316 X can be quite loud when you’re hammering away.

I found the board comfortable when gaming with the WASD keys. This is thanks to the adjustable feet, which make up for the lack of wrist support and reasonably thick base. However, I wish they tilted the layout a little further for optimum comfort: I often hit the back edge of the spacebar, although its curved design made this less of an issue than it might have been been otherwise. It also seems like it’s damped to a greater degree than the other keys, which makes it all the more gratifying to press.

The spacing between the keycaps is ideal: they’re not so close that you’ll hit the wrong key, nor so far apart that reaching them is a stretch. I also found them surprisingly easy to type on, despite their relative tallness. Not only does the aforementioned tilt angle mitigate their height, but their prominent indentations guide your fingers to the correct key, helping to prevent typos.

Should I buy the Logitech G316 X 98?Scorecard

Attributes

Notes

Rating

Value

Not cheap, but compared to other upmarket rivals, the price is reasonable.

4 / 5

Design and features

Solid yet light, and the double-sided feet are clever. It’s a shame about the lack of navigation keys and shortcut labelling, though.

4 / 5

Performance

The tactile switches are satisfyingly solid and provide plenty of feedback, although I wish there was slightly more of a tilt angle for maximum comfort.

4 / 5

Overall

The G316 X is a fantastically thocky mechanical keyboard that's comfortable enough to just about get away with no wrist support.

4 / 5

Buy the Logitech G316 X 98 if…

You want solid switches
The stock tactile switches provide plenty of feedback and pleasing resistance, yet are still snappy enough to compete.

You want solid feet
The rubber blocks underneath are stable and grippy, and can be flipped over to adjust the tilt angle.

Don't buy it if…

You want an interactive screen
The one here serves little purpose, while others feature settings menus and display useful game-related information.

You want the best value possible
Although the G316 X is well priced compared to other premium models, there are numerous gaming keyboards — mechanical and otherwise — that offer greater features for a lower price.

Logitech G316 X 98 review: Also consider

HyperX Origins 2 1800
The HyperX Origins 2 1800 is another wired gaming keyboard with mechanical switches and hot-swappable hardware, but it's slightly less expensive than the G316 X. It still has a premium build and great performance, though. However, its customization software is less involved, and I didn’t find its stock keycaps very amenable to typing.

Read our full HyperX Origins 2 1800 review.

MonsGeek FUN60 Ultra
If you want great value, the FUN60 Ultra is a fine choice. Its analog switches feel superb and offer plenty of scope for customization and tweaking. And to cap it all off, the whole board is surprisingly well made, too.

Read our full MonsGeek FUN60 Ultra review.

(Image credit: Future)How I tested the Logitech G316 X 98
  • Tested for a few days
  • Used for various tasks besides gaming
  • Plenty of gaming keyboard experience

I tested the G316 X for a few days, during which time I used it not only for gaming, but also for typing and web browsing.

I played Counter-Strike 2, which is great test of a peripheral’s accuracy and responsiveness, as well as S.T.A.L.K.E.R. 2: Heart of Chornobyl, which makes wider use of keys beyond those in the WASD area, helping to test the ease of access and comfort in reaching such keys.

I’ve been PC gaming for over a decade, and have used many different keyboards in that time. I also have a wealth of experience reviewing them, from budget models to state-of-the-art offerings from esteemed brands.

  • First reviewed: September 2026
  • Read more about how we test
Categories: Reviews

Cost effective? No, but the Razer Blade 16 (2026) might just be the best gaming laptop I've ever tested

TechRadar Reviews - Wed, 09/30/2026 - 05:40
Razer Blade 16 (2026) two-minute review

Razer's latest Blade 16, is by far, one of the best gaming laptops I've ever tested. The spec on this thing is off the charts. It's got an Nvidia RTX 5090, with 175W of juice behind it, an Intel Core Ultra 9 386H, and no less than 32GB of LPDDR5X RAM running along at an outstandingly zippy 9,600 MT/s.

Razer's crammed all of that performance into a form factor that puts Dell's thin and light XPS line to the sword, and it still manages to keep thermals in check, and ensures power delivery is on point as well.

Speaking of design, this thing is stunningly clean. Razer's taken the humble laptop form factor and made it its own. It's simple, elegant, and sleek in almost every area.

From the keyboard to the trackpad, to the ports, it just oozes premium. It's got an RGB keyboard, of course, and (surprisingly) that green Razer logo etched and illuminated on the back (perhaps the only thing that's a little underwhelming), but aside from that, there's little here to indicate that it's a gaming laptop.

(Image credit: Future)

The screen lives up to the rest of the spec; it's a gorgeous 2560 x 1600 OLED offering, spitting out a staggering 240 Hz too, with inky deep blacks. It's hard to fault, and paired with that GPU, there are few games here that don't hold up in their ultra presets. Cyberpunk 2077 and Total War: Warhammer 3 both pulled framerates well into the hundreds.

The only two negatives are the lack of an Ethernet port and the fact it has a price tag so large that you could almost use it as a down payment on a house.

Razer Blade 16 (2026) review: Price and availability
  • Available globally now
  • Insane price tag for the spec, paying for design
  • Soldered RAM so choose memory up front

You can pick up your very own Blade 16 right now, no matter where you are on the planet. Prices start at $3,499 US, £3,499 and AU$5,999 for the base spec.

That stock model isn't entirely different from our review unit either (genuinely a nice thing to see), the only downgrades come in the form of the SSD, dropping from a 2TB unit, to a 1TB model, and the GPU choice, with the base version featuring an RTX 5070 Ti, instead of our juiced up 5090.

You can also upgrade to an RTX 5080 if you so desire, and there's an option to bump up to 64GB of RAM as well if your bank account can stretch that far in the AI age.

It's also worth noting, demand is quite high (or supply low), so depending where you are in the world, you might see a lot of these units on pre-order, or out of stock (amazingly given the price tag).

It's worth noting you can swap the SSD out, if you're handy with a torx screwdriver.

Razer Blade 16 (2026) review: Specs

Base

Review

Price

$3,499.99 / £3,499.99 / AU$5,999.95

$4,899.99 / £4,799.99 / AU$8,399.95

CPU

Intel Core Ultra 9 386H (4.9 GHz, 16 Cores)

Intel Core Ultra 9 386H (4.9 GHz, 16 Cores)

GPU

Nvidia GeForce RTX 5070 Ti

Nvidia GeForce RTX 5090

RAM

32GB LPDDR5X

32GB LPDDR5X

Storage

1TB M.2 NVMe PCIe 4.0 SSD

2TB M.2 NVMe PCIe 4.0 SSD

Display

16-inch OLED (2560 x 1600), 16:10, 240Hz

16-inch OLED (2560 x 1600), 16:10, 240Hz

Ports and Connectivity

1x Thunderbolt 5, 1x Thunderbolt 4, SD Card Reader, 3x USB 3.2 Gen 2 Type-A, 1x HDMI 2.1, 3.5mm Combo Audio Jack, WiFi 7, Bluetooth 6.0

1x Thunderbolt 5, 1x Thunderbolt 4, SD Card Reader, 3x USB 3.2 Gen 2 Type-A, 1x HDMI 2.1, 3.5mm Combo Audio Jack, WiFi 7, Bluetooth 6.0

Battery

90Whr

90Whr

Dimensions

355 x 250.5 x 17.4mm (14.0 x 9.9 x 0.6in)

355 x 250.5 x 17.4mm (14.0 x 9.9 x 0.6in)

Weight

4.71lbs (2.14kg)

4.71lbs (2.14kg)

Razer Blade 16 (2026) review: Design
  • Clean, premium aesthetic and feel
  • Impressively thin and light
  • Lacks an Ethernet port

I've tested a lot of "premium" laptops over the last 11 years of my career, and the result is almost always a mixed bag. Some manufacturers often skimp on the chassis, and just bump up the internal hardware, or shift the screen to a higher res. In the case of the Blade 16 though I can say, hand on heart, that this thing is stunning.

The aluminum chassis has a beautiful cool soft-touch satin finish. The edges are clean cut, and smooth with tighter radial bends, bevels are there, but impressively subtle, and everywhere you look, that design philosophy is mimicked, from the keys, to the typeface, to the trackpad, even to the ports, and the bezel that surrounds that beautiful OLED display.

Razer truly has mastered the art of building a laptop that blurs the lines between gamer and professional, without compromising on either front, and it's a joy to behold.

(Image credit: Future)

The only flaw, in my opinion, is the Razer logo on the back of the unit. By default, it's Razer's iconic hard-lit, green, three-headed snake which stands out a touch compared to the rest of the design.

From a hardware perspective, the kit is exemplary. Razer's paired an outstandingly colorful OLED display with an RTX 5090, that's fully unlocked with a chonky 175W TGP. The screen itself only comes in at 2560x1600 in a 16:10 aspect ratio, but it gives it a pixel density of around 189 PPI, which is about 37% denser than your standard 32-inch 4K affair. And that's backed up with a 240Hz refresh rate and Vesa's DisplayHDR TrueBlack 1000 certification too.

(Image credit: Future)

I'm a big fan of that pairing as well. Laptop makers often fall into a trap where they try to just cram as many pixels as possible into a product at this price tag. Marketing loves it because "number bigger" and "bigger numbers sell," but it honestly demolishes overall frame rates when going for the 4K or 3K option, and I'd argue that you can't really tell the difference between 190 PPI and 280 PPI anyway. Pairing the high-end RTX 5090 with 1600p gives you a far better, well-rounded experience across anything you throw at it, and allows you to take advantage of higher refresh rates.

(Image credit: Future)

Port selection is overall pretty solid too. You've got Thunderbolt 5 and 4 here (both of which support power delivery), along with a healthy complement of USB-C ports, and even an SD card reader, if you're heavy into the ol' photography. There's an HDMI 2.1 out as well, although sadly no dedicated Ethernet, but you do get Wi-Fi 7 and Bluetooth 6 thrown in as standard.

Also, one thing to bear in mind: given the form factor, RAM is soldered by design, so what you buy is what you get — there's no possibility of upgrading this in the future.

Razer Blade 16 (2026) review: Performance
  • Outstanding gaming performance
  • Solid at computational tasks
  • SSD could be better

Let's address the elephant in the room first. SSD performance is OK, and just OK at that. The Blade 16 (2026) uses a Lexar NM790 PCIe 4.0 SSD either in a 1TB or 2TB config, depending on what you pick.

It's a relatively affordable drive coming out of China, based on YMTC's 232-layer TLC NAND flash, and a MaxioTech MAP1602A controller. There's no DRAM cache on the thing, and it's single-sided and more than reliable enough, but just don't expect it to burst through benchmark results and computational tasks quite like something from SanDisk's labs or the PCIe 5.0 league. Still, we should be thankful because if Razer had picked that, this thing could've cost twice as much.

Razer Blade 16 (2026) benchmarks

3DMark: Fire Strike: 36,218; Steel Nomad: 5,911; Time Spy: 21,661
Geekbench 6.6: Multicore: 16,971; Single-core: 2,895
Cinebench 2024: Single Core: 128; Multi Core: 1,234
Crossmark: 2,098
Total War: Warhammer III: 1080p, Medium: 289.2fps
Total War: Warhammer III: 1800p, Ultra: 116.7
Battery Life (PC Mark Gaming): 1 hour and 41 minutes

In-game though, this thing is outstanding. I ran a plethora of benchmarks against it, including our standard suite which we've used for products like the Alienware 15 and other laptops, alongside just running it at full-tilt, on ultra presets at max resolution to really get a solid idea of how it performs.

At 2560x1600 this thing with its RTX 5090 just shatters expectations. Cyberpunk 2077 on the Ray Tracing: Ultra preset, no DLSS, no Multi Frame Gen (MFG) hit 35 fps. With DLSS set to Quality and MFG on, you're seeing that figure jump up to 115.6 fps on the average.

(Image credit: Future)

Total War: Warhammer 3 saw 116 fps across its benchmark too. In our standard 1080p medium tests (which we do for consistency) results were off the charts: 290 fps in Total War, 310 in Cyberpunk, 166 in Final Fantasy XIV. These are genuinely impressive results.

The thing driving the bulk of that performance is the 175W TGP (that goes for the 5070 Ti and 5080 models too). It allows the chip to run at full tilt, with max clock speeds for the 5090 tapped out at 2,812 MHz, and it averaged 2,100 MHz under testing conditions, with an average temp of just 65C.

The CPU by comparison was a little toastier, at 93C when maxed out at its peak 4.9 GHz during the runs, with max GPU wattage coming in at 165W out of that 175W maximum. Nice.

(Image credit: Future)

Intel's Core Ultra 9 doesn't disappoint, and it scored a healthy 128 points in Cinebench's single core test, the highest single core result I've seen for a laptop by some margin.

Razer Blade 16 (2026) review: Battery life
  • 280W charger juices up quick
  • Battery life solid given the spec
  • Did not finish the video test

On the battery life front, perhaps unsurprisingly given the phenomenal spec pulling power from this thing, it didn't last quite as long in PC Mark's gaming test as you'd expect, but 81 minutes is still a comfortable time, and quite close to what we saw with the (admittedly far cheaper) Alienware 15 DA15265, trailing it by eight minutes.

Try as I might, however, I couldn't get it to run the full PC Mark Video benchmark for any prolonged period without crashing. With a manual benchmark, utilising YouTube and a looped hour long video, it survived for about 3.5 hours before giving up the ghost (although do bear in mind that is with Wi-Fi enabled, which defers to our usual results).

The good news is that the power brick is exceptionally fast at charging the Razer Blade 16 (2026), perhaps unsurprisingly given it delivers 280W of juice.

Should I buy the Razer Blade 16 (2026)?

Attributes

Notes

Rating

Value

Razer's Blade 16 does not represent good value for money. You're paying for design, cooling and RAM above all else. But the performance the form factor are rare anywhere else, and that does command a premium.

3 / 5

Design

Aside from a missing Ethernet port, there's little to moan about the Blade 16, with a healthy port selection, and an outstanding aesthetic tied with a beautiful design and incredible screen, it's hard to fault it.

5 / 5

Performance

Gaming performance is exceptional and the CPU more than delivers, particularly when tied to that beautiful OLED display, the SSD could be better, but then the price tag would see a hit as a result.

5 / 5

Battery life

81 minutes in gaming and about 3.5 hours on video streaming. It's enough, but you'll want to keep the charger handy during longer streaming sessions.

4 / 5

Final score

Only let down by its high price, and the lack of an Ethernet port, there's little to not love about this thing, if you've got the cash to buy it.

4.5 / 5

Buy it if…

You're looking for a laptop that blurs the lines between professional and gamer
With an incredible hardware spec, and performance that delivers not only in-game but in any professional app you throw its way, the Blade 16 is undoubtedly a brilliant laptop.View Deal

You love a crisp smooth OLED that looks great no matter what you throw at it
It's just utterly stunning to look at and use, with enough pixel density to keep even the most eager of 4K enthusiasts happy. With exemplary colors and a 240 Hz refresh rate, there's little to dislike about it.View Deal

Don't buy it if…

You're after good value for money
This ain't it chief. At near five grand in the UK and US, and nine grand in Oz, it's ridiculous money for a ridiculous spec. It's good, but you're paying mainly for design here, not the spec.View Deal

You just need a gosh darn Ethernet port
Seriously? All this money and not a single Ethernet port? On a gaming laptop? Tut tut Razer…View Deal

Razer Blade 16 (2026) review: Also Consider

Alienware 16 Area-51

Big bold and beautiful, the Alienware 16 shares a lot of the same ideology as Razer's Blade 16, 2560 x 1600 screen, 240Hz refresh rate, RTX 5090, it's all there, the only downsides? No HDR support, and the battery life isn't quite as good. Still it's a heck of a lot cheaper.

Read our full Alienware 16 Area-51 reviewView Deal

Razer Blade 18 (2026)

The Blade 16's older brother, with a similar top-line spec sheet, but a far larger screen that justifies the 16:10 3840 x 2400 resolution. If you want a gaming laptop that feels like a gaming laptop, but with a bit more pizazz, and aren't so worried about having the latest CPU, then the Blade 18, might just be the right pick for you.

Read our full Razer Blade 18 reviewView Deal

How I tested the Razer Blade 16 (2026)
  • Tested in a variety of different locations
  • Benchmarked across our usual suite + ultra presets at full res
  • 11 years of experience benchmarking and testing all manner of expensive laptops

I've spent years testing and benchmarking some of the world's most expensive laptops, from MSI's ultrabooks, to Asus, to Alienware's and even Razer's so the Blade 16 isn't new territory for me. I set it up as my daily driver and used it over a period of three weeks, to get to grips with it for my professional work and during relaxation time as well, and it delivered on all fronts.

As for testing, I benchmarked it in line with all of my other TechRadar laptop reviews, which focus on a medium 1920 x 1080 preset, to have a consistent baseline for everything we review.

I also tested it at Ultra on its native 2560 x 1600 resolution, to get a good understanding for how it'd be used, in its true config, then compared those results to my knowledge testing other high-end gaming laptops like this for PC Gamer, and other brands.

  • First reviewed: September 2026
  • Read more about how we test
Categories: Reviews

Corsair Harpoon V2 Wireless review

TechRadar Reviews - Wed, 09/30/2026 - 05:26
Corsair Harpoon V2 Wireless review: Two-minute review

The Corsair Harpoon V2 Wireless is (as the name suggests) the second iteration of Corsair's Harpoon RGB Wireless, sporting a redesigned casing and improved internal components.

Back when we reviewed the Harpoon RGB Wireless in 2019, we gave it a well-deserved four and a half stars, citing its excellent value for money, solid ergonomics, and good battery life. If I cast my gaze back seven years to the heady days of the pre-COVID era, I do remember wireless gaming mice being more of a luxury item, and the Harpoon brought this functionality to a wider audience thanks to its extremely competitive pricing.

But times have changed, and it's now far easier to get your hands on a wireless gaming mouse from a household-name PC hardware brand without breaking the bank. Mice like the MSI Versa 300 Wireless 8K, Cooler Master MM311, and Logitech G305 Lightspeed Wireless have made the market a lot more competitive than it was in 2019, so does the Harpoon V2 Wireless earn its place among the best gaming mice?

(Image credit: Future)

For the most part, I'm pleased to say that yes, it certainly does. Considering the price point, this is an exceptionally well-constructed mouse that offers great gaming performance and a decent (though admittedly not expansive) feature set. I do have one particular issue with the Harpoon V2 Wireless, which you've probably already deduced from the headline of this article, but it's far from a dealbreaker.

Let's address that issue right away, then. It's small. Not tiny – I've personally reviewed more ridiculously compact mice than this – but definitely on the smaller side for a gaming mouse. Compared to the Logitech G Pro X2 Superstrike and NZXT Lift Elite that I use regularly at home, it's almost a full centimeter shorter in the body.

This isn't inherently a massive problem, as the ergonomic design of the Harpoon V2 Wireless makes it easy to grip and move around. But as a palm gripper, I found that my fingers rested too far forward in the most comfortable position, prompting me to adopt more of a claw-type grip, which proved a bit uncomfortable in longer sessions. The thumb buttons are also a bit further forward than I would expect; most mice with two thumb buttons will keep the split between them lined up with the back edge of the main mouse button, but they're closer to the front here, which made pressing the back one feel a bit less intuitive than I'd like.

Now, I'm a big guy. I'm 6'4", and the meat paddles I call hands are obviously going to be bigger than what the vast majority of PC gamers are using to manipulate their peripherals. With that in mind, I'm not going to knock Corsair down too hard here – because outside of this personal gripe, the Harpoon V2 Wireless is a generally great gaming mouse. But it bears mentioning, so if you're a similarly club-fisted PC gamer, this won't be the right mouse for you.

(Image credit: Future)

Now, let's get to the good stuff. The Corsair Harpoon V2 Wireless has a sleek matte plastic body with two translucent main buttons. Despite its small size, it nonetheless offers a sensible amount of weight with very balanced distribution, preventing any uneven handling for users who regularly lift the mouse clear of the pad. Each side has a textured triradiate patterning that greatly helps with grip, though I do worry that it might easily become dirty with extended use. The shape is asymmetrical, with no left-handed version available – sorry, southpaws.

In terms of buttons, you get the two main pointer buttons, two thumb buttons, a textured rubber scroll wheel with regular click input (no tilt inputs), and an additional button behind the wheel that is set to switch between DPI profiles by default. All of these are remappable using the downloadable Corsair iCue software, but even better, you can achieve whatever hardware tweaking you desire (including adjusting DPI presets, RGB lighting, and custom button macros) via the Corsair Web Hub without needing to install any additional software.

If you'll allow me a moment to go on a brief tangent, I'd like to wax lyrical about the Web Hub for a paragraph. Corsair isn't the only PC hardware manufacturer to have recently embraced the notion of browser-based equipment tweaking, but it's certainly on the cutting edge. Keychron and Royal Kludge offer similar web-app tools, but they're limited to keyboard tweaking only. Corsair's Web Hub offers a broad range of customization options with zero downloads required, and I love it for that.

(Image credit: Future)

Anyway: back to the Harpoon V2 Wireless. The outer casing feels pleasingly durable, with a good, firm click to the two main buttons, which are rated for 100 million clicks. The thumb buttons are a little spongy, but not to a concerning degree; it's rare to see a gaming mouse with genuinely sturdy thumb buttons, to be honest.

The scroll wheel also has a good, robust click, and a satisfyingly smooth rotation that doesn't feel too smooth; I could still get a feel for the individual increments if I slowed down, but scrolling up and down web pages or text documents was nice and swift.

(Image credit: Future)

The underside of the mouse also houses the sensor, which is Corsair's own Marksman model and supports up to 26,000 DPI. Yes, sensitivity limits in gaming mice are getting a bit silly these days, but I'm sure there's an esports pro out there somewhere who can actually tell the difference between a 22K and a 26K mouse. I found the sensor to be excellently responsive and accurate during my testing, playing a number of games including Marathon, Warframe, Marvel Rivals, and Valorant.

(Image credit: Future)

Battery life is also excellent. Corsair advertises up to 140 hours of use, and while that probably means disabling some extra features like the RGB lighting, I didn't need to charge the Harpoon V2 Wireless even once during the week I spent testing it. As far as battery longevity goes, you won't need to be charging it often, which is great.

It charges via a high-quality braided USB-C to USB-A cable that comes in the box, and naturally you can use it in this wired configuration if that's what takes your fancy. Wireless connection offers two modes: Bluetooth or a 2.4GHz connection via a USB dongle. This sort of dual-mode wireless connectivity is pretty common in gaming mice these days, since the 2.4GHz connection offers lower latency than Bluetooth.

(Image credit: Future)

On the topic of that USB dongle: it's concealed in a slot on the underside of the mouse when not in use, which is accessed by completely removing one of the two PTFE skates. I did find that having the skate be removable like this (as opposed to a separate slot for the dongle between the skates, which is commonly seen on other wireless mice) meant that it was a bit more susceptible to debris like dust and fibers getting stuck under the edges. I do have a dog who is a notorious shedder, so users without pets might not find they experience this problem, but it was irritating to repeatedly need to remove hairs and dust from the skate.

Still, that's genuinely a very minor criticism. The Corsair Harpoon V2 Wireless is an excellent choice of gaming mouse for the majority of users, delivering great performance and a durable, high-quality design at a competitive price point, so if your hands are average-sized or smaller, this mouse is an easy recommendation.

Corsair Harpoon V2 Wireless review: Price & availability

(Image credit: Future)
  • $69.99 / £64.99 / (around AU$100)
  • Available now worldwide
  • Solid value proposition

The Corsair Harpoon V2 Wireless is slightly more expensive than its predecessor, priced at $69.99 / £64.99 / (around AU$100) and available directly from Corsair in the US and UK (Australian buyers will need to use third-party vendors like Amazon).

Despite the minor price hike, I remain strongly inclined to say that the new Harpoon remains very good value for money. Wireless gaming mice aren't the pricey products they once were, but considering the seven years of inflation we've had since the original Harpoon RGB Wireless hit the market, I'd say that price point is highly competitive. Additionally, gaming mice are something you'll often see discounted during sale events like Black Friday, and even a mild price cut would take this mouse into genuine bargain territory.

Should I buy the Corsair Harpoon V2 Wireless?Scorecard

Value

Mid-range pricing for a very high-quality gaming mouse. If you spot it discounted, it's an absolute bargain.

4.5 / 5

Design

Comfortable and ergonomic, with solid build quality. However, it's rather small, so users with bigger hands might not find it as comfy.

4 / 5

Performance

Tri-mode connectivity is swift and effective, battery life is good, and the sensor is sharp and accurate.

4.5 / 5

Final score

A great all-rounder as far as compact wireless mice go, the Corsair Harpoon V2 Wireless is a solid product that deserves to stand among the best gaming mice.

4.333 / 5

Buy it if…

You want something comfortable
With 80g of weight and a sleek, ergonomic chassis featuring grippy side panels, the Harpoon V2 Wireless is comfortable to use for all grip types.

You want straightforward performance
Other gaming mice might offer more bells and whistles, but the Harpoon V2 Wireless brings strong performance at a reasonable price.

Don't buy it if…

You want plenty of inputs
The Harpoon V2 Wireless only has six programmable buttons, so gamers looking for lots of input options might be disappointed here.

You've got big hands
While it's still usable, PC gamers with particularly large paws might want to avoid this one, since it's very compact.

Corsair Harpoon V2 Wireless review: Also consider

Razer DeathAdder V4 Pro
If you want to play like the pros, this is the mouse for you. We loved how well it performed when we reviewed it, and were even taken by its fantastic optical scroll wheel. It’s costlier than the Harpoon V2 Wireless, but the V4 Pro is just about the best pure gaming pointer right now in our eyes. Read our full Razer DeathAdder V4 Pro review.

Logitech G502 X Plus
The G502 line has been acclaimed by gamers for years, and this edition is no less impressive. It has more buttons than the Harpoon V2 Wireless, all of which are programmable. It also has an ergonomic shape, although it’s much larger, so not ideal for those looking to shed the weight. Read our full Logitech G502 X Plus review.

How I tested the Corsair Harpoon V2 Wireless

(Image credit: Future)
  • Tested for one week
  • Used for working and gaming
  • 8+ years of experience reviewing PC hardware

I replaced my usual mouse, the Logitech G Pro X2 Superstrike, with the Corsair Harpoon V2 Wireless for one full week, using it not only for my daily work at TechRadar but also for personal projects and gaming.

I played a wide range of games, including Marathon, Warframe, Esoteric Ebb, and my current addiction, Slay the Spire 2. I found that the Harpoon V2 Wireless was responsive and (mostly) comfortable, though lengthier sessions with the claw grip I had to use with this mouse did result in some minor hand cramp – though of course, this won't be a problem for regular claw-grippers, or users with smaller hands.

I've been testing and reviewing PC hardware from mice to graphics cards for more than eight years now, starting my tech journalism career at Maximum PC magazine before moving over to TechRadar. I put every ounce of knowledge and experience at my disposal into my reviews, so you can be confident that you're getting an in-depth and bias-free analysis.

Categories: Reviews

Webshare review

TechRadar Reviews - Tue, 09/29/2026 - 14:57

Acquired by Oxylabs in 2024, Webshare continues to operate as an independent provider focused on budget-friendly and self-service proxy deployment. Rather than incorporating Oxylabs’ comprehensive scraping APIs or AI unblocking tools, Webshare maintains its own lean infrastructure, which counts over 80 million residential IPs and 400,000 datacenter proxies spanning 195 countries.

Designed for individual users and organizations who need raw connection speed and protocol flexibility, the platform fulfills more than 650 billion proxy requests per month. Along with affordable pricing, there is a no-credit-card free tier for those who may be on the fence about what Webshare brings to the table.

Webshare: Plans and Pricing

Webshare offers a customizable pricing structure built upon a permanent free plan that provides 10 proxies with 1GB of monthly bandwidth and a full set of features (no credit card required).

When it comes to the paid proxy infrastructure, it’s split into three primary product lines, the first being rotating residential proxies. Metered by bandwidth across an 80 million+ IP pool, plans start at $3.50/GB for 1GB ($2.45/GB under annual billing) and scale down to $1.40/GB for enterprise volumes (3,000GB+).

Things get a bit more varied with static residential proxies, which also come in private and dedicated forms. Backed by telecom providers like AT&T, Sprint & Cox Communications, shared static residential plans start at $6.00/month for 20 addresses ($0.30/proxy) and go up to $0.225 per proxy for 10,000 proxies. Private packages (shared with at most 2 users) begin at $23.16/month for 25 IPs ($0.926/IP), and the entry dedicated tier costs $42.00/month for 20 IPs ($2.10/IP).

It’s a similar thing with datacenter proxies, which Webshare sells under the Proxy Servers moniker. Shared server proxy packages start at $2.99/month for 100 addresses ($0.0299/proxy), decreasing to $0.0179/proxy at higher volume tiers. Private options kick off at $18.52/month for 25 IPs ($0.741/IP), while dedicated private proxies start at $26.60/month for 20 IPs ($1.33/IP).

All the plans feature 500 default concurrent threads (with upgrades available up to 3,000) and access to a 100+ Gbps network backbone. Webshare maintains a 48-hour refund window for paid purchases, provided your usage stays below 1GB (or 0.1GB for rotating residential) and fewer than 1,000 proxies are used. Cancellations are completed instantly by reverting to the free plan through the dashboard settings.

Webshare: Features

You set off your Webshare adventure with a simple registration via email or an existing Google profile. Once registered, you’ll be redirected to a dashboard with access to all of Webshare’s features, including granular management and integrations.

Rotation Residential IPs

Webshare routes its rotating residential proxy traffic through ethically sourced, peer-consenting devices. Put differently, the platform operates an opt-in network where endpoint owners are compensated for sharing bandwidth.

Residential IPs are rather useful in several cases, with an emphasis on data collection tasks that trigger rapid bot mitigation.

For example, a hotel comparison site needs to scrape price lists from many hotel websites. However, hotel websites often discourage scraping by placing IP and geo-restrictions. Suppose a US-based hotel blocks foreign IPs from accessing its website. Webshare lets you bypass it by choosing a US proxy IP address to view the website and scrape pricing information.

Rotating residential IPs are also a boon for localized e-commerce price monitoring and travel fare aggregation. By cycling requests through authentic home connections, scraping pipelines get to bypass geographic blocks and IP rate limits without flagging security systems.

Webshare’s residential network spans 195+ countries and provides global reach across major markets, including the US, UK, Germany, Japan, China, France, Australia, and Canada. The total residential pool exceeds 80 million IPs, which puts it well ahead of mid-tier competitors while maintaining lower entry barriers than legacy enterprise providers like Bright Data or Oxylabs.

Moreover, this is the only product line that supports targeting down to the country, city, state, ZIP code, and ASN level. That said, state and ZIP code targeting are restricted to US locations, while ASN targeting runs across the global pool.

(Image credit: Webshare )Static Residential IPs

First, let’s clarify the full lineup here. Like virtually all of its peers, Webshare offers static residential IPs, which represent a faster alternative to their residential counterpart. Technically, these are still residential IPs, albeit sourced directly from ISPs.

The provider then singles out private and dedicated versions on its Products page, which are simply exclusivity levels. Shared static residential proxies are split among multiple users, whereas private static residential proxies are shared with up to 2 users, and dedicated versions are 100% exclusive to the user.

In other words, it’s the same underlying proxy type; the difference is solely how many people are using the IP.

Static IPs are also more reliable because the IP doesn’t change with each session, unlike the unstable Wi-Fi connections of the device owners. They are issued for long-term use and are harder to detect, which helps you stay anonymous as you browse.

These static endpoints support speeds up to 1 Gbps, and the network maintains a pool of over 100,000 static ISP addresses globally. You can manage your proxies in an intuitive dashboard and utilize them to bypass geo-restrictions and browse the web without revealing your actual IP address to third parties.

Proxy servers

Webshare operates a fleet of datacenter proxy servers containing over 400,000 IPs built on a 100+ Gbps aggregate network backbone with a 99.97% uptime SLA. Just like with shared IPs, users can deploy datacenter IPs across three models depending on performance needs and budget limits.

Shared proxies are the entry-level tier that pools IP addresses among multiple active accounts. Pricing starts at $2.99 per month for 100 proxies (scaling down to $0.0179 per proxy at scale), which offers high bandwidth efficiency for low-risk scraping.

Private proxies are a hybrid tier where each IP is shared with a maximum of one to two other accounts. This significantly reduces neighbor noise and target site bans while keeping costs low (starting at $18.52/month for 25 proxies).

Lastly, dedicated proxy servers are 100% isolated single-tenant proxies reserved exclusively for your account. Dedicated plans start at $26.60 per month for 20 IPs with 250GB of included bandwidth, ideal for high-concurrency target sites.

If you surpass your bandwidth allocation, you can pay extra fees to get as much bandwidth as you need. You can also pay additional fees for unlimited IP authorizations, high concurrency, and a high-priority network (recommended when using proxy servers for time-sensitive data scraping).

All datacenter tiers support HTTP and SOCKS5 protocols, cover 50+ country locations, and offer configurable add-ons for expanded concurrency, high-priority network routing, and extra bandwidth allocations.

(Image credit: Webshare )Chrome Extension

Rounding out the offer is a browser extension for Google Chrome that lets users rotate proxies at the click of a button. This extension is ideal for individual users whose primary use case for Webshare is bypassing geo-restrictions. Whenever you encounter a geo-restriction, just choose a proxy IP from the relevant country and refresh the website to view the previously restricted content.

New users can test the extension via Webshare’s permanent free tier, which includes 10 datacenter proxies and 1GB of monthly bandwidth without requiring a credit card.

Webshare: Ease of Use

Webshare offers an intuitive control panel dashboard that makes configuration straightforward. From your dashboard, you can set up any proxy type in your plan. Whether managing any of the proxies on offer, you can deploy and configure them with a few clicks. You can view, download, or configure your proxy list, with automated or manual IP replacements available (including Auto-Replace, On-Demand Refresh, or API-driven swaps).

(Image credit: Webshare )

The dashboard displays detailed real-time analytics, including bandwidth consumption, error rates, and activity statistics, to name a few data points. This telemetry allows you to monitor proxy health and performance at a glance. Additionally, the UI features a native toggle to switch between Dark Mode and Light Mode.

Webshare: Customer Support

Webshare provides support through both interactive chat and self-service resources. In-dashboard assistance is driven by Webby, the vendor’s AI support agent, which guides users through structured troubleshooting flows for common proxy and billing issues. If Webby, for some reason, can’t resolve your query, you can request an immediate escalation to a live human support agent directly within the chat interface.

The Help Center contains detailed user guides and manuals for all its features, teaching users how to deploy and manage proxies effectively. Webshare provides extensive technical documentation for its APIs, making it easy to integrate its proxies into external applications. The API documentation guides users in configuring Webshare’s proxies to perform their required tasks.

You have access to an FAQ section with solutions to common problems. The Webshare blog provides numerous tutorials on integrating your proxies with other applications. We found this section very helpful when testing the app and its integrations. Direct ticketed support is available via email, though there's no telephone support option.

Webshare: The Competition

There’s no shortage of competition in the proxy software market. We’d like to single out Decodo (formerly Smartproxy), Bright Data, and PacketStream as the most noteworthy Webshare rivals.

Decodo has a more expansive proxy network than Webshare. It offers 125 million+ IPs (including 115 million+ residential IPs), compared to Webshare's 80 million+ residential pool. The competitor offers search engine, social media, and e-commerce scraping APIs, whereas Webshare focuses purely on proxy endpoints without dedicated scraping APIs.

The tradeoff is that Webshare has more affordable proxies (starting at $3.50/GB down to $1.40/GB, compared to Decodo’s $3.75/GB starting rate).

PacketStream is a peer-to-peer proxy service, unlike Webshare, which offers a wider range of datacenter, static ISP, and residential networks. It’s far more affordable at a flat $1/GB (though it requires a $50 minimum deposit) and reimburses users who contribute their bandwidth to its network at $0.10/GB.

The drawback is that PacketStream offers only residential proxies: there are no static residential (ISP) proxies or dedicated proxy servers like Webshare. PacketStream’s peer-to-peer, decentralized nature also makes its IPs less reliable: the platform has no control over the internet speed of the device whose IP you share.

Bright Data offers the same proxies as Webshare, though it also provides web scraping APIs, a Scraping Browser, Web Unblocker, and ready-made datasets to use instead of scraping from scratch. It has a significantly larger IP pool (400+ million total IPs, including 72+ million residential IPs) than Webshare and is overall a more feature-rich enterprise tool.

However, expect to pay significantly more for Bright Data’s proxies (starting around $4.00 to $8.00/GB for pay-as-you-go residential) than you will for Webshare.

Webshare: Final Verdict

Webshare is a reliable and budget-friendly proxy provider that does a great job in its field. It’s easy to use, has a permanent free tier, a free Chrome extension, and an intuitive control panel that makes the management and monitoring of your proxy usage a walk in the proverbial park.

That said, it has its drawbacks, like the absence of phone support and the missing built-in web scraping APIs or automated AI unblockers offered by enterprise proxy providers. Still, for developers and SMBs seeking fast and flexible proxy infrastructure that won’t put a dent in their wallets, Webshare remains a great choice.

We've listed the best CDN providers.

Categories: Reviews

Polar Street X review: Design issues mar an accurate urban exploration watch

TechRadar Reviews - Tue, 09/29/2026 - 12:18
Polar Street X: One minute review

Polar has released its latest sports smartwatch, the Street X. With a brief to create an ‘urban sports watch for those who live, work, and train in the city’, Polar has produced a chunky G-Shock-style watch that is tough, lightweight, and ‘always ready’ to go.

The rather basic design and poorly implemented user interface stand in contrast to gorgeous and sleek alternatives such as the Apple Watch Ultra 3 and the Samsung Galaxy Watch 8. The Street X might offer a 50m water rating and military-grade durability (perhaps a little redundant for city dwellers), but this comes at the expense of a design that is properly thought through and finessed.

Thankfully, there are no issues with the bright 1.28-inch AMOLED display that's covered by tough Gorilla Glass or, indeed, GPS accuracy that keeps up with more expensive smartwatches, including the Garmin Tactix 8.

Solid performance continues with mapping tools that allow for route navigation and mixed-terrain training, although GPS tracking often takes upwards of a minute to lock in. In a day and age when we expect instant results, this is frustrating.

Based on our experience with the Street X, we don’t expect it to feature in our best smartwatches guide. Accuracy aside, its running features can’t keep up with Garmin’s dedicated offerings.

Polar Street X: Specifications

Component

Polar Street X

Price

$249.99 USD / £219 UK / $429.99 AUS

Dimensions

45mm wide, 13.8mm thick

Weight

48g with strap. 28g without strap

Case/bezel

Bio-based plastic

Display

1.28-inch AMOLED Gorilla Glass

GPS

GPS, Galileo, BeiDou, QZSS

Battery life

Performance training mode: 43 hours. Smartwatch mode: 10 days

Connection

Bluetooth® LE

Water resistance

WR50

(Image credit: Future / Paul Hatton)Polar Street X: Price and availability
  • $249.99 USD / £219 UK / $429.99 AUS
  • Pricier than expected, given the materials and specs
  • Cheaper alternatives exist from more established brands

The Polar Street X sits alongside the Finnish brand’s cheaper Pacer range, rather than the more expensive Vantage and Grit series’. . At $249.99 USD / £219 UK / $429.99 AUS, it is significantly cheaper than the Pacer Pro and only a little more expensive than the Pacer. The watch ships in three different colors: Night Black, Snow White, Forest Green.

One of the best alternatives, also boasting an AMOLED display and onboard GPS, is the Amazfit Active 3 Premium. Priced at $169.99 / £169.90, we were so impressed that we awarded it an incredible five-stars.

If you’re a Garmin fan, then the slightly pricier Forerunner 170 at $299 / £259.99 / AU$479 is worth a look. We found it to be “extremely accurate” during treadmill tests “despite packing Garmin's older heart rate sensing technology.”

  • Value score 4/5

(Image credit: Future / Paul Hatton)Polar Street X: Design
  • Chunky shockproof design with a budget feel
  • Fiddly strap but a comfortable fit
  • Very poorly designed user interface

The Polar Street X boasts a classic shockproof design with a five-button configuration similar to the best Garmin watches. They are chunky and clunky, and accessing the top left side button to go backwards through menus is incredibly awkward for a right-hander wearing the watch on the left wrist. I also wasn’t a fan of the long button presses that were required to avoid accidental presses. In practice, these were a second or two longer than they needed to be.

Both the case and bezel are made of ‘bio-based plastic’, which means renewable biomass sources were used rather than petrochemical alternatives. It’s also robust enough to protect the internal components from damage even when dropped. Durability credentials include a 50 meter water resistance rating and MIL-STD-810H testing that demonstrates the Street X’s ability to withstand high and low temperatures, rain, sand, dust, and vibration.

(Image credit: Future / Paul Hatton)

The AMOLED display isn’t huge; in fact, the 1.28-inch diameter felt a little restrictive, especially considering the poorly designed user interface, which fails to take advantage of the full screen. Menu items are also curved at the bottom of the interface, but they don’t follow the circle shape of the case, which is rather jarring.

The 416px resolution delivers a clear image and is protected by Gorilla Glass, which is ideal for users who are prone to dropping their smartwatches. The screen is touch-enabled, features ‘always on’ functionality, and features an ambient light sensor.

I often think one of the most overlooked elements of a smartwatch design is the strap, and Polar has fallen foul of that too. The strap includes an awkward catch design, which I found incredibly fiddly. That said, once the watch is securely positioned on the wrist, it is comfortable to wear, even for long periods of time.

  • Design Score: 3/5

(Image credit: Future / Paul Hatton)Polar Street X: Features
  • Extensive training and health tracking
  • Navigation features including route guidance
  • Smart features and utilities for a broader smartwatch experience

At the heart of the Polar Street X is a set of tracking tools for training, including Training Load Pro for making sure your body doesn’t become overstrained. For runners there is a Running Program feature where you can select one of four running events: 5K, 10K, half marathon, or marathon, and get a personalized, adaptive training plan that fits you and your goals. This is a simple but well-implemented solution for keeping you on track.

The Street X offers all the health tracking that you would expect, including continuous heart rate, step count, and calorie burn. Beyond this, Polar has packed the watch with a skin temperature sensor for early indication of fever, inflammation, or impending illness. Polar also says that “women can use these skin temperature insights to better understand which phase of their menstrual cycle they are in." Skin temperature sensors are common in wearables now, as devices like the Apple Watch and Oura Ring use them to calculate cycle tracking and help predict illness.

The features that set the Street X apart from super-budget alternatives relate to mapping and navigation. With built-in GPS, users get the benefit of route guidance, breadcrumb trails, and elevation profiles. The ability to return back to your start point either by the same route or beeline means you can pick whichever option suits you when you get to your end point. There’s also a built-in LED flashlight, altimeter, and compass.

  • Features Score: 4/5

(Image credit: Future / Paul Hatton)Polar Street X: Performance
  • Accurate GPS, but signal lock-on takes far too long
  • Extensive metrics help athletes improve
  • Training features are nice to have, but serious runners will want more

My experience of the Street X smartwatch was a bit of a mixed bag, with some elements performing brilliantly but others struggling. There’s no denying that it offers a solid set of features that go beyond some budget alternatives, but the implementation of these is far from perfect.

Take the onboard GPS as an example. Given the price, I wasn’t expecting incredible things, but having to regularly wait over a minute for a GPS lock left me underwhelmed. That said, once the GPS signal was found, it was as accurate as one of our trusty benchmarks, the Garmin Tactix 8.

The watch offers over 170 sports and activities as well as the ability to manage training loads, strain and tolerance. I primarily used running, cycling, and walking modes, and even though all the required data and functionality were present, I found it difficult to navigate around, even after a number of times using the watch.

The Street X features basic maps with a range of navigation tools. I was impressed by the inclusion of ‘Back to Start’ navigation with the ability to choose either ‘Via Beeline’ or ‘Via Same Route’. The maps clearly display the necessary turn-by-turn directions, so getting lost is next to impossible.

After exercising, an extensive set of metrics, including energy used, pace, cadence, and speed zones, can be viewed on the watch, although they are far easier to digest in the Polar Flow app. It’s also possible to choose from a drop-down list of options to record how the exercise felt, but you can only add more detailed notes using the app.

(Image credit: Future / Paul Hatton)

The Street X offers optical heart rate measurements as well as heart rate zones and heart rate variability. Heart rate readings matched my dedicated heart rate tracker.

In terms of smart features, the Street X packs everything you’d expect from a mid-range smartwatch, including notifications, weather, Find My Phone, and music controls, although for the last, it is only controlling your phone’s music, not anything loaded on or streaming from the watch itself. The only smart feature I was left craving was the ability to reply to texts.

The watch has a built-in LED flashlight, which I used to navigate around my poorly lit neighbourhood, although it wasn’t really bright enough to light my way. And in reality it was no stronger than the torch on my iPhone, so the watch’s flashlight was surplus to my requirements.

The battery performance sits at 10 days for general use and 43 hours for constant GPS. This is reasonable for a sub-$250/£250 smartwatch. Recharging from empty to full took me 70 minutes, although 0-50% took only 30 minutes.

  • Performance score: 4/5

(Image credit: Future / Paul Hatton)Polar Street X: Scorecard

Category

Comment

Score

Value

A little overpriced compared to the competition but still relatively good value.

4/5

Design

A G-Shock-esque design with robust credentials. Unfortunately, it lacks finesse.

3/5

Features

A solid set of features including dedicated running tools and onboard GPS

4/5

Performance

GPS accuracy is a standout, but signal lock-on takes longer than it should.

4/5

Polar Street X: Should I buy?Buy it if...

You’re looking for an affordable and accurate GPS tracker

For the price, I was impressed by the results.

You like shockproof design and don’t mind that plastic feel

Despite feeling cheap, it’s both solid and robust.

Don't buy it if...

You care about well-implemented design

The Polar Street X interface lacks finesse.

You like sleek smartwatches that look great on the wrist

With cheap materials and a basic design, far more attractive alternatives exist.

Also consider

Amazfit Active 3 Premium

A cheaper alternative but still with fantastic specs, including a bright AMOLED display and GPS tracking.

Read more about the Amazfit Active 3 PremiumView Deal

Garmin Forerunner 170

Offering accurate measurements, the Forerunner 165 is a highly rated, budget-friendly solution for runners who love Garmin smartwatches.

Garmin Forerunner 170 reviewView Deal

How I tested the Polar Street X

I wore the Polar Street X smartwatch almost continuously for a month. During this time I went on a number of runs, cycles, and walks while comparing the unit to the Garmin Tactix 8 and Huawei Watch Ultimate 2. I also compared the heart rate measurements with a dedicated heart rate tracker.

First reviewed: September 2026

Categories: Reviews

Fujifilm Instax Pal 2 review: the cutest — and priciest — toy camera around

TechRadar Reviews - Tue, 09/29/2026 - 10:00
Fujifilm Instax Pal 2: Two-minute review

I’ve never seen my teenage son more animated about a camera than he was about the Instax Pal 2 — and he’s seen his fair share over the course of my years reviewing gear.

It’s tactile and sensory, with its exaggerated sound effects, clicky winding lever, joystick, dampened dial, and pop-out USB-C connector. For my son, it was like a fidget toy. And I have to confess it was for me too.

The emphasis here is on toy, mind you — he could happily fiddle with the controls for hours without taking a single photo.

Even with my Serious Camera Reviewer hat on, I’m enamored with the Pal 2; it's cute, it's dinky, and there’s enough here to keep my attention.

There's the winding lever that scrolls through the Instax mini, square and wide film formats (or no border at all); the dampened dial for the various picture effects; the joystick that you use to navigate a sub-menu with options for self-timer, flash and display modes, and which you can also press to open the main menu.

Then there’s the cut-out optical viewfinder, and a top-down, 1.3-inch screen for waist-level photography, a red playback button and clear ‘back’ button. Every control is unique, and characterful.

Fujifilm’s design department clearly knows its market — the Pal 2 is latest in a long line of quirky, retro fun models that include the original Pal, the X half and the Instax Mini Evo Cinema.

The camera comes with a selfie prop that angles the camera up when it's rested on a surface, and it's secured by pushing it around the lens. (Image credit: Tim Coleman)

In a way it’s easy to forget that this palm-sized bundle of retro fun is a camera at all; but that's what it is, and it’s one with very basic tech inside: a tiny 1/3.06-inch sensor with 10MP JPEG photos, shot through a 28mm equivalent f/2.2 lens, with an LED flash for close-up low-light shots. There's no video here, just a 10-shot Animation mode.

It’s also Wi-Fi / Bluetooth-equipped, meaning users can wirelessly connect to a smart device and use the Instax Pal app for image uploads and sharing (the Pal app wasn't updated for the Pal 2 at the time of my review), or to one of Fujifilm’s Instax link printers for uploads or direct printing onto Instax film. There’s that pop-out USB-C for charging, too.

But — and it's a big but — it’s very expensive. The Pal 2 is not priced like the toy camera it is.

You can get four Kodak Charmeras for the price of one Instax Pal 2 and have some change left over. Yes, the Pal 2 is more camera than the Charmera in every way, but they are in the same novelty camera category, and the Charmera knows its place better.

Yes, my son loves the Pal 2, but it’s not in pocket-money saving territory, and it would be a stretch as a birthday gift.

It's easy to be won over by the Pal 2 — this is a retro, pocket digital camera with wireless image uploads and Instax printing. But when the Instax Mini Evo costs the same, and that camera has a larger body and screen, and can print images selected from the gallery directly, the Pal 2 feels like a stretch. If its price comes down, like the X half's did (by about 40%), then it might be a different picture.

Fujifilm Instax Pal 2 review: Price and release date

The top LCD can display the picture style as if you have a film loaded, or liveview. (Image credit: Tim Coleman)
  • Announced in September 2026
  • Priced at $169.95 / £149.99 / AU$249
  • Available in two colorways; black with silver trim, or white with silver trim

The Fujifilm Instax Pal 2 costs $169.95 / £149.99 / AU$249 and is available in two colorways: black with silver trim, or white with silver trim. It comes with a small rubber selfie stand, which fixes in place by slotting around the lens, and a wrist strap.

Fujifilm Instax Pal 2 review: specsFujifilm Instax Pal 2

Type:

Digital compact camera

Lens

28mm f/2.2

Sensor

1/3.06-inch CMOS

Photo resolution:

10MP

Video resolution:

N/A

Storage:

Internal memory up to 100 shots, microSD card slot

Screen:

1.3-inch LCD, 170k dots

Connectivity:

USB-C

Dimensions:

37 x 42 x 92.3mm (excluding projecting parts)

Weight:

3oz / 87g

Fujifilm Instax Pal 2 review: DesignTim ColemanTim ColemanTim Coleman
  • Weighs just 3oz / 87g, fits in a pocket
  • Cool retro look and multi-sensory controls
  • Twin displays: LCD and cutout optical viewfinder

It might share the name as the original Pal, but the two cameras bear little resemblance to each other. The original Pal’s golf ball-like exterior is cast aside in favor of retro-style, mini Fujifilm camera-like body.

Fujifilm has packed a lot of controls and features into the tiny, palm-sized body, including a cut-out viewfinder, 1.3-inch top LCD, winding lever, on/off dial, a joystick set within another dial, playback and back buttons, a pop-out USB-C, and a tiny selfie mirror, tripod mount, microSD card slot, and LED flash.

Each control has its own distinct character, and it took me no time at all to memorize each one, meaning I could instinctively locate them.

Tim ColemanTim ColemanTim ColemanTim ColemanTim ColemanTim ColemanTim Coleman

For the most part, I only found myself scrolling through the Instax film types (glorified aspect ratios) using the winding lever, and using the six picture styles, and the flash settings, self-timer and display mode options in the sub-menu. There’s little else to experiment with, besides perhaps exposure compensation, which is buried in the menu.

You can choose whether to display the selected picture style on the LCD display (kind of like a film roll), or the live view, when composing images. I'd hardly say composition is critical though, because the lens is a wide-angle 28mm optic, meaning you can blindly point the Pal 2 in the direction of your subject and it will be in the shot.

There’s plenty to like about the design of the Instax Pal 2. It’s a highly enjoyable camera to play around with, and it earned plenty of admiring comments from other tech journalists when I was attending another event.

Fujifilm Instax Pal 2 review: Performance

The Animation mode takes up to 10 photos consecutive and compile them into an animation (Image credit: Tim Coleman)
  • Wide-angle 28mm f/2.2 lens
  • 10MP JPEGs, plus a 10-shot animation mode
  • Bluetooth / Wi-Fi equipped for wireless image uploads and printing

The charming, tactile and dinky design is the major appeal of the Instax Pal 2 — you’re not buying it for its technically impressive images and high-speed performance.

Take the JPEG-only photos (up to 10MP, depending on the aspect ratio) from the tiny 1/3.06-inch sensor and 28mm f/2.2 lens. There's no getting away from the fact they're lo-fi images; they're Better than the Charmera’s, but no match for your phone’s.

Don’t expect much detail in highlights, either — they blow out with the camera’s exposure metering left to its own devices, although ±2EV exposure compensation is buried in the camera’s main menu, so it is possibly to go for dark, moody photos too.

The six color profiles are all towards the vintage end of the scale, with options for Soft, Muted, Cool, Flare, Mono and Pure (see below). If you want a punchy, vivid setting, you’re out of luck. The picture style and aspect ratio used at the time of shooting, whether that’s mini, square, wide or no border, are locked in.

Technically this is a photo-only camera, but if you turn the winding lever clockwise (instead of counter clockwise for the Instax film borders), you can enter a burst-shooting 'animation' mode that takes up to 10 photos in a sequence and then pieces them into a single stop motion-like clip (see above).

'Flare' picture styleTim Coleman'Mono' picture styleTim Coleman'Pure' picture styleTim Coleman'Cool' picture styleTim Coleman'Muted' picture styleTim Coleman'Soft' picture styleTim Coleman

There’s a built-in battery that's recharged through USB-C — and you’ll need to do that regularly, because battery life is poor. A combination of me playing around with the camera settings and taking around 50-75 images saw battery life depleted by three quarters, so you’ll struggle to get through a full day of shooting.

Shutter lag — the time between pressing the shutter button and the camera actually taking the photo — can get really frustrating, and it’s made worse with the LED flash active. You'll need to hold the camera steady after pressing the shutter, and hope that your subject stays still, otherwise you'll miss the shot

I had the flash mostly set to auto, and it mostly only fired in low light — this isn’t a flash-on for every photo setup, as is the case with some Instax mini cameras.

As with any wide-angle camera, but especially so with the Pal 2's small picture size, it pays to have your subject close and filling the frame to maximize the impact of the photo — this isn’t a camera for taking landscape images, in which detail will be lost.

A curiosity is that the camera limits users to 100 shots between connections to the Pal app, whether that's shooting onto the internal memory or the microSD card. This isn't an issue when shooting onto the internal memory, since there's only space for 100 shots, but I found it a frustrating and unnecessary restriction when shooting to the card.

The original Instax Pal app is also designed for the Pal 2, but at the time of writing there wasn't an update for the app, so I haven't been able to try it out with the latest camera yet. I'll update this review once I've tried wireless uploads and printing.

Tim ColemanTim ColemanFlare picture styleTim ColemanTim ColemanTim ColemanTim ColemanTim ColemanTim ColemanTim ColemanWith bright daylight, the camera will 'overexpose' without manual interventionTim ColemanSo I dialled in -2EV exposure compensation, which is buried in the camera's menu, for a moody effectTim ColemanTim ColemanShould I buy the Fujifilm Instax Pal 2?Buy it if...

You love fun, tactile, cute cameras
The Pal 2 got lots of admiring looks during my test period, and the multi-sensory controls are super-fun.View Deal

You want an Instax-like experience, but control over what you print
As a digital-only camera, you choose which photos you'd like to print through the app, or via direct wireless connection with a mini Link Instax printer. View Deal

Don't buy it if...

You just want a cheap toy camera
At over four times the price of the Kodak Charmera, the Pal 2 is one expensive toy. View Deal

You need a responsive camera
For me, shutter lag was the major drawback of the Pal 2 — there were many occasions when I missed a moment, or the camera shot a photo after I'd moved the camera. View Deal

Fujifilm Instax Pal 2 review: also consider

Kodak Charmera

If you simply want a tiny lo-fi camera, and really don’t care about picture quality or app connectivity, the Charmera is a much more affordable alternative.

Read our Kodak Charmera reviewView Deal

Fujifilm Instax Mini Evo

Also retro-styled, the Mini Evo is a digital camera with instant printer built in, and is all-round larger, including its screen. It's a similar price to the Instax Pal 2, and so it feels like better value, but it’s not pocketable in the same way.

See our Instax Mini Evo reviewView Deal

How I tested the Fujifilm Instax Pal 2

(Image credit: Tim Coleman)
  • Fujifilm loaned me the black and silver version of the Instax Pal 2 for three weeks
  • I kept the camera with me at all times, and took it to China for a work trip
  • I've shot around 150 photos using the various picture styles and aspect ratios (Instax borders)

Instax loaned me the black-with-silver-trim version of the Pal 2 for a few weeks, during which time I’ve kept it on me as an everyday camera, and taken it to China on a work trip.

I’ve used the various picture effects, aspect ratios (Instax film types), the self-timer and the LED flash, and tried the 10-frame animation mode.

At the time of my review, the Instax Pal app wasn't updated for use with the Pal 2 (on Android, at least). I'll update this review once I've paired the camera with the app and used it properly.

Categories: Reviews

HP OmniBook X 14 review: one of the longest-lasting laptops I’ve ever used

TechRadar Reviews - Tue, 09/29/2026 - 09:25
HP OmniBook X 14: Two-minute review

HP’s new OmniBook X 14 sets out to be an ultraportable device that doesn’t skimp on performance, thanks to its slender dimensions and powerful spec.

Its steely gray colorway conveys a simple, minimalist aesthetic that hardly pushes the boat out. This is matched by the lack of accoutrements and branding.

In terms of build quality, though, the OmniBook X shines. It’s an admirable blend of solidity and portability, with its impressively thin dimensions and light weight making it easy to slip into a bag. Its overall construction easily matches up to those of the best laptops.

One disappointing aspect is the port selection. Not only are there not very many, but they have a few design and placement issues that hamper their practicality.

With the Snapdragon X Elite chip installed, my OmniBook X review unit performed well during the tasks I conducted, from working and browsing to 4K streaming and even light gaming. It stays incredibly quiet even when such high demands are made of it, too, and although certain areas heat up, temperatures are far from worrying.

(Image credit: Future)

The 2240 x 1400 display is, as expected, sharp and vibrant, making for a fantastic viewing experience. It can be a little reflective at times, but the brightness levels are usually sufficient to combat the worst of it. The touchscreen is impressively capable too, being responsive and surprisingly smooth to the touch compared to many other laptop examples.

The keys are very light and snappy, as well as forgivingly spaced, which makes the OmniBook X a joy to type on. However, some may bemoan the lack of dedicated navigation keys and a number pad, while the touchpad could’ve been bigger to better facilitate navigation.

Battery life is yet another area where the OmniBook X excels. It managed to last over 28 hours in our test, which is an astonishing performance and puts it top of the league, along with other esteemed endurers, such as the Asus Zenbook A14.

All this excellence comes at a cost, as you may imagine, but compared to others in its class, it represents good value, especially the base model. Naturally, the base model is a weaker machine than the one I tested, but most of the other specs remain the same, making the OmniBook X a good value pick for those after a compact do-it-all laptop.

HP OmniBook X 14 review: Price & availability

(Image credit: Future)
  • Starts from £764 (about $1,000 / AU$1,400)
  • Available now with various configurations
  • Good price for the spec

The OmniBook X starts from £764 and is available now. A variety of AMD, Intel, and Qualcomm processors can be optioned, as well as various RAM and storage sizes, ranging from 16GB to 32GB for the former and 512GB to 1TB for the latter.

This is a good price considering the HP OmniBook X 14’s impressive spec. Another OmniBook, the Aero 7, costs about the same, and is similarly capable in many regards, although its display isn’t quite as sharp and lacks touchscreen functionality.

Another stern rival to the HP OmniBook X 14 is the Asus Zenbook A14, which is similarly priced yet weighs even less. However, it too has a lower resolution and lacks touch input.

HP OmniBook X 14 review: Specs

Base configuration

Review configuration

Price

£764 (about $1,000 / AU$1,400)

TBC

CPU

Snapdragon X Plus (X1P-42-100) (3.4GHz, 8 cores)

Snapdragon X Elite (X1E-78-100) (3.4GHz, 12 cores)

GPU

Qualcomm Adreno (integrated)

Qualcomm Adreno (integrated)

RAM

16GB LPDDR5x

16GB LPDDR5x

Storage

512GB NVMe PCIe 4.0 M.2 SSD

1TB NVMe PCIe 4.0 M.2 SSD

Display

14-inch 2.2K (2240 x 1400) LED Touchscreen, IPS, 16:10, 60Hz

14-inch 2.2K (2240 x 1400) LED Touchscreen, IPS, 16:10, 60Hz

Ports and Connectivity

2x USB-C (Power Delivery/ DisplayPort 1.4a, 1x 10Gbps, 1x 40Gbps) 1x USB-A (10Gbps), 1x 3.5mm Combo Audio Jack; Wi-Fi 6E, Bluetooth 5.3

2x USB-C (Power Delivery/ DisplayPort 1.4a, 1x 10Gbps, 1x 40Gbps) 1x USB-A (10Gbps), 1x 3.5mm Combo Audio Jack; Wi-Fi 6E, Bluetooth 5.3

Battery

59Wh

59Wh

Dimensions

12.32 x 8.8 x 0.56in / 313 x 224 x 14mm

12.32 x 8.8 x 0.56in / 313 x 224 x 14mm

Weight

2.97lbs / 1.35kg

2.97lbs / 1.35kg

HP OmniBook X 14 review: Design

(Image credit: Future)
  • Very thin and light
  • Solid build
  • Limited ports with some impractical placement

Like many in the sector, the OmniBook X has a smart but rather unremarkable appearance. The dark and dour gray finish certainly doesn’t help matters, and some edges and contours aren’t quite as smooth and sophisticated as they could be, if judged alongside the best MacBooks — the paragon of laptop forms. The rounded corners do at least help to soften this monolithic slab, though.

As with many HP laptops, the OmniBook X is built tremendously well. The materials may not feel state-of-the-art, and the base does have some flex around the keyboard area, but overall it strikes the ideal balance between sturdiness and convenience.

This is largely thanks to its ultra-thin lid and base; I don’t think I’ve seen a laptop body more slender than this. It’s also impressively light, helping the OmniBook X to rival some truly remarkable portable heroes, such as the Asus Zenbook 14.

(Image credit: Future)

However, physical connectivity pays the price for this leanness. There aren’t many ports on the OmniBook X: you get two USB-C ports on the left — both of which support power input external display output — and a USB-A port and a headset jack on the right.

It’s a shame that the USB-C ports aren’t split across both sides, something I usually prefer since it increases versatility for your setup and working environment. Equally impractical is the USB-A port, which utilizes a flip-down flap to fully open, as you more commonly see on laptop Ethernet ports.

I’ve rarely seen this mechanism on a USB port, though, and it merely introduces an element of needless inconvenience; other laptops as thin as the OmniBook X — such as the aforementioned Zenbook — manage to avoid such a mechanism. Also, the headset jack is quite far back, which could be a problem if your cable is on the short side.

HP OmniBook X 14 review: Performance

(Image credit: Future)
  • Versatile performance
  • Excellent but slightly reflective display
  • Light and snappy keyboard
HP OmniBook X 14 benchmarks

3DMark: Night Raid: 21,973; Fire Strike: 4,750; Steel Nomad: 484; Solar Bay: 10,981; Solar Bay Unlimited: 11,186; Solar Bay Extreme: 1,122; Solar Bay Extreme Unlimited: 1,124
Geekbench 6.5: Multicore: 14,204; Single-core: 2,427
Cinebench R23: Multi Core: 5,595; Cinebench R24: Single Core: 65; Multi Core: 374
Crossmark: Overall: 1,352; Productivity: 1,225; Creativity: 1,495; Responsiveness: 1,345
Passmark Overall: 4,104; CPU: 15,482.1; 2D Graphics: 393.3; 3D Graphics: 3,012; Memory: 2,552.6; Disk: 26,058.3
BlackMagicDisk: Read: 2,670MB/s; Write: 2,416MB/s
HandBrake 4K to 1080p: 29.86fps
Battery Life (TechRadar movie test): 28 hours and 28 minutes

The OmniBook X is an excellent performer on many fronts, making it suitable for both work and play. Qualcomm’s Snapdragon X Elite chip had no problem conducting basic productivity tasks or multi-tab browsing. It also streamed video just fine, including 4K content; I didn’t encounter arduous loading times or stuttery playback.

The OmniBook X can even handle gaming, to an extent. It even managed to run Cyberpunk 2077, albeit in a far from spectacular manner: I had to use low graphics presets without Ray Tracing, which resulted in rough visuals and some stuttering here and there, but it was playable enough for a quick fix.

(Image credit: Future)

Under such stress, the OmniBook X is remarkably quiet. Fan noise is noticeable but very suppressed, and while the back half of the unit — including parts of the keyboard — rises in temperature, it remains entirely within comfortable bounds.

The OmniBook X features an LED display with a somewhat unusual 2240 x 1400 resolution. This means it’s sharp and vibrant, although its lack of OLED technology means it can’t match the striking contrast levels of the best monitors and laptop displays. It can also be a little too reflective at times, although the maximum brightness is usually sufficient to counter the worst offenders.

The touchscreen is competent, with the surprising smoothness of its surface making it ideal for finger swipes and gestures, which isn’t something I can say of every laptop touchscreens I’ve used. On this front, it even rivals the best tablets. It’s a shame, though, that the display can’t fold back on itself (like those on OmniBook Flip models), so you can’t turn it upside down and prop it on a desk for tablet-style use.

(Image credit: Future)

However, when it comes to that other crucial input, typing, the OmniBook X is far more useful. The keys are very light with little travel, making them feel effortless and snappy. At the same time, they also provide good feedback and satisfying clickiness. They’re generously spaced, too, which certainly helped me to avoid making typos. However, with this large spacing comes a compromise to layout.

Although it still has navigation keys, many of these are integrated on the arrow keys as Fn shortcuts, which is a feasible solution, although I still would’ve preferred them to be on dedicated keys, as some other laptops manage to achieve. There’s also no dedicated number pad, although not many 14-inch laptops manage to squeeze one in, but a few do.

What’s more, despite the large amount of space below the keyboard, the touchpad disappointingly fails to make full use of it. It’s smaller than those on some other 14-inch laptops, which hampers navigation. However, I had no issues with its responsiveness, and its smooth surface, while not as silky as some others, is still sufficient for performing gestures and swipes easily. Taps and clicks are also light and responsive, yet tactile at the same time.

HP OmniBook X 14 review: Battery life

(Image credit: Future)
  • Best in class
  • Real all day battery life
  • Only a few rivals can match it

The OmniBook X is among the most enduring laptops in its class. When I ran a movie on a continuous loop on battery power, it managed to last over 28 hours, which is a staggering achievement.

The only other laptop I’ve tested that matches this is the Asus Zenbook A14, which logged the same time, give or take several minutes. What’s more, the OmniBook X is also quick to charge, taking about two hours to fully replenish.

Should I buy the HP OmniBook X 14?Scorecard

Attributes

Notes

Rating

Value

Considering what it’s equipped with, as well as its superb portability, the OmniBook X is good value.

4 / 5

Design

Fantastically thin and quite sturdy, but some inconvenient ports hurt practicality.

4.5 / 5

Performance

The Snapdragon Elite chip in my review unit worked wonders, handling the kind of tasks I’d expect from a workaday device — and more.

4.5 / 5

Battery Life

Easily among the best in class. I’ve only tested one other laptop that can match its longevity.

5 / 5

Final Score

Only a few niggles besmirch this otherwise extremely capable all-round laptop.

4.5 / 5

Buy the HP OmniBook X 14 if…

You value a portable design
Not only is the OmniBook X incredibly thin and light, it’s also built quite solidly.

You want great all-round performance
Whether you’re working, streaming content, or even indulging in some light gaming, the OmniBook X can do it all.

Don't buy it if…

You want the best interface for productivity
Although there are navigation keys, they share space with the arrow keys, and the touchpad fails to maximize its allotted space.

You want to use the touchscreen often
Although the touchscreen is very effective, the display itself doesn’t rotate far enough to allow for upside-down tenting, so you can’t use it like a tablet.

HP OmniBook X 14 review: Also consider

HP OmniBook 7 Aero
For a laptop equally as portable, consider another OmniBook, the 7 Aero. Like the X, we were impressed with its capable performance and slender dimensions. Also like the X, though, certain ports could be better placed, and its battery life pales in comparison.

Read our full HP OmniBook 7 Aero review

Asus Zenbook A14
Even lighter than the OmniBook X and pretty much just as thin, the Zenbook A14 is a strong alternative. It too has great performance and a satisfying keyboard, but I don’t think its display is quite as good, nor is its price as competitive.

Read our full Asus Zenbook A14 review

How I tested the HP OmniBook X 14

(Image credit: Future)
  • Tested for several days
  • Used for a variety of tasks
  • Conducted comprehensive series of benchmarks

I tested the OmniBook X for several days, during which time I used it for working, general browsing, streaming 4K content, and gaming.

I also ran our series of benchmark tests for laptops, designed to assess every facet of performance. To test its battery life, I played a movie on a continuous loop while the laptop was unplugged until it shut down.

I’ve been using laptops for a long time, and have reviewed countless models, from small budget offerings to large gaming machines, and everything in between.

  • First reviewed: September 2026
  • Read more about how we test
Categories: Reviews

RugOne Xsnap 7 Pro rugged phone & action cam review

TechRadar Reviews - Tue, 09/29/2026 - 09:05
RugOne Xsnap 7 Pro: 30-second review

Launched at the Berlin IFA this year, the RugOne Xsnap 7 Pro fuses two well-known products into something genuinely new.

In this case, those elements are the rugged Android smartphone and the small action camera. In this design, the two can be separated, giving you a rugged phone that can spawn an action camera, the Xsnap Go, whenever you need one.

But ignoring that aspect for a moment, what does the Xsnap 7 Pro offer for those who just need a rugged Android phone? As rugged designs go, this one doesn’t have a massive battery, but it does have a decent processor in the Dimensity 9400, and with 12GB of RAM and 512GB of storage, the specifications are at the higher end of this scale.

Also, even if you don’t use the detachable camera, the built-in cameras are decent and capable of good results. But the party trick is the tiny square camera that can be removed from its slot in the back of the phone, which doubles as a charger, and then remotely controlled to capture images and video.

It connects via the platform's WiFi hotspot, and all captures are stored in the 64GB of internal camera storage before later transfer to the phone. The maximum video resolution is 2.7 K, but it supports anti-shake and the option to flatten the barrel distortion the fisheye lens creates.

This camera isn’t a direct competitor to any camera GoPro recently made, the DJI Osmo Nano, or Insta360 Go Ultra. However, it’s included in the price, and it could be useful for anyone who needs to be in a location where using the camera built into the phone isn’t convenient.

This design probably isn’t the best rugged phone, since the action camera slightly compromises it, but if you need a solid, powerful phone with a detachable camera, this is it.

(Image credit: Mark Pickavance)RugOne Xsnap 7 Pro: price and availability
  • How much does it cost? $999
  • When is it out? Available now
  • Where can you get it? Launched on Kickstarter on the 7th of September 2026

I don’t follow why so many Chinese device makers do this, but RugOne initially launched this phone on Kickstarter. The supposed purpose of that platform is to get funding for a concept to turn it into a finished product, but since I had the review hardware almost before the Kickstarter launched, it appears to be entirely a marketing exercise.

When the Kickstarter opened for pledges on 7 September 2026 with an early bird price of $899 (€799), Wider retail availability is planned for October 2026, at $999 in the United States and €1,099.99 across Europe.

As with any Kickstarter campaign, backers are funding a pledge rather than making a conventional purchase. Delivery estimates, warranty terms and final specifications can all shift between a campaign page and a shipped product, and this is worth stating plainly in the published review rather than leaving it as an implication.

That said, the phone and camera do exist, but I can’t give you more definitive timescales or pricing, which isn’t helpful.

If the phone alone was $999 at launch, I’d be inclined to think it was overpriced. But with the camera included, that’s a whole different calculation based on what you think the camera is worth.

A DJI Osmo Nano Standard Combo (64GB) is roughly $390 with 64GB onboard, but that’s a camera that’s capable of 4K at 60fps and a 200-minute battery life.

If I optimistically value the Xsnap Go camera at half that value, then $800 still seems a little steep for the phone. But there is some convenience in having the camera housed in the phone and charged from it.

Sadly, I don’t recall seeing any other products with this arrangement, so the choice is either this, a phone, or a phone-and-action-camera combo.

(Image credit: Mark Pickavance)
  • Value score: 3.5/5
RugOne Xsnap 7 Pro: Specs

Item

Spec

CPU:

MediaTek Dimensity 8400 (MT6899Z/ZA), octa-core up to 3.25GHz

GPU:

ARM Mali-G720 MC7

NPU:

MediaTek NPU 880

RAM:

12GB

Storage:

512GB UFS 4.0

Screen:

6.67-inch AMOLED

Resolution:

1220 x 2712 (1.5K), 120Hz, 445ppi, 1700 nits peak

Screen Protection:

Corning Gorilla Glass Victus

SIM:

2x Nano SIM + eSIM (two of three can be used)

Weight:

477g

Dimensions:

172.5 x 83.4 x 28mm

Rugged Spec:

IP68 IP69K dust/water resistant (up to 2m for 30 minutes), MIL-STD-810H Certification

Rear cameras:

50MP Main Camera + 64 MP Night Vision Camera

Front camera:

32MP

Detachable camera:

2.7K@30fps, 1440p@30fps, 1080p@30fps, 64GB storage

Networking:

5G. WiFi 6E, Bluetooth 5.4

Audio:

3.5mm audio jack for headphones

OS:

Android 16 (updates promised)

Battery:

9,200mAh (Max 45W wired, 50W wireless, 10W reverse)

Colours:

Sand Dune, Black

RugOne Xsnap 7 Pro: Design
  • Curious structure
  • Detachable Xsnap Go camera
  • Lots of accessories

(Image credit: Mark Pickavance)

There is something about the Xsnap 7 Pro that smacks of the kind of exercises students do when they're aiming to become industrial designers. In that, taking two disparate devices and fusing them into one can be an interesting challenge.

The problem the people behind this phone didn’t solve was how to house a camera that’s 25mm deep without making it implausibly thick at one end.

We’re all used to the camera cluster being raised to provide extra depth for the optics and sensors, but this design takes that a whole extra level.

Curiously, RugOne quotes the thickness as 19.1mm, but I measured it, and 28mm seems more accurate. The upshot is that it goes in a pocket more easily upside down, but getting past the camera bulge might be difficult unless you have huge pockets.

Removing the camera doesn’t make it any thinner.

The mechanism for detaching the Xsnap Go camera is straightforward yet quite annoying. To release the camera, press the button below it and then, gripping the edge of the lens cover, pull it out. I’m making this sound simpler than it is, because the camera is held in place not only by the latch the button operates but also by magnets. If you loosen your grip at all when removing it, the camera will shoot back into its home in an instant.

The magnets are there because the rear of the camera has contact pads that connect it to the phone for charging, and for them to work, they need to be flush with the opposing pins on the bottom of the recess.

Putting it back in is much easier, as once the magnets grab, it automatically locates.

The space the removable camera occupies forces the rear integrated camera sensors to the left, where they are vertically stacked.

Away from that area, the back is entirely flat and has a backlit RugOne logo running across it that is called the Aura Pulse, which can be set to animate for an incoming call or a notification. Unfortunately, the LEDs behind it are too dim to be useful, as I had a hard time telling whether it was working even in a dimly lit room.

Potentially more useful, the flat part of the underside does support wireless charging. However, because a significant amount of weight is in the raised area, I couldn’t balance it on my Ugreen charger without it toppling over.

(Image credit: Mark Pickavance)

Most of the rest of this design uses the standard playbook for rugged phones, with the power and volume rockers on the right, along with one custom button and another customisable button on the left intended for Walkie-talkie use. The SIM card slot is next to the USB-C port, and the phone is IP68 rated for water resistance even if that port doesn’t have a rubber plug.

The only notable feature at the top end is an IR blaster, which lets the Xsnap 7 Pro act as a remote control if you need it.

The 6.67in AMOLED panel runs at 1220 x 2712, which RugOne markets as 1.5K, with a 120Hz refresh rate and a claimed 1700 nits of peak brightness. Corning Gorilla Glass Victus sits on top, a sensible choice for a phone that will spend time in pockets, tool bags and glove boxes.

On paper, this puts the Xsnap 7 Pro's screen ahead of many rugged phones, which often settle for lower resolution or dimmer panels to save cost. Brightness claims from any manufacturer are difficult to counter, but this one is one of the brighter ones I’ve tested when measured directly under daylight conditions against other devices.

One thing I liked about this exceptionally bright and colourful display is that it has an under-screen fingerprint sensor, which makes it much easier to use for left-handers.

Overall, from the outside, this looks like a dozen ruggedised designs Ulefone (RugOne) has made, except for the swelling needed to accommodate the removable camera. I’d be more critical of those design choices if I could imagine a way of including it without it creating the ergonomic compromises it plainly created. But I can’t think of how this might have been better, so it is what it is.

Design score: 3.5/5

RugOne Xsnap 7 Pro: Hardware
  • MediaTek Dimensity 8400
  • UFS 4.0 storage
  • USB 3.2 Gen 1 port
  • 9300mAh battery

The underlying platform used here is the MediaTek Dimensity 8400, an octa-core chip built on Arm Cortex-A725 cores and paired with an Arm Mali-G720 MC7 GPU. It is a genuinely modern mid-to-upper-tier platform, backed here by 12GB of RAM and 512GB of UFS 4.0 storage, with the option to borrow further RAM from storage through Android's virtual memory feature.

If you see claims of 24GB of RAM, that’s marketing people getting overly excited about that feature and trying to claim virtual memory is real RAM.

For me, the important takeaway is the UFS 4.0 storage. One of the things I noticed almost immediately about this device is how quickly it downloads and installs applications. Read and write speeds are a major factor in that speed, along with the processing power of the Dimensity 8400.

Another unexpected feature RugOne included is that the USB-C port isn’t the same as what most phone makers include. While it has the physical housing of a modern USB-C port, most phones only have it wired to the USB 2.0 standard, capping the file transfer speed at around 40Mb/s.

On this device, the port is actually wired as USB 3.2 Gen 1, which enables much faster file delivery. This is only possible because the UFS 4.0 storage can keep pace, something that a phone with UFS 2.2 or 3.0 storage wouldn’t be able to offer.

(Image credit: Mark Pickavance)

A 9,300mAh cell is a reasonable capacity for any phone, rugged or otherwise, and RugOne claims up to seven days of typical use. That’s probably a significant oversell, since my testing suggests that a couple of days can eat through that capacity if the battery use isn’t managed.

Charging is handled over 45W wired PD or 50W wireless, with 10W reverse wireless charging thrown in for topping up earbuds or accessories. However, one additional draw on the battery power is the action camera. If you use the camera, once returned to the phone, it immediately starts to charge from the battery until its internal battery is fully charged.

Therefore, if you run low on power, I’d recommend not re-docking the camera.

Docked back onto the phone, RugOne claims up to 20 full recharges of the module from the phone's battery, extending total shooting time to a claimed 800 minutes across a full charge cycle of the handset.

The kit includes an independent charger for the camera, so you can keep it fully charged with a power pack.

  • Hardware score: 4/5

(Image credit: Mark Pickavance)RugOne Xsnap 7 Pro: Cameras
  • 50MP and 64MP on the rear
  • 32MP on the front
  • Detachable Xsnap Go action cam
  • Four cameras in total

The RugOne Xsnap 7 Pro has four cameras:

Rear cameras: 50MP Samsung GN9, 64MP OmniVision OV64B Night vision
Front camera: 32MP GalaxyCore GC32E1
Detachable camera: OmniVision 5MP OV-OS05A10

The primary camera on the Xsnap 7 Pro is the classic Samsung GN9 sensor, a 50MP OIS design with an f/1.88 aperture and 84° FOV optics. If this were the only sensor on this phone, it would be reasonable, since it’s a solid design that can take great pictures, especially in good lighting conditions.

In my examples, I accidentally left HDR mode on, so the colours are excessively punchy, but it will take better, more colour-balanced images if you leave it off. The GN9’s weakness is that it has no zoom optics, so you're limited to basic digital zoom.

The other weakness of most Samsung primary sensors is that they tend to get grainy when the light level drops. Thankfully, if you want sharp images in complete darkness, then the 64MP OmniVision OV64B is a great option. And, as long as the subject is within the IR illumination, it will be captured precisely.

The 32MP Samsung GC32E1, f/2.45 sensor is probably overkill for a FaceTime camera, but it's in so many phones these days that it's almost becoming a de facto standard.

But none of these cameras is why you would consider this phone, so let’s get to the detachable Xsnap Go action module, which uses the OV-OS05A10 sensor, a 133° FOV, f/2.4, 14mm equivalent.

Before we get into the details of this device, I want to talk about some of the mechanics of using this device, and how it doesn’t always work the way you might want it to.

For starters, you don’t use this camera through the camera app; instead, it uses its own dedicated Xsnap Go app, which will only talk to the detachable camera if certain phone settings are configured.

One requirement is a WiFi hotspot, so you can’t use it while the camera is active and also be logged into a local WiFi access point. You also need to remember to disable this when you are done, as the app won’t disable it when it exits.

With all settings configured, a link to the camera is established, whether the module is mounted on the phone or detached from it.

Which begs the question: how far can the phone and camera still talk? Not very far. I estimated the limit at about 30 ft if any structure is involved, and maybe 50 ft outdoors. One issue I ran into is that if the phone and camera disconnect while recording, the app can't easily re-establish the connection, and at least once I had to reboot the phone to get them to talk again.

You can use the camera's single button to take photos or record video without the app, but you won't know if it's run out of internal storage without the phone connected.

Via the app, you can select basic video recording, slow motion, time-lapse, interval photo and single still image capture. The 5MP sensor's best resolution is 2.7K, while the Samsung sensor on the phone offers 4K. The camera has 64GB of storage that isn't expandable, and you must instruct the device via the app to copy the captures to the phone's storage.

It offers various motion and distortion compensation options, and you can manually tweak exposure settings or use HDR. It’s clearly not up to the primary sensor's capabilities, but you can detach it and place it away from the phone for another perspective.

That could be incredibly useful for someone working, for example, on a vehicle engine who needs to be behind the steering wheel but still see what’s happening in the engine bay.

(Image credit: Mark Pickavance)

In my testing, I did some motion-compensated video and time-lapse, and the results were decent. The only issue I noticed, and some dedicated action cameras suffer with this too, is that if the exposure changes during a time-lapse, the camera can’t adjust for the new lighting conditions.

The run time of my time-lapse was 40 minutes and 30 seconds, half a minute more than RugOne claims for the battery life on the detachable camera. This runtime might have been longer if RugOne made better-considered accessories. The phone includes a small charging dock and a tripod mount accessory for the detachable camera.

Had these been one item, and not two, a power bank might have been able to keep the camera running for longer recordings. Unfortunately, they are separate and not designed to work together, as the camera can only be attached to one of them.

That said, the detachable camera is something unique about this design, and even with some notable limitations, it can be extremely useful.

(Image credit: Mark Pickavance)Mark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark PickavanceMark Pickavance
  • Camera score: 4/5
RugOne Xsnap 7 Pro: Performance

Phone

RugOne Xsnap 7 Pro

Oukitel WP500 Ultra

SoC

MediaTek Dimensity 8400

MediaTek Dimensity 8300

GPU

ARM Mali-G720 MC7

ARM Mali-G615 MC6

NPU

MediaTek NPU 880

MediaTek NPU 580

Memory

12GB/512GB

12GB/1TB

Weight

477g

414.3g

Battery

9200

10000

Geekbench

Single

1396

1239

Multi

4789

3525

OpenCL

7678

7196

Vulkan

8513

8171

PCMark

3.0 Score

16075

15219

Battery

23h 33m (17%)

22h 37m (19%)

Charge 30

%

28

42

Passmark

Score

14225

18554

CPU

11068

8748

3DMark

Slingshot OGL

Maxed Out

Maxed Out

Slingshot Ex. OGL

Maxed Out

Maxed Out

Slingshot Ex. Vulkan

Maxed Out

Maxed Out

Wildlife

Maxed Out

7958

Nomad Lite

1305

953

The Xsnap 7 Pro has a few good things, and one that isn’t so encouraging.

For comparison, I’ve used the Oukitel WP500 Ultra, a premium design that uses the slightly less impressive Dimensity 9300, and not the 9400 that the Xsnap 7 Pro sports.

Overall, in most tests, the Dimensity 9400 provides about another 10% of performance, and the ARM Mali-G720 MC7 is also a significant uplift.

It’s annoying that 3DMark is mostly overpowered by both these platforms, but the Nomad Lite test shows how the ARM Mali-G720 MC7 delivers when combined with the UFS 4.0 storage.

And that would be the whole story, if it wasn’t for the battery test.

Is the downside of the UFS 4.0 storage that it consumes more power? It certainly doesn’t seem that way, because with slightly less battery, the Xsnap 7 Pro lasted even longer than the WP500 Ultra.

I believe a contributing factor is the OLED display on this phone. My methodology for the battery benchmark is to reduce screen brightness to about 120 nits. And the OLED is so much brighter than a typical VA panel that its brightness setting is around 20%, not 40% or more.

What’s harder to tell is whether having the detachable camera connected and charging from the phone also has a significant impact. It’s nice that you can recharge the camera without needing the charging base, but does that come with a catch? Maybe, but you can always remove the camera from the phone and charge it separately.

  • Performance score: 4/5
RugOne Xsnap 7 Pro: Final verdict

(Image credit: Mark Pickavance)

I have mixed feelings about this design for a few reasons. But before we get to the caveats, I need to call out the lovely build quality that RugOne-branded hardware is rocking, which is generally excellent. This phone feels exceptionally well made and able to take more than a few light knocks. That makes it suitable for anyone who works outdoors or in harsh environments.

The base platform is also elegantly powerful, making the experience responsive and useful in a wide range of situations. If you occasionally game or use VR, this phone has enough power to do it smoothly.

The standard camera installation is workmanlike and can deliver good results. However, the detachable Xsnap Go camera isn’t quite at the same level, and you need to configure it optimally to get the best results. If 2.7K resolution video and a 40-minute battery life are enough for your needs, this could be the phone for you, but it doesn’t embarrass any dedicated action cameras currently on the market.

If you work alone but need to be in two places at once to observe events, this solution might work for you, as long as you can work with the limited camera runtime.

The camera's caveat is that it makes the phone harder to pocket, and it could drain the internal battery when you don’t want it moving to the camera.

But minor points aside, this is still a unique offering that some professions might find invaluable.

Should I buy a RugOne Xsnap 7 Pro?RugOne Xsnap 7 Pro Score Card

Attributes

Notes

Rating

Value

Kickstarter launch, but the specifications weren’t going to make this a cheap phone

3.5/5

Design

Including the camera has made this phone an odd shape

3.5/5

Hardware

Powerful SoC and UFS 4.4 storage combine well

4/5

Cameras

Good primary camera sensor and night vision, but only 2.7K on the Xsnap Go

4/5

Performance

Lots of SoC power and plenty of storage, but battery performance could be better

4/5

Overall

A unique offering, but it might cost more than a phone and an older GoPro

4/5

Buy it if...

You need remote viewing
Being able to detach the camera and view that in a different location could be incredibly useful in numerous occupations. The range is limited, but being able to capture video and still images while live viewing could be a game changer.

You need a powerful phone
The Dimensity 9400 in the Xsnap 7 Pro is a powerful modern SoC with enough performance for most applications. Using 512GB of UFS 4.0 storage and a proper USB-C 3.2 Gen 1 port, this device is perfect for those who push their equipment hard.

Don't buy it if...

You already have an action camera
The Xsnap Go is a modest action camera with only 2.7K resolution that doesn’t offer the same feature set as a GoPro or Insta360. If you have one of these, you can do roughly the same things, but typically at 4K resolution or better.

Battery life is critical
The weakness of this design is battery life, as the performance of the phone reduces run time and recharging the Xsnap Go camera also takes its toll. If you want a phone that will still be operational after a week in the wilderness, then this isn’t it.

For more ruggedized devices, we've reviewed the best rugged tablets, the best rugged laptops, and the best rugged hard drives

Categories: Reviews

Nothing Headphone (1) Pro review: a strange case, but sonically not without merit

TechRadar Reviews - Mon, 09/28/2026 - 20:00
Nothing Headphone (1) Pro: Two-minute review

I love an audio outfit that refuses to kowtow to the norm (no thinly disguised AirPods copies here) and instead forges ahead with unconventional and striking ideas — and not just visually, but within the driver count and feature set, too.

Nothing's success in the audio and headphone arena is deliciously hit-and-miss. There have been some huge, long-term budget wins and an inaugural set of 'close, but no cigar' cans that made us yearn for an update to see if the relatively young tech brand (born of OnePlus' co-founder Carl Pei in 2021) could fix things. And you know, it certainly could…

But here we are, smash-hit affordable second set in the bag (albeit an actual bag, and one that reminded me of swimming lessons in grade school) and on to a third set of headphones from Nothing, this time in the much trickier premium space.

Can the Nothing Headphone (1) Pro sit pretty at the very top of the firm's over-ear lineup and perhaps even snatch a spot in our best noise-cancelling headphones guide? If you just gave me the headphones and, ahem, nothing else, it'd be a much easier recommendation than when handing over the whole package.

Nothing Headphone (1) Pro next to the Nothing Headphone (a) and CMF Headphone Pro, two much cheaper optionsFutureFutureFutureFuture

Nothing has worked very hard on the details here, including a new triple-driver audio architecture and upgraded materials throughout. There's machined titanium which actually helps to make the arm 45% lighter than Headphone (a), 9H Panda Glass on the ear cups (which Nothing assures me has been thoroughly drop-tested 18 times at a height of 1.8m, so it absolutely, positively will not shatter) and even 12% thicker padding and 10% wider headband than Headphone (1). Also, there's a new foam lining in the cups that's a claimed 50% softer, thanks in part to a new dual-layer system with a silicone baffle wall around the cups.

And here's another claim: 40% better ANC than the Headphone (1) Pro's nearest older (a) stablemate, thanks to 10 mics in total that have been repositioned on the inner walls of the earpieces. Does all of this make for a more silent backdrop for your music? You betcha it does.

Acoustically, Nothing isn't afraid of a collab either, and for this set of cans it teamed up with the famous (and rather chic) Metropolis Studios in Chiswick, London. This was not only for the creation of a new "Pro-level Flat EQ switch" on the left ear cup, but also to unveil a new Dynamic Spatial Audio mode plus five custom EQs, where one is meant to sound like you've been dropped into Studio B at the professional recording facility.

So where's the "but" within my verdict? For me, it's a weighty issue. Headphones like these must always marry sound quality and comfort with battery life and portability. Here, the battery life with ANC is a relatively unexciting 30 hours (or 28 with LDAC and ANC both in use), although it jumps to 68 hours without ANC or LDAC deployed. And once you add the case, it more than doubles the product's weight in your bag. The thing is, given the use of glass on the ear cups, you wouldn't want to go without a case, would you?

Nothing takes great pains to sell you on the aesthetic and design language of this new case, even suggesting you add a strap so it becomes a headphone handbag where the headband is the handle of the bag. But, I'm sorry, the Apple AirPods Max at least made the 'headphone bra' (still one of the most controversial cases out there) small and lightweight. This gray half-shell is not light — and don't go thinking it'll at least house your bundled USB-C-to-USB-C and 3.5mm-to-3.5mm cables, or even a replacement battery. It will not.

I think much of the added expense here goes on said case. And that to me does not represent value. Simply put, I found myself reaching for other headphones simply because I didn't want to carry the Nothing option. And that is a shame.

Sonically, there are marginal gains to be had over the Headphone (a) but depending on the music you most enjoy, you may actually prefer the (much) cheaper product from Nothing's own catalog for expanse and excitement. So again, it's a tough sell.

Nothing Headphone (1) Pro next to the inaugural Nothing Headphone (1), with its full caseFutureFutureFutureFutureFutureNothing Headphone (1) Pro review: Price & release date
  • Released on September 28, 2026
  • Priced $399 / £349 / (approx. AU$655)

Now then. This is premium territory for Nothing and then some, isn't it?

Given that the Nothing Headphone (1) launched in July 2025 for $299 / £299 / AU$549, and the follow-up Nothing Headphone (a) arrived in March 2026 for half that (at $199 / £149 / AU$329) Nothing essentially has to upsell its fans to the tune of $200 — or £200 — more than the most recent and very highly rated Headphone (a) release, to get you to look over at the Pro-suffixed set. And that is a big ask.

Now, consider the five-star CMF Headphone Pro, which I called "as good as $99 / £79 / AU$179 headphones can possibly look and sound" shortly after their release in September 2025. Hard not to think that the big ask just got even bigger, no?

Then again, $399 / £349 is not an unreasonable asking fee if they're that good; there's plenty at this level to pit them against in the wider flagship headphone space (Sony's WH-1000XM6 are $50 / £50 pricier, at $449 / £399 / AU$699, for example).

It's just that rarely have I seen three sets of headphones from a single brand, all released all within the same 15-month period, that a) look so similar (see attached photos) in terms of design and shape, save for the case you put them in; and b) that vary so much in price.

So let's delve a little deeper, to see where the money's gone.

(Image credit: Future)Nothing Headphone (1) Pro review: Specs

Drivers

1x 40 mm bass dynamic driver, 1x precision dynamic driver and 1x treble xMEMS driver per ear cup

Active noise cancellation

Yes (adaptive, tweakable static, ambient passthrough)

Battery life

Up to 68 hours with ANC off; up to 30 hours with ANC on

Weight

Headphones: 327g;
Case: 383.5g

Connectivity

Bluetooth 6.0 with LDAC, USB-C, Auracast

Frequency range

20Hz – 40kHz

Waterproofing

IP52

Other features

Certified hi-res for wireless listening up to 24-bit/96kHz; wired listening up to 24-bit/192kHz; 5 dynamic spatial audio modes in collab with Metropolis, dual device connection; auto-wear detection; low latency mode; advanced EQ per driver tabs; Personal Sound

Hello, yellow! (Image credit: Future)Nothing Headphone (1) Pro review: Features
  • 5 Spatial Audio modes (Standard, Studio B by Metropolis, Live House, Club, Concert Hall) are fairly light touch
  • Flat EQ switch to toggle between neutral and everyday listening (meant for pro mixing) is interesting, if hard to access… and not to my taste
  • 5 mics per ear cup for ANC is a big improvement, aided by better passive NC

The headline-grabber here is the addition of Spatial Audio profiles that can either be deployed with or without head-tracking. If you're hoping for AirPods Max to Apple Music iPhone levels of head-turning immersive audio trickery, you'll be disappointed, but I did find the profiles added a sense of "OK, the live gig feels like it's in front of me" or "Oh I'm in a recording studio in leafy Chiswick, I get it" to the sound profiles.

As if to really emphasize the new audio architecture under the hood, Nothing has gone particularly specific with the EQ tabs here. If you bypass 'Simple' (which offers the usual 'vocal boost' presets and the option to create your own) and head to 'Advanced' within the Equaliser page on the Nothing X app, you can actually tweak the various settings per driver — well, for the 'precision driver' (ie. the midrange dynamic driver) and the 'main drivers' (which would be the 40mm bass dynamic unit and the xMEMS treble driver). Yes, really.

Add to this Nothing's Q Factor tab (to define the width or sharpness of the frequency band being boosted or cut), Gain (the loudness in decibels of a specific frequency band being toyed with) and Frequency (you can choose a specific frequency from 20Hz up to 40kHz to tweak) and essentially, if you're quite sure that 11,595Hz is where you need a boost you can have at it. And you can have it sharply, and with a modified jolt to the loudness, if you so want — by first locating the Precision dynamic driver dot on the stave, because that handles frequencies between 5 kHz–15 kHz.

While impressive to toy with, the above sonic tweaks pale into relative insignificance once you locate Personal Sound, in my opinion. It's not new to this product, but I've long been a fan. This is a test of your actual hearing, in whatever environment you find yourself. It takes around three minutes, during which you listen to ever-decreasing tones of different frequencies in each ear, until you cannot hear them. At the end of it, a personalized profile will be added to your cans and this, to me, makes a lot more difference than the tweaks I made without it. My hearing is good, but still, this test finds the areas that could be subtly bumped or eased off, for me.

Now, Nothing's 'Flat' EQ toggle, on the top inner edge of the left ear cup, developed alongside Metropolis Studios. Honestly, it's hard to find and difficult to switch on or off while wearing the headphones, but since you can't do so within the app, you will need to use said switch. The feature is billed as a "neutral profile that removes coloration and processing" and "designed for specific listening situations — like reviewing tracks or comparing mixes". Nothing even suggests that the type of situations in which you'll need it: "a clean setup to make critical listening decisions about how a track behaves before it reaches audiences." You should note that Transparency Mode, Spatial Audio and EQ settings are disabled when Flat EQ is on.

For me, Flat EQ is a miss. Deploy it and there's an odd sense of being in a tunnel with a bit of a warm veil and even a slight echo to the audio. It's novel, but neutral and useful for critical listening? During my testing, not so much.

Nothing / taken by FutureNothing / taken by Future

What of the ANC? It's much better. Nothing has put three feed-forward and two feedback mics on each ear cup capture noise. The mics are also now positioned inward in a bid to better avoid direct wind exposure and airflow interference. Basically, Headphone (1) Pro does a better job at understanding your surroundings and adjusting things according to extraneous sounds in your immediate environment.

You can select Adaptive Active Noise Cancellation, which automatically adjusts between Low, Medium and High levels based on your surroundings for a claimed maximum of 46 dB of noise reduction, or manually select it yourself — and when deploying 'High' I was very impressed. My hunch is that the claimed "40% broader noise cancellation coverage across the frequency range" and "5 dB stronger average noise reduction than Headphone (1)" are true, but that aside from the mics and software, said improvements also have plenty to do with the stepped-up padding and new silicone ‘baffle wall’ around the cups to create a better seal around the ear.

Transparency mode? It's good. It really does do what it says on the tin: lets the world in (particularly my voice and the voices of those around me, vying for my attention), but without any tinniness to my music.

Elsewhere, you can "start a broadcast" to other Auracast-enabled devices nearby simply by playing music and toggling on 'Broadcast Audio' in the ap. You can also receive or join broadcasts (with or without a password, if you or your sharer has set one), which is fun and still relatively novel, despite Auracast having launched a few years ago now. Dual connection and a low-lag mode are here, and during my tests wearer-detection (which can be switched on or off in the device settings) was very reliable.

Lastly, call quality: very good indeed. My testing involved taking calls on a particularly windswept day on the Dorset coastline, yet callers said I sounded remarkably clear.

  • Features score: 4.5 / 5

(Image credit: Future)Nothing Headphone (1) Pro review: Sound quality
  • LDAC support, plus hi-res wired via USB-C or 3.5mm bundled cables
  • Highly tweakable sound (if hard to understand via the driver EQ tabs)
  • Integrated and neutral by default — if you want 'fun' they may not be ideal

If you're in a rush, know that much of what I'm about to impart in this section can be boiled down to: "They're very good for sound, but better than the cheaper Nothing Headphone (a)? Not especially — unless you always listen with wires".

There are of course the additional spatial audio modes (all five of them, with the option of head-tracking) in this new product, whereas the Headphone (a) only offers a concert mode or cinema mode — and both of those can only move with your head, rather than giving you the option of using your device as a fixed source. However, I found each of the profiles within the Headphone (1) Pro quite light touch, rather than the "Wait, that's so good!" experience you get when sonic passages slip under your chin, past your left ear and down to the small of your back with the AirPods Max 2.

There's nothing wrong with subtlety and faithfulness to a recording (in fact I really like these attributes in headphones) but when listening to my specific reference tracks in an a/b test against the older Nothing headphones, I actually found the bite, attack and general zeal across the frequencies of the cheaper Headphone (a) marginally more fun to listen to than the integrated, studious, hi-fi approach of the Headphone (1) Pro.

That will of course be a matter of taste and may depend on which genres of music you most enjoy. Both sonic recipes are valid — and when listening via USB-C audio to hi-res tracks on my FiiO DAP, greater detail through the leading edges of notes can certainly be had in the Headphone (1) Pro, which makes sense when you realize that the Headphone (a) tops out at 24-bit/96kHz, whereas the Headphone (1) Pro lists resolutions at up to 24-bit/192 kHz when going wired with USB-C.

I cue up The Killers' In the Car Outside and there's a beautiful circumaural presentation to the audio. I have to commend Nothing on the multi-driver integration (the company is proud to have created one of the first over-ear headphones to use an xMEMS driver), with a treble that's particularly sparkling, easy and natural when Brandon Flowers starts to unfurl his vocal folds.

The Nothing Headphone (1) Pro also dig an extra ounce of texture and emotion from within John Frusciante's hard-lived but defiant vocal in Omission, alongside (but never at the expense of) the tambourine and female backing vocals. Switch to an instrumental or classical piece, such as Roberto Cacciapaglia's Universal Dance, and the Headphone (1) Pro are at their happiest, celebrating the rhythmic depression of keys in a cohesive and expansive mix. Head to BackRoad Gee's raucous, rough and ready grime track Live in the Flesh, however, and you may just think these headphones are playing a little safe through a clean, but perhaps marginally over-sanitized, low end.

That said, this is less about any sonic shortfalls with the product itself and more about the well-documented talents of Nothing's own previous (a)-suffixed cans which, however you slice it, are $200 (or £200) cheaper than these. And I'm just not sure the sound is that much better.

  • Sound quality score: 4 / 5
FutureFutureFutureFutureFutureFutureFutureNothing Headphone (1) Pro review: Design
  • Slightly firmer but still comfortable clamping force, which helps with ANC
  • Triple-driver array is well handled
  • Battery life is middling; the half-case is a sore point

I'm a big fan of the adjusted clamping force and general comfort levels here, despite the nominal additional weight (these weigh 327g; the older-generation set weigh 310g).

Nothing products are known for their forward-thinking design language and so if this section feels a tad longer than is traditional for a set of headphones, there’s your reason: there’s plenty to get through.

Visually as well as under the hood, the Headphone (1) Pro’s ear cups can be seen as a refinement on those in the Headphone (1) in the same way that the MiniDisc was a refinement on the cassette tape; much better technically, but perhaps unable to command the recognition or longevity it deserved. To be clear, yes, I have lived through both physical formats' respective heydays.

A lot of work has been done on this ear cup design and Nothing wants you to know it; the padding around each cup is dual-layer and much better; the hinges feel more premium (and are silent); the headband padding means said band never gets tender across the top of my head.

Sadly, we do need to talk about the case, though. It’s hard to find good things to say about it. At a time when Apple AirPods Max 2 arrived still wearing their ‘headphones bra’ idea in lieu of a much-wanted hard-shell case, it’s odd that Nothing didn’t read the room. Instead, Nothing unveiled something like that but bigger, heavier and clunkier, and that only covers the ear cups so your cans look like they’ve been dropped (and are still partially suspended) in wet cement.

(Image credit: Future)

And if you’re thinking that at least there’ll be room for your USB-C cable or even replacement batteries in that thing, surely, sadly no. The hinge isn’t especially premium and so the case simply clatters open, which is neither easy to use nor especially useful. It is also heavy at 383.5g (much heavier than the cans themselves) and, I believe, has been an expensive extra. I’d have preferred to opt out. For those who want to wear their headphones in places other than over their ears or draped around their neck, there are holes to fit your own shoulder strap to the Nothing case, so the whole thing can be worn like a cross-body handbag.

I can imagine Nothing's design team excitedly saying “It’s never been done before!” and the market research focus groups coming back with the reason why. This case makes the Nothing Headphone (1) Pro heavy, bulky and cumbersome.

Yes, there is a glass top plate to each driver housing, but Nothing took great pains to tell us how sturdy and shatter-proof this solution is, so there’s no need for such a bulky case, surely? I recently took a very long-haul flight — a great opportunity to test the active noise cancellation here, and very good it was. But let me tell you that once they were in my carry-on bag, I’d have given a lot of money not to have committed to this plan. And it’s a shame, because the actual audio architecture is really good here.

There are also a lot of buttons of varying shapes and sizes on the Headphone (1) Pro. The left ear cup is where you’ll find Nothing’s new ‘flat’ sound profile button slider, on the inner edge of the rectangular top corner of the softly rectangular earpiece. It’s a little hard to access and slide across during wear, but it’s there. The right earpiece, however, is a lot busier. It's a solution Nothing fans will know well, involving a button, a roller and a paddle — and I really like it. Said buttons are snappy and responsive, and the roller is a great way to tweak volume.

Where the design lets itself down, aside from the case, is when it comes to stamina. Where the older Nothing Headphone (a) could go for up to 135 hours without ANC on, or up to 75 hours with noise cancellation, you'll only get up to 68 hours — and that's without ANC. Switch on noise-nixing and you'll only get up to 30 hours of playtime; add LDAC to the mix and it drops to just 28 hours. See how it's hard to make a case for the newer set being a better buy, as well as being much more expensive?

  • Design score: 3.5 / 5

(Image credit: Future)Nothing Headphone (1) Pro review: Value
  • Very good-looking headphones (until you put the case over them)
  • Stuffed with features and sonically up to par, if low on stamina
  • That case has eaten into Nothing's budget, though… 

The looks and style of these headphones (aside from the case) make them seem worthy of their price — and the sound is up to scratch. The ANC, too, is very good, as is the Transparency and extra whistles and bells.

There are two thorns in the Headphone (1) Pro's side: the stamina (which is a long way short of the cheaper cans they supersede) and the heavy unlikeable case. If there were a third, it would be the talents of the cheaper Headphone (a), which includes most of what makes the Headphone (1) Pro special, and delivers it for a lot less.

  • Value score: 3 / 5
Should I buy the Nothing Headphone (1) Pro?

Section

Notes

Score

Features

Great ANC, wearer detection and, my favorite, Personal Sound. The spatial audio modes are light touch though, and Flat EQ is a miss

4.5/5

Sound quality

Detailed (especially when going wired) and integrated. Some may crave a little more punch and verve, but if you like things neutral, they're a talented listen

4/5

Design

The headphones themselves are comfortable and chic, if a tad heavier. The case, however, does let the overall proposition down — as does the stamina

3.5/5

Value

A hard sell when Nothing's own cheaper Headphone (a) option is lighter, a tad more energetic sonically and can go for a lot longer

3/5

@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-1790091940481-oxgpzeztl *, #fv-chart-1790091940481-oxgpzeztl *:before, #fv-chart-1790091940481-oxgpzeztl *:after, #fv-chart-1790091940481-oxgpzeztl-slideshow *, #fv-chart-1790091940481-oxgpzeztl-slideshow *:before, #fv-chart-1790091940481-oxgpzeztl-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1790091940481-oxgpzeztl, #fv-chart-1790091940481-oxgpzeztl-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1790091940481-oxgpzeztl {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1790091940481-oxgpzeztl .fv-inner-wrapper {color: #1F2937 !important; background-color: #ffffff !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-1790091940481-oxgpzeztl .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1790091940481-oxgpzeztl.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1790091940481-oxgpzeztl.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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1790091940481-oxgpzeztl-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl-slideshow .fv-slide {width: 100% !important;animation: fv-fade-in 0.3s ease-in-out;}@keyframes fv-fade-in {from { opacity: 0; }to { opacity: 1; }}#fv-chart-1790091940481-oxgpzeztl-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-1790091940481-oxgpzeztl-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-1790091940481-oxgpzeztl-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1790091940481-oxgpzeztl-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1790091940481-oxgpzeztl-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-1790091940481-oxgpzeztl-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;}#fv-chart-1790091940481-oxgpzeztl-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-1790091940481-oxgpzeztl-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1790091940481-oxgpzeztl .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1790091940481-oxgpzeztl .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1790091940481-oxgpzeztl .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1790091940481-oxgpzeztl .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1790091940481-oxgpzeztl .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1790091940481-oxgpzeztl .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1790091940481-oxgpzeztl .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1790091940481-oxgpzeztl .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-bar-row, #fv-chart-1790091940481-oxgpzeztl .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1790091940481-oxgpzeztl.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1790091940481-oxgpzeztl.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1790091940481-oxgpzeztl .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1790091940481-oxgpzeztl .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1790091940481-oxgpzeztl .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1790091940481-oxgpzeztl .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1790091940481-oxgpzeztl .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1790091940481-oxgpzeztl .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1790091940481-oxgpzeztl .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1790091940481-oxgpzeztl .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1790091940481-oxgpzeztl .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1790091940481-oxgpzeztl .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1790091940481-oxgpzeztl .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1790091940481-oxgpzeztl .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1790091940481-oxgpzeztl .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1790091940481-oxgpzeztl .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1790091940481-oxgpzeztl .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl.mobile-view .fv-pie-container,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-row,#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-stacked-product,#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-grouped-bar-product,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-bar-row,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-stacked-product,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1790091940481-oxgpzeztl.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-1790091940481-oxgpzeztl.mobile-view .fv-bar-label,#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-grouped-product-title,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-bar-label,#fv-chart-1790091940481-oxgpzeztl.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-1790091940481-oxgpzeztl.mobile-view .fv-bar-container,#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-cluster,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-bar-container,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790091940481-oxgpzeztl.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-1790091940481-oxgpzeztl.mobile-view .fv-x-axis-wrapper,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-x-axis-label-space,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-x-axis-chart-space,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-benchmark-title,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-dropdown-title,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-carousel-nav-btn,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-chart-title,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-chart-subhead,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-header,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-select-wrapper,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-vs,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-select-container,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-versus-select,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-stl-shop-all-btn,#fv-chart-1790091940481-oxgpzeztl.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-1790091940481-oxgpzeztl.mobile-view .fv-stl-shop-all-logo,#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-stl-shop-all-icon,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-bar-commentary-inline,#fv-chart-1790091940481-oxgpzeztl.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1790091940481-oxgpzeztl.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1790091940481-oxgpzeztl .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1790091940481-oxgpzeztl .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1790091940481-oxgpzeztl .fv-bar-row,#fv-chart-1790091940481-oxgpzeztl .fv-stacked-product,#fv-chart-1790091940481-oxgpzeztl .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-bar-label,#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-bar-container,#fv-chart-1790091940481-oxgpzeztl .fv-bar-cluster {width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790091940481-oxgpzeztl .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790091940481-oxgpzeztl .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1790091940481-oxgpzeztl .fv-x-axis-label-space {display: none !important;}#fv-chart-1790091940481-oxgpzeztl .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1790091940481-oxgpzeztl .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1790091940481-oxgpzeztl .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1790091940481-oxgpzeztl .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1790091940481-oxgpzeztl .fv-chart-title {padding: 0 8px !important;}#fv-chart-1790091940481-oxgpzeztl .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl .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-1790091940481-oxgpzeztl .fv-stl-shop-all-logo,#fv-chart-1790091940481-oxgpzeztl .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1790091940481-oxgpzeztl .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1790091940481-oxgpzeztl .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1790091940481-oxgpzeztl .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1790091940481-oxgpzeztl.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Nothing Headphone (1) Pro scores","description": "Sonically neutral, solid ANC and packed with fun perks, but the battery life is middling and the case could be a deal-breaker","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-22T15:45:40.481Z","citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","keywords": ["Nothing Headphone (1) Pro","Features","Sound Quality","Design","Battery Life","Noise Cancellation","Value","Overall","Group 1","benchmark","comparison","performance","review","TechRadar"],"measurementTechnique": "Performance Benchmarking","variableMeasured": [{"@type": "PropertyValue","name": "Nothing Headphone (1) Pro – Features","value": 4.5,"unitText": "","maxValue": 5},{"@type": "PropertyValue","name": "Nothing Headphone (1) Pro – Sound Quality","value": 4,"unitText": "","maxValue": 5},{"@type": "PropertyValue","name": "Nothing Headphone (1) Pro – Design","value": 3.5,"unitText": "","maxValue": 5},{"@type": "PropertyValue","name": "Nothing Headphone (1) Pro – Battery Life","value": 3,"unitText": "","maxValue": 5},{"@type": "PropertyValue","name": "Nothing Headphone (1) Pro – Noise Cancellation","value": 4.5,"unitText": "","maxValue": 5},{"@type": "PropertyValue","name": "Nothing Headphone (1) Pro – Value","value": 3,"unitText": "","maxValue": 5},{"@type": "PropertyValue","name": "Nothing Headphone (1) Pro – Overall","value": 4,"unitText": "","maxValue": 5}]}Nothing Headphone (1) Pro scores

Sonically neutral, solid ANC and packed with fun perks, but the battery life is middling and the case could be a deal-breaker

Features4.5Sound Quality4Design3.5Battery Life3Noise Cancellation4.5Value3Overall4012345Group 1 DataProductFeatures ()Sound Quality ()Design ()Battery Life ()Noise Cancellation ()Value ()Overall ()Nothing Headphone (1) Pro4.543.534.534window.iFrameResizer = {heightCalculationMethod: 'taggedElement'};(function() {window.fvAnimateCharts = function(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);}});};function initialize(uniqueId, isSlideshow) {var root = document.getElementById(uniqueId);if (!root && !isSlideshow) return;function setupWrapper(chartWrapper) {if (!chartWrapper) return;function checkMobileView() {var width = chartWrapper.getBoundingClientRect().width;var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;var isMobile;if (width === 0) {isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;} else {isMobile = isMobileDevice || width < 600;}if (isMobile) {chartWrapper.classList.add('mobile-view');} else {chartWrapper.classList.remove('mobile-view');}}checkMobileView();if (typeof ResizeObserver !== 'undefined') {var ro = new ResizeObserver(function() {checkMobileView();});ro.observe(chartWrapper);}window.addEventListener('resize', checkMobileView);var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';if (labelsOnTop) {var charts = chartWrapper.querySelectorAll('.fv-chart-item');var hasVisibleBarChart = false;charts.forEach(function(c) {if (window.getComputedStyle(c).display !== 'none') {var cType = c.dataset.chartType;if (cType === 'Bar' || cType === 'Stacked Bar' || cType === 'Versus') {hasVisibleBarChart = true;}}});if (hasVisibleBarChart) {chartWrapper.classList.add('labels-on-top');} else {chartWrapper.classList.remove('labels-on-top');}} else {chartWrapper.classList.remove('labels-on-top');}chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {var chartId = legend.dataset.chart;var chart = chartWrapper.querySelector('[id="' + chartId + '"]');if (!chart) return;var lines = chart.querySelectorAll('.riv-line-path');var dots = chart.querySelectorAll('.riv-dot');var legendItems = legend.querySelectorAll('.riv-legend-item');legendItems.forEach(function(item) {var productName = item.dataset.product;var safeProductName = productName.replace(/"/g, '\"');var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');if (line && !line.dataset.origStroke) {line.dataset.origStroke = line.getAttribute('stroke-width') || '2';}var highlight = function() {if (legend.querySelector('.isolated')) return;lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '0.2'; });legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });if (line) {line.style.opacity = '1';line.setAttribute('stroke-width', '4');}productDots.forEach(function(d) { d.style.opacity = '1'; });item.style.opacity = '1';};var clearHighlight = function() {if (legend.querySelector('.isolated')) return;lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '1'; });legendItems.forEach(function(i) { i.style.opacity = '1'; });};var toggleIsolate = function() {var isIsolated = item.classList.contains('isolated');legendItems.forEach(function(i) { i.classList.remove('isolated'); });if (isIsolated) {lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '1'; });legendItems.forEach(function(i) { i.style.opacity = '1'; });} else {item.classList.add('isolated');lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '0.2'; });legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });if (line) {line.style.opacity = '1';line.setAttribute('stroke-width', '4');}productDots.forEach(function(d) { d.style.opacity = '1'; });item.style.opacity = '1';}};item.addEventListener('mouseenter', highlight);item.addEventListener('focus', highlight);item.addEventListener('mouseleave', clearHighlight);item.addEventListener('blur', clearHighlight);item.addEventListener('click', toggleIsolate);if (line) {line.style.cursor = 'pointer';line.addEventListener('mouseenter', highlight);line.addEventListener('mouseleave', clearHighlight);line.addEventListener('click', toggleIsolate);}});});var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');versusCharts.forEach(function(vc) {var dataJson = vc.getAttribute('data-versus-data');var leftColor = vc.getAttribute('data-left-color') || '#E53935';var rightColor = vc.getAttribute('data-right-color') || '#FFB300';if (!dataJson) return;var versusData = JSON.parse(dataJson);var leftSelect = vc.querySelector('.fv-select-left');var rightSelect = vc.querySelector('.fv-select-right');var rows = vc.querySelectorAll('.fv-versus-row');function updateVersusChart() {var leftProduct = leftSelect.value;var rightProduct = rightSelect.value;leftSelect.style.color = leftColor;leftSelect.style.borderColor = leftColor;rightSelect.style.color = rightColor;rightSelect.style.borderColor = rightColor;rows.forEach(function(row) {var index = parseInt(row.getAttribute('data-index'));var data = versusData[index];if (!data) return;var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;var leftIsNum = typeof leftVal === 'number';var rightIsNum = typeof rightVal === 'number';var leftNum = leftIsNum ? leftVal : 0;var rightNum = rightIsNum ? rightVal : 0;var maxVal = Math.max(leftNum, rightNum, 0.0001);var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;var winner = null;var pctDiffStr = null;if (leftIsNum && rightIsNum) {if (leftNum > rightNum) {winner = 'left';if (rightNum > 0) {var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);pctDiffStr = '+' + diff.toLocaleString() + '%';}} else if (rightNum > leftNum) {winner = 'right';if (leftNum > 0) {var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);pctDiffStr = '+' + diff.toLocaleString() + '%';}}}var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||(data.productData[rightProduct] && data.productData[rightProduct].unit) || '';var leftTextStr = leftDisplay;var rightTextStr = rightDisplay;var leftBar = row.querySelector('.fv-versus-bar-left');var rightBar = row.querySelector('.fv-versus-bar-right');var leftText = row.querySelector('.fv-inside-left');var rightText = row.querySelector('.fv-inside-right');var labelText = row.querySelector('.fv-versus-label span');var leftWrapper = row.querySelector('.fv-versus-bar-left-wrapper');var rightWrapper = row.querySelector('.fv-versus-bar-right-wrapper');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);});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');}});}}});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 === 'Line') {} else if (cType !== 'Pie') {window.fvAnimateCharts(chartWrapper);}var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';if (labelsOnTop && (cType === '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); });}var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');imageCompareWrappers.forEach(function(wrapper) {var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;var slider = wrapper.querySelector('.fv-image-compare-slider');var fgImage = wrapper.querySelector('.fv-image-compare-fg');var bgImage = wrapper.querySelector('.fv-image-compare-bg');var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');var labelRight = wrapper.querySelector('.fv-image-compare-label-right');var isDragging = false;var scale = 1;var panX = 0;var panY = 0;var isPanning = false;var hasPanned = false;var lastClientX = 0;var lastClientY = 0;var initialDistance = null;var lastCenterX = null;var lastCenterY = null;function updateTransform() {if (wrapper.classList.contains('fv-image-compare-fullscreen')) {inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');} else {inner.style.removeProperty('transform');scale = 1;panX = 0;panY = 0;}}function constrainPan() {var rect = wrapper.getBoundingClientRect();var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);panX = Math.max(-maxPanX, Math.min(panX, maxPanX));panY = Math.max(-maxPanY, Math.min(panY, maxPanY));}wrapper.addEventListener('wheel', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;e.preventDefault();var zoomSensitivity = 0.005;var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));if (newScale === scale) return;var rect = wrapper.getBoundingClientRect();var mouseX = e.clientX - rect.left - rect.width / 2;var mouseY = e.clientY - rect.top - rect.height / 2;var ratio = newScale / scale;panX = mouseX - (mouseX - panX) * ratio;panY = mouseY - (mouseY - panY) * ratio;scale = newScale;constrainPan();updateTransform();}, { passive: false });wrapper.addEventListener('mousedown', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;isPanning = true;hasPanned = false;lastClientX = e.clientX;lastClientY = e.clientY;});window.addEventListener('mousemove', function(e) {if (!isPanning) return;var dx = e.clientX - lastClientX;var dy = e.clientY - lastClientY;if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {hasPanned = true;}lastClientX = e.clientX;lastClientY = e.clientY;panX += dx;panY += dy;constrainPan();updateTransform();});window.addEventListener('mouseup', function() {isPanning = false;});wrapper.addEventListener('touchstart', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;if (e.touches.length === 2) {e.preventDefault();var dx = e.touches[0].clientX - e.touches[1].clientX;var dy = e.touches[0].clientY - e.touches[1].clientY;initialDistance = Math.sqrt(dx * dx + dy * dy);var rect = wrapper.getBoundingClientRect();lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;hasPanned = true;} else if (e.touches.length === 1 && scale > 1) {if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;isPanning = true;hasPanned = false;lastClientX = e.touches[0].clientX;lastClientY = e.touches[0].clientY;}}, { passive: false });wrapper.addEventListener('touchmove', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;if (e.touches.length === 2 && initialDistance !== null) {e.preventDefault();var dx = e.touches[0].clientX - e.touches[1].clientX;var dy = e.touches[0].clientY - e.touches[1].clientY;var distance = Math.sqrt(dx * dx + dy * dy);if (initialDistance > 0) {var zoomFactor = distance / initialDistance;var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));var rect = wrapper.getBoundingClientRect();var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;var ratio = newScale / scale;panX = centerX - (centerX - panX) * ratio;panY = centerY - (centerY - panY) * ratio;if (lastCenterX !== null && lastCenterY !== null) {panX += (centerX - lastCenterX);panY += (centerY - lastCenterY);}scale = newScale;lastCenterX = centerX;lastCenterY = centerY;constrainPan();updateTransform();}initialDistance = distance;} else if (e.touches.length === 1 && isPanning) {e.preventDefault();var dx = e.touches[0].clientX - lastClientX;var dy = e.touches[0].clientY - lastClientY;if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {hasPanned = true;}lastClientX = e.touches[0].clientX;lastClientY = e.touches[0].clientY;panX += dx;panY += dy;constrainPan();updateTransform();}}, { passive: false });wrapper.addEventListener('touchend', function(e) {if (e.touches.length < 2) {initialDistance = null;}if (e.touches.length === 0) {isPanning = false;}});function handleMove(clientX) {var rect = inner.getBoundingClientRect();var x = Math.max(0, Math.min(clientX - rect.left, rect.width));var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));if (slider) slider.style.setProperty('left', percent + '%', 'important');if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');if (labelLeft) {if (percent < 10) {labelLeft.style.setProperty('opacity', '0', 'important');} else {labelLeft.style.setProperty('opacity', '1', 'important');}}if (labelRight) {if (percent > 90) {labelRight.style.setProperty('opacity', '0', 'important');} else {labelRight.style.setProperty('opacity', '1', 'important');}}}function onMouseMove(e) {if (!isDragging) return;handleMove(e.clientX);}function onTouchMove(e) {if (!isDragging) return;e.preventDefault();handleMove(e.touches[0].clientX);}function stopDragging() {isDragging = false;window.removeEventListener('mousemove', onMouseMove);window.removeEventListener('mouseup', stopDragging);window.removeEventListener('touchmove', onTouchMove);window.removeEventListener('touchend', stopDragging);}if (slider) {var startDrag = function(clientX) {isDragging = true;handleMove(clientX);window.addEventListener('mousemove', onMouseMove);window.addEventListener('mouseup', stopDragging);};var startTouchDrag = function(clientX) {isDragging = true;handleMove(clientX);window.addEventListener('touchmove', onTouchMove, { passive: false });window.addEventListener('touchend', stopDragging);};slider.addEventListener('mousedown', function(e) {e.preventDefault();startDrag(e.clientX);});slider.addEventListener('touchstart', function(e) {e.preventDefault();startTouchDrag(e.touches[0].clientX);}, { passive: false });}var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');if (expandBtn) {if (window !== window.parent) {expandBtn.style.display = 'none';} else {expandBtn.addEventListener('click', function(e) {e.stopPropagation();wrapper.classList.add('fv-image-compare-fullscreen');document.body.style.overflow = 'hidden';if (fgImage && fgImage.dataset.highresSrc) {fgImage.src = fgImage.dataset.highresSrc;fgImage.removeAttribute('srcset');fgImage.removeAttribute('sizes');}if (bgImage && bgImage.dataset.highresSrc) {bgImage.src = bgImage.dataset.highresSrc;bgImage.removeAttribute('srcset');bgImage.removeAttribute('sizes');}});}}if (closeBtn) {closeBtn.addEventListener('click', function(e) {e.stopPropagation();wrapper.classList.remove('fv-image-compare-fullscreen');document.body.style.overflow = '';updateTransform();});}document.addEventListener('keydown', function(e) {if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {wrapper.classList.remove('fv-image-compare-fullscreen');document.body.style.overflow = '';updateTransform();}});});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 allProductsList = chartWrapper.querySelector('.fv-stl-all-products-list');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();}});}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();}});}window.fvAnimateCharts(chartWrapper);var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');if (countdownContainer) {var targetDateAttr = countdownContainer.getAttribute('data-target-date');if (targetDateAttr) {var targetDate = new Date(targetDateAttr);var primaryColor = countdownContainer.getAttribute('data-primary-color') || '#f97316';var subheadColor = countdownContainer.getAttribute('data-subhead-color') || '#ffffff';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-1790091940481-oxgpzeztl', false); });} else {initialize('fv-chart-1790091940481-oxgpzeztl', false);}})();Buy them if...

You want a fashion statement as well as headphones
Want to wear your love of music and a design-focused company strapped across your body like a handbag? This is the pair of headphones for you (although you'll need to buy said cross-body strap and attach it to the case).

You have a Sony or Samsung phone
LDAC support is here and while you take a minor hit on battery life, get it streaming and it's good stuff through these talented drivers.

You want to level up on ANC
These cans are just better at passive and active isolation than Nothing's previous efforts, and I like that a lot.

Don't buy them if...

You want extra-special spatial audio
Nothing has added five spatial audio options here, in conjunction with Metropolis Studios, and with the option of dynamic head-tracking in each. For me, though, it's all a little bit lightweight. Want AirPods Max performance with Apple's head-tracked Spatial Audio? You'll need to buy those products.

You need to travel light
The Nothing Headphone (1) Pro and case weigh a total of 710.5g, which Google tells me is the same as the Magic Keyboard designed for the 12.9-inch iPad Pro, a regular down-filled sleeping bag, a downhill mountain biking helmet or a large jar of pickled onions. What I'm saying is, pack them in your backpack and you'll notice the weight.

You need stamina for a long-haul flight and back
I recently took a 15-hour flight to Tokyo, which landed late, after nearly 16 hours in the air. These headphones will only last for up to 28 hours when deploying LDAC and ANC, so my return journey would likely see me caught short. View Deal

Nothing Headphone (1) Pro review: Also consider

Nothing Headphone (1) Pro

Nothing Headphone (a)

Sony WH-1000XM6

Price

$399 / £349 / (approx. AU$655)

$199 / £149 / AU$329

$449 / £399 / AU$699

Drivers

Bass Dynamic: 40 mm; Precision Dynamic: 13 × 8 mm; Treble xMEMS: 3.2 × 6.0 × 1.15 MM, Solid-State

40mm

30mm dynamic

Active noise cancellation

Yes

Yes

Yes

Quoted battery life

68 hours (ANC off)
30 hours (ANC on)

135 hours (ANC off); 75 hours (ANC on)

30 hours (ANC on)

Weight

327g

310g

254g

Connectivity

Bluetooth 6.1, LDAC, USB-C Audio, 3.5mm jack

Bluetooth 5.4, LDAC, USB-C audio, 3.5mm jack

Bluetooth 5.3, 3.5mm

Frequency range

20 Hz - 40 kHz

20 Hz - 40 kHz

20 Hz - 20 kHz

Waterproofing

Yes, IP52

Yes, IP52

None

Nothing Headphone (a)
Want most (though not all) of the perks on offer here, in a lighter set of headphones (albeit with only a drawstring bag to protect them) that will play for longer with a zealous, spacious sound, for a lot less money? This is your best buy.
Read more in our full Nothing Headphone (a) review

Sony WH-1000XM6
They're top sellers for a reason, these Sony headphones. They're light, the design is much more portable, the ANC is class-leading and although you'll need to part with a little more money to get them, features such as Quick Attention, mic mute and the Sony Connect app make them a great overall package.
Learn more in our in-depth Sony WH-1000XM6 review

How I tested the Nothing Headphone (1) Pro

(Image credit: Future)
  • Tested for two weeks, listened against the Headphone (a), AirPods Max 2, CMF Headphone Pro, Bowers & Wilkins Px7 S3 and Nothing Headphone (1)
  • Listened at home, on a long-haul flight, in a hotel room in Tokyo and while walking alone along a blustery seafront, in the rain
  • Listened to Tidal Masters, Qobuz and Apple Music Lossless tracks via USB-C to my FiiO player and streamed to my iPhone 15 Pro, MacBook Pro and Sony Xperia smartphone

The Nothing Headphone (1) Pro became my primary travel companions for two weeks — after a 24-hour run-in period. And to be honest, there were times when I wished I hadn't brought their heavy case along, in my hand luggage.

They accompanied me to the airport (walking brusquely to Heathrow's T5 from the Airport Express train) and even on the hotel balcony in Tokyo during a minor 5.0 earthquake — no really, I promise I'm telling the truth.

To assess comfort levels (very good), ANC (also very effective) and battery life claims (less impressive), I followed TechRadar's meticulous methodology testing and found much to report back on — including their slightly underwhelming stamina.

To check the audio chops across the frequencies, I listened for many hours, in various environments, to my own reference playlists on Apple Music, Qobuz and Tidal, alongside TechRadar's reference tracks, plus podcasts and movies.

I’ve been testing audio products for well over seven years now, full-time — first at our sister site What Hi-Fi? and now here at TechRadar. As a dancer, aerialist and musical theater performer in another life, I have always found sound quality, fit and the user experience to be key issues for me in headphones, but having heard how wonderful ANC can be when done well, I know what I'm listening out for there, too.

Read more about how we test earbuds at TechRadar

  • First reviewed: September 2026
Categories: Reviews

LG UltraGear Evo 39GX950B is almost perfect except for one major flaw

TechRadar Reviews - Mon, 09/28/2026 - 14:00
LG 39GX950B-B: The Two-Minute Review

(Image credit: Future / Isaiah Williams)

It's impossible to describe the LG UltraGear Evo 39GX950B-B as anything short of phenomenal. It's the end goal for any PC gamer striving for the best quality, with its immersive 21:9 aspect ratio and crisp image quality, thanks to its 5K2K (5120x2160) display resolution.

It also uses a 4th-gen tandem OLED panel, best known for its improvements in sustaining high levels of brightness, reducing burn-in chances, and better efficiency, which is great for those long hours of gaming and productivity.

The 39GX950B-B has options to tackle the brightness uniformity and ABL (Automatic Brightness Limiter) frustrations that are common with OLED displays. In the monitor's OSD (On Screen Display), under 'brightness level', there are options for high and low levels as well as a 'uniform' setting that ultimately produces lower brightness, but sidesteps ABL issues.

Fortunately, though, I had little to no issues with ABL during gaming sessions, especially when testing Horizon Forbidden West, where HDR works best, and there are constant changes in scenery and color — but it's worth noting that it's more noticeable while working on a Windows desktop, where you may be opening and closing several different applications.

At 5K2K, you're essentially getting a standard 4K tandem OLED monitor that's widened to a 21:9 aspect ratio from 16:9. That doesn't come without downsides: 5K2K drives 33% more pixels than 4K, so using this display means you'll be better off using a powerful GPU (at least an RTX 4080 Super, RTX 5070 Ti, or higher) to hit higher frame rates without being overly reliant on upscaling.

While you might think the latter is solved if you already own a beefy GPU, 5K2K is effectively a permanent commitment (at least for the foreseeable future) to purchasing high-end GPUs, unless the generational leap in power for low- to mid-range GPUs increases sooner.

However, the 39GX950B-B features a 1080p Dual Mode (2580x1080 resolution), with a bump up to a 330Hz refresh rate, and an AI upscaling option within the display itself. The former is not only great for competitive gamers who prioritize high frame rates in online games, but it also ultimately reduces the heavy strain on the GPU.

AI upscaling is a great bonus for anyone looking to drop the internal resolution, especially if console gaming is required, as the monitor detects a non-native input signal and upscales it to 5K2K. I didn't have much reason to use this since my RTX 4080 Super is much better off utilizing Nvidia's DLSS technology in games, but it's great that LG included this as an alternative.

Overall, the LG 39GX950B-B is almost unmatched at delivering the most immersive gaming experiences possible, with HDR brightness that can hit up to 1,500 nits (in small highlights), and visual fidelity that had me gobsmacked at the visual detail in every game and movie I tested. I say almost, for a good reason.

LG UltraGear Evo 39GX950B-B: Price & Availability

Control Resonant is already a visual masterpiece, and 5K2K elevates it even further (Image credit: Future / Remedy Entertainment)
  • How much does it cost? $1,799.99 / £1,599.99 / around AU$2,799
  • When is it available? Available now
  • Where can you get it? Available in the US, UK, and Australia

The biggest downside of the LG UltraGear Evo 39GX950B-B is its price, starting at $1,799.99 / £1,599.99 / around AU$2,799. It essentially places this display out of reach for most PC gamers, especially when its only major competition, the Alienware AW3926QW, is much cheaper at $1,099 / £999 / AU$1,999.

It's made worse for PC gamers, who may need to upgrade their entire gaming PC or GPU, in a PC hardware market already in complete disarray during an ongoing RAM crisis, leading to exceedingly overpriced hardware.

For a system that can handle the 5K2K resolution, the entire setup (including the monitor) would likely cost over $2,000 / £2,000 / AU$2,840, so it's not exactly accessible, despite its high level of quality.

Before the Alienware AW3926QW entered the market for consumers, the 39GX950B-B was still an expensive purchase, but the presence of competition at a far more affordable price has slightly diminished the value of LG's display.

If LG can drop the RRP (Recommended Retail Price) closer to Alienware's, it will likely attract more buyers for this 5K2K monitor.

  • Value: 3.5 / 5
LG UltraGear Evo 39GX950B-B: Specs

(Image credit: Future / LG)

LG 45GX950A-B (Sibling/Counterpart)

Alienware AW3926QW (Competitor)

LG 39GX950B-B (Review unit)

Screen Size

45-inch

39-inch

39-inch

Aspect Ratio

21:9

21:9

21:9

Resolution

5120x2160

5120x2160

5120x2160

Response Time

0.03ms GtG

0.03ms GtG (Extreme Mode)

0.03ms GtG

Panel Type

W-OLED MLA+

4th Gen RGB Stripe Tandem OLED

4th Gen Tandem OLED

Brightness

270 nits (Typical), 1,300 nits (Peak)

300 nits (Typical), 1,300 nits (Peak)

335 nits (Typical), 1,500 nits (Peak)

Contrast Ratio

1,500,000:1

1,750,000:1

1,850,000:1

Refresh Rate

165Hz

165Hz

165Hz

HDR

DisplayHDR True Black 400

DisplayHDR True Black 500 / Dolby Vision / HDR Peak 1,300, Peak 1,300 Bright

DisplayHDR True Black 500

Screen Coating

Matte / Anti-glare

Glossy

Matte / Anti-glare

Connectivity:

1x DisplayPort 2.1 / 2x HDMI 2.1 / 1x USB-C with DP & 90W PD / 2x USB-A ports / 2x 10W speakers

1x DisplayPort 2.1 / 2x HDMI 2.1 / 1x USB-C with DP 90W PD & Data / 1x USB-A downstream / 1x USB-C upstream

1x DisplayPort 2.1 / 2x HDMI 2.1 / 1x USB-C with DP 90W PD / 2x USB-A ports / 2x 7W speakers

LG UltraGear Evo 39GX950B-B: DesignFuture / Isaiah WilliamsFuture / Isaiah WilliamsFuture / Isaiah WilliamsFuture / Isaiah WilliamsFuture / Isaiah Williams

Much like fellow UltraGear Evo ultrawide displays, the 39GX950B-B features the same sturdy monitor stand, with excellent flexibility in swivel adjustments, as well as height and tilt. I often prefer a heavy-duty monitor arm for ultrawide monitors for more space, but I was reluctant to opt for one for my previous LG 45GS95QE 1440p ultrawide OLED, and I've kept the same trend with the 39GX950B-B.

Unlike its competition, the 39GX950B-B's screen has a matte finish and anti-glare design, and the latter has been fantastic when gaming or working in a bright, sunlit room. I prefer glossy screens, as they often provide an extra edge in image sheen and sharpness, evident in my review of the Alienware AW3426DW; however, some glossy screens (not Alienware's) can suffer from unwanted reflections in some scenarios, so I'm satisfied with the matte finish on this LG 5K2K monitor.

The OSD feels like a strong step up from non-UltraGear Evo models in terms of its style, with a new segment for an image to represent each category in settings, providing a premium look for a premium gaming monitor.

It's also great to see the 90W Power Delivery USB-C charging port, which is ideal for charging laptops or any separate devices used on a desktop.

I have my own PC speakers, so built-in monitor speakers aren't a focus at all for me, but unlike other monitors, the 39GX950B-B features two internal 7W speakers — and this was actually quite handy for me using my PS5 console (at a 16:9 aspect ratio) on the 39GX950B-B, since Sony's console can't use normal Bluetooth functionality on any audio device.

The only downside that's quite noticeable is the high temperatures felt after a few hours of use, which, in all fairness, should be expected for a monitor with 11 million pixels and 1,500 nits of peak brightness.

  • Design: 4.5 / 5
LG UltraGear Evo 39GX950B-B: Features

(Image credit: Future / Isaiah Williams)

There is a wide range of features to utilize on the LG UltraGear Evo 39GX950B-B, which is pivotal considering the 5K2K resolution's high demand on GPUs.

AI upscaling for both image and sound is available via the OSD, with the former notably useful for any user with a PC that might not be able to handle 5K2K. It works by dropping the display resolution on Windows (or Linux) and then enabling the mode with either the high or low setting.

Combining AI image upscaling with Dual Mode works wonders and is a great option for anyone looking to buy the 39GX950B-B and planning to upgrade their PC hardware to utilize the full 5120x2160 display resolution.

Dual Mode also allows 2560x1080 at 330Hz, which is a match made in heaven for competitive gamers, especially when taking advantage of upscaling via AMD's FSR or Nvidia's DLSS 4.5.

Brightness level options are high, low, and uniform. I found high to be the best setting to use for gaming, particularly games that are bright and colorful, and either low or uniform for movies and TV shows. Using high in movies or TV shows often made the ABL and dimming issues more noticeable, whereas uniform ensures brightness remains consistent.

  • Features: 4.5 / 5
LG UltraGear Evo 39GX950B-B: Performance

This scene in Horizon Forbidden West highlights the strong details in bright spots on screen, using HDR (Image credit: Future / Guerilla Games)

The LG UltraGear Evo 39GX950B-B absolutely knocks it out of the park in performance. The 4th-gen tandem OLED setup really shows its worth, with high levels of brightness in HDR across several games, inky-deep black levels thanks to the 1,850,000:1 contrast ratio, and exceptional image quality at 5K2K.

To really showcase the 39GX950B-B's standout performance, I played games like Control Resonant, Battlefield 6, and notably, Horizon Forbidden West, all of which are well-optimized PC ports and have well-implemented HDR.

Horizon Forbidden West looks phenomenal on this display, with its colorful environments and intense gameplay. Using DLSS 4.5 on my RTX 4080 Super, playing this game in either DLSS Balanced or Performance mode felt no different, as the image quality is at a new level entirely.

In case it wasn't clear enough, 5K2K is essentially a 4K monitor at ultrawide, so the benefits of the expanded field of view and increased immersion are still present, while sharpness in character model details and foliage take a huge leap.

I left Dynamic Tonemap on via the OSD for most of my game tests, including the high brightness level option, and found that HDR worked brilliantly in several scenes, even in the brightest scenarios. I realized that the detail that might usually be lost in bright sequences on older OLED models was maintained with the LG 39GX950B-B, and that's evident in the Forbidden West example above.

Before reviewing this model, I was accustomed to a 240Hz refresh rate with the LG UltraGear 45GS95QE OLED ultrawide, at a 3440x1440 display resolution. The fall to 165Hz with this UltraGear Evo 39GX950B-B seems significant, but it wasn't noticeable for me or a concern at all, especially since the jump from 1440p on a 45-inch display to 2160p on a 39-inch monitor is massive. To clarify, that is going from 83 PPI to 143 PPI, providing better sharpness in every way.

Unlike the Alienware AW3926QW, the LG 39GX950B-B doesn't feature an RGB stripe subpixel layout; instead, it has a white subpixel layout, but honestly, text clarity wasn't an issue for me using LG's monitor — and frankly, that's due to the heavy lifting done by the 5K2K's pixel density.

  • Performance: 5 / 5
Should I buy the LG UltraGear Evo 39GX950B-B?LG UltraGear Evo 39GX950B-B scorecard

Attributes

Notes

Rating

Value

A 5K2K OLED ultrawide is the best you could possibly ask for to game, but its price point is a very tough ask, especially considering its cheaper competition.

3.5 / 5

Design

LG's UltraGear Evo monitor design is great, all the way from the monitor stand, tilt, swivel, and height adjustments, to its OSD being easy to understand and use.

4.5 / 5

Features

There are a wide variety of options for gamers to utilize, especially for those who may not have PC hardware capable of handling the heavy 5K2K resolution, with AI upscaling and Dual Mode 1080p at 330Hz.

4.5 / 5

Performance

4th-gen tandem OLED shines on the LG 39GX950B-B providing fantastic performance in HDR, reducing ABL and dimming issues, and providing the finest/sharpest image quality in some of the best looking games available.

5 / 5

Average rating

While its price stands as a potential dealbreaker for most, its one of the best gaming monitors on the market, and aside from its competition, it's the best you can buy for gaming on the market right now.

4.37 / 5

Buy the LG UltraGear Evo 39GX950B-B if...

You want the best ultrawide gaming monitor available
Alongside its Alienware AW3926QW competition, the LG UltraGear Evo 39GX950B-B is one of the best ultrawide gaming monitors you can buy now, and frankly one of the best gaming monitors on the market. Its 5K2K resolution and 4th-gen tandem OLED panel setup provide an unbelievably pleasant sight to behold, giving games you've never felt like playing before an extra edge.

You want a monitor that doesn't destroy desk space
It's not a 34-inch ultrawide display, so it's not exactly small, but compared to its 45-inch counterpart, the LG 39GX950B-B is fantastic for preserving desk space. Its 39-inch size is the sweet spot for immersion, without feeling like a TV is on your desk.

Don’t buy it if…

You’re looking for an affordable 5K2K monitor
The LG UltraGear Evo 39GX950B-B is a very expensive gaming monitor, one that many gamers will find hard to justify purchasing, despite all of its amazing features and performance. It's made worse since its main competition is available at a cheaper, more reasonable price tag.

You don't have a powerful GPU
The 5K2K display resolution has 33% more pixels than a standard 4K monitor, meaning the system requirements are significantly higher, especially if you're coming from a 1440p monitor. While mid-range GPUs can likely still run games at the 5K2K resolution, upscaling via DLSS, FSR, or even LG's monitor AI upscaling will likely be doing the heavy lifting for smooth performance.

Also Consider

Alienware AW3926QW

The Alienware AW3926QW is essentially in the same category as the LG UltraGear Evo 39GX950B-B, spec-wise, with the bonuses of its RGB stripe subpixel layout, Dolby Vision, and glossy screen (depending on preference). It's a much cheaper 5K2K OLED monitor, starting at $1,099 / £999 / AU$1,999, instead of the 39GX950B-B's $1,799.99 / £1,599.99 / around AU$2,799.

Read our full Alienware AW3926QW review

How I tested the LG UltraGear 39GX950B-B
  • Tested for two weeks
  • Played several modern games such as Control: Resonant, Horizon Forbidden West, and watched multiple movies
  • Tested mostly using the brightness level option on high, with Dynamic Tonemap enabled

I used the LG UltraGear 39GX950B-B for two weeks for gaming, movies, and productivity. The games I tested include: Resident Evil Requiem, Dragon's Dogma 2, Control: Resonant, Battlefield 6, Crimson Desert, Horizon Forbidden West, Uncharted: Legacy of Thieves, and Final Fantasy 7 Remake Intergrade. Some of the movies include Avengers: Infinity War and Guardians of the Galaxy Vol. 2, and Blade Runner 2049.

While this display doesn't have the RGB stripe subpixel layout that its rival Alienware AW3926QW has, I had no issues with any form of text fringing or clarity, which I suspect is due to the pixel density at 5K2K.

ABL issues are always present on OLEDs in some form, but thanks to the 4th-gen tandem OLED, this wasn't noticeable in most gaming scenarios, and it comes with a solution: a uniform brightness option when watching movies or TV shows, where it can be slightly more obvious.

  • First reviewed September 2026
Categories: Reviews

Roborock Qrevo 2 Pro review: outstanding cleaning at a sensible price

TechRadar Reviews - Mon, 09/28/2026 - 11:15
Roborock Qvero 2 Pro: 30-second review

The Qrevo 2 Pro is the latest robot vacuum and mop combo cleaner from Roborock and includes detachable mop plates to help ensure it doesn’t get carpets wet while cleaning.

Cleaning performance is a match for some of the most expensive options on the market with its mopping being as good as I have ever tested making it a fantastic pick for the price.

It is relatively tall so it can’t clean under low furniture and its hard floor cleaning isn’t flawless but it is an excellent option, especially when on sale.

Roborock Qrevo 2 Pro: price & availability
  • List price: $799.99 / £649.99 / AU$1,199
  • Launch date: August 2026
  • Availability: worldwide

The Roborock Qrevo 2 Pro sits right on the line between premium and mid-range robot vacuums, with a list price $799.99 / £649.99 / AU$1,199. However, almost immediately after launch I have already seen it get a significant discount to $549 / £549.99, tipping it firmly into the more affordable category — especially considering the features and performance.

Even at full price it sits below the Roborock’s Curv models and produces similar results (although it doesn’t have the AdaptLift chassis for getting over higher thresholds between rooms) making it an excellent value pick. If you’re looking to spend less, the Roborock Q7 is a good alternative although it has much lower suction power and doesn’t have an auto-empty dock.

A branded floor cleaner compatible with the Qrevo 2 Pro is available on Roborock’s website but they don’t push this hard and after testing it without it, it’s definitely not required.

You don't have to use Roborock's own floor cleaner, but you will need to buy disposable dust bags (Image credit: Future)

What you will need to buy are disposable dust bags as these are thrown away once full. A three-pack costs $39.90 in the US, and a six-pack is £31.99 in the UK, so this needs to be considered in the running costs. I have tested Roborocks with cheaper unbranded dust bags in the past and not encountered problems, but check model compatibility before ordering.

You can also buy replacement brushes, mop pads, filters and other parts in case anything breaks.

  • Value score: 5 out of 5
Roborock Qrevo 2 Pro review: design
  • Smart-looking robot and dock
  • Can’t get under low furniture
  • Smart home integration

Available in all white or black (currently only available in white in the UK and Australia) it is pretty unfussy in terms of design with the dock a bit squarer than the slightly bulbous base stations of Roborock’s Curv series.

The robot is circular, measuring 14 inches wide with a 6-inch cleaning opening underneath for picking up dirt.

The lidar scanner the robot uses to navigate sits in a cage on top of the robot, increasing its height and reducing its clearance so it won’t be able to vacuum under low furniture like a sofa, unlike Roborock’s Qvrevo CurvX with its retractable lidar scanner.

The robot's lidar scanner doesn't retract, so it can't fit under low furnitureFutureThe dock is easy to set up, provided you have sufficient spaceFuture

Setting the dock up is easy, involving just attaching the ramp to the front of the dock, filling the clean water tank and plugging it in. The more difficult part may be finding a place for it as it needs to sit on a hard floor with at least 1.5 inches either side and 27.5 inches of clear space in front of the dock. It also needs to be within reach of a power socket and somewhere you won’t trip up over it or mind looking at it everyday.

Smart home integration is included with it compatible with the Matter standard, Google Home, and Amazon Alexa

  • Design score: 4 out of 5
Roborock Qrevo 2 Pro: performance
  • Excellent mopping on maximum settings
  • Good vacuum performance
  • Did get caught on charging cable

Set up is simple, you will need to find an appropriate spot for the dock on a hard floor with plenty of space either side. You then download the app, pair the robot and then you can send it on a discovery run around your house to build a map.

Once it has scanned the space you can then edit the map to combine or divide spaces into rooms, mark areas as no-go zones, manually designate floor types and mark things like curtains and furniture. I found that aside from ensuring the rooms are divided correctly I didn’t have to make any changes to get it to work well, with the carpeted areas successfully detected.

The robot has detachable mop pads, which it leaves in its dock after mopping your floors (Image credit: Future)

After setup you can use the app to kickstart cleans of the whole map, one or more selected rooms or a designated zone clean you can mark on the map. As well as ad hoc cleans you can set routines for different types of cleans from deep intensive cleans, to specific after dinner cleans of smaller zones or light maintenance vacuuming without mopping.

As the Qrevo 2 Pro has detachable mops, rather than vacuuming and mopping room by room it first goes around the carpeted areas of the whole space you are cleaning first. Once that is complete it returns to the dock to reattach the mop heads before cleaning the rest of the hard floors.

Obstacle detection was generally good, though the Qrevo 2 Pro did get caught on a USB charging cable (Image credit: Future)

Cleaning performance is OK on hard floors, although it can lead to some spreading of larger debris as the edge cleaning arm sent rice grains skittering across the floor. It did better with fine particles, although there was still some tea visible on a pass on the standard cleaning settings.

It handled larger particles much better on carpet, picking up almost every single grain of rice, although there was some tea left after the first pass.

As with most robot vacuums, its edge cleaning wasn't great on carpet, but the sweeping brush does well to move material into the vacuum’s path on hard floors..

@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-1790607075785-manmdg66k *, #fv-chart-1790607075785-manmdg66k *:before, #fv-chart-1790607075785-manmdg66k *:after, #fv-chart-1790607075785-manmdg66k-slideshow *, #fv-chart-1790607075785-manmdg66k-slideshow *:before, #fv-chart-1790607075785-manmdg66k-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1790607075785-manmdg66k, #fv-chart-1790607075785-manmdg66k-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1790607075785-manmdg66k {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1790607075785-manmdg66k .fv-inner-wrapper {color: #1F2937 !important; background-color: #ffffff !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-1790607075785-manmdg66k .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1790607075785-manmdg66k.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1790607075785-manmdg66k.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-1790607075785-manmdg66k .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-1790607075785-manmdg66k-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1790607075785-manmdg66k-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1790607075785-manmdg66k-slideshow .fv-slide {width: 100% !important;animation: fv-fade-in 0.3s ease-in-out;}@keyframes fv-fade-in {from { opacity: 0; }to { opacity: 1; }}#fv-chart-1790607075785-manmdg66k-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-1790607075785-manmdg66k-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-1790607075785-manmdg66k-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1790607075785-manmdg66k-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1790607075785-manmdg66k-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-1790607075785-manmdg66k-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;}#fv-chart-1790607075785-manmdg66k-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-1790607075785-manmdg66k-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1790607075785-manmdg66k .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1790607075785-manmdg66k .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1790607075785-manmdg66k .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1790607075785-manmdg66k .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1790607075785-manmdg66k .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1790607075785-manmdg66k .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1790607075785-manmdg66k .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1790607075785-manmdg66k .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1790607075785-manmdg66k .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1790607075785-manmdg66k .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1790607075785-manmdg66k .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1790607075785-manmdg66k .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1790607075785-manmdg66k .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1790607075785-manmdg66k .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1790607075785-manmdg66k .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1790607075785-manmdg66k .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1790607075785-manmdg66k.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-expand-btn, #fv-chart-1790607075785-manmdg66k .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-expand-btn:hover, #fv-chart-1790607075785-manmdg66k .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1790607075785-manmdg66k .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1790607075785-manmdg66k .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1790607075785-manmdg66k .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1790607075785-manmdg66k .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1790607075785-manmdg66k .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1790607075785-manmdg66k .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1790607075785-manmdg66k .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1790607075785-manmdg66k .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-bar-row, #fv-chart-1790607075785-manmdg66k .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1790607075785-manmdg66k.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1790607075785-manmdg66k.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1790607075785-manmdg66k .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1790607075785-manmdg66k .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1790607075785-manmdg66k .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1790607075785-manmdg66k .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1790607075785-manmdg66k .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1790607075785-manmdg66k .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1790607075785-manmdg66k .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1790607075785-manmdg66k .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1790607075785-manmdg66k .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1790607075785-manmdg66k .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1790607075785-manmdg66k .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1790607075785-manmdg66k .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1790607075785-manmdg66k .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1790607075785-manmdg66k .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1790607075785-manmdg66k .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .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-1790607075785-manmdg66k.mobile-view .fv-pie-container,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-row,#fv-chart-1790607075785-manmdg66k.mobile-view .fv-stacked-product,#fv-chart-1790607075785-manmdg66k.mobile-view .fv-grouped-bar-product,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-bar-row,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-stacked-product,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1790607075785-manmdg66k.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-1790607075785-manmdg66k.mobile-view .fv-bar-label,#fv-chart-1790607075785-manmdg66k.mobile-view .fv-grouped-product-title,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-bar-label,#fv-chart-1790607075785-manmdg66k.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-1790607075785-manmdg66k.mobile-view .fv-bar-container,#fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-cluster,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-bar-container,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607075785-manmdg66k.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-1790607075785-manmdg66k.mobile-view .fv-x-axis-wrapper,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-x-axis-label-space,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-x-axis-chart-space,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-benchmark-title,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-dropdown-title,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-carousel-nav-btn,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-chart-title,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-chart-subhead,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-header,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-select-wrapper,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-vs,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-select-container,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-versus-select,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-stl-shop-all-btn,#fv-chart-1790607075785-manmdg66k.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-1790607075785-manmdg66k.mobile-view .fv-stl-shop-all-logo,#fv-chart-1790607075785-manmdg66k.mobile-view .fv-stl-shop-all-icon,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-bar-commentary-inline,#fv-chart-1790607075785-manmdg66k.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1790607075785-manmdg66k.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1790607075785-manmdg66k.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1790607075785-manmdg66k .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1790607075785-manmdg66k .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1790607075785-manmdg66k .fv-bar-row,#fv-chart-1790607075785-manmdg66k .fv-stacked-product,#fv-chart-1790607075785-manmdg66k .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-bar-label,#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-bar-container,#fv-chart-1790607075785-manmdg66k .fv-bar-cluster {width: 100% !important;}#fv-chart-1790607075785-manmdg66k .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607075785-manmdg66k .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607075785-manmdg66k .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1790607075785-manmdg66k .fv-x-axis-label-space {display: none !important;}#fv-chart-1790607075785-manmdg66k .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1790607075785-manmdg66k .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1790607075785-manmdg66k .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1790607075785-manmdg66k .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1790607075785-manmdg66k .fv-chart-title {padding: 0 8px !important;}#fv-chart-1790607075785-manmdg66k .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1790607075785-manmdg66k .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1790607075785-manmdg66k .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-1790607075785-manmdg66k .fv-stl-shop-all-logo,#fv-chart-1790607075785-manmdg66k .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1790607075785-manmdg66k .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1790607075785-manmdg66k .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1790607075785-manmdg66k .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1790607075785-manmdg66k.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Vacuum test","description": "Testing performance of Roborock vacuum cleaner on carpeted floor","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-28T14:51:15.785Z","citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","keywords": ["Image Comparison","benchmark","comparison","performance","review","TechRadar"],"measurementTechnique": "Performance Benchmarking","variableMeasured": []}BeforeAfterwindow.iFrameResizer = {heightCalculationMethod: 'taggedElement'};(function() {window.fvAnimateCharts = function(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);}});};function initialize(uniqueId, isSlideshow) {var root = document.getElementById(uniqueId);if (!root && !isSlideshow) return;function setupWrapper(chartWrapper) {if (!chartWrapper) return;function checkMobileView() {var width = chartWrapper.getBoundingClientRect().width;var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;var isMobile;if (width === 0) {isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;} else {isMobile = isMobileDevice || width < 600;}if (isMobile) {chartWrapper.classList.add('mobile-view');} else {chartWrapper.classList.remove('mobile-view');}}checkMobileView();if (typeof ResizeObserver !== 'undefined') {var ro = new ResizeObserver(function() {checkMobileView();});ro.observe(chartWrapper);}window.addEventListener('resize', checkMobileView);var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';if (labelsOnTop) {var charts = chartWrapper.querySelectorAll('.fv-chart-item');var hasVisibleBarChart = false;charts.forEach(function(c) {if (window.getComputedStyle(c).display !== 'none') {var cType = c.dataset.chartType;if (cType === 'Bar' || cType === 'Stacked Bar' || cType === 'Versus') {hasVisibleBarChart = true;}}});if (hasVisibleBarChart) {chartWrapper.classList.add('labels-on-top');} else {chartWrapper.classList.remove('labels-on-top');}} else {chartWrapper.classList.remove('labels-on-top');}chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {var chartId = legend.dataset.chart;var chart = chartWrapper.querySelector('[id="' + chartId + '"]');if (!chart) return;var lines = chart.querySelectorAll('.riv-line-path');var dots = chart.querySelectorAll('.riv-dot');var legendItems = legend.querySelectorAll('.riv-legend-item');legendItems.forEach(function(item) {var productName = item.dataset.product;var safeProductName = productName.replace(/"/g, '\"');var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');if (line && !line.dataset.origStroke) {line.dataset.origStroke = line.getAttribute('stroke-width') || '2';}var highlight = function() {if (legend.querySelector('.isolated')) return;lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '0.2'; });legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });if (line) {line.style.opacity = '1';line.setAttribute('stroke-width', '4');}productDots.forEach(function(d) { d.style.opacity = '1'; });item.style.opacity = '1';};var clearHighlight = function() {if (legend.querySelector('.isolated')) return;lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '1'; });legendItems.forEach(function(i) { i.style.opacity = '1'; });};var toggleIsolate = function() {var isIsolated = item.classList.contains('isolated');legendItems.forEach(function(i) { i.classList.remove('isolated'); });if (isIsolated) {lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '1'; });legendItems.forEach(function(i) { i.style.opacity = '1'; });} else {item.classList.add('isolated');lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '0.2'; });legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });if (line) {line.style.opacity = '1';line.setAttribute('stroke-width', '4');}productDots.forEach(function(d) { d.style.opacity = '1'; });item.style.opacity = '1';}};item.addEventListener('mouseenter', highlight);item.addEventListener('focus', highlight);item.addEventListener('mouseleave', clearHighlight);item.addEventListener('blur', clearHighlight);item.addEventListener('click', toggleIsolate);if (line) {line.style.cursor = 'pointer';line.addEventListener('mouseenter', highlight);line.addEventListener('mouseleave', clearHighlight);line.addEventListener('click', toggleIsolate);}});});var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');versusCharts.forEach(function(vc) {var dataJson = vc.getAttribute('data-versus-data');var leftColor = vc.getAttribute('data-left-color') || '#E53935';var rightColor = vc.getAttribute('data-right-color') || '#FFB300';if (!dataJson) return;var versusData = JSON.parse(dataJson);var leftSelect = vc.querySelector('.fv-select-left');var rightSelect = vc.querySelector('.fv-select-right');var rows = vc.querySelectorAll('.fv-versus-row');function updateVersusChart() {var leftProduct = leftSelect.value;var rightProduct = rightSelect.value;leftSelect.style.color = leftColor;leftSelect.style.borderColor = leftColor;rightSelect.style.color = rightColor;rightSelect.style.borderColor = rightColor;rows.forEach(function(row) {var index = parseInt(row.getAttribute('data-index'));var data = versusData[index];if (!data) return;var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;var leftIsNum = typeof leftVal === 'number';var rightIsNum = typeof rightVal === 'number';var leftNum = leftIsNum ? leftVal : 0;var rightNum = rightIsNum ? rightVal : 0;var maxVal = Math.max(leftNum, rightNum, 0.0001);var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;var winner = null;var pctDiffStr = null;if (leftIsNum && rightIsNum) {if (leftNum > rightNum) {winner = 'left';if (rightNum > 0) {var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);pctDiffStr = '+' + diff.toLocaleString() + '%';}} else if (rightNum > leftNum) {winner = 'right';if (leftNum > 0) {var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);pctDiffStr = '+' + diff.toLocaleString() + '%';}}}var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||(data.productData[rightProduct] && data.productData[rightProduct].unit) || '';var leftTextStr = leftDisplay;var rightTextStr = rightDisplay;var leftBar = row.querySelector('.fv-versus-bar-left');var rightBar = row.querySelector('.fv-versus-bar-right');var leftText = row.querySelector('.fv-inside-left');var rightText = row.querySelector('.fv-inside-right');var labelText = row.querySelector('.fv-versus-label span');var leftWrapper = row.querySelector('.fv-versus-bar-left-wrapper');var rightWrapper = row.querySelector('.fv-versus-bar-right-wrapper');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);});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');}});}}});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 === 'Line') {} else if (cType !== 'Pie') {window.fvAnimateCharts(chartWrapper);}var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';if (labelsOnTop && (cType === '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); });}var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');imageCompareWrappers.forEach(function(wrapper) {var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;var slider = wrapper.querySelector('.fv-image-compare-slider');var fgImage = wrapper.querySelector('.fv-image-compare-fg');var bgImage = wrapper.querySelector('.fv-image-compare-bg');var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');var labelRight = wrapper.querySelector('.fv-image-compare-label-right');var isDragging = false;var scale = 1;var panX = 0;var panY = 0;var isPanning = false;var hasPanned = false;var lastClientX = 0;var lastClientY = 0;var initialDistance = null;var lastCenterX = null;var lastCenterY = null;function updateTransform() {if (wrapper.classList.contains('fv-image-compare-fullscreen')) {inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');} else {inner.style.removeProperty('transform');scale = 1;panX = 0;panY = 0;}}function constrainPan() {var rect = wrapper.getBoundingClientRect();var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);panX = Math.max(-maxPanX, Math.min(panX, maxPanX));panY = Math.max(-maxPanY, Math.min(panY, maxPanY));}wrapper.addEventListener('wheel', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;e.preventDefault();var zoomSensitivity = 0.005;var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));if (newScale === scale) return;var rect = wrapper.getBoundingClientRect();var mouseX = e.clientX - rect.left - rect.width / 2;var mouseY = e.clientY - rect.top - rect.height / 2;var ratio = newScale / scale;panX = mouseX - (mouseX - panX) * ratio;panY = mouseY - (mouseY - panY) * ratio;scale = newScale;constrainPan();updateTransform();}, { passive: false });wrapper.addEventListener('mousedown', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;isPanning = true;hasPanned = false;lastClientX = e.clientX;lastClientY = e.clientY;});window.addEventListener('mousemove', function(e) {if (!isPanning) return;var dx = e.clientX - lastClientX;var dy = e.clientY - lastClientY;if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {hasPanned = true;}lastClientX = e.clientX;lastClientY = e.clientY;panX += dx;panY += dy;constrainPan();updateTransform();});window.addEventListener('mouseup', function() {isPanning = false;});wrapper.addEventListener('touchstart', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;if (e.touches.length === 2) {e.preventDefault();var dx = e.touches[0].clientX - e.touches[1].clientX;var dy = e.touches[0].clientY - e.touches[1].clientY;initialDistance = Math.sqrt(dx * dx + dy * dy);var rect = wrapper.getBoundingClientRect();lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;hasPanned = true;} else if (e.touches.length === 1 && scale > 1) {if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;isPanning = true;hasPanned = false;lastClientX = e.touches[0].clientX;lastClientY = e.touches[0].clientY;}}, { passive: false });wrapper.addEventListener('touchmove', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;if (e.touches.length === 2 && initialDistance !== null) {e.preventDefault();var dx = e.touches[0].clientX - e.touches[1].clientX;var dy = e.touches[0].clientY - e.touches[1].clientY;var distance = Math.sqrt(dx * dx + dy * dy);if (initialDistance > 0) {var zoomFactor = distance / initialDistance;var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));var rect = wrapper.getBoundingClientRect();var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;var ratio = newScale / scale;panX = centerX - (centerX - panX) * ratio;panY = centerY - (centerY - panY) * ratio;if (lastCenterX !== null && lastCenterY !== null) {panX += (centerX - lastCenterX);panY += (centerY - lastCenterY);}scale = newScale;lastCenterX = centerX;lastCenterY = centerY;constrainPan();updateTransform();}initialDistance = distance;} else if (e.touches.length === 1 && isPanning) {e.preventDefault();var dx = e.touches[0].clientX - lastClientX;var dy = e.touches[0].clientY - lastClientY;if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {hasPanned = true;}lastClientX = e.touches[0].clientX;lastClientY = e.touches[0].clientY;panX += dx;panY += dy;constrainPan();updateTransform();}}, { passive: false });wrapper.addEventListener('touchend', function(e) {if (e.touches.length < 2) {initialDistance = null;}if (e.touches.length === 0) {isPanning = false;}});function handleMove(clientX) {var rect = inner.getBoundingClientRect();var x = Math.max(0, Math.min(clientX - rect.left, rect.width));var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));if (slider) slider.style.setProperty('left', percent + '%', 'important');if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');if (labelLeft) {if (percent < 10) {labelLeft.style.setProperty('opacity', '0', 'important');} else {labelLeft.style.setProperty('opacity', '1', 'important');}}if (labelRight) {if (percent > 90) {labelRight.style.setProperty('opacity', '0', 'important');} else {labelRight.style.setProperty('opacity', '1', 'important');}}}function onMouseMove(e) {if (!isDragging) return;handleMove(e.clientX);}function onTouchMove(e) {if (!isDragging) return;e.preventDefault();handleMove(e.touches[0].clientX);}function stopDragging() {isDragging = false;window.removeEventListener('mousemove', onMouseMove);window.removeEventListener('mouseup', stopDragging);window.removeEventListener('touchmove', onTouchMove);window.removeEventListener('touchend', stopDragging);}if (slider) {var startDrag = function(clientX) {isDragging = true;handleMove(clientX);window.addEventListener('mousemove', onMouseMove);window.addEventListener('mouseup', stopDragging);};var startTouchDrag = function(clientX) {isDragging = true;handleMove(clientX);window.addEventListener('touchmove', onTouchMove, { passive: false });window.addEventListener('touchend', stopDragging);};slider.addEventListener('mousedown', function(e) {e.preventDefault();startDrag(e.clientX);});slider.addEventListener('touchstart', function(e) {e.preventDefault();startTouchDrag(e.touches[0].clientX);}, { passive: false });}var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');if (expandBtn) {if (window !== window.parent) {expandBtn.style.display = 'none';} else {expandBtn.addEventListener('click', function(e) {e.stopPropagation();wrapper.classList.add('fv-image-compare-fullscreen');document.body.style.overflow = 'hidden';if (fgImage && fgImage.dataset.highresSrc) {fgImage.src = fgImage.dataset.highresSrc;fgImage.removeAttribute('srcset');fgImage.removeAttribute('sizes');}if (bgImage && bgImage.dataset.highresSrc) {bgImage.src = bgImage.dataset.highresSrc;bgImage.removeAttribute('srcset');bgImage.removeAttribute('sizes');}});}}if (closeBtn) {closeBtn.addEventListener('click', function(e) {e.stopPropagation();wrapper.classList.remove('fv-image-compare-fullscreen');document.body.style.overflow = '';updateTransform();});}document.addEventListener('keydown', function(e) {if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {wrapper.classList.remove('fv-image-compare-fullscreen');document.body.style.overflow = '';updateTransform();}});});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 allProductsList = chartWrapper.querySelector('.fv-stl-all-products-list');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();}});}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();}});}window.fvAnimateCharts(chartWrapper);var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');if (countdownContainer) {var targetDateAttr = countdownContainer.getAttribute('data-target-date');if (targetDateAttr) {var targetDate = new Date(targetDateAttr);var primaryColor = countdownContainer.getAttribute('data-primary-color') || '#f97316';var subheadColor = countdownContainer.getAttribute('data-subhead-color') || '#ffffff';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-1790607075785-manmdg66k', false); });} else {initialize('fv-chart-1790607075785-manmdg66k', false);}})();

During the obstacle avoidance tests it did well to identify the shoe and sock, staying clear as it cleaned around them but it did go over the charging cable, getting it stuck in the cleaning brushes and needing me to rescue it before it could continue cleaning.

During my mopping tests on first pass it did a reasonable job taking up a fair bit of the ketchup although there was a hint of the soy sauce remaining. Trying a second clean on maximum water flow and cleaning settings it did a fantastic job cleaning off even the dried on patches of ketchup.

@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-1790607282055-ehf5hye65 *, #fv-chart-1790607282055-ehf5hye65 *:before, #fv-chart-1790607282055-ehf5hye65 *:after, #fv-chart-1790607282055-ehf5hye65-slideshow *, #fv-chart-1790607282055-ehf5hye65-slideshow *:before, #fv-chart-1790607282055-ehf5hye65-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1790607282055-ehf5hye65, #fv-chart-1790607282055-ehf5hye65-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1790607282055-ehf5hye65 {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1790607282055-ehf5hye65 .fv-inner-wrapper {color: #1F2937 !important; background-color: #ffffff !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-1790607282055-ehf5hye65 .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1790607282055-ehf5hye65.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1790607282055-ehf5hye65.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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1790607282055-ehf5hye65-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1790607282055-ehf5hye65-slideshow .fv-slide {width: 100% !important;animation: fv-fade-in 0.3s ease-in-out;}@keyframes fv-fade-in {from { opacity: 0; }to { opacity: 1; }}#fv-chart-1790607282055-ehf5hye65-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-1790607282055-ehf5hye65-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-1790607282055-ehf5hye65-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1790607282055-ehf5hye65-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1790607282055-ehf5hye65-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-1790607282055-ehf5hye65-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;}#fv-chart-1790607282055-ehf5hye65-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-1790607282055-ehf5hye65-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1790607282055-ehf5hye65 .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1790607282055-ehf5hye65 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1790607282055-ehf5hye65.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-expand-btn, #fv-chart-1790607282055-ehf5hye65 .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-expand-btn:hover, #fv-chart-1790607282055-ehf5hye65 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1790607282055-ehf5hye65 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1790607282055-ehf5hye65 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1790607282055-ehf5hye65 .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1790607282055-ehf5hye65 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1790607282055-ehf5hye65 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1790607282055-ehf5hye65 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1790607282055-ehf5hye65 .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-bar-row, #fv-chart-1790607282055-ehf5hye65 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1790607282055-ehf5hye65.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1790607282055-ehf5hye65.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1790607282055-ehf5hye65 .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1790607282055-ehf5hye65 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1790607282055-ehf5hye65 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1790607282055-ehf5hye65 .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1790607282055-ehf5hye65 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1790607282055-ehf5hye65 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1790607282055-ehf5hye65 .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1790607282055-ehf5hye65 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1790607282055-ehf5hye65 .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1790607282055-ehf5hye65 .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1790607282055-ehf5hye65 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1790607282055-ehf5hye65 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1790607282055-ehf5hye65 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1790607282055-ehf5hye65 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1790607282055-ehf5hye65 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65.mobile-view .fv-pie-container,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-row,#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-stacked-product,#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-grouped-bar-product,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-bar-row,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-stacked-product,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1790607282055-ehf5hye65.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-1790607282055-ehf5hye65.mobile-view .fv-bar-label,#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-grouped-product-title,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-bar-label,#fv-chart-1790607282055-ehf5hye65.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-1790607282055-ehf5hye65.mobile-view .fv-bar-container,#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-cluster,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-bar-container,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607282055-ehf5hye65.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-1790607282055-ehf5hye65.mobile-view .fv-x-axis-wrapper,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-x-axis-label-space,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-x-axis-chart-space,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-benchmark-title,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-dropdown-title,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-carousel-nav-btn,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-chart-title,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-chart-subhead,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-header,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-select-wrapper,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-vs,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-select-container,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-versus-select,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-stl-shop-all-btn,#fv-chart-1790607282055-ehf5hye65.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-1790607282055-ehf5hye65.mobile-view .fv-stl-shop-all-logo,#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-stl-shop-all-icon,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-bar-commentary-inline,#fv-chart-1790607282055-ehf5hye65.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1790607282055-ehf5hye65.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1790607282055-ehf5hye65.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1790607282055-ehf5hye65 .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1790607282055-ehf5hye65 .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1790607282055-ehf5hye65 .fv-bar-row,#fv-chart-1790607282055-ehf5hye65 .fv-stacked-product,#fv-chart-1790607282055-ehf5hye65 .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-bar-label,#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-bar-container,#fv-chart-1790607282055-ehf5hye65 .fv-bar-cluster {width: 100% !important;}#fv-chart-1790607282055-ehf5hye65 .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607282055-ehf5hye65 .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607282055-ehf5hye65 .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1790607282055-ehf5hye65 .fv-x-axis-label-space {display: none !important;}#fv-chart-1790607282055-ehf5hye65 .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1790607282055-ehf5hye65 .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1790607282055-ehf5hye65 .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1790607282055-ehf5hye65 .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1790607282055-ehf5hye65 .fv-chart-title {padding: 0 8px !important;}#fv-chart-1790607282055-ehf5hye65 .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1790607282055-ehf5hye65 .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1790607282055-ehf5hye65 .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-1790607282055-ehf5hye65 .fv-stl-shop-all-logo,#fv-chart-1790607282055-ehf5hye65 .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1790607282055-ehf5hye65 .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1790607282055-ehf5hye65 .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1790607282055-ehf5hye65 .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1790607282055-ehf5hye65.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Mopping test","description": "Floor before and after mopping test with Roborock vacuum cleaner","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-28T14:54:42.055Z","citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","keywords": ["Image Comparison","benchmark","comparison","performance","review","TechRadar"],"measurementTechnique": "Performance Benchmarking","variableMeasured": []}BeforeAfterwindow.iFrameResizer = {heightCalculationMethod: 'taggedElement'};(function() {window.fvAnimateCharts = function(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);}});};function initialize(uniqueId, isSlideshow) {var root = document.getElementById(uniqueId);if (!root && !isSlideshow) return;function setupWrapper(chartWrapper) {if (!chartWrapper) return;function checkMobileView() {var width = chartWrapper.getBoundingClientRect().width;var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;var isMobile;if (width === 0) {isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;} else {isMobile = isMobileDevice || width < 600;}if (isMobile) {chartWrapper.classList.add('mobile-view');} else {chartWrapper.classList.remove('mobile-view');}}checkMobileView();if (typeof ResizeObserver !== 'undefined') {var ro = new ResizeObserver(function() {checkMobileView();});ro.observe(chartWrapper);}window.addEventListener('resize', checkMobileView);var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';if (labelsOnTop) {var charts = chartWrapper.querySelectorAll('.fv-chart-item');var hasVisibleBarChart = false;charts.forEach(function(c) {if (window.getComputedStyle(c).display !== 'none') {var cType = c.dataset.chartType;if (cType === 'Bar' || cType === 'Stacked Bar' || cType === 'Versus') {hasVisibleBarChart = true;}}});if (hasVisibleBarChart) {chartWrapper.classList.add('labels-on-top');} else {chartWrapper.classList.remove('labels-on-top');}} else {chartWrapper.classList.remove('labels-on-top');}chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {var chartId = legend.dataset.chart;var chart = chartWrapper.querySelector('[id="' + chartId + '"]');if (!chart) return;var lines = chart.querySelectorAll('.riv-line-path');var dots = chart.querySelectorAll('.riv-dot');var legendItems = legend.querySelectorAll('.riv-legend-item');legendItems.forEach(function(item) {var productName = item.dataset.product;var safeProductName = productName.replace(/"/g, '\"');var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');if (line && !line.dataset.origStroke) {line.dataset.origStroke = line.getAttribute('stroke-width') || '2';}var highlight = function() {if (legend.querySelector('.isolated')) return;lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '0.2'; });legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });if (line) {line.style.opacity = '1';line.setAttribute('stroke-width', '4');}productDots.forEach(function(d) { d.style.opacity = '1'; });item.style.opacity = '1';};var clearHighlight = function() {if (legend.querySelector('.isolated')) return;lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '1'; });legendItems.forEach(function(i) { i.style.opacity = '1'; });};var toggleIsolate = function() {var isIsolated = item.classList.contains('isolated');legendItems.forEach(function(i) { i.classList.remove('isolated'); });if (isIsolated) {lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '1'; });legendItems.forEach(function(i) { i.style.opacity = '1'; });} else {item.classList.add('isolated');lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '0.2'; });legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });if (line) {line.style.opacity = '1';line.setAttribute('stroke-width', '4');}productDots.forEach(function(d) { d.style.opacity = '1'; });item.style.opacity = '1';}};item.addEventListener('mouseenter', highlight);item.addEventListener('focus', highlight);item.addEventListener('mouseleave', clearHighlight);item.addEventListener('blur', clearHighlight);item.addEventListener('click', toggleIsolate);if (line) {line.style.cursor = 'pointer';line.addEventListener('mouseenter', highlight);line.addEventListener('mouseleave', clearHighlight);line.addEventListener('click', toggleIsolate);}});});var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');versusCharts.forEach(function(vc) {var dataJson = vc.getAttribute('data-versus-data');var leftColor = vc.getAttribute('data-left-color') || '#E53935';var rightColor = vc.getAttribute('data-right-color') || '#FFB300';if (!dataJson) return;var versusData = JSON.parse(dataJson);var leftSelect = vc.querySelector('.fv-select-left');var rightSelect = vc.querySelector('.fv-select-right');var rows = vc.querySelectorAll('.fv-versus-row');function updateVersusChart() {var leftProduct = leftSelect.value;var rightProduct = rightSelect.value;leftSelect.style.color = leftColor;leftSelect.style.borderColor = leftColor;rightSelect.style.color = rightColor;rightSelect.style.borderColor = rightColor;rows.forEach(function(row) {var index = parseInt(row.getAttribute('data-index'));var data = versusData[index];if (!data) return;var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;var leftIsNum = typeof leftVal === 'number';var rightIsNum = typeof rightVal === 'number';var leftNum = leftIsNum ? leftVal : 0;var rightNum = rightIsNum ? rightVal : 0;var maxVal = Math.max(leftNum, rightNum, 0.0001);var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;var winner = null;var pctDiffStr = null;if (leftIsNum && rightIsNum) {if (leftNum > rightNum) {winner = 'left';if (rightNum > 0) {var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);pctDiffStr = '+' + diff.toLocaleString() + '%';}} else if (rightNum > leftNum) {winner = 'right';if (leftNum > 0) {var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);pctDiffStr = '+' + diff.toLocaleString() + '%';}}}var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||(data.productData[rightProduct] && data.productData[rightProduct].unit) || '';var leftTextStr = leftDisplay;var rightTextStr = rightDisplay;var leftBar = row.querySelector('.fv-versus-bar-left');var rightBar = row.querySelector('.fv-versus-bar-right');var leftText = row.querySelector('.fv-inside-left');var rightText = row.querySelector('.fv-inside-right');var labelText = row.querySelector('.fv-versus-label span');var leftWrapper = row.querySelector('.fv-versus-bar-left-wrapper');var rightWrapper = row.querySelector('.fv-versus-bar-right-wrapper');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);});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');}});}}});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 === 'Line') {} else if (cType !== 'Pie') {window.fvAnimateCharts(chartWrapper);}var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';if (labelsOnTop && (cType === '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); });}var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');imageCompareWrappers.forEach(function(wrapper) {var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;var slider = wrapper.querySelector('.fv-image-compare-slider');var fgImage = wrapper.querySelector('.fv-image-compare-fg');var bgImage = wrapper.querySelector('.fv-image-compare-bg');var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');var labelRight = wrapper.querySelector('.fv-image-compare-label-right');var isDragging = false;var scale = 1;var panX = 0;var panY = 0;var isPanning = false;var hasPanned = false;var lastClientX = 0;var lastClientY = 0;var initialDistance = null;var lastCenterX = null;var lastCenterY = null;function updateTransform() {if (wrapper.classList.contains('fv-image-compare-fullscreen')) {inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');} else {inner.style.removeProperty('transform');scale = 1;panX = 0;panY = 0;}}function constrainPan() {var rect = wrapper.getBoundingClientRect();var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);panX = Math.max(-maxPanX, Math.min(panX, maxPanX));panY = Math.max(-maxPanY, Math.min(panY, maxPanY));}wrapper.addEventListener('wheel', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;e.preventDefault();var zoomSensitivity = 0.005;var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));if (newScale === scale) return;var rect = wrapper.getBoundingClientRect();var mouseX = e.clientX - rect.left - rect.width / 2;var mouseY = e.clientY - rect.top - rect.height / 2;var ratio = newScale / scale;panX = mouseX - (mouseX - panX) * ratio;panY = mouseY - (mouseY - panY) * ratio;scale = newScale;constrainPan();updateTransform();}, { passive: false });wrapper.addEventListener('mousedown', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;isPanning = true;hasPanned = false;lastClientX = e.clientX;lastClientY = e.clientY;});window.addEventListener('mousemove', function(e) {if (!isPanning) return;var dx = e.clientX - lastClientX;var dy = e.clientY - lastClientY;if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {hasPanned = true;}lastClientX = e.clientX;lastClientY = e.clientY;panX += dx;panY += dy;constrainPan();updateTransform();});window.addEventListener('mouseup', function() {isPanning = false;});wrapper.addEventListener('touchstart', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;if (e.touches.length === 2) {e.preventDefault();var dx = e.touches[0].clientX - e.touches[1].clientX;var dy = e.touches[0].clientY - e.touches[1].clientY;initialDistance = Math.sqrt(dx * dx + dy * dy);var rect = wrapper.getBoundingClientRect();lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;hasPanned = true;} else if (e.touches.length === 1 && scale > 1) {if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;isPanning = true;hasPanned = false;lastClientX = e.touches[0].clientX;lastClientY = e.touches[0].clientY;}}, { passive: false });wrapper.addEventListener('touchmove', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;if (e.touches.length === 2 && initialDistance !== null) {e.preventDefault();var dx = e.touches[0].clientX - e.touches[1].clientX;var dy = e.touches[0].clientY - e.touches[1].clientY;var distance = Math.sqrt(dx * dx + dy * dy);if (initialDistance > 0) {var zoomFactor = distance / initialDistance;var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));var rect = wrapper.getBoundingClientRect();var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;var ratio = newScale / scale;panX = centerX - (centerX - panX) * ratio;panY = centerY - (centerY - panY) * ratio;if (lastCenterX !== null && lastCenterY !== null) {panX += (centerX - lastCenterX);panY += (centerY - lastCenterY);}scale = newScale;lastCenterX = centerX;lastCenterY = centerY;constrainPan();updateTransform();}initialDistance = distance;} else if (e.touches.length === 1 && isPanning) {e.preventDefault();var dx = e.touches[0].clientX - lastClientX;var dy = e.touches[0].clientY - lastClientY;if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {hasPanned = true;}lastClientX = e.touches[0].clientX;lastClientY = e.touches[0].clientY;panX += dx;panY += dy;constrainPan();updateTransform();}}, { passive: false });wrapper.addEventListener('touchend', function(e) {if (e.touches.length < 2) {initialDistance = null;}if (e.touches.length === 0) {isPanning = false;}});function handleMove(clientX) {var rect = inner.getBoundingClientRect();var x = Math.max(0, Math.min(clientX - rect.left, rect.width));var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));if (slider) slider.style.setProperty('left', percent + '%', 'important');if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');if (labelLeft) {if (percent < 10) {labelLeft.style.setProperty('opacity', '0', 'important');} else {labelLeft.style.setProperty('opacity', '1', 'important');}}if (labelRight) {if (percent > 90) {labelRight.style.setProperty('opacity', '0', 'important');} else {labelRight.style.setProperty('opacity', '1', 'important');}}}function onMouseMove(e) {if (!isDragging) return;handleMove(e.clientX);}function onTouchMove(e) {if (!isDragging) return;e.preventDefault();handleMove(e.touches[0].clientX);}function stopDragging() {isDragging = false;window.removeEventListener('mousemove', onMouseMove);window.removeEventListener('mouseup', stopDragging);window.removeEventListener('touchmove', onTouchMove);window.removeEventListener('touchend', stopDragging);}if (slider) {var startDrag = function(clientX) {isDragging = true;handleMove(clientX);window.addEventListener('mousemove', onMouseMove);window.addEventListener('mouseup', stopDragging);};var startTouchDrag = function(clientX) {isDragging = true;handleMove(clientX);window.addEventListener('touchmove', onTouchMove, { passive: false });window.addEventListener('touchend', stopDragging);};slider.addEventListener('mousedown', function(e) {e.preventDefault();startDrag(e.clientX);});slider.addEventListener('touchstart', function(e) {e.preventDefault();startTouchDrag(e.touches[0].clientX);}, { passive: false });}var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');if (expandBtn) {if (window !== window.parent) {expandBtn.style.display = 'none';} else {expandBtn.addEventListener('click', function(e) {e.stopPropagation();wrapper.classList.add('fv-image-compare-fullscreen');document.body.style.overflow = 'hidden';if (fgImage && fgImage.dataset.highresSrc) {fgImage.src = fgImage.dataset.highresSrc;fgImage.removeAttribute('srcset');fgImage.removeAttribute('sizes');}if (bgImage && bgImage.dataset.highresSrc) {bgImage.src = bgImage.dataset.highresSrc;bgImage.removeAttribute('srcset');bgImage.removeAttribute('sizes');}});}}if (closeBtn) {closeBtn.addEventListener('click', function(e) {e.stopPropagation();wrapper.classList.remove('fv-image-compare-fullscreen');document.body.style.overflow = '';updateTransform();});}document.addEventListener('keydown', function(e) {if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {wrapper.classList.remove('fv-image-compare-fullscreen');document.body.style.overflow = '';updateTransform();}});});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 allProductsList = chartWrapper.querySelector('.fv-stl-all-products-list');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();}});}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();}});}window.fvAnimateCharts(chartWrapper);var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');if (countdownContainer) {var targetDateAttr = countdownContainer.getAttribute('data-target-date');if (targetDateAttr) {var targetDate = new Date(targetDateAttr);var primaryColor = countdownContainer.getAttribute('data-primary-color') || '#f97316';var subheadColor = countdownContainer.getAttribute('data-subhead-color') || '#ffffff';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-1790607282055-ehf5hye65', false); });} else {initialize('fv-chart-1790607282055-ehf5hye65', false);}})();

While the most intensive cleaning took some time and left the floor relatively wet, it was some of the best mopping I have ever seen from a robot. You do need to delve into the settings to get the best performance and it probably is only practical for small zone cleaning but it's still a lot less effort than getting out a mop and bucket.

On regular cleaning settings it can manage around five regular rooms before needing recharging so depending on your home it may need to recharge before completing a full clean. Recharging takes around four hours.

@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-1790607426801-muejn7a43 *, #fv-chart-1790607426801-muejn7a43 *:before, #fv-chart-1790607426801-muejn7a43 *:after, #fv-chart-1790607426801-muejn7a43-slideshow *, #fv-chart-1790607426801-muejn7a43-slideshow *:before, #fv-chart-1790607426801-muejn7a43-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1790607426801-muejn7a43, #fv-chart-1790607426801-muejn7a43-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1790607426801-muejn7a43 {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1790607426801-muejn7a43 .fv-inner-wrapper {color: #1F2937 !important; background-color: #ffffff !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-1790607426801-muejn7a43 .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1790607426801-muejn7a43.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1790607426801-muejn7a43.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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1790607426801-muejn7a43-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1790607426801-muejn7a43-slideshow .fv-slide {width: 100% !important;animation: fv-fade-in 0.3s ease-in-out;}@keyframes fv-fade-in {from { opacity: 0; }to { opacity: 1; }}#fv-chart-1790607426801-muejn7a43-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-1790607426801-muejn7a43-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-1790607426801-muejn7a43-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1790607426801-muejn7a43-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1790607426801-muejn7a43-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-1790607426801-muejn7a43-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;}#fv-chart-1790607426801-muejn7a43-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-1790607426801-muejn7a43-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1790607426801-muejn7a43 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1790607426801-muejn7a43 .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1790607426801-muejn7a43 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1790607426801-muejn7a43 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1790607426801-muejn7a43 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1790607426801-muejn7a43 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1790607426801-muejn7a43 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1790607426801-muejn7a43 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1790607426801-muejn7a43 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1790607426801-muejn7a43 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1790607426801-muejn7a43 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1790607426801-muejn7a43 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1790607426801-muejn7a43 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1790607426801-muejn7a43 .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1790607426801-muejn7a43 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1790607426801-muejn7a43 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1790607426801-muejn7a43.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper { position: relative !important; width: 100% !important; overflow: hidden !important; border-radius: 0 !important; background-color: #000 !important; touch-action: pan-y !important; user-select: none !important; -webkit-user-select: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-inner { position: relative !important; width: 100% !important; height: 100% !important; display: block !important; transform-origin: center center !important; transition: transform 0.1s ease-out !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-bg { display: block !important; width: 100% !important; height: auto !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-fg { position: absolute !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover !important; clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%) !important; pointer-events: none !important; user-select: none !important; -webkit-user-select: none !important; -webkit-user-drag: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-slider { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 32px !important; transform: translateX(-50%) !important; cursor: ew-resize !important; z-index: 10 !important; user-select: none !important; -webkit-user-select: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-slider-line { position: absolute !important; top: 0 !important; bottom: 0 !important; left: 50% !important; width: 4px !important; background-color: white !important; transform: translateX(-50%) !important; box-shadow: 0 0 10px rgba(0,0,0,0.5) !important; pointer-events: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-handle { position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 32px !important; height: 32px !important; background-color: white !important; border-radius: 50% !important; box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 4px !important; pointer-events: none !important; z-index: 11 !important; overflow: hidden !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-arrow-left { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-right: 4px solid #4b5563 !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-arrow-right { width: 0 !important; height: 0 !important; border-top: 4px solid transparent !important; border-bottom: 4px solid transparent !important; border-left: 4px solid #4b5563 !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-label { position: absolute !important; top: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; padding: 0.25rem 0.75rem !important; border-radius: 0.25rem !important; font-size: 0.875rem !important; font-weight: 500 !important; pointer-events: none !important; backdrop-filter: blur(4px) !important; z-index: 5 !important; transition: right 0.3s ease, opacity 0.2s ease !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-expand-btn, #fv-chart-1790607426801-muejn7a43 .fv-image-compare-close-btn { position: absolute !important; bottom: 1rem !important; right: 1rem !important; background-color: rgba(0, 0, 0, 0.5) !important; color: white !important; border: none !important; border-radius: 0.25rem !important; padding: 0.5rem !important; cursor: pointer !important; z-index: 20 !important; display: flex !important; align-items: center !important; justify-content: center !important; backdrop-filter: blur(4px) !important; transition: background-color 0.2s !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-expand-btn:hover, #fv-chart-1790607426801-muejn7a43 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper.fv-image-compare-fullscreen { position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; bottom: 0 !important; width: 100% !important; height: 100% !important; z-index: 999999 !important; display: flex !important; align-items: center !important; justify-content: center !important; background-color: rgba(0, 0, 0, 0.9) !important; margin: 0 !important; touch-action: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner { width: 100% !important; height: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: grab !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-bg { position: absolute !important; top: 0 !important; left: 0 !important; max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-fg { max-width: 100% !important; max-height: 100% !important; width: 100% !important; height: 100% !important; object-fit: contain !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1790607426801-muejn7a43 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1790607426801-muejn7a43 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1790607426801-muejn7a43 .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1790607426801-muejn7a43 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1790607426801-muejn7a43 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1790607426801-muejn7a43 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1790607426801-muejn7a43 .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-bar-row, #fv-chart-1790607426801-muejn7a43 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1790607426801-muejn7a43.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1790607426801-muejn7a43.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1790607426801-muejn7a43 .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1790607426801-muejn7a43 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1790607426801-muejn7a43 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1790607426801-muejn7a43 .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1790607426801-muejn7a43 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1790607426801-muejn7a43 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1790607426801-muejn7a43 .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1790607426801-muejn7a43 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1790607426801-muejn7a43 .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1790607426801-muejn7a43 .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1790607426801-muejn7a43 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1790607426801-muejn7a43 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1790607426801-muejn7a43 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1790607426801-muejn7a43 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1790607426801-muejn7a43 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .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-1790607426801-muejn7a43.mobile-view .fv-pie-container,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-row,#fv-chart-1790607426801-muejn7a43.mobile-view .fv-stacked-product,#fv-chart-1790607426801-muejn7a43.mobile-view .fv-grouped-bar-product,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-bar-row,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-stacked-product,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1790607426801-muejn7a43.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-1790607426801-muejn7a43.mobile-view .fv-bar-label,#fv-chart-1790607426801-muejn7a43.mobile-view .fv-grouped-product-title,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-bar-label,#fv-chart-1790607426801-muejn7a43.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-1790607426801-muejn7a43.mobile-view .fv-bar-container,#fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-cluster,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-bar-container,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607426801-muejn7a43.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-1790607426801-muejn7a43.mobile-view .fv-x-axis-wrapper,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-x-axis-label-space,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-x-axis-chart-space,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-benchmark-title,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-dropdown-title,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-carousel-nav-btn,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-chart-title,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-chart-subhead,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-header,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-select-wrapper,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-vs,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-select-container,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-versus-select,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-stl-shop-all-btn,#fv-chart-1790607426801-muejn7a43.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-1790607426801-muejn7a43.mobile-view .fv-stl-shop-all-logo,#fv-chart-1790607426801-muejn7a43.mobile-view .fv-stl-shop-all-icon,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-bar-commentary-inline,#fv-chart-1790607426801-muejn7a43.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1790607426801-muejn7a43.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1790607426801-muejn7a43.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1790607426801-muejn7a43 .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1790607426801-muejn7a43 .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1790607426801-muejn7a43 .fv-bar-row,#fv-chart-1790607426801-muejn7a43 .fv-stacked-product,#fv-chart-1790607426801-muejn7a43 .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-bar-label,#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-bar-container,#fv-chart-1790607426801-muejn7a43 .fv-bar-cluster {width: 100% !important;}#fv-chart-1790607426801-muejn7a43 .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1790607426801-muejn7a43 .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1790607426801-muejn7a43 .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1790607426801-muejn7a43 .fv-x-axis-label-space {display: none !important;}#fv-chart-1790607426801-muejn7a43 .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1790607426801-muejn7a43 .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1790607426801-muejn7a43 .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1790607426801-muejn7a43 .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1790607426801-muejn7a43 .fv-chart-title {padding: 0 8px !important;}#fv-chart-1790607426801-muejn7a43 .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1790607426801-muejn7a43 .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1790607426801-muejn7a43 .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-1790607426801-muejn7a43 .fv-stl-shop-all-logo,#fv-chart-1790607426801-muejn7a43 .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1790607426801-muejn7a43 .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1790607426801-muejn7a43 .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1790607426801-muejn7a43 .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1790607426801-muejn7a43.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Edge cleaning","description": "Cleaning edge of hard floor with Roborock vacuum cleaner to test vacuuming","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-28T14:57:06.801Z","citation": "Add your caption to explain the data, the learnings and the key takeaways of the data being visualized","keywords": ["Image Comparison","benchmark","comparison","performance","review","TechRadar"],"measurementTechnique": "Performance Benchmarking","variableMeasured": []}BeforeAfterwindow.iFrameResizer = {heightCalculationMethod: 'taggedElement'};(function() {window.fvAnimateCharts = function(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);}});};function initialize(uniqueId, isSlideshow) {var root = document.getElementById(uniqueId);if (!root && !isSlideshow) return;function setupWrapper(chartWrapper) {if (!chartWrapper) return;function checkMobileView() {var width = chartWrapper.getBoundingClientRect().width;var isMobileDevice = window.screen && Math.min(window.screen.width, window.screen.height) <= 599;var isMobile;if (width === 0) {isMobile = isMobileDevice || window.matchMedia('(max-width: 599px)').matches;} else {isMobile = isMobileDevice || width < 600;}if (isMobile) {chartWrapper.classList.add('mobile-view');} else {chartWrapper.classList.remove('mobile-view');}}checkMobileView();if (typeof ResizeObserver !== 'undefined') {var ro = new ResizeObserver(function() {checkMobileView();});ro.observe(chartWrapper);}window.addEventListener('resize', checkMobileView);var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';if (labelsOnTop) {var charts = chartWrapper.querySelectorAll('.fv-chart-item');var hasVisibleBarChart = false;charts.forEach(function(c) {if (window.getComputedStyle(c).display !== 'none') {var cType = c.dataset.chartType;if (cType === 'Bar' || cType === 'Stacked Bar' || cType === 'Versus') {hasVisibleBarChart = true;}}});if (hasVisibleBarChart) {chartWrapper.classList.add('labels-on-top');} else {chartWrapper.classList.remove('labels-on-top');}} else {chartWrapper.classList.remove('labels-on-top');}chartWrapper.querySelectorAll('.riv-line-legend').forEach(function(legend) {var chartId = legend.dataset.chart;var chart = chartWrapper.querySelector('[id="' + chartId + '"]');if (!chart) return;var lines = chart.querySelectorAll('.riv-line-path');var dots = chart.querySelectorAll('.riv-dot');var legendItems = legend.querySelectorAll('.riv-legend-item');legendItems.forEach(function(item) {var productName = item.dataset.product;var safeProductName = productName.replace(/"/g, '\"');var line = chart.querySelector('.riv-line-path[data-product="' + safeProductName + '"]');var productDots = chart.querySelectorAll('.riv-dot[data-product="' + safeProductName + '"]');if (line && !line.dataset.origStroke) {line.dataset.origStroke = line.getAttribute('stroke-width') || '2';}var highlight = function() {if (legend.querySelector('.isolated')) return;lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '0.2'; });legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });if (line) {line.style.opacity = '1';line.setAttribute('stroke-width', '4');}productDots.forEach(function(d) { d.style.opacity = '1'; });item.style.opacity = '1';};var clearHighlight = function() {if (legend.querySelector('.isolated')) return;lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '1'; });legendItems.forEach(function(i) { i.style.opacity = '1'; });};var toggleIsolate = function() {var isIsolated = item.classList.contains('isolated');legendItems.forEach(function(i) { i.classList.remove('isolated'); });if (isIsolated) {lines.forEach(function(l) { l.style.opacity = '1'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '1'; });legendItems.forEach(function(i) { i.style.opacity = '1'; });} else {item.classList.add('isolated');lines.forEach(function(l) { l.style.opacity = '0.2'; l.setAttribute('stroke-width', l.dataset.origStroke); });dots.forEach(function(d) { d.style.opacity = '0.2'; });legendItems.forEach(function(i) { i.style.opacity = '0.3'; i.style.transition = 'opacity 0.2s'; });if (line) {line.style.opacity = '1';line.setAttribute('stroke-width', '4');}productDots.forEach(function(d) { d.style.opacity = '1'; });item.style.opacity = '1';}};item.addEventListener('mouseenter', highlight);item.addEventListener('focus', highlight);item.addEventListener('mouseleave', clearHighlight);item.addEventListener('blur', clearHighlight);item.addEventListener('click', toggleIsolate);if (line) {line.style.cursor = 'pointer';line.addEventListener('mouseenter', highlight);line.addEventListener('mouseleave', clearHighlight);line.addEventListener('click', toggleIsolate);}});});var versusCharts = chartWrapper.querySelectorAll('.fv-versus-chart');versusCharts.forEach(function(vc) {var dataJson = vc.getAttribute('data-versus-data');var leftColor = vc.getAttribute('data-left-color') || '#E53935';var rightColor = vc.getAttribute('data-right-color') || '#FFB300';if (!dataJson) return;var versusData = JSON.parse(dataJson);var leftSelect = vc.querySelector('.fv-select-left');var rightSelect = vc.querySelector('.fv-select-right');var rows = vc.querySelectorAll('.fv-versus-row');function updateVersusChart() {var leftProduct = leftSelect.value;var rightProduct = rightSelect.value;leftSelect.style.color = leftColor;leftSelect.style.borderColor = leftColor;rightSelect.style.color = rightColor;rightSelect.style.borderColor = rightColor;rows.forEach(function(row) {var index = parseInt(row.getAttribute('data-index'));var data = versusData[index];if (!data) return;var leftVal = data.productData[leftProduct] ? data.productData[leftProduct].value : undefined;var rightVal = data.productData[rightProduct] ? data.productData[rightProduct].value : undefined;var leftIsNum = typeof leftVal === 'number';var rightIsNum = typeof rightVal === 'number';var leftNum = leftIsNum ? leftVal : 0;var rightNum = rightIsNum ? rightVal : 0;var maxVal = Math.max(leftNum, rightNum, 0.0001);var leftWidth = leftIsNum ? (leftNum / maxVal) * 95 : 0;var rightWidth = rightIsNum ? (rightNum / maxVal) * 85 : 0;var winner = null;var pctDiffStr = null;if (leftIsNum && rightIsNum) {if (leftNum > rightNum) {winner = 'left';if (rightNum > 0) {var diff = Math.round(((leftNum - rightNum) / rightNum) * 100);pctDiffStr = '+' + diff.toLocaleString() + '%';}} else if (rightNum > leftNum) {winner = 'right';if (leftNum > 0) {var diff = Math.round(((rightNum - leftNum) / leftNum) * 100);pctDiffStr = '+' + diff.toLocaleString() + '%';}}}var leftDisplay = data.productData[leftProduct] && data.productData[leftProduct].displayValue !== undefined ? data.productData[leftProduct].displayValue : (leftIsNum ? leftNum.toLocaleString() : (leftVal !== undefined ? leftVal : '-'));var rightDisplay = data.productData[rightProduct] && data.productData[rightProduct].displayValue !== undefined ? data.productData[rightProduct].displayValue : (rightIsNum ? rightNum.toLocaleString() : (rightVal !== undefined ? rightVal : '-'));var unit = (data.productData[leftProduct] && data.productData[leftProduct].unit) ||(data.productData[rightProduct] && data.productData[rightProduct].unit) || '';var leftTextStr = leftDisplay;var rightTextStr = rightDisplay;var leftBar = row.querySelector('.fv-versus-bar-left');var rightBar = row.querySelector('.fv-versus-bar-right');var leftText = row.querySelector('.fv-inside-left');var rightText = row.querySelector('.fv-inside-right');var labelText = row.querySelector('.fv-versus-label span');var leftWrapper = row.querySelector('.fv-versus-bar-left-wrapper');var rightWrapper = row.querySelector('.fv-versus-bar-right-wrapper');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);});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');}});}}});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 === 'Line') {} else if (cType !== 'Pie') {window.fvAnimateCharts(chartWrapper);}var labelsOnTop = chartWrapper.dataset.barLabelsOnTop === 'true';if (labelsOnTop && (cType === '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); });}var imageCompareWrappers = chartWrapper.querySelectorAll('.fv-image-compare-wrapper');imageCompareWrappers.forEach(function(wrapper) {var inner = wrapper.querySelector('.fv-image-compare-inner') || wrapper;var slider = wrapper.querySelector('.fv-image-compare-slider');var fgImage = wrapper.querySelector('.fv-image-compare-fg');var bgImage = wrapper.querySelector('.fv-image-compare-bg');var labelLeft = wrapper.querySelector('.fv-image-compare-label-left');var labelRight = wrapper.querySelector('.fv-image-compare-label-right');var isDragging = false;var scale = 1;var panX = 0;var panY = 0;var isPanning = false;var hasPanned = false;var lastClientX = 0;var lastClientY = 0;var initialDistance = null;var lastCenterX = null;var lastCenterY = null;function updateTransform() {if (wrapper.classList.contains('fv-image-compare-fullscreen')) {inner.style.setProperty('transform', 'translate(' + panX + 'px, ' + panY + 'px) scale(' + scale + ')', 'important');} else {inner.style.removeProperty('transform');scale = 1;panX = 0;panY = 0;}}function constrainPan() {var rect = wrapper.getBoundingClientRect();var maxPanX = Math.max(0, (rect.width * scale - rect.width) / 2);var maxPanY = Math.max(0, (rect.height * scale - rect.height) / 2);panX = Math.max(-maxPanX, Math.min(panX, maxPanX));panY = Math.max(-maxPanY, Math.min(panY, maxPanY));}wrapper.addEventListener('wheel', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;e.preventDefault();var zoomSensitivity = 0.005;var zoomFactor = Math.exp(-e.deltaY * zoomSensitivity);var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));if (newScale === scale) return;var rect = wrapper.getBoundingClientRect();var mouseX = e.clientX - rect.left - rect.width / 2;var mouseY = e.clientY - rect.top - rect.height / 2;var ratio = newScale / scale;panX = mouseX - (mouseX - panX) * ratio;panY = mouseY - (mouseY - panY) * ratio;scale = newScale;constrainPan();updateTransform();}, { passive: false });wrapper.addEventListener('mousedown', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen') || scale <= 1) return;if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;isPanning = true;hasPanned = false;lastClientX = e.clientX;lastClientY = e.clientY;});window.addEventListener('mousemove', function(e) {if (!isPanning) return;var dx = e.clientX - lastClientX;var dy = e.clientY - lastClientY;if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {hasPanned = true;}lastClientX = e.clientX;lastClientY = e.clientY;panX += dx;panY += dy;constrainPan();updateTransform();});window.addEventListener('mouseup', function() {isPanning = false;});wrapper.addEventListener('touchstart', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;if (e.touches.length === 2) {e.preventDefault();var dx = e.touches[0].clientX - e.touches[1].clientX;var dy = e.touches[0].clientY - e.touches[1].clientY;initialDistance = Math.sqrt(dx * dx + dy * dy);var rect = wrapper.getBoundingClientRect();lastCenterX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;lastCenterY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;hasPanned = true;} else if (e.touches.length === 1 && scale > 1) {if (e.target.closest('.fv-image-compare-slider') || e.target.closest('button')) return;isPanning = true;hasPanned = false;lastClientX = e.touches[0].clientX;lastClientY = e.touches[0].clientY;}}, { passive: false });wrapper.addEventListener('touchmove', function(e) {if (!wrapper.classList.contains('fv-image-compare-fullscreen')) return;if (e.touches.length === 2 && initialDistance !== null) {e.preventDefault();var dx = e.touches[0].clientX - e.touches[1].clientX;var dy = e.touches[0].clientY - e.touches[1].clientY;var distance = Math.sqrt(dx * dx + dy * dy);if (initialDistance > 0) {var zoomFactor = distance / initialDistance;var newScale = Math.max(1, Math.min(scale * zoomFactor, 5));var rect = wrapper.getBoundingClientRect();var centerX = (e.touches[0].clientX + e.touches[1].clientX) / 2 - rect.left - rect.width / 2;var centerY = (e.touches[0].clientY + e.touches[1].clientY) / 2 - rect.top - rect.height / 2;var ratio = newScale / scale;panX = centerX - (centerX - panX) * ratio;panY = centerY - (centerY - panY) * ratio;if (lastCenterX !== null && lastCenterY !== null) {panX += (centerX - lastCenterX);panY += (centerY - lastCenterY);}scale = newScale;lastCenterX = centerX;lastCenterY = centerY;constrainPan();updateTransform();}initialDistance = distance;} else if (e.touches.length === 1 && isPanning) {e.preventDefault();var dx = e.touches[0].clientX - lastClientX;var dy = e.touches[0].clientY - lastClientY;if (Math.abs(dx) > 2 || Math.abs(dy) > 2) {hasPanned = true;}lastClientX = e.touches[0].clientX;lastClientY = e.touches[0].clientY;panX += dx;panY += dy;constrainPan();updateTransform();}}, { passive: false });wrapper.addEventListener('touchend', function(e) {if (e.touches.length < 2) {initialDistance = null;}if (e.touches.length === 0) {isPanning = false;}});function handleMove(clientX) {var rect = inner.getBoundingClientRect();var x = Math.max(0, Math.min(clientX - rect.left, rect.width));var percent = Math.max(0, Math.min((x / rect.width) * 100, 100));if (slider) slider.style.setProperty('left', percent + '%', 'important');if (fgImage) fgImage.style.setProperty('clip-path', 'polygon(0 0, ' + percent + '% 0, ' + percent + '% 100%, 0 100%)', 'important');if (labelLeft) {if (percent < 10) {labelLeft.style.setProperty('opacity', '0', 'important');} else {labelLeft.style.setProperty('opacity', '1', 'important');}}if (labelRight) {if (percent > 90) {labelRight.style.setProperty('opacity', '0', 'important');} else {labelRight.style.setProperty('opacity', '1', 'important');}}}function onMouseMove(e) {if (!isDragging) return;handleMove(e.clientX);}function onTouchMove(e) {if (!isDragging) return;e.preventDefault();handleMove(e.touches[0].clientX);}function stopDragging() {isDragging = false;window.removeEventListener('mousemove', onMouseMove);window.removeEventListener('mouseup', stopDragging);window.removeEventListener('touchmove', onTouchMove);window.removeEventListener('touchend', stopDragging);}if (slider) {var startDrag = function(clientX) {isDragging = true;handleMove(clientX);window.addEventListener('mousemove', onMouseMove);window.addEventListener('mouseup', stopDragging);};var startTouchDrag = function(clientX) {isDragging = true;handleMove(clientX);window.addEventListener('touchmove', onTouchMove, { passive: false });window.addEventListener('touchend', stopDragging);};slider.addEventListener('mousedown', function(e) {e.preventDefault();startDrag(e.clientX);});slider.addEventListener('touchstart', function(e) {e.preventDefault();startTouchDrag(e.touches[0].clientX);}, { passive: false });}var expandBtn = wrapper.querySelector('.fv-image-compare-expand-btn');var closeBtn = wrapper.querySelector('.fv-image-compare-close-btn');if (expandBtn) {if (window !== window.parent) {expandBtn.style.display = 'none';} else {expandBtn.addEventListener('click', function(e) {e.stopPropagation();wrapper.classList.add('fv-image-compare-fullscreen');document.body.style.overflow = 'hidden';if (fgImage && fgImage.dataset.highresSrc) {fgImage.src = fgImage.dataset.highresSrc;fgImage.removeAttribute('srcset');fgImage.removeAttribute('sizes');}if (bgImage && bgImage.dataset.highresSrc) {bgImage.src = bgImage.dataset.highresSrc;bgImage.removeAttribute('srcset');bgImage.removeAttribute('sizes');}});}}if (closeBtn) {closeBtn.addEventListener('click', function(e) {e.stopPropagation();wrapper.classList.remove('fv-image-compare-fullscreen');document.body.style.overflow = '';updateTransform();});}document.addEventListener('keydown', function(e) {if (e.key === 'Escape' && wrapper.classList.contains('fv-image-compare-fullscreen')) {wrapper.classList.remove('fv-image-compare-fullscreen');document.body.style.overflow = '';updateTransform();}});});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 allProductsList = chartWrapper.querySelector('.fv-stl-all-products-list');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();}});}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();}});}window.fvAnimateCharts(chartWrapper);var countdownContainer = chartWrapper.querySelector('.fv-countdown-container');if (countdownContainer) {var targetDateAttr = countdownContainer.getAttribute('data-target-date');if (targetDateAttr) {var targetDate = new Date(targetDateAttr);var primaryColor = countdownContainer.getAttribute('data-primary-color') || '#f97316';var subheadColor = countdownContainer.getAttribute('data-subhead-color') || '#ffffff';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-1790607426801-muejn7a43', false); });} else {initialize('fv-chart-1790607426801-muejn7a43', false);}})();

It’s not loud in operation, registering around 60db while cleaning on carpet. The dock emptying is a little louder, topping out at 69db (around the level of normal conversation), although this is pretty brief so shouldn’t be too disruptive.

The Qrevo 2 Pro uses dust bags so emptying it of dirt is quick and neat, although that does add ongoing costs to using it. You will also need to empty the waste water and refill the clean water tanks regularly which is easy to do (as long as you leave enough clearance room above the robot) as these lift out of the dock and then can be unclipped open for emptying or filling.

Smart home integration worked well for starting a whole house clean but I did have a little trouble using the room clean function for custom named rooms. Naming a room one of the default names such as Kitchen or Living Room worked fine, but a custom name such as Utility Room sparked a whole house clean instead.

While custom room names would be helpful, even getting default room cleaning to work is not a guarantee with any of the robot vacuum cleaners I have tested so, relatively, this is a success.

  • Performance score: 4.5 out of 5
Roborock Qrevo 2 Pro: app
  • Easy setup
  • Clear house map
  • Can set frequent types of clean and schedule cleans

The app is simple to use, although I did find it can sometimes get a little lost if you select your cleaning mode too quickly, meaning you have to move to another mode and back again before getting the options you need.

Once you select the robot you are shown the map of your home and have four tabs to select the type of clean you want, 'Full', 'Room', 'Zone' and 'Routine'. 'Full' starts a clean of the whole map and to the left of the play button there is a button for adjusting the type of clean including whether you want to vacuum and mop, just vacuum or just mop. There are also controls for the level of suction, waterflow, amount of times you want the robot to clean the area and the intensity of the cleaning pattern.

The app is simple to use provided you don't hop between modes too quicklyFutureSelect your robot to see a map of your homeFutureYou can adjust the settings for the vacuum and mop independentlyFutureThe 'Routine' option allows you to schedule different types of cleaningFuture

Room allows you to select one or more rooms to clean, while Zones lets you pick multiple rectangular sections of your chosen size on the map for it to clean, allowing you to spot clean specific sections of floor.

'Routine' is the final option and allows you to create shortcuts for regular types of clean that will then be available from the opening screen on the app. This is useful for setting up things like zone cleans that focus around a dining table following a meal or if you want a predefined deep clean compared with a light maintenance clean.

Despite the name, 'Routine' doesn’t include any scheduling functionality by default. That is hidden somewhat in the settings menu, but can be used with scheduled cleans (if your home doesn’t regularly have bits of Lego on the floor like mine does).

  • App score: 5 out of 5
Should you buy the Roborock Qrevo 2 Pro?

Attribute

Notes

Score

Value for money

Even at full price the Qrevo 2 Pro represents good value and at a discount price it is a fantastic deal. You will need to consider the price of disposable dust bags in the running costs but you’ll be hard pressed to find these features and performance for less.

5/5

Design

The design is more focused on function than form but it is unfussy and designed to fit into most homes. The tall mounting of the lidar scanner will stop it from cleaning under low furniture.


4/5

Performance

Vacuuming performance is good and mopping is excellent although It did have trouble picking up on a charging cable in our object avoidance tests leading it to get stuck.


4.5/5

App

The app makes it easy to control, with simple options for choosing the type and location of cleans as well as a clear map of your home.

5/5

Buy it if

You have a lot of hard flooring that needs regular mopping.

On the maximum settings, it cleaned as well as any robot mop I have tested and even if you have carpeted areas the removable mop heads mean you don’t have to worry about it getting those damp.

You don’t want to spend over $1,000

Cleaning performance matches almost any robot vacuum regardless of price making it a great value option if you are shopping on a budget.

You hate the mess of emptying dust bins

Disposable bags may add to the running costs but emptying the dock is a quick and clean enough that you don’t have to get another vacuum out to clean up after.

Don't buy it if

You only have carpeted floors

The mop functionality adds to the price so if you’re not going to use it look at vacuum only options.

You have high thresholds between rooms

More expensive options add the ability to navigate over higher divisions between rooms, the Qvero 2 Pro will be able to handle most regular passageways but its not designed for complex terrain.

You’re looking for the cheapest viable option

While it does offer excellent value, you can pick up a good robovac for less if your budget is tight.View Deal

How I tested the Roborock Qrevo 2 Pro

I tested the Roborock Qrevo 2 Pro over a period of over two weeks, using it as an everyday cleaner of a busy household.

As well as day to day use I put it through a series of tests, assessing its performance picking up fine particles and larger debris on carpet and hard floor by having it clean an area with a set amount of rice and tea sprinkled on the surface. Edge cleaning was also tested using tea on the edge of a carpet and hard floor area.

Mopping performance was tested by having the robot clean up a spill of soy sauce, as well as tackling a patch of dried ketchup. After an initial pass on regular settings, this was then retested with cleaning settings set to maximum.

First reviewed September 2026

Categories: Reviews

Qidi Q2 3D printer review

TechRadar Reviews - Mon, 09/28/2026 - 01:20

Removing the Qidi Q2 from the box, I was instantly pleased to see that this new machine reflected everything that I have liked about the Qidi Plus4 machine that I looked at a couple of years ago. However, this is a smaller version with a footprint that is better suited to smaller workshops and studios.

Once again, it’s easy to write off these machines. Qidi , while in the business for as long as many of the big-name brands, just isn’t as well-known, and their machines just don’t have that spark of innovation that we see from the likes of Prusa Research, Bambu Lab, Creality, Elegoo or AnyCubic; however, above all, bar possibly Prusa, Qidi have reliability.

It’s been a busy few months, and the Q2 review has been a long time coming. It’s essentially been sitting, printing for 6 months without issue or fuss: switch on, print, whichever material I need for any given job, usually PLA but ASA, ABS and PETG-CF, same reliability, same print quality.

The main issue is that when a machine starts to blend in, just works as part of the workshop and now classroom you don’t tend to think of it as anything other than having always been there, and that really sums up the Qidi , while it may not have the cutting edge features, what it does have is absolute refinement and reliability.

As I have found in both a business and an educational environment, reliability is far more important than any headline speed figures, multitool changers, or other cutting-edge features when all you need to do is print.

QIDI Q2 3D Printer: Design

(Image credit: Alastair Jennings)

Positioning the 402 x 438 x 494mm frame of the Qidi Q2 onto the workbench was something of a relief; the past three printers and laser engravers have all recently gone for scale, so to have something smaller and quite as neat and robust as the Q2 to move around is a welcome break. While it is smaller, it still offers a decent print area of 270x270x256; this will enable you to print most objects you’ll need for prototyping, although cosplay props and helmets will require the models to be split and produced in parts.

One of the key points for me was that the Q2 comes in at 18.1kg, so while that is still quite weighty, it’s not up to the backbreaking weight of many of the other new machines, which in smaller workshops means that it’s easy to move and store when needed.

The construction is all good and solid, and with the CoreXY mechanics and the full-metal frame it all feels a little more robust than some of the other printers that I have tested recently. I also like the fact that it, which has been product-designed, is more in line with workshop machinery, so slips into that environment neatly.

In the print workroom, which is where the Qidi machines tend to end up, the Q2 has sat alongside the larger Plus4 handling the smaller props prints and artworks that we’re required for the run-up to summer. The quality, speed and ultimately reliability have made this, alongside the other Qidi machine, a valuable addition.

All the features that are essential for education, especially, are here, with the fully enclosed construction which keeps students' fingers away from the heated internal chamber and, more importantly, the hot end.

(Image credit: Alastair Jennings)

The interface is also extremely straightforward, with the 4.3-inch touchscreen making it easy to navigate. What I liked was that the calibration is automatic, so once the machine is set, you can just leave it.

The auto bed levelling with the standard dual-sided textured PEI build plate meant that there were few, if any, misprints, and once prints cool, they’re easy to remove.

When it comes to the build, the Qidi has been designed as a solid and reliable part of the studio, and a printer that blends in rather than standing out and demanding constant attention.

QIDI Q2 3D Printer: Features

(Image credit: Alastair Jennings)

Taking a look at the Q2’s features, while impressive, it positions this fully enclosed printer at entry level these days, which, compared with printers just a couple of years ago, shows just how far the technology has progressed.

The fully enclosed design gives the machine its premium look and feel and houses the CoreXY motion system using heavier-weight 1.5GT belts, with linear guide rail used rather than rods on the X-axis and dual independent lead-screw motors controlling the Z-axis. These are all features that ensured Bambu Lab’s position when they launched, and now even in this entry-level machine they’re a standard.

Toolhead speed is 600mm/s, fast but not unusual at this level, with acceleration of up to 20,000mm/s². Compared with the old Cartesian machines, this is impressive, but with many machines now reaching 1000mm/s, it puts this machine's print speeds at a reliable and steady pace.

The machine is shipped with QidiSlicer, which, as with most slicers these days, is a derivative of Prusa Slicer, although here it has been heavily adapted to enable ease of use. What I liked through the test is that the default profiles are solid and well tested. If you’re new to 3D printing, then it’s just a case of selecting your filament type and the software then the machine sorts the rest. Through this test, I stuck to these default profiles, and the consistency with the QIDI and other manufacturer filaments was superb.

The print volume is 270 x 270 x 256mm, which is a decent size, with most standard 3D printers offering around the 250 x 250 x 250 mm volume. The platform itself is an aluminium-substrate heated bed topped by a removable dual-sided textured PEI plate with a bed temperature that can reach 120°C.

The standard hotend nozzle impressively reaches a temperature of 370°C, meaning that out of the box the bimetal 0.4mm nozzle is equipped to deal with engineering materials. As one feature point that really highlights the direction of the QIDI 3D printers, it uses a direct-drive extrusion system with hardened-steel gears, again built for durability and maximum filament support.

As I mentioned, the 0.4mm bimetal nozzle is fitted as standard; however, if you want to swap it out for something else, then there are 0.2, 0.6 and 0.8mm alternatives available. While you can print with abrasive materials as I did through the test, there is a Tungsten Carbide nozzle available which will last far longer.

The material compatibility list is extensive, with the usual PLA, PETG and TPU, and support for ABS, ASA, PA and PC. The BiMetal nozzle will also print carbon- and glass-fibre reinforced polymers, although this is where I would invest the additional £60/$60 for the Tungsten Carbide hotend.

The Q2 is a fully enclosed machine with active PTC chamber heating system that can push the internal temperature up to 65°C; this is ideal for materials such as ABS, ASA and engineering polymers. The heat around the print enables better control over warping and other print problems for these more advanced material types.

There are several points around the engineering materials that are worth knowing before you start using them on this printer. While it can print with them out of the box, if you’re going to be using carbon-fibre or nylon on a regular basis, I would invest in a filament dryer and that hardened hotend.

Looking at a few of the features that have been introduced that actually make this machine an interesting option for small studios and education are additions such as the G3 pre-filter, H12 HEPA filter and coconut-shell activated-carbon filter. These essentially take out some of the fumes and smaller particles that some of the more advanced materials can make.

The Q2 uses hands-free automatic levelling with a load-cell sensor integrated directly into the hotend. The nozzle itself can therefore be used during the levelling process, removing the need for a separate offset probe.

Specs

Print Technology: Fused Deposition Modelling (FDM), CoreXY
Build Area: 270 x 270 x 256mm
Minimum Layer Resolution: Dependent on nozzle/profile
Maximum Layer Resolution: Dependent on nozzle/profile
Dimensions: 402 x 438 x 494mm
Weight: 18.1kg
Bed: Aluminium heated bed, up to 120°C
Print Surface: Dual-sided textured PEI plate
Software: QIDI Studio; compatible with third-party slicers including OrcaSlicer and PrusaSlicer
Materials: PLA, ABS, ASA, PETG, TPU, PA, PC and carbon/glass-fibre reinforced polymers
Print Speed: Up to 600mm/s; acceleration up to 20,000mm/s²

In everyday use, the important point is that calibration is straightforward and, once complete, I’ve found little reason to start making manual fine adjustments.

That’s exactly what I want from a machine being used in education.

The purpose of the printer is to make things. If you’re continually adjusting the printer itself, something has gone wrong with that relationship.

Other advanced features include the 1080p resolution camera that enables you to monitor prints and create time-lapse sequences; this camera is now AI-enhanced, so it will spot defects automatically.

More standard features, including WiFi across a 2.4GHz connection, Ethernet and USB, are all available, and the 4.3-inch, 480 x 272 touchscreen enables you to easily switch through settings.

QIDI Q2 3D Printer: Performance

(Image credit: Alastair Jennings)

After having the relative complexity of the multi-filament machines over the last year, it’s actually quite nice to go back to the simplicity of a single filament. There is the option to go multifilament, but in this review I’m just looking at the base machine, and as the first few prints finished, I was instantly impressed by the quality of the PLA prints.

As I ran through the stock models that had been provided and then the additional test prints, the quality and speed were consistent. This is a mid-speed printer, and while it’s not as fast as some of the machines I’ve looked at recently, at this price the speed and quality are well balanced.

What is apparent is that, consistently and unusually due to the volume of printers and engravers that have been coming through the workshop, this machine has been printing consistently for six months without issue. This is part of the reason that I’ve delayed the review: firstly, waiting for the Qidi Box, and secondly, it just became a part of the workshop that was in constant use.

This reliability has been seen with the other QIDI printers that I’ve used, with the Plus4 now having been run for almost two years in the college; it's the one printer of many that has consistently worked and meets the safety requirements.

(Image credit: Alastair Jennings)

Checking the quality of the prints and the first layer after the auto calibration is always slow and precise, and at no point have I had to make any adjustments to that initial calibration height.

The prints also hold firm during printing, and if printing multiple prints across the heated bed, they all stick firmly through the process, releasing easily when the platform cools.

What was also apparent was that after a six-week break at the college, where the machine has sat mostly unused, all it took to get it back into action was to power it on. A quick bench test, and the machine was printing perfectly.

Taking a look at the benchmark tests, the results were impressive.

QIDI Q2 3D Printer: Print quality

Dimensional accuracy - score of 4

Target 25 = X: 24.90mm / 0.10mm Error | Y: 24.87mm / 0.13mm Error
Target 20 = X: 19.88mm / 0.12mm Error | Y: 19.80mm / 0.20mm Error
Target 15 = X: 14.90mm / 0.10mm Error | Y: 14.93mm / 0.07mm Error
Target 10 = X: 9.89mm / 0.11mm Error | Y: 9.78mm / 0.22mm Error
Target 5 = X: 4.88mm / 0.12mm Error | Y: 4.89mm / 0.11mm Error
X Error Average = 0.11
Y Error Average = 0.146
X&Y Error Average = 0.128

Fine Flow Control - score of 5

Fine Negative Features - score of 5

Overhangs - score of 5

Bridging - score of 5

XY resonance - score of 2.5

Z-axis alignment - score of 2.5

Adding up the totals gives a final score of 29 out of 30.

QIDI Q2 3D Printer: Final verdict

(Image credit: Alastair Jennings)

The review of this 3D printer has stretched over a far longer period than most, with the machine being set up and used for the last six months. While the pricing places this at the entry level, the build quality and reliability make it clear that this machine strikes a careful balance.

It gives you a standard out-of-the-box machine that is a reliable tool in the workshop, and if you work in education or have a small business or design studio, then that is exactly what it provides.

The Q2, used as a single-filament machine as I have looked at it in this review, offers a solid, no-fuss approach and huge support for a good range of materials. Key features include the CoreXY design, cooling system, filter and fully enclosed design that enable everyone from a complete beginner through to professionals to have a machine that will be reliable and easy to use.

The Qidi software is again well thought out, and the stripped-down approach again makes it an ideal option for those who are new to 3D printing; the machine connection and the slicing workflow are all well thought through.

This might not be a machine that shouts. out with the latest features and cutting-edge additions, but instead it refines this style of machine perfectly. If you want more, then there are the other hotend options, and there’s the QIDI box for multifilament printing.

Essentially if you need a no fuss, solid and reliable 3D printer then the Qidi Q2 is a great option, while there is the multifilament option at present as a single filament machine it’s a great price and close to perfect for what it is.

Should You Buy the Qidi Q2 3D printer?

Value:

Excellent value with a fully enclosed design and robust build that should last for years

4.5

Design:

Relatively compact design, with expansion options and built-in filters

4.5

Features:

Heated chamber, filtration and multi-material expansion future-proof the machine

4.5

Performance:

Six months of reliable printing highlighted just how refined this machine is

5

Total:

Compact, capable and exceptionally reliable all make this a great choice for education.

4.5

Buy it if…

Reliability really matters

If you’re using a 3D printer in the classroom, workshop or busy home setup, the Q2’s headline feature is its consistency and reliability. Once calibrated, it simply gets on with printing, with little maintenance or recalibration needed.

You need versatility

The Q2 is perfect for PLA printing for everyday tasks, but then with the fully enclosed chamber it’s also a great option for more advanced materials, especially with the upgrade options.

Don't buy it if…

You print huge

The 270 x 270 x 256mm build area is pretty decent for an everyday printer, but large prototypes and single-piece models will need something bigger.

Speed matters

The 600mm/s maximum is good rather than exceptional, especially against the competition. There are competing printers with faster, higher speeds, although the Q2’s real strength is the consistency.

See what I rate as the best 3D printers you can buy based on my workshop tests

Categories: Reviews

ViewX Liber 4K 3D portable monitor review

TechRadar Reviews - Sun, 09/27/2026 - 15:35
ViewX Liber: 30-second reviewSpecs

Resolution: 3840 x 2160
Brightness: 350cd/m²
viewing angle: 2D 178 degrees, 3D optimal viewing angle 40 degrees
optimal 3D viewing distance: 40–70cm
3D technology: liquid crystal gradient refractive lens
refresh rate: 60Hz
colour gamut: 72% NTSC, 100% sRGB
response time: 25ms
colour display: 8-bit, 16.7 million colours
static contrast ratio: 1000:1
interfaces: 1x mini HDMI 2.0, 2x USB-C ports (video transmission & power supply), 1x micro USB, 1x 3.5mm headphone jack
product dimensions: 356.7 x 216.8 x 16.3mm
Product weight: 1,274g

Out of the box, the ViewX Liber 15.6-inch monitor looks like a well-made standard portable monitor, with a decent-sized 16:9 screen, a metal stand, a built-in camera, and a range of ports hidden at the back.

The monitor also has physical buttons on the right-hand side to switch between 2D and 3D, open the menu, adjust the volume, and change the brightness.

The on-screen display is pretty standard, and as you flick through the brightness, black level, contrast and other options, it’s all very nicely laid out, although as ever it takes a while to get the correct button combination as each button has a dual function. To use the monitor, you do need to install the software, but the process is straightforward, and the instructions are clear.

Once the software is installed, you don’t really need to do anything more. Games can be launched through the dedicated 3D Playground Lite game launcher or downloaded video through the 3D Spatial Gateway, but while video that had been downloaded to the host computer looked great, at present the games all seemed to be connected to a Chinese system despite looking like they should connect through Steam. Launching games directly, however, seemed to work fine and with great effect; Indiana Jones and the Great Circle looked pretty decent.

The only issue is that not all the settings are translated into English, so you'll need to hover your phone over the screen using Translate to work out what some of the app settings mean and do, which is annoying for a product that’s now on sale.

In terms of use, this 3D monitor is one of those interesting new products that shows what technology can do and how it has adapted. We’ve seen 3D TVs like this before, and this is essentially the same thing, just smaller and highly portable. It’s an interesting proof of concept, and if you’re an early adopter, this will certainly appeal.

I really did like the AI-enhanced video, which took standard 2D video and made it 3D. It looked pretty good, and once you got used to it- and the fact that you have to stay still in front of the monitor- it was really quite engaging.

To my mind, this doesn't quite meet the needs for most people looking for the best portable monitors. It's a hyper-niche device for a very specific workflow. Even if you’re looking for a true three-dimensional effect, it’s not quite there. There are quite a few glitches along the way, including screen flicker when you move your head, and some background apps and games still aren’t 100% compatible.

However, these are early days and, considering the quality of what’s on offer already, it’s still all pretty decent.

ViewX Liber: Price & availability

(Image credit: Alastair Jennings)

The ViewX Liber monitor can be purchased directly from ViewX's Kickstarter page here, with prices starting from $1099. That's pretty pricey for a 4K portable monitor, although you're paying for those 3D extras.

There's more information about the monitor over at the official website, too.

  • Score: 3.5/5
ViewX Liber: Design & build

(Image credit: Alastair Jennings)

Lifting the monitor from the box, the quality is instantly apparent; the build feels good and solid, and it has all the design and tactile feel of a high-quality portable monitor. The screen has a relatively thin bezel surrounding it, with the ViewX logo at the bottom and a small camera at the top alongside two sensors that help the 3D positioning work in 3D mode.

On the back, there is a good, sturdy metal stand that’s offset from the centre but still provides good support and adjustment of the angle. Once you open the stand, it reveals three ports: two USB-C and one mini HDMI. The two USB-C ports enable both video and power delivery.

On the right-hand side of the monitor is a selection of buttons. The top one is the 3D-to-2D button, and a long press switches between the two modes. This is one of the areas where I initially thought there was something of a glitch with the design, only to discover you need to be sitting in front of the monitor so it can gauge your position; if you move, then it’ll revert to 2D mode.

On the side, along with those buttons, there’s a micro USB port, which is the factory mode port and will inevitably be for updating firmware. Alongside it are the remaining controls. You have the source and back buttons, which let you switch between HDMI and USB-C or go back depending on where you are in the menu, followed by the menu and OK button, volume and up button, and brightness and down button.

Below that, you also have an auxiliary output for headphones, and aside from that, there’s nothing else on the monitor itself. In terms of size and dimensions, this is designed as a portable monitor option and in width it’s slightly wider than an average 15” laptop, measuring 356.7 x 216.8 x 16.3mm, and when it comes to weight, it tips the scales at 1,274g, so it’s a little heavier than most portable monitors.

  • Design: 4.5/5
ViewX Liber: Features

(Image credit: Alastair Jennings)

The 3D functionality of this monitor out of the box without the need for additional hardware is the headline feature, and this sits alongside the more standard list of 4K resolution, 15.6-inch screen size, built-in camera and speakers and a design that makes it a perfect option as a portable monitor that can be used at home or on the go for business.

The 3D spatial AI display is extremely clever and essentially enables the conversion of 2D to 3D without glasses or other specialist equipment. Essentially, all that's needed is for you to plug in your HDMI or USB-C cable for video, and the monitor handles everything else. The monitor does come with some software that further enhances video and gameplay, but otherwise it’s pretty much just plug and play.

The monitor connects to your computer by either USB-C, in which case it supports video and power delivery, or HDMI, in which case power can be delivered via USB, a power bank, or AC with the mains plug in the box.

During my testing, I found you need a USB-C port capable of outputting over 18W and, surprisingly, two or three of my high-end laptops couldn’t meet the monitor's demands. In the end, I found running it from a small Ugreen power bank was a good secondary option on the move, though I did note that the power draw means it drains the battery relatively quickly.

The brightness is also decent at 350cd/m², meaning that in most slightly shaded conditions the monitor is very easy to see. While it has a glossy finish, it also has good anti-reflection coatings, so even in a bright-ish environment in a café, it was still easy to make out the detail.

In 2D, the monitor is pretty much in line with most other portable monitors and all applications from productivity to creative are well resolved with decent colour and tone. When you switch to 3D mode, it takes the monitor a few seconds to adjust and then your eyes. I found that after a short time, once you make the switch to 3D, you need to stay within 40–70cm of the monitor, and you also need to sit as still as possible.

The colour gamut and other specifications, such as colour depth, are mid-range, with refresh rates limited to 60Hz and NTSC and sRGB coming in at 72% and 100%, respectively are all mid-range, but what you’d expect for a small portable monitor of this type.

So if you're looking to use this monitor for critical creative work, then these mid-range specs on colour and tonal quality won’t hit the mark. However, the focus here really is on that specialist 3D display, which is quite unique at this scale.

As part of that 3D feature set are the two front sensors that can detect where you are, so they adjust the monitor accordingly. This means that when you do move around, the display adapts, and as you move out of the 40º viewing angle, the monitor switches back to a more static 2D look.

When you’re facing the monitor directly, you’ll get the 3D visuals, but if you move to the side or stand up, it switches back to a 2D display. It’s very clever, but that switch does take some getting used to and quite often causes a bit of flicker on the screen.

  • Features: 4/5
ViewX Liber: Performance

(Image credit: Alastair Jennings)

Setting up the monitor is easy. In fact, I was quite surprised by how quickly and straightforward it was to get the monitor up and running and doing exactly what I needed, including switching to 3D.

The Quick Start Guide directs you to the website to download the software you need for your PC to recognise the 3D screen. Through this test, I used the monitor with an HP EliteBook X and tried it with a Mac, but with no success; this is a PC only monitor.

Once you get to the monitor's software page, it's a little confusing. There are several options, including the game launcher, AI Depth Transformer and the ViewX Liber 15.6-inch 3D monitor user manual. The slightly confusing thing is that there isn't just a straightforward software download. However, the PDF software manual does have clearer instructions and talks you through setup.

To get the monitor working, all you really need to do is plug it directly into your computer via USB-C. Through this test, I used it with a PC, and it was pretty much plug-and-play once the software was installed.

You can also connect the supplied HDMI cable directly into the back of the monitor. This comes with a 90-degree connector, and the full-sized HDMI connector can then plug straight into your PC.

You'll also need power. You can power it either through the mains (with the supplied AC plug) or via USB-C. Although it can be powered through USB-C, I initially had no luck. From the HP machine I was using, I soon realised it didn't output enough power through the USB-C port to run the monitor. Checking the monitor power draw, it showed 17.8 W, which should have been fine; however, the monitor just wouldn’t initially start up.

I ended up plugging in the AC power to provide enough power to run it for the initial testing and later switched to a UGREEN Power bank, although that only provided enough power for a two-hour session despite the 20000mAh capacity. Once I plugged in the USB-C cable and external power supply, downloaded the software, and installed all the packages, the monitor flickered to life and was ready to use.

The power consumption is well worth noting, as most laptops limit the USB-C output to 15w; that’s 3W below what this monitor needs. So you will need an external power source to run the monitor, and you absolutely won’t be able to power and connect the monitor to a laptop with a single cable.

Once everything is connected and you've installed the video and gaming applications, it's easy to open and view different types of content.

The initial look of the monitor in 3D is very peculiar, and don't expect to be using the 3D mode for the most part as just a standard monitor. It does have two modes, though.

In the standard 2D mode, the 4K resolution actually looks very clean and clear. I set the resolution to 3840 x 2160 at 60Hz. It ran in 8-bit RGB, and the quality of the visuals looks good.

For general work as an expansion to the laptop's 15.6-inch screen, the colour and tone were well balanced, and it’s a shame that it’s limited in the colour gamut, being really focused on media playback rather than creation.

As I worked with Word documents, browsed the internet, and used the usual functions and features all in the 2D mode, the display's resolution and quality looked great.

While the refresh rate tops out at 60Hz, that's more than enough for most productivity uses, especially for business, and the only time you really need those greater refresh rates is when you start gaming.

What surprised me was what happened when I held down the 2D-to-3D button on the right-hand side of the screen. After a few seconds, the monitor adjusted and switched to 3D mode.

I found that setting the monitor to a simple screen extension worked well, having the main laptop screen for content and the monitor for the 3D content. Looking at the screen as it switched to 3D was a particular experience, and at first the 3D effect looked a bit off, and it took my eyes a while to adjust.

Then, as my eyes and mind adjusted, I did get the true 3D visualisation. Simply opening YouTube and watching a couple of videos meant standard 2D video became 3D. I didn't need to do anything else: no glasses, no additional hardware, just the monitor.

As I progressed through various applications, opening Steam and installing Indiana Jones and the Great Circle, the monitor's 3D feature was really dramatic in gaming.

If you're just using the 3D feature with standard applications, the resolution and clarity don't look great. Still, once you're immersed in gaming or watching a video, the effect is exceptional as long as you don’t move too much.

Moving is one of a few issues with how it works. As I quickly discovered, you have to sit relatively still in front of the monitor. Any significant movement to the left or right, and the screen starts to flicker.

Even then, if you stay still, I found that while I was watching video or gameplay, there was always the occasional slight flicker or brightness change as the screen adapted to the content. But overall, the effect is exceptionally good and well beyond anything that I've seen before.

As I settled into using the monitor and the way that it works, I had the screen set to use the laptop screen as my main display and the 3D display as an extension, essentially to play games on and to watch movies and media.

It looked incredibly good. You can see a reduction in detail, but the clarity and tone look exceptionally good. Because I deal with 3D printers and 3D printing, I was also really interested to see how it would work with 3D applications. To test this out, I downloaded Bambu Studio.

Opening Bambu Studio on the monitor, it was difficult to see some of the palettes, but it was nice to see what would usually be represented in 2D in the application with that 3D look. It's a little peculiar, and the resolution once again doesn't look as clean as I thought it would be, but it is really interesting.

I also went through a few options in the system display. I was able to turn HDR on, which helped to kill a few of the highlights that were there before. The scale is set to 300%, and the resolution at 4K looked great.

I also wanted to adjust the refresh rate to see whether some of that flickering would reduce, so I dropped it to 29.97Hz. To be honest, the change was minimal, and you could see a slight effect on motion smoothness, especially when gaming.

This monitor really works best when you're watching back 2D video, and it doesn't even need to be specialist 3D video. It converts the 2D content to 3D straight out of the box.

Likewise, games look superb and, while you do see some flicker, it certainly gives the pictures a far more interesting look. I wouldn't say the technology is 100%, and the flickering is annoying, but if you stay relatively steady, it does give a more immersive viewing experience than a standard 2D monitor.

If you have videos you want to watch in 3D, you can simply go to YouTube, Netflix, or whatever other streaming service you use, and the screen will display the video in 3D. It's impressive and, despite those few flickers, it does add a lot more interest. However, there is still that drop in detail, but once you start watching back footage, you start to forget that drop in detail.

I then looked at the two applications that had downloaded: 3D Spatial Gateway, which you can use to view videos stored on your machine; essentially, you open them within that application and then, using AI, it converts them to be ready for viewing in 3D. The quality is just a little better, although there is still some stuttering.

It takes some time to process the video before you're able to watch it back in 3D and, again, you need to stay pretty static when you're watching it. But the result is still quite spectacular.

The frame rate does look a little stilted, and it doesn't quite have the smoothness of motion you see when you're watching the video back in 2D. Still, it's not far off, and after you've been watching for a short time, persistence of vision does take over.

You can also route the audio through the monitor to use its internal speakers. However, these are relatively cheap compared with the rest of the build quality, and they sound a bit tinny, like most small portable monitors. There's really nothing to write home about when it comes to audio quality, but at least they’re there if you need them.

If you're thinking about using it directly as a monitor in a 3D environment, that's not really what this monitor is for. The resolution and how it renders detail make it extremely difficult to read text.

But if you're watching visual content such as video or a video presentation, playing games, or viewing 3D models, as I was when using this for a museum demonstration, then it's actually exceptionally good. However, it does take some getting used to.

One other note is that if you're trying to show a variety of people the 3D effect, the monitor can get a little confused, and people really need to come up and look at it one by one.

Switching over to gaming is really where things start to come into their own. You get real depth in whatever game you're playing, far more than you do with just playing it on a 2D monitor.

What I really like is that you can get this 3D experience anywhere without having to wear glasses, which means if you're sitting on a train, you're away for work, and you just want that 3D visual experience, this monitor gives it to you without fuss.

The other thing that I'll say is that when you first sit down and start to use the three-dimensional effect, it looks impressive. But only after you've sat and watched several videos or played games for a while does it really become truly immersive.

The monitor's 3D depth perception actually seems to improve over time. Whether that's a visual trick or something within the AI that's improving the depth over time, I'm not 100% sure.

Still, as I progressively looked at more images and video, the quality of that 3D depth definitely improved. While you can still see some layering, I could also see a little more gradation in the 3D depth perception by the end of the test.

  • Performance: 4/5
Should you buy the ViewX Liber?

At the end of this test, I have to say that while this monitor is far from perfect, it's also strangely addictive.

When you look at images, watch back video, and, obviously, play games, that 3D depth in so much content really adds interest and intrigue.

The video frame rate is a bit of an issue. You can really tell there's a little jitter between frames, and you often see ghosting or a small wave as the AI processes the 2D image into a 3D map or perception. But ultimately, the effect is impressive.

If you like the idea of a 3D monitor, especially for playing games or watching back video, and you're also taking into account that it's not quite 100% perfect. There is going to be some flickering, adjustment of objects and a small amount of ghosting, especially with text; then this is a great option.

If you're thinking that this is going to give you the full immersive 3D experience, then wait a little longer, as I'm sure, now seeing how good this is, that will be on the way.

Also, if you're on a Mac, I couldn't get this to work with the M1 MacBook Pro, so during this test it was purely a PC-enabled 3D monitor.

Value

Good value for such unusual 3D technology.

3.5

Design

Solid, portable build with practical connectivity options.

4

Features

Strong 3D features, though software needs refinement.

4

Performance

Impressive depth, but flickering affects overall smoothness.

4

Overall

Engaging 3D experience with a few compromises.

4

(Image credit: Alastair Jennings)Buy it if...

You want a 3D experience without glasses.

The main feature here is that you can use this monitor without requiring 3D glasses. If you like the idea of a 3D monitor, especially for playing games or watching back video, then the effect is impressive.

You want a portable 3D display.

The ViewX Liber is compact and highly portable. If you’re sitting on a train, you’re away for work, and you want that 3D visual experience, then this monitor gives it to you without the need for specialist glasses or other equipment.

Don't buy it if...

You want a perfect 3D experience.

The technology isn’t 100% perfect. There is some flickering, especially if you move around, along with occasional ghosting and a reduction in detail and clarity. If you’re expecting a fully immersive 3D experience, then you may want to wait a little longer.

You need to move around while viewing the screen.

You need to stay relatively still and directly in front of the monitor for the best 3D effect. Moving significantly to the left or right can cause the screen to flicker or affect the 3D image.

Categories: Reviews

Flsun T1 3D printer review

TechRadar Reviews - Sun, 09/27/2026 - 14:15

Unlike most 3D printers available today, the FLSUN T1 arrived in a relatively flat box, which was in stark contrast to the tall machine in the images. However, after about an hour of building, sipping coffee and double-checking, the machine was ready to go. Nothing too tricky on the construction side, though I needed to double-check the screws after the first few runs to fix some print quality issues.

Once the machine was complete and I stepped back, the T1 was instantly impressive and stood out from the other desktop 3D printers in the workshop. While Cartesian bed-slingers and increasingly CoreXY machines dominate the market, the T1 uses a Delta mechanism, with its print head suspended between three rapidly moving arms above a circular build platform. Prusa Research is one of the few other mainstream companies to still produce a printer of this style, but that model is aimed at the pro market with a price tag to match.

These delta machines are unusual-looking, but they offer a major speed advantage. Flsun quotes a maximum print speed of 1,000mm/s and an acceleration of 30,000mm/s², which, on paper, at least puts the T1 among the fastest machines I’ve tested.

However, what surprised me most wasn’t the speed. After careful assembly and adjustment, the T1 produced some of the most dimensionally accurate prints I’ve seen from a machine at this price level.

There are compromises, most notably noise, single-filament printing and a more involved setup process. For some, this is unlikely to be the best 3D printer - unless speed is the aim of the game. For rapid prototyping and functional printing, there’s plenty here to like.

FLSUN T1 3D Printer: Design

(Image credit: Alastair Jennings)

Unusually for a modern 3D printer, the Flsun T1 arrives essentially flat-packed, so my first job before starting the test was to assemble it, and having seen these machines in action and reviewed a couple of TriLab (now Prusa) deltas in the past, I didn’t fancy my chances.

I’ve built plenty of printers over the years, although mostly Cartesian and, more recently, CoreXY models. While I initially thought the complexity of the Delta would make construction difficult, in reality it was straightforward.

Actually assembling this Delta machine was deceptively straightforward because most of the complicated mechanical elements arrive pre-assembled. It’s largely a matter of fitting panels, securing components and installing the top.

(Image credit: Alastair Jennings)

However, my first prints didn’t quite meet my expectations; they weren’t bad, but they weren’t good either. They all had minor surface imperfections, even though the machine appeared correctly assembled.

If I hadn't tested the Flsun S1 a while ago, I might have dismissed the imperfections; after all, this isn’t an overly expensive machine given the build area. After checking the mechanism again and tightening a grub screw around the suspended head, print quality immediately improved.

The design itself is striking, with the print head hanging between three articulated arms, giving the machine a futuristic appearance. While Flsun makes a wide range of Delta machines, the T1 offers an enclosed heated chamber and even a filament spool holder, which, while not sophisticated, it sits inside the machine, helping keep the filament moisture-free. Essentially, the reel is suspended from a metal rod above the print head. It looks crude, but it worked perfectly throughout testing.

At 436 x 490mm, the footprint is reasonable considering the build volume, although its substantial 836mm height means you’ll need plenty of vertical space.

FLSUN T1 3D Printer: Features

(Image credit: Alastair Jennings)

The Flsun T1's headline feature is its Delta mechanism. While traditional Cartesian printers move components independently along X, Y and Z axes, and CoreXY printers use a belt-driven arrangement to move the print head rapidly across a fixed plane, a Delta printer uses three vertical towers and articulated arms to control the position of its suspended print head. Visually, while a Cartesian and a CoreXY can look very similar, the Delta's inverted tripod design instantly highlights that it's something different.

While all 3D printers are fascinating to watch, the Delta system is even more so, and even as you see the print build, you can’t help but think that this system and the design in its complexity are impossible, yet it works. Even after years of using 3D printers, there’s still something slightly alien about seeing three arms rapidly coordinating their movement to position a nozzle accurately above the build plate.

The major advantage of this design is speed, although how or why it works so well is beyond me. Flsun quotes a maximum print speed of 1,000mm/s, with acceleration reaching 30,000mm/s², even with the latest CORE XY machines, those figures are difficult to match.

However, as I’ve seen in the past, fast movement is only useful if the extrusion system can keep pace, and as I found out with the larger S1, FLSUN has once again equipped the T1 with a powerful, if noisy cooling system, cooling system; I’ve also noted that they now sell a silencer kit. The tool head's dual-gear direct-drive extruder offers a quoted extrusion force of up to 78N, while the 300°C hotend has a maximum volumetric flow rate of 90mm³/s.

Throughout testing, filament delivery was remarkably reliable for a machine of this speed, with plenty of flexibility in the software settings. The spool’s position directly above the tool head meant that the filament follows a relatively straightforward path into the extruder, with fewer bends than on many conventional machines. During the test, I didn’t experience many filament-feed issues, and I ended up having quite a bit of faith in the system feeding older, and increasingly brittle PLA that would have jammed up other printers.

Cooling is a major part of this machine's success, and it’s especially important when you’re depositing material at this sort of speed. The T1 uses a CPAP high-pressure turbo fan rated at 30,000rpm. It’s effective, but it’s also extremely loud; when it starts running at speed, you’ll know about it.

In fact, one of the first useful prints suggested for the machine is a silencer that fits over the exhaust. It’s worth printing because it noticeably reduces the noise, although the T1 still isn’t a printer I’d particularly want operating beside my desk all day; as mentioned earlier, a silencer kit is now available.

Once constructed, the machine is fully enclosed, which helps both safety and material compatibility. Flsun specifies a chamber temperature of up to 50°C, while the bed can reach 110°C. Combined with the 300°C hotend, that gives the T1 enough thermal capability for materials beyond basic PLA, although out of the box it comes with only a brass nozzle.

The supplied 0.4mm nozzle is brass, so abrasive materials aren’t advisable with the standard hardware. At the time of testing, the Flsun website didn’t list an obvious official hardened-nozzle upgrade, although the E3D-style nozzle arrangement may open the door to third-party alternatives; obviously, check compatibility before fitting one.

During testing, I successfully printed PLA, PETG, ABS, and ASA with consistently good results.

Specs

Print Technology: FDM Delta
Build Area: Ø260 x 330mm
Minimum Layer Resolution: 0.1mm recommended
Maximum Layer Resolution: 0.35mm recommended
Dimensions: 436 x 490 x 836mm
Weight: 18.44kg
Bed: Heated, 110°C maximum
Print Surface: Textured PEI print plate
Software: FLSUN Slicer / compatible third-party slicers
Materials: PLA, PETG, TPU, PVA, PET, ABS, ASA, PA, PC and others
Print Speed: Up to 1,000mm/s; 30,000mm/s² maximum acceleration

As you’d expect, the machine offers automatic bed levelling, vibration compensation, and input shaping, along with filament detection and power-loss recovery.

A 1080p camera enables remote monitoring and time-lapse capture. It doesn’t provide the sophisticated AI print-failure detection increasingly found on the latest premium machines, but during testing it connected reliably and provided a clear remote view of the print.

The 4.3-inch colour touchscreen is simple but excellent, with an interface that follows the same general approach as the company's larger machines.

Perhaps the most impressive specification, however, is the build volume. The circular platform offers Ø260mm of horizontal space combined with an impressive 330mm Z height. That’s a substantial printable area for a machine with such a modest footprint.

FLSUN T1 3D Printer: Performance

(Image credit: Alastair Jennings)

Getting started took some thought and about an hour to fully unbox and assemble. It’s been a while since I last put this much effort into building a machine, but for the most part the instructions were well documented and shouldn’t be beyond most people. The one point is that you do need to build, double-check, print and then re-check.

The point is that this machine is all about speed, so any small movement in the joints, frame, or anywhere else will be amplified in the print. The more time you put into the construction and pre-flight checks, the better this machine will be. When I first finished construction and ran a test print, the results were good but not quite what I expected.

Minor surface imperfections suggested something wasn’t quite right, and another inspection revealed a grub screw around the Delta mechanism that needed tightening; once that was done, the machine's speed and print quality suddenly took a leap forward.

(Image credit: Alastair Jennings)

Speed was the first feature I tested, and as the first 3D Benchy rapidly appeared on the print bed, it was obvious why these Delta machines still exist. If you need to print stuff quickly, then a Delta’s what you need.

Speed isn’t all; the Flsun T1 also impressed with print quality and dimensional accuracy, and as you notch down that speed, the accuracy of the prints, which was already good, improved further.

FLSUN T1 3D Printer: Print quality

Dimensional accuracy - score of 4

Target 25: X: 24.87mm / 0.13mm Error | Y: 25.00mm / 0.00mm Error
Target 20: X: 19.89mm / 0.11mm Error | Y: 19.97mm / 0.03mm Error
Target 15: X: 14.86mm / 0.14mm Error | Y: 14.92mm / 0.08mm Error
Target 10: X: 9.87mm / 0.13mm Error | Y: 9.86mm / 0.14mm Error
Target 5: X: 4.75mm / 0.25mm Error | Y: 4.72mm / 0.28mm Error

X Error Average = 0.16mm
Y Error Average = 0.106mm
X&Y Error Average = 0.133mm

Fine Flow Control - score of 5
Fine Negative Features - score of 5
Overhangs - score of 5
Bridging - score of 5
XY resonance - score of 2.5
Z-axis alignment - score of 2.5

Adding up the totals gives a final score of 29 out of 30.

Those numbers were reflected in real-world use. Circular features in the dimensional test appeared remarkably clean with little visually apparent ovaling, while separately printed components fitted together snugly.

More importantly, models designed in CAD generally translated directly into usable physical parts without repeatedly adjusting dimensions to compensate for printer inaccuracies.

That makes the T1 particularly useful for prototyping and functional printing. It’s not simply fast; it can produce accurate parts quickly, which is a far more meaningful advantage.

FLSUN T1 3D Printer: Final verdict

(Image credit: Alastair Jennings)

The Flsun T1 shows exactly why Delta 3D printers still have a place alongside increasingly sophisticated CoreXY machines. It’s extraordinarily fast, visually distinctive and, once properly assembled, capable of exceptional print quality.

That 29 out of30 benchmark result is impressive and more importantly, the accuracy carried over into practical projects, where components fitted together correctly and CAD dimensions translated well to printed parts.

There are compromises. The CPAP cooling system makes the T1 extremely loud, even with the recommended silencer. Assembly also requires greater care than today’s almost appliance-like CoreXY machines. Tightening every bolt and grub screw properly can significantly improve print quality.

It’s also strictly a single-filament printer, with no straightforward equivalent to the increasingly common automatic multifilament systems.

However, those limitations matter less if your priority is functional printing, such as for product designers, engineers, makers and workshops producing prototypes or mechanical components; the combination of speed, accuracy and substantial build volume is will be more important.

The T1 isn’t the most polished 3D-printing experience, but once correctly configured, it’s an exceptionally good machine.

The Flsun T1 makes the most sense if speed and dimensional accuracy matter more than multicolor printing or complete plug-and-play simplicity. Its Delta mechanism delivers extremely fast movement, and my testing showed that speed doesn’t have to come at the expense of accuracy.

Product designers, engineers, makers, and small workshops producing prototypes should find plenty to appreciate, particularly given the build volume. Beginners who want the simplest possible experience may prefer a modern, pre-assembled CoreXY printer. Likewise, anyone mainly interested in multicolour decorative models should look for machines with automatic multifilament systems instead.

Should I buy the Flsun T1 3D printer?

Value:

Exceptional speed and accuracy make this an impressive printer for money.

4.5

Design:

Distinctive Delta engineering delivers decent volume for the size of the machine but requires careful assembly.

4

Features:

Plenty of printing essentials, though it notably lacks multi-filament capability.

4

Performance:

Outstanding speed and accuracy combine for functional printing.

5

Total:

Exceptionally capable Delta printer with speed, accuracy and great value.

4.5

Buy it if…

You need speed

For rapid prototyping, the T1 is exceptionally good. Its Delta mechanism combines fast movement speed with excellent extrusion and cooling.

Accuracy really matters

Our 29/30 benchmark result demonstrates how capable the T1 can be once correctly configured. Functional components printed accurately, fitted together well and required remarkably little dimensional compensation when moving from CAD design to finished physical parts.

Don't buy it if...

You need silence

The high-pressure cooling system generates a lot of noise, particularly when the printer is working hard.

You want multicolour

The T1 is a single-filament machine, without the straightforward automatic material-changing systems offered by many competitors.

Categories: Reviews

Aoostar Maco 6850H mini PC review

TechRadar Reviews - Sun, 09/27/2026 - 07:10
AOOSTAR MACO 6850H: 30-second review

Although it now has a much longer name, this mini PC was originally called just the Maco, but it spawned a line of products so for the purpose of this review I’ll refer to it as the Maco 6850H.

This NUC packs a proper eight core workstation grade chip into a palm sized box, and backs it with three full speed NVMe slots, dual 2.5 gigabit networking, and a pair of USB4 ports. That is a striking amount of connectivity for a machine this size, and substantially more than many modern designs offer.

The catch is the platform underneath. The Ryzen 7 PRO 6850H dates back to 2022, and while it still holds up well for general desktop work, buyers comparing it against newer Zen 4-based rivals should know exactly what generation they are getting. Memory is also soldered at a fixed 24GB, so there is no room to grow later.

But don’t let any of this convince you that this isn’t an excellent small machine. The memory is 6400 MT/s LPDDR5 organised into four 6GB banks for maximum bandwidth, which boosts both processor throughput and GPU performance. This enables it to outperform more modern platforms, like the AMD Ryzen 9 8945HS. And the cherry on top is the connectivity it supports, with both an OcuLink and two USB4 ports.

Overall, it’s easy to look at the MACO 6850H and consider the technology in it as being dated. But the benchmarks don’t lie, and this highly affordable machine punches significantly above its weight. Is it one of the best Mini PCs around? Based purely on value, there is a strong argument to be made that it is.

(Image credit: Mark Pickavance)AOOSTAR MACO 6850H: Price and availability
  • How much does it cost? From $459
  • When is it out? Available now
  • Where can you get it? You can get it directly from Aoostar or via an online retailer

There are two SKUs listed for the MACO 6850H: the review hardware with 24GB of RAM and 1TB of storage, and another model with no storage.

For whatever reason, the no-storage option isn’t currently available, but if it is released, it might offer an even better deal for those with a spare NVMe drive handy. According to the Aoostar webpage, the model without storage comes with a free Windows 11 Pro key, which could be a significant deal-maker for some.

Direct from AOOSTAR, the review hardware costs $459 for those in the USA, and it is shipped from a US warehouse. It’s the same price in Germany, and comes from a warehouse in that region, but oddly, for those in the UK it only ships from China and costs $519, or an extra $60. Why the UK customers aren’t supplied from Germany is a mystery.

However, you can buy it elsewhere; I found it on Amazon.com, where it's $479, although it isn’t offered with next-day delivery. In the UK, on Amazon.co.uk it's £395, or the equivalent of $529.

For those looking for a bargain, AliExpress doesn’t have better prices, although they do have the barebones model with 16GB of RAM that sells for only £369.99. Unless you definitely want that option, it's probably cheaper to get it from the maker's website.

Looking back at machines I’ve previously reviewed with this processor, the only candidate was the GMKtec NucBox M7. But that was discontinued in favour of the M7 Ultra, which uses the 6859U CPU.

You can buy that machine from GMKtec in the UK for only £ 299.99 with no RAM or storage, or £599.99 with 32GB and 1TB, respectively. Since I also tested that, I can say the DDR5 memory it uses slows the machine down considerably compared to the LPDDR5 in the Aoostar.

For the hardware and specifications it has, the Aoostar looks like a bargain.

  • Value: 4.5 / 5

(Image credit: Mark Pickavance)AOOSTAR MACO 6850H: SpecsAOOSTAR MACO 6850H Specifications

Component

Specification

CPU

AMD Ryzen 7 PRO 6850H, 8 cores, 16 threads, Zen 3+, 3.2GHz base, 4.7GHz boost, 45W TDP, 16MB L3 cache

Graphics

AMD Radeon 680M, RDNA2, 12 compute units, up to 2.2GHz

Memory

24GB LPDDR5 6400MHz, soldered to the board, single channel, not upgradeable

Storage

3 x M.2 2280 PCIe 4.0 x4 slots, up to 24TB combined. Review configuration ships with 1TB

Networking

WiFi 6, Bluetooth 5.2, dual 2.5GbE ports using Intel I226V controllers

Ports

2 x USB4, 1 x OCuLink (no hot swap), 2 x USB 3.2 Gen 2 Type A, 2x USB 2.0, 1 x DisplayPort 1.4, 1 x HDMI 2.1, 3.5mm audio jack

Power

External 120W adapter, 19V at 6.32A

Operating system

Windows 11 Pro

Chassis

Recycled aluminium body with a plastic base panel, fingerprint power button

Dimensions and weight

150 x 132 x 57mm

VESA Mountable

No

AOOSTAR MACO 6850H: Design
  • A larger NUC
  • Easy access
  • Excellent NVMe options
  • Lacks USB labels

Aoostar has kept the Maco in a genuinely pocketable footprint, built from what the company calls 100% recycled aluminium, with only the base panel made of plastic. That is a sensible way to keep the exterior feeling solid while controlling cost and weight.

A fingerprint reader sits in the power button, letting Windows Hello unlock the machine without a password. It is a feature more commonly seen on business laptops than mini PCs, and it fits the company's positioning of this being a small workstation rather than a toy.

In the gamut of NUC designs, this one is on the large side, but the 150 x 132 x 57mm enclosure isn’t massive by any standards.

One slight disappointment is that it lacks a VESA plate to mount it on a monitor, which feels odd.

Access to the inside is easy, with just four screws on the base to remove before you have free rein inside. While this system doesn’t have socketed memory, it has four M.2 slots, two of which are used for the supplied drive and the Wi-Fi module. That leaves two unused, and all the 2280-sized slots are Gen4 x 4 specification.

That’s excellent for turning this machine into a high-performance mini server, and the external IO supports that pathway with dual 2.5GbE LAN ports and USB 4.0.

(Image credit: Mark Pickavance)

The port layout has an audio jack, two USB 3.2 Gen 2 ports and a USB4 on the front; the OCuLink port on the left side; and another USB4 on the back, with HDMI, DisplayPort, and the LAN ports.

According to the Aoostar web page, the two USB ports on the back right are USB 3.2 Gen 1 and USB 2.0, but neither is blue, and in my tests both proved to be USB 2.0.

One minor detail I wish was different is that none of the front ports is labelled, and both rear USB ports are merely labelled “USB” rather than anything more helpful.

Some might also miss an SD card slot, but the ports on this NUC do align well with using a docking station that often includes that feature.

  • Design: 4.5 / 5
AOOSTAR MACO 6850H: Features
  • AMD Ryzen 7 PRO 6850H
  • LPDDR5 6400 MT/s
  • USB 4.0 and OCuLink

The heart of the Maco 6850H is the AMD Ryzen 7 PRO 6850H, a chip that first appeared in business laptops back in 2022 under the Rembrandt codename. It pairs eight Zen 3+ cores with sixteen threads, running from a 3.2GHz base up to a 4.7GHz boost, all inside a 45W thermal envelope. The PRO suffix adds Microsoft Pluton security and remote management features aimed at business buyers, on top of the same silicon found in the consumer Ryzen 7 6800H.

Zen 3+ is a modest refinement of the Zen 3 architecture rather than a clean-sheet redesign, built on a 6 nanometre TSMC process. Anyone expecting Zen 4 or newer should adjust expectations accordingly. That said, eight cores and sixteen threads remain a genuinely useful amount of compute for a small form factor desktop, and the chip still competes well against many newer six-core parts in multi-threaded work.

Graphics duties fall to the Radeon 680M, built on RDNA2 with twelve compute units clocked up to 2.2GHz. When this chip launched, the 680M was widely regarded as the fastest integrated GPU AMD had shipped. It’s since been overtaken by the 780M, 880M and the new 8060S, but it remains capable of light gaming and everyday creative work, particularly when paired with fast memory.

(Image credit: Mark Pickavance)

That memory pairing matters more than you might think. Integrated graphics performance leans heavily on system memory bandwidth, since there is no dedicated video memory to draw on.

Aoostar has fitted 24GB of LPDDR5 running at 6400MHz, which should let the 680M stretch its legs more than it could on slower 4800 MT/s DDR5 and DDR4-based systems. The tradeoff is that this memory is soldered directly to the board, fixed at 24GB with no slots to expand it later.

Storage is where the Maco 6850H distinguishes itself from cheaper rivals. Three M.2 2280 slots are wired for full PCIe 4.0 x4 bandwidth, supporting up to 24TB combined. That is a genuinely generous allowance for a machine this size, and positions the MACO as a plausible small NAS or media server as well as a desktop replacement.

Networking follows the same business-minded theme, with dual 2.5 gigabit Ethernet ports built around Intel I226V controllers, alongside Wi-Fi 6 and Bluetooth 5.2. Two USB4 ports and an OCuLink connector round out the external expansion options, the latter aimed at anyone wanting to attach an external GPU with less signal loss than a USB4 connection would introduce.

I plan to test these scenarios and maybe write a feature based on what it reveals for those wanting discrete graphics performance or a cheap AI platform.

  • Features: 4 / 5
AOOSTAR MACO 6850H: Performance

(Image credit: Mark Pickavance)

Mini PC

Aoostar Maco 6850H

GMKtec NucBox M7 Pro

CPU

AMD Ryzen 7 PRO 6850H

AMD Ryzen 9 PRO 6950H

Cores/Threads

8C 16T

8C 16T

RAM

16GB DDR4 (2x8GB)

32GB DDR5 (2x16GB)

SSD

1TB Apacer AS2280Q4

1TB

Graphics

Radeon 680M

Radeon 680M

3DMark

WildLife

17098

15703

FireStrike

6792

7036

TimeSpy

2872

2811

S.Nomad

2502

2497

Cine24

Single

84

94

Multi

708

772

Ratio

8.39

8.23

GeekBench 6

Single

1996

2167

Multi

9601

10454

OpenCL

29110

29730

Vulkan

33652

30797

CrystalDisk

Read MB/s

7070

3544

Write MB/s

6680

2145

PCMark 10

Office

7100

7064

WEI

Score

8.2

8.2

Considering the AMD Ryzen 7 PRO 6850H is a four-year-old CPU, it's looking reasonably agile in this quick comparison with an AMD Ryzen 9 PRO 6950H that the GMKtec NucBox M7 Pro used. Both these chips are from the same generation, and these results show just how similar they are.

It all comes down to the memory on the Maco 6850H, and that 6400 MT/s LPDDR5 gives the older machine significant pause for thought.

If I were to compare it to an Intel platform, it would be the Intel Core i7-11800H, although I’ve never tested a system with that specific CPU. I tested one with the Intel Core i7-13700H, the MinisForum NBP7, and it struggled to beat the Maco 6850H.

Later Intel mobile processors that have Arc Graphics are faster, but they’re also generally more expensive.

One choice by Aoostar that helped the Maco 6850H in these tests was including a decent Gen4 x4 NVMe drive, since reading at more than 7000MB/s and writing at 3500MB/s helps massively with tests like PCMark.

AMD and Intel are both making faster mobile chips, and they are available in SFF systems, but given the price increases we’ve seen this year, the Aoostar Maco 6950H seems like a good choice if you want better-than-entry-level performance while staying within a modest budget.

  • Performance: 4 / 5
AOOSTAR MACO 6850H: Final verdict

(Image credit: Mark Pickavance)

Given the turmoil in the PC industry caused by massive leaps in memory and storage prices, the antidote is to take a second look at older technology that delivers enough performance to run Windows 11 and a decent range of demanding applications.

That’s where the Aoostar Maco 6850H provides a good justification for not plunging into the latest technology with both feet. Unless you want to play games or something equally demanding, this machine has plenty of performance to spare.

And, should you need more power for graphics or AI tasks, it is possible to add a discrete video card using OCuLink, without resorting to a desktop system.

When you factor in the performance and the price, this machine looks like a solid choice for a wide range of interactive tasks.

Should you buy a AOOSTAR MACO 6850H?

Value

You need to spend twice this amount for a bump in performance

4.5 / 5

Design

Simple but effective enclosure, but no VESA mount

4 / 5

Features

Punchy CPU, LPDDR5 memory, USB and OCuLink

4 / 5

Performance

Good performance for older silicon

4 / 5

Overall

Great combination of performance, build quality and price is almost unbeatable value.

4.5 / 5

Buy it if...

You need plenty of fast storage
This machine is perfect if you want a compact machine with serious NVMe expansion, since it has three 2280 Gen4 x4 slots, with two unused at delivery. Using 8TB drives, this system could have 24TB of storage in a very small computer.

You've made connectivity a priority
With two USB 4.0 ports and an OCuLink connection, this machine provides a means to connect ultra-fast storage and even external GPUs. It would also work nicely with a USB4 docking station if you want more than the dual video outputs and LAN ports.

Don't buy it if...

You want the newest AMD silicon available
The Ryzen 7 PRO 6850H dates to 2022, so it’s hardly a spring chicken in processor terms. AMD now has Zen4 and Zen5 series chips that go beyond this Zen3+ design in terms of the memory supported, integrated NPUs and enhanced instructions. But don’t expect to get a system using those at this price.

You need more than 24GB of RAM
Because this system doesn’t have SODIMM modules, the 24GB it comes with is soldered to the mainboard and cannot be expanded. Soldered memory is the trend, and therefore machines that can be manually expanded beyond 64GB are becoming rare and expensive.

Also Consider

GMKtec NucBox K16
Another AMD NUC built around the Zen 3+ Ryzen 7 7735HS, offering an alternative to the 6850H, in a similarly compact and upgrade-friendly case. It costs more, but comes with 32GB of RAM and 512GB or 1TB of storage.

Check out our GMKtec NucBox K16 review

GMKtec NucBox K8 Plus
A follow-up to the successful K8, the K8 Plus uses the AMD Ryzen 7 8845HS processor with 8 cores, 16 threads and boost speeds of up to 5.1 GHz. And in its standard configuration it has 32GB of RAM (expandable to 48GB), and 1TB of storage.

The downside to this design is that it only has two M.2 2280 slots, but it still includes USB4 and OCuLink for a machine that costs even less than the MACO 6850H.

Check out our GMKtec NucBox K8 Plus review

For more professional hardware, we've reviewed the best business computers.

Categories: Reviews

Reolink OMVI 3i reviewpanoramic views and 4K tracking in one smart camera

TechRadar Reviews - Sun, 09/27/2026 - 02:00
Reolink OMVI 3i: two-minute review

Shenzhen-based firm Reolink is a well-established brand in the home security market having gained a solid reputation for well-built, user-friendly cameras and video doorbells at an affordable price. I’ve reviewed quite a few models for TechRadar in my time and have generally been very impressed. One particular favourite is the recently launched Reolink Solar Floodlight Cam which combines a solar panel with two powerful spotlights either side of the main unit, as well as a loud onboard siren.

Like the Solar Floodlight Cam, the OMVI 3i also features powerful spotlights (there are eight in total) plus an ear-piercing 110dB siren. However, the key difference is that rather than relying on solar power combined with a built-in lithium-ion battery that can be recharged, the much bulkier Reolink OMVI 3i is mains-operated only and can’t be powered by battery or solar. This means it will have to be located near an AC power supply which isn’t always possible outdoors.

Two versions are available, a wired Power of Ethernet (PoE) version and the Wi-Fi model that we tested. Unlike some cheaper models, the OMVI 3i supports both 2.4GHz and 5GHz Wi-Fi — though the 5GHz frequencies are recommended for outdoor use. Practically identical to one another, both models are very bulky, requiring careful mounting on a wall using a drill in conjunction with brackets, screws and wall plugs provided.

(Image credit: Future)

Whereas most security cameras rely on cloud-based processing to identify objects, this latest Reolink features powerful integrated edge AI. This onboard intelligence allows the camera to easily distinguish between people, animals, and vehicles, letting you independently adjust sensitivity settings for each category to help dramatically reduce false alarms. Particularly clever is the smart tracking option alongside advanced package detection, which can alert you if a parcel is removed from a specific zone - making it a potentially useful tool in the fight against porch pirates.

When viewing footage via the easy-to-use app, two screens are displayed – one from the top panoramic camera producing a 180-degree image from two separate lenses and the other from a motorized pan-and-tilt camera that can rotate horizontally up to 355 degrees and vertically up to 50 degrees. Rather usefully, if you spot something untoward on the panoramic display such as an intruder, you can simply identify the area with your finger and it will then hone in on that area using the pan-and-tilt camera underneath.

Finally, where security camera manufacturers usually make their money is in selling you a monthly subscription to store your video footage in the cloud. Not only is this a potential cybersecurity risk, it can also get very expensive over time. With the Reolink OMVI 3i, there’s the choice between storing on a MicroSD card slot (not supplied) or subscribing to Reolink’s cloud service from just £2.71 (about $3.60 / AU$5.10) per month (yes it’s a strange amount). And because this OMVI 3i is mains-operated, the camera can record 24/7 if you want it to without having to worry about the battery losing its charge. This makes it ideal for business as well as consumer use.

Reolink OMVI 3i: subscription options

Reolink Cloud, Single Device Plan: Up to 30-day cloud video history, one camera, unlimited cloud storage, unlimited rich notifications, AI Video Search. £2.71 (about $3.60 / AU$5.10) per month.

Reolink Cloud, Standard Plan: Up to 30-day cloud video history, up to five cameras supported, unlimited cloud storage, unlimited rich notifications. £2.87 (about $2.80 / AU$5.40) per month.

See https://cloud.reolink.com/cloud-plan for further details

Reolink OMVI 3i: price and availability
  • How much does it cost? $329.99 / £259.99 / AU$439
  • When is it available? Available since June / July 2026
  • Where is it available? UK, US, Australia, and select global markets via Amazon and Reolink’s official store.

When you consider everything that the Reolink OMVI 3i camera has to offer, including dual panoramic lenses, a 4K pan-and-tilt mechanism, integrated edge AI and powerful spotlights, this security camera simply is fantastic value for money — especially as it’s pretty well built too. A few years ago, a device like this would have set you back nearer to £400 in the UK where I'm reviewing it, yet at the time of writing Amazon is offering it for just £220.

And while there are of course cheaper models on the market, none that I’ve seen offer anywhere near the same levels of performance. In fact, the Reolink OMVI 3i substantially undercuts commercial-grade monitoring systems, making it the ideal choice for small businesses/shops that want to use it for monitoring their premises.

Furthermore, even if you opt for cloud storage, the subscription fee isn't that bad coming in at under £3 a month. Better still, you can avoid ongoing costs completely by buying your own MicroSD card for local event logging, 24/7 continuous recording, or audio capture, making it a remarkably cost-effective long-term investment.

  • Value score: 5/5
Reolink OMVI 3i: design
  • Triple-lens configuration (10MP panoramic top lenses + 4K 8MP PTZ bottom lens)
  • Heavy-duty weatherproof (IP66) housing with drilling template included
  • Mains-powered only

Unlike many modern compact outdoor security cameras, the OMVI 3i is one heck of a big beast! Tipping up the scales at 2.4lbs / 1.1kg for the Wi-Fi variant and 2.9lbs / 1.3kg for the PoE version, it’s a really bulky unit. Installation isn't the easiest either. Because of its weight and the way it protrudes from the wall, it requires a very secure mount. It’s not a camera you can casually stick up with a couple of small screws. Instead, you’ll need a drill, screws, wall plugs and the mount to ensure it stays firmly anchored.

FutureFuture

Using the template provided I drilled holes for the sturdy mounting bracket, placing the unit high up on my outside wall overlooking the garden. But there’s no getting away from the fact this is a big unit designed for high performance rather than looks. Another major problem is that it needs to be plugged into the mains. Thankfully I already have a mains socket outdoors, but if you don’t, you will run have to connect the cabling to a plug indoors.

(Image credit: Future)

Essentially the design comprises two main elements — the upper part with twin lenses for panorama mode and the single lens pan-and-tilt camera underneath. Round the back of the unit is a waterproof rubber flap housing a MicroSD card slot and reset button. The maximum supported MicroSD card size for the Reolink OMVI 3i (both WiFi and PoE versions) is 512 GB. Alternatively you can subscribe to store recorded footage in the cloud or buy a Reolink NVR (network video recorder).

  • Design score: 3.5/5
Reolink OMVI 3i: performance
  • SyncTrack enables the Pan-Tilt camera to automatically lock on and follow subjects
  • Integrated edge AI for people, animals and vehicles
  • Removed item alerts and 24/7 continuous recording capability

When it comes to performance, the Reolink OMVI 3i Wi-Fi is certainly one of the best I’ve ever seen. Freed from battery limitations, it can focus completely on offering high-definition recordings from the triple-lens set up, rather than having to compromise on image quality to save battery power.

Indeed, visual performance is exceptionally strong. The 4K 8-megapixel pan-and-tilt camera delivers crisp, high-definition clarity that lets you easily zoom in on distant facial features or car number plates. Furthermore, the 10MP panoramic lenses on top provide an ultra-wide 180-degree overview, delivering the ultimate 'best of both worlds' setup where nothing escapes your field of vision. When an event occurs in the panoramic overview, you can simply tap or click on a specific area within the wide feed, and the 4K PTZ camera will instantly 'pinpoint' and swivel to that exact spot, zooming in to provide close-up detail without losing track of the broader context.

(Image credit: Future)

Even at night, picture quality remains exceptional. Infra-red night vision provides sharp monochrome clarity, while the multiple integrated spotlights proved amazingly powerful, bathing my garden in light late at night to ensure color recordings. Also on board is a powerful 110dB siren for startling unwanted trespassers, as well as two-way audio so you can tell intruders to get off your land!

But that’s not all. Particularly impressive is OMVI 3i’s built-in local AI processing. Rather than relying on sluggish or privacy-invasive cloud servers, the camera runs intelligence directly on the device. This allows it to distinguish between people, animals and vehicles with impressive accuracy. You can also independently fine-tune the motion sensitivity for each category, which dramatically cuts down on the nuisance false alarms that plague many security cameras.

(Image credit: Future)

Although I didn’t test the feature, removed-item alerts enable you to get a notification if a parcel is lifted from a marked doorway zone (handy in the fight against porch pirates!) while if you want continuous coverage, you can set the camera to record 24/7 or configure it to record audio by default.

Yet despite these standout strengths, the camera’s performance is not entirely without flaws. One small issue I encountered during testing is that the software stitching between the two top cameras for the 180-degree panorama occasionally fails, disrupting the seamless wide-angle view (this can be corrected with software within the app). Additionally, while the automated tracking of people, vehicles and animals is generally smooth, fast-moving targets can cause the pan-and-tilt mechanism to stutter or momentarily lose tracking if they dart across the frame too quickly.

(Image credit: Future)

Finally, because the camera captures such a massive, wide-angle view, it does demand careful positioning. If you have limited private space, its lenses can easily spill over into neighboring properties or public walkways, requiring you to use the detection exclusion zones software provided.

  • Performance score: 4.5/5
Should you buy the Reolink OMVI 3i?

Attribute

Notes

Score

Value

The Reolink is excellent value for money considering its triple-lens hardware, local AI and flexible storage options.

5/5

Design

Heavy and bulky, requiring wall plugs and a drill for secure mounting. Also runs on mains power and is unsuited for tight private spaces due to large field of view.

3.5/5

Performance

Combines crisp 4K resolution, Pinpoint synchronized tracking, a 180-degree panoramic overview, 355-degree PTZ tracking, powerful spotlights, and a loud siren.

4.5/5

Buy it if

You have a large estate or a small business with plenty of space

If you need to monitor sprawling grounds, wide perimeters, or extensive outdoor areas, this is an ideal high-end security solution.

You want total coverage without blind spots

The combination of dual panoramic lenses on top and a 355-degree pan-and-tilt camera underneath ensure a ‘best of both worlds’ solution.

Don’t buy it if

You want a discreet, easy-to-install solution

The Reolink OMVI 3i is very bulky and heavy, requiring proper wall mounting with a drill and wall plugs, making it unsuited for casual setup.

You have limited private space or no mains power

Because it captures such a wide angle, it can easily spill over into neighboring areas, while its mains-power requirements means running cabling outdoors.

Reolink OMVI 3i: also consider

Reolink OMVI 3i Wi-Fi

IMOU AOV PT

Reolink Solar Floodlight Cam

Subscription price

Optional cloud from £2.71 a month (or MicroSD storage)

Optional subscription from £3 a month

None. Optional subscription from £2.71 a month

Viewing angle

180-degree panoramic dual lens and 355-degree pan and tilt camera

360-degree pan and tilt lens

150-degree ultra-wide diagonal

Network connection

Wi-Fi/ PoE versions (2.5GHz/5GHz)

Wi-Fi (2.4GHz)/4G cellular

Wi-Fi (2.4GHz/5GHz)

Audio

Two-way audio

Two-way audio

Two-way audio

Video

4K 8MP PTZ + 10MP panoramic resolution

3K (5MP) video resolution

2K (1440p) video resolution

Power

Mains power (with waterproof cable design)

Battery/Solar

Battery/Solar

Hardware price

£220-£250

£129 (with separate solar panel)

£85 (with built in solar panel)

Reolink Solar Floodlight Cam

Looking for a decent security camera with powerful spotlights that you don’t have to keep recharging every few months? Then the Reolink Solar Floodlight Cam is a good option, especially given its competitive price tag.

Read our full Reolink Solar Floodlight Cam review

IMOU AOV PT

Thanks to 4G cellular connectivity, the IMOU AOV PT is a great choice for those living in a remote location where Wi-Fi is a little patchy or even non-existent. Also boasts a separate solar panel so you don’t need to recharge the battery quite so often.

Read our full IMOU AOV PT review

How I tested the Reolink OMVI 3i
  • I used the camera outdoors for seven days
  • I set it up myself using the fittings provided by the manufacturer
  • The security camera was installed facing my back garden.

Usually when testing outdoor security cameras, I like to install them on my summer house which doubles as a home office and gym. This gives me a great view of the garden back towards the house. However, for the Reolink OMVI 3i I had to change things around for a couple of reasons.

Firstly, the size of the camera meant that I couldn’t be sure that the wooden-built summer house would hold the weight. Secondly, although I have power inside the summer house I would have needed to run power quite a long way to the outside of the building which wasn’t possible with the cable provided.

So, instead, I opted to drill the camera bracket into the wall outside my kitchen and face the camera the other way towards the end of the garden. This had the added advantage of the camera not being visible to the neighbors. I tested the camera for several days and nights, using the onboard AI to capture people and animals in the garden, though thankfully no intruders made it into my heavily fortified property.

First reviewed September 2026

Categories: Reviews

Innocn E49M1R ultrawide monitor review

TechRadar Reviews - Sun, 09/27/2026 - 01:45
INNOCN E49M1R: 30-second review

The 49-inch ultrawide market has always demanded a compromise. Curve the panel, and you gain immersion but lose straight lines along your windows' edges. Keep it flat, and those two features simply swap places. Innocn has decided that trade-off is no longer guaranteed, and the E49M1R is the result.

By the maker's own description, this is the world's first 49-inch flat Mini LED ultrawide monitor. That single design choice sets it apart from almost every other super ultrawide currently on sale, since curved panels have dominated this size class for years. Traders, video editors, developers and anyone who values straight lines over cinematic curvature now have a genuine flat alternative at this scale.

Underneath that flat glass sits a 5120 x 1440 VA panel, often marketed as DQHD, which is effectively two 27-inch QHD monitors joined without a centre bezel. Add a 165Hz refresh rate and a 2ms overdrive response time, and you have a display built to appeal equally to people juggling financial dashboards, editors scrubbing long timelines, and gamers who want peripheral vision without warped geometry.

Backlighting comes from 1760 local dimming zones, a genuinely high number for a monitor at this size and this price. INNOCN pairs that with HDR1000 certification, a typical brightness of 450 nits, and a claimed peak that reaches four figures in HDR content. On paper, that combination should deliver punchy highlights alongside properly dark shadows, rather than the washed-out grey blacks that cheaper Mini LED panels sometimes produce.

Colour coverage looks strong too, with sRGB essentially maxed out and comfortable coverage claimed of the wider Adobe RGB and DCI-P3 spaces. Either way, the combination suggests this panel was built with more than gaming in mind, rather than for design work.

Connectivity runs to two HDMI 2.1 ports and two DisplayPort 1.4 inputs, a sensible spread for switching between a desktop and a laptop, or a work machine and a console, without reaching for an adapter. You can display all four inputs at once, or use a range of picture-in-picture options.

A USB hub, twin 5W speakers and support for AMD FreeSync round out the feature list.

The stand offers 120mm of height adjustment along with tilt from minus five to plus fifteen degrees and a modest fifteen degrees of swivel. There is no mention of pivot, which is hardly surprising given the sheer width involved. At 13.3kg with the stand attached, this design rewards a permanent spot on a desk rather than regular repositioning.

Pricing in the US sits at $999.99, which places the E49M1R against established 49-inch rivals from Samsung and LG, several of which still rely on curved panels at similar or higher price points.

The core promise here, a genuinely flat super ultrawide with Mini LED backlighting and a proper refresh rate, is compelling enough that INNOCN deserves the benefit of the doubt until testing confirms whether the numbers hold up on a desk rather than on a spec sheet.

INNOCN E49M1R: Price and availability

(Image credit: Mark Pickavance)
  • How much does it cost? $999
  • When is it out? Available now in the US and Japan
  • Where can you get it? Direct from Innocn

Innocn lists the E49M1R at $999.99 on its US store, with free shipping, a 30-day return window and a standard 12-month warranty. Orders placed before 1 October 2026 qualify for an extended three-year warranty as a launch promotion.

The monitor also launched in Japan on 10 September 2026 at 159,999 yen, roughly $1,044, with an introductory price of 135,990 yen, roughly $887, running for a limited period around launch.

Is this a good price? It’s hard to say, since no other monitor brand has anything like this available to compare.

  • Value: 5 / 5
INNOCN E49M1R: Specs

Specification

Detail

Model

E49M1R

Panel size

49 inches, flat

Panel type

VA, Mini LED backlit

Resolution

5120 x 1440 (5K DQHD)

Aspect ratio

32:9

Refresh rate

165Hz

Response time

8ms GtG, 2ms with overdrive

Local dimming zones

1760

HDR

HDR1000

Brightness

450 nits quoted

Contrast ratio

3000:1

Colour depth

8bit

Colour coverage

100% sRGB claimed, 98% tested

Connectivity

2x HDMI 2.1, 2x DisplayPort 1.4, USB hub, 1x audio out

Adaptive sync

AMD FreeSync

Speakers

2x 5W

Stand adjustment

120mm height, tilt -5 to +15 degrees, 15 degree swivel

VESA mount

100 x 100mm

Power consumption

95W typical, 240W maximum

Weight with stand

13.3kg

Warranty

3-year (launch offer)

INNOCN E49M1R: Design

(Image credit: Mark Pickavance)
  • Flat panel, not curved
  • Minimal bezel across a 32:9 frame
  • Height-adjustable stand but modest rotation

Where most 49-inch ultrawides curve their panel to keep the far edges within easy view, the E49M1R stays flat.

Innocn calls it the first monitor of its kind at this size, and it is a genuine point of difference rather than a marketing flourish. A flat panel keeps straight lines straight, which matters for anyone lining up spreadsheet columns, CAD drawings or video timelines across the full width of the screen.

You can get the same 5120 x 1440 resolution at this scale by combining two 27-inch 1440p displays, and that would be cheaper. But for those who want a single seamless experience, this is the way.

However, that creates an entirely different issue: the sides of the screen are significantly farther from a centrally placed viewer than the middle.

How much further? Well, if you are 75cm from the middle of the panel then the left and right edges are another 20cm away.

Depending on the flexibility of your eyesight, this is either not a problem or a major snag.

You might want to consider a desk you can slide sideways so that, if you are working at one side, you can bring it nearer, then roll your chair to the other when needed. This might seem silly, but if you are using this panel to monitor things, you'll need to make some adjustments.

What’s impressive is how narrow the bezel is on the top and sides, making the display the predominant aspect of this screen.

(Image credit: Mark Pickavance)

The stand provides 120mm of height travel, a tilt range from minus five to fifteen degrees, and also fifteen degrees of swivel. No pivot option is listed, which makes sense given the panel's width. It has a VESA 100 mounting point in the centre, but you need to consider that any support will need to handle the not insignificant weight of the E49M1R.

At 13.3kg with the stand fitted, this is not a monitor you will want to move often, or possibly without some help.

Settings on this monitor are slightly old-school, with five buttons under the central Innocn logo being used to control an on-screen menu.

I’ll be honest and say I hate these menus, because six clicks to make a change when it would be one with a mouse and an app seems bonkers. However, all the interesting features are on this menu, if you can be bothered to click through them.

Overall, there isn’t much that’s revolutionary here in the design; most of that showboating is reserved for the underlying technology.

However, despite the obvious awkwardness of having a monitor this large, in most respects it works as intended, and for some applications is something of a joy.

The trick I think Innocn missed is that this screen is perfect for controlling multiple systems, since you can display each input simultaneously. What’s required to make this perfect is a KVM, and since Innocn put a USB hub into the monitor, why did they not make this a KVM?

Even if it only supported two computers, splitting the screen for two systems, and tracking a hotkey switch (like a SCRL LOCK double tap) to flip the USB port over for mouse and keyboard, this would be terrific. Yes, you can get the same effect with a separate KVM, as I have, but if it were all in one package, it would be brilliant.

The key weaknesses are the lack of motion on the stand and the lack of a software control panel, which forces you to use tiny buttons to change modes.

But these flaws don’t undermine what is a solid product in most respects.

  • Design: 4 / 5

(Image credit: Mark Pickavance)INNOCN E49M1R: Performance
  • Up to 480 nits
  • 98% sRGB
  • 72% AdobeRGB

Colour Gamut

Percentage

sRGB

98%

AdobeRGB

72%

P3

74%

NTSC

68%

Rec2020

53%

Gamma

1.8

Maximum Brightness

481.5

Maximum Contrast

4180 : 1

This design has a weird dichotomy I’ve never seen before: some of it comes from the design choices, and some from the panel's technology.

But first, let’s talk about what’s good about this screen, because in many respects the positive aspects outweigh the negative ones.

Two aspects are 5/5 in my opinion: color gamut and contrast. Being able to display lots of colours and a decent contrast between the brightest and darkest makes this an extremely readable display, and a punchy chromatic experience. I’m not sure how that fits with the Innocn specification that this is an 8-bit VA panel underneath.

The brightness is also greater than the 450nits that the maker quotes, and typically that number is overstated.

On paper, the E49M1R's performance case rests on three pillars. The first is contrast, delivered by 1760 local dimming zones feeding a VA panel with a quoted 3000:1 native contrast ratio. That is a considerably more granular backlight than the edge-lit arrangements found on cheaper ultrawides, and it should translate into deeper blacks alongside bright highlights in HDR content, rather than the obvious blooming that coarser dimming grids produce.

The second is color. Innocn claims essentially full sRGB coverage, with wide claimed coverage of Adobe RGB and DCI-P3 as well, alongside a Delta E accuracy target below two. Those numbers would put the E49M1R comfortably ahead of most gaming-focused ultrawides for colour-critical work, but it’s more nuanced than that.

While the gamut is great, color accuracy isn’t wonderful, making this design less than ideal for designers working with color. You might be able to tweak settings to improve colour accuracy, but this screen will never compete with an OLED panel.

The third pillar is motion. A 165Hz refresh rate, 2ms overdrive response time, and AMD FreeSync support should keep fast-moving content smooth, though the product page makes no G-Sync compatibility claim, which is worth noting for Nvidia users who rely on that certification.

In conclusion, if you need an ultrawide display for monitoring multiple systems, huge spreadsheets, motion graphics, a flight or racing simulator, then this is an excellent choice.

The lack of accuracy here is an issue for color-critical jobs, but that’s not something most people buy an ultrawide monitor for.

(Image credit: Mark Pickavance)
  • Performance: 4 / 5
INNOCN E49M1R: Final verdict

On specification alone, the E49M1R makes a compelling case. Innocn has combined a genuinely novel flat panel with a dense Mini LED backlight, a proper 165Hz refresh rate and colour coverage that reaches well beyond sRGB.

For traders, editors, developers and anyone tired of curved screens distorting their straight lines, this looks like the ultrawide the category has been missing.

I do wonder if Innocn has another E49M1 design in development that uses OLED and would address the color accuracy issues I detected, but for now this VA design with Mini LED backlighting is a dramatic improvement over any single-source backlight hardware.

With the hardware available today, the E49M1R could be one of the year's most significant ultrawide launches. And, at less than $1000, this is a huge monitor for a modest asking price. If you don’t need such a high resolution, Innocn also offers the slightly cheaper E49M1G with a 3840 x 1080 resolution and a 144Hz refresh rate.

On a personal note, I’ve been using this panel this week, and having my PC desktop on one side and a mini PC I’m benchmarking on the other makes for a great workflow. Similarly, when I transfer my work from Word to the publishing system, being able to extend my desktop is equally helpful.

While the E49M1R isn’t for everyone, for those who can use its abilities, it's genuinely revolutionary.

(Image credit: Mark Pickavance)InnoCN GA27S1Q: Report card

Value

When only a company makes something, the price is the price

5 / 5

Design

Massive display with a restrictive stand, but plenty of good features

4 / 5

Performance

Large gamut and incredible contrast, but not color accurate

4 / 5

Total

Easily worth what the maker is asking for an Mini LED this big

4.5 / 5

Should you buy a INNOCN E49M1R?

(Image credit: Mark Pickavance)Buy it if...

You need screen space
Having the equivalent of two 1440p monitors in a single 49-inch wide panel provides plenty of space for multiple apps to share that area comfortably. Yes, you can get the same space or even more with multiple monitors, but this allows you to have them without the separation of a bezel.

You monitor multiple computers
Each of the four inputs can be displayed simultaneously, either using PiP or by splitting the screen zonally. This has security and system uses, and you can change the arrangement to give a single or two sources larger displays when needed.

Don’t buy if...

You have limited space
A monitor this large needs space to be installed and adjusted for optimal viewing. And not every desk has that much space. If you work with limited space, the E49M1R isn’t for you.

You need colour accuracy
While it has a great colour gamut, having plenty of colours doesn’t guarantee that they’re the right ones. And on this design, the colour accuracy isn’t high, so it wouldn’t be suitable for picking the colours for your new spring collection.

For more options, we've tested the best business monitors.

Categories: Reviews

Sennheiser Momentum True Wireless 5 review: truly the new flagship earbuds to beat

TechRadar Reviews - Sat, 09/26/2026 - 20:00
Sennheiser Momentum True Wireless 5: Two-minute review

Sennheiser doesn’t rush its new products — especially within the best earbuds market. It’s been over two years since the launch of the Momentum True Wireless 4 and, even back then, I remember the brand saying at my product briefing that they were already at work planning ahead for potential EU regulations. Which regulations specifically? That the batteries within these tiny earpieces may well need to be user-replaceable in coming launches.

Those laws are still on the horizon… sort of. Other brands have had their complaints, saying the rules force tiny devices to be bulkier and less waterproof, so there are now various exceptions. Sennheiser, though, stuck to its plan. With the launch of the Momentum True Wireless 5, the company is proving that user-replaceable batteries are possible even in products as small as wireless earbuds.

Longevity is only one part of the story when it comes to these new buds though. Much like the new Momentum 5 over-ear headphones, they’re stuffed full of upgrades. They’ve now got a refreshed premium design, a different shape and fit, improved noise-cancelling and transparency, refined sound, and extra features, such as immersive Dolby Atmos audio and aptX Lossless high-res streaming. Spoiler alert for the rest of this review, but they’re the complete package.

After more than two weeks of use, the Momentum True Wireless 5 (or MTW5) have quickly become my new favorite wireless buds for just about anything and everything. They’re quite clearly the flagship to beat in 2026.

To my ears, they’re better-sounding than the top rivals from Technics and JBL, with an enjoyable, neutral, yet non-fatiguing sound that caters to critical listening. The improved ANC is now only a slight step behind Apple, Bose and Sony’s best, and that gap is close enough to barely matter for most of us.

Crucially, the Sennheiser buds are highly customizable with the Smart Control Plus app, an intuitive platform that I find to be one of the best companion apps in the business. Should you want to, you can adjust the sound, tap controls, ANC levels, codecs in use, battery preservation, and more.

The sustainability credentials and long-term usability make them easy to recommend. But once you add in their natural audio on a wide soundstage, high-end style, comfortable fit, and smart companion app features, the Momentum True Wireless 5 might just be the best buds out there for the money.

(Image credit: Future / Simon Cocks )Sennheiser Momentum True Wireless 5: price & release date
  • Launched in September 2026
  • Sells for $300 / £250 / AU$499

How much money, though? For high-end earbuds, you expect a high cost, and the Sennheiser Momentum True Wireless 5 are launching at the competitive price of $300 / £250 / AU$499.

Unsurprisingly, that puts the MTW5 pretty much in the mix with the rest of the flagships. Apple’s AirPods Pro are $50 cheaper at $249, but these directly compete with Sony’s WF-1000XM6 — costing $329 / £250 / AU$499.95 — and the Bose QuietComfort Ultra (2nd Gen) – for $299 / £299 / AU$450. And, of course, luxury or boutique pairs such as the Bowers & Wilkins Pi8 ($399 / £349 / AU$599) or Master & Dynamic MW09 ($349 / £319 / AU$599) will still cost a fair chunk of cash more.

No matter how you look at it though, these are pricey for most of us. But once you factor in the replaceable batteries, it’s easy to see how these could keep you going for longer than others on the market. And these are the first premium buds from an audio brand to have this repairability feature, with Fairphone's Fairbuds being essentially the only other rival even attempting it. So, kudos there.

Future / Simon Cocks Future / Simon Cocks Future / Simon Cocks Sennheiser Momentum True Wireless 5 review: specs

Drivers

7mm dynamic

Active noise cancellation

Yes

Battery life

Up to 12 hours per earbud, 40 hours in total

Weight

7g (per bud)

Connectivity

Bluetooth 6.0

Frequency range

5 Hz-21 kHz

Waterproofing

IP54

(Image credit: Future / Simon Cocks )Sennheiser Momentum True Wireless 5 review: Features
  • User-replaceable batteries (for both the buds and the case)
  • Bluetooth 6.0 with seamless multipoint switching
  • Head-tracked Dolby Atmos spatial audio

The replaceable battery is the headline feature here, of course. It’s a big deal because the batteries are what's most likely to degrade first in your earphones. Until recently, the glued-in cells in wireless buds have meant that, one way or another, they’re destined to be e-waste in only a matter of years.

Sennheiser includes a battery replacement tool for the buds in the case, and you can access the case battery and the bud batteries with the help of a tiny screwdriver. Luckily, the required screwdriver is the one I have on hand to adjust my glasses. To do my due diligence for this review (even though these fresh buds would be a long way away from needing their batteries replaced) I’ve gone through the process of opening up both the case and buds, and can confirm it’s easy enough as long as you follow the instructions on how to use the included tool. Just be careful as you’re dealing with delicate, small parts.

I also spoke with Frank Foppe, the product manager for the MTW5, and I asked how long they’re made to last before a battery replacement might be needed. He confirmed that about 80-90% of the capacity should remain after 500 charge cycles. That’d mean you could use them every single day for two hours and get to four years of use before you notice much of a difference.

And, while Sennheiser isn’t yet able to confirm the cost of replacement batteries, once those are available, they should make a big difference to the longevity of the MTW5. You could realistically buy these earbuds, take care of them, replace the batteries and keep them working for well over five years or much more (as long as all other parts remain functional).

Right now, you should get 6 hours of playtime with ANC on, and up to 12 hours with it off. Sennheiser claims an ANC-off battery life totalling 40 hours once you factor in the charging case, which seems to be about right in my testing. I ran a test playing a Spotify playlist for three hours at 50% volume with ANC on, and had 60% remaining, which confirms a single-charge runtime of around 7.5 hours, a little better than Sennheiser’s estimate. Recharging is via the USB-C port on the case or wireless charging, and a quick charge of eight minutes gives you an hour of use.

(Image credit: Future / Simon Cocks )

Much like the MTW4, Sennheiser has also made these a “future-proof” pair of earbuds when it comes to the feature set. They include several abilities other current launches still lack, and they have the brand’s excellent battery protection feature (to slow down charging and limit the charge level to 80%), which is another way they’re designed for long-term use.

You’ve got Bluetooth 6.0 with Snapdragon sound, a low-latency mode, support for lossless audio and 24-bit/96kHz streaming, Dolby Atmos head-tracked immersive audio, reliable wear detection, excellent multipoint switching, Google Fast Pair, Microsoft Swift Pair, and upgraded microphones for better noise-cancelling and transparency, along with LE audio and Auracast (not at launch, but promised for a future firmware update).

While I’d found ANC on the MTW4 “effective”, I’d say the new version definitely takes things a step further. We’ve now got four microphones per earbud (plus bone-conduction voice sensors for calls), which is up from three per bud on the predecessor. In all the environments where I’ve used noise-cancelling – including coffee shops, city streets and the London Underground – I’ve found my music or podcasts still audible at reasonable volumes without needing to turn it up to overpower the noise.

The wind-noise reduction kicks in quickly and is also excellent, and I should know, as it’s been particularly windy on my walks lately! Noise-cancelling, overall, feels quite natural while still being capable enough to silence a great range of outside sounds, adapting well to changes in your environment.

But it still isn’t quite the “bubble of silence” ANC that you can get from the AirPods Pro 3 or Bose QuietComfort Ultra earbuds! I don’t find that it’s a difference that matters that much anymore, but it’s worth knowing that there’s even more powerful ANC out there.

Transparency is brilliant, though, and up there with AirPod models for how natural its passthrough of the outside world is. I also love that turning on transparency pauses your audio. I listen to podcasts a lot, and having a one-tap way to pause and get awareness is fantastic for quickly saying hi to the cashier at my local corner shop. I also tested the microphones with calls and voice notes. They’re decent at isolating my voice when playing loud, busy cafe background noise, but with the occasional missed word or two. That said, they’re good for outdoor calls and great in a quiet room.

  • Features score: 4 / 5
Future / Simon Cocks Future / Simon Cocks Future / Simon Cocks Future / Simon Cocks Sennheiser Momentum True Wireless 5 review: Sound quality
  • Neutral sound on a wide soundstage
  • Excellent detail and warmth for a non-fatiguing listen
  • Highly customizable in the app

Sennheiser markets these as “engineered for serious listeners” and I don't disagree. They’re not really made with bass-heads in mind, and have more of a neutral approach when compared to some consumer sound profiles. But they’re also not sterile, offering warmth, depth and smoothness. You get just enough weight and control to the bass, a natural midrange and crisp highs, plus a lot of flexibility to adjust the sound to your liking.

If you know much about the previous generations of these earbuds, all that I’ve just said won’t come as a big surprise. While there are slight refinements to the sound, these essentially sound about the same as the MTW4 and MTW3 before them. They use the same 7mm TrueResponse dynamic drivers from the predecessors, and one notable benefit over rivals is a greater width to the soundstage and a palpable sense of instrumental separation.

Billie Eilish’s Oxytocin is a fantastic test track for these buds — with effects zipping across the mix, perfectly centered lead vocals, and breathy backing vocals coming at you from all sides. I played the spatial mix from Apple Music and switched on Dolby Atmos, and it’s definitely a convincing implementation of the processing. As my playlist went on, I began to encounter tracks not mixed for spatial audio, though, and you’d need to manually turn off Atmos so those don’t sound a bit weird.

I far prefer Dolby Atmos over most proprietary spatial options, so I appreciate its presence here, but I’d make sure you only use it when listening to playlists or albums full of tracks optimized for Atmos. It works best with Atmos-certified content, and in those cases much of the processing will be done on the source device.

Head tracking works, but it’s still not essential. The fixed spatial audio is plenty, and I still recommend mostly using this mode with films and TV shows designed for immersion, rather than music, which can be a little more hit-and-miss. I tested it with Severance on Apple TV and found it enhanced the eeriness of the quiet sound design and the dialogue clarity.

I tested bass with my go-to low-end thump test, the slow-burn sub-bass of Massive Attack’s Angel. The MTW5 excel, not coming off as overly bloated or boomy, but instead clear and textured. Vocal and midrange realism is where Sennheiser’s natural tuning pays off most. Listening to Coldplay’s Clocks reveals more detail and subtleties I don’t usually hear. And I moved on to the busy mix of Muse's Supermassive Black Hole, where every element feels defined, without the smearing you so often hear from lesser drivers. The width of the soundstage makes for a more engaging listen and, when combined with the tightness of the bass and detail in vocals, I’d say they’re a pair that’s ideal for a relaxed listening experience.

They’re so non-fatiguing that I can keep listening for hours and hours. The most intense audiophiles may still have their nitpicks, as these are tuned more for musical enjoyment than they are for being analytical, but I really think there’s very little that can’t be solved with the 8-band EQ. A full parametric equaliser (as on the HDB630 over-ears) would’ve been a great customization feature, but it’s also one that many users wouldn’t find intuitive.

Sennheiser’s Sound Personalization is a companion to EQ, and is a blend between a preference test and hearing evaluation, where you tweak the volume of different instruments to your liking, and then use a slider to find the lowest level at which you can hear the sample track. The result still sounded great for me, but I ultimately found that I prefer the default “Neutral” after comparing the two.

My honest view on the codec support is that it’s very easy to get lost in the weeds with it all, and far more of this is marketing than most of us tend to admit. The high-res aptX Lossless codec is present, but only kicks in with compatible Android sources, so you may not be able to engage this mode anyway.

I tested it with the Fairphone 6 Plus, which supports the full aptX suite, but it wouldn’t shift out of Adaptive. But this isn’t surprising given that “Lossless” is more of a “mode” hiding inside aptX Adaptive. Basically, this can all get a bit confusing, and there isn’t a substantial difference. A competent codec like AAC will give you quality with virtually no audible difference from aptX, thanks to Sennheiser’s great tuning and driver design. If you have a phone supporting aptX Adaptive, you may hear a tiny difference, but I wouldn’t bet on it.

These sound superb, so you’re not losing anything by choosing “Robust connection” instead of the “Advanced sound quality” mode. You won’t be able to tell them apart, and you’ll get to use every feature (Atmos is unavailable if you turn on high-res, for example).

  • Sound quality score: 5 / 5

(Image credit: Future / Simon Cocks )Sennheiser Momentum True Wireless 5 review: Design
  • New, premium design with a shallow fit and slim case
  • Comfortable to wear all day
  • Screws for the user-replaceable batteries

Fans of the fabric-wrapped case may be disappointed to see how Sennheiser changed things up with the MTW5. The buds now live in a slim and lightweight, textured plastic casing with a shiny circular logo on top. This case has a sturdy metal hinge, one of the best I’ve tried, and the USB-C port is now at the bottom left (it used to be on the front of the older design). On the case and buds, you’ll see the screws needed for changing batteries, but the earphones are still IP54 dust- and splash-resistant.

The fabric case of the MTW4 I tested quickly picked up a big scuff, so I’m hardly mourning its departure. In fact, everything about the MTW5 feels significantly more premium to me. Another added benefit? This svelte approach is far more pocket-friendly.

The buds themselves are very shiny, which I quite like but may divide opinions, and they’ve got a different form factor, at a similar size and weight (7g per bud vs 6.2g for the MTW4). They’re on the chunkier side, so are harder to recommend for those with the smallest ears. They now fit in a totally different way from the predecessor, too, with a much shallower fit and no stability fins. Despite lacking the fins, they actually fit me slightly better.

Even more than with other buds I’ve tried, you absolutely must double-check your ear tip sizes with the four options in the box (I needed a larger tip size in my right ear than in my left). And try not to twist them too much, as I’ve found that can break the seal and introduce friction noise when you walk while ANC is on. A gentle turn is all you need to lock them in place, and with the new thicker silicone tip material Sennheiser uses, they shouldn’t budge. With a good fit, it’s a secure seal that offers great passive noise isolation.

Aside from being shiny, the buds have a more curved look (a bit reminiscent of the Sony WF-1000XM5) and an “anti-wind” design, with a visible grille covering the mics at the front. They’re still controlled with customizable tap gestures, but the touch target is now noticeably smaller, and it’s one of my few (minor) negative points. I find you have to be pretty intentional about where you tap, because it’s easy to miss and do a single tap when you intend to double-tap.

Overall, I’m a big fan of the rounded, stylish new design, and I love that it comes in a more expansive range of colors (Graphite, Copper, Denim, Lavender and the Cream shade reviewed here) than the likes of AirPods or Sony buds. But you might find these distractingly shiny and not suit the shallow fit or chunky body. How much you like them will come down to personal preference.

  • Design score: 4.5 / 5

(Image credit: Future / Simon Cocks )Sennheiser Momentum True Wireless 5 review: Value
  • Competitive with other high-end buds
  • Feature-packed and premium
  • Loads of rivals, but very few offer replaceable batteries

Sennheiser is not short of competition. The key rivals are the AirPods Pro 3, Sony WF-1000XM6, Bose QuietComfort Ultra (2nd Gen), JBL Tour Pro 3 and Technics EAH-AZ100. In direct comparison, though, the MTW5 is packed full of features that some of these lack, and they deliver a natural and clear sound instead of the bass-forward sound of many other buds.

Ultimately, though, Sennheiser’s value argument comes down to how it offers user-replaceable batteries. Assuming these batteries are under $50, you won’t be forced to throw away your $300 pair when the cells naturally degrade in about three to four years or so. That’ll help if you consider them as a long-term investment.

With that said, the landscape won’t stay the same. New buds with replaceable batteries will eventually launch, and many will surely be cheaper than this too. For flagship quality in sound, design, comfort, and battery life, though, I’d bet Sennheiser’s Momentum True Wireless 5 will remain some of the best buds you can buy for years to come.

  • Value score: 5 / 5
Should I buy the Sennheiser Momentum True Wireless 5?

Section

Notes

Score

Features

The app gives you loads of ways to customize the buds to suit you, and they have all the features you could want.

5/5

Sound quality

These are a fantastic-sounding pair of buds, prioritizing detail, clarity and smoothness on a wide soundstage.

5/5

Design

I’m a fan of the new look and fit, which is sleeker and shinier, but may still be a little bulky for small ears.

4.5/5

Value

They’re an investment, but offer a lot to compete with flagship rivals, and have replaceable batteries that other pairs lack.

5/5

Buy them if…

You want earbuds for the long run
Switching out batteries for fresh ones after years of use means you should be able to own these for far longer than others, so they’re ideal for anyone hoping to escape the upgrade cycle.

You like a balanced and natural sound
Sennheiser is known for its trademark natural sound, wide soundstage and relaxed listening experience – these impress on all counts.

You want a premium and comfortable design
The new subtly rounded bud design and slimmer charging case are much more premium than Sennheiser’s old buds and much of the competition.

Don’t buy them if…

You need the absolute best ANC around
This is a minor but notable shortcoming, so if you want top-tier noise-cancelling, you’ll still need to go with Apple, Bose or Sony, as these are still a step or two behind the class leaders.

You’re on a budget
I can argue that they’re good value and competitive with other flagship wireless earbuds, but this is still a lot to spend on buds, even if they’re some of the best around.

You don’t like shiny earbuds
There’s no getting around it; whichever color you pick, they’re eye-catching and shiny, and that’s an unavoidable aspect of the design.

Sennheiser Momentum True Wireless 5 review: also consider

Bose QuietComfort Ultra Earbuds (2nd Gen)
If superior noise-cancelling is your top requirement, these are some of the best options out there; it helps that they’re also comfortable, immersive, and offer dynamic and powerful audio that adapts to your unique ear anatomy. Read our full Bose QuietComfort Ultra Earbuds (2nd Gen) review.

Sennheiser Momentum True Wireless 4
The older model is still stacked with features even when compared to today’s rivals, so it’s worth considering if you can pick up the MTW4 at a discount – they’re great all-rounders with detailed and balanced sound, strong battery life and future-proof Bluetooth support including aptX Lossless, LE audio and Auracast. Read our full Sennheiser Momentum True Wireless 4 review.

Technics EAH-AZ100
Our current top pick for wireless earbuds overall, the Technics flagship won’t disappoint with its secure and comfortable fit, nuanced and customizable sound and control, and excellent triple-device multipoint connectivity. Read our full Technics EAH-AZ100 review.

How I tested the Sennheiser Momentum True Wireless 5
  • Tested for over two weeks
  • Paired with Android, iOS and macOS devices
  • Used during multiple activities

I tested the Sennheiser Momentum True Wireless 5 for over two weeks, pairing them with my iPhone 17 Pro, MacBook Air, Fairphone 6 Plus and Activo P1 music player, all of which allowed me to thoroughly test different codecs and multipoint connectivity.

I took them with me everywhere and I used the earbuds while on the London Underground, at coffee shops and while walking on city streets to test the active noise-cancelling capabilities, and I used them for long listening sessions while working to evaluate battery life. I tested calls and microphone recordings, and ran a controlled battery test to see how much they drained over the course of three hours. While testing, I listened to podcasts and music from a wide variety of genres, mostly streamed from Apple Music but also on Spotify and Deezer.

I've been testing gadgets since 2020, and I've reviewed countless headphones and earbuds, including several flagship earbuds including those from Bose, Apple, Technics, JBL and Sennheiser, and I previously tested out the Sennheiser Momentum True Wireless 3 and Momentum True Wireless 4.

Categories: Reviews

Pages

Subscribe to The Vortex aggregator - Reviews