Error message

  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6591 of /home/cay45lq1/public_html/includes/common.inc).
  • 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

Cambridge A100 SE review: cheap wireless earbuds that hit all the right notes

TechRadar Reviews - Thu, 10/01/2026 - 04:00
Cambridge A100 SE: Two-minute review

At a glance, not much separates the Cambridge A100 SE true wireless in-ear headphones from their older A100 stablemates — and that’s because not much does.

The most obvious difference on first acquaintance is the addition of a (very attractive) deep blue finish — and when you glance at the spec-sheet, it’s only the (admittedly not inconsiderable) addition of Dolby Audio functionality that justifies the ‘SE’ in the model name.

Which means that the A100 SE are, at the asking price, a lavishly specified pair of wireless earbuds for the the best budget earbuds market. Class A/B amplification, aptX Lossless and LDAC codec compatibility, 10mm dynamic drivers featuring a lot of recycled Neodymium, adaptive hybrid active noise cancellation, and very nearly 40 hours of battery life from the ‘buds and their charging case are high up on the list of highlights.

And in practice, the way the A100 SE perform is almost all ‘gain’ and very little ‘pain’. They are spacious and organised, control a soundstage well, offer plenty of detail, balance their frequency response and tonality pretty well, and include voice, touch and app as control options.

A price-comparable alternative such as the JBL Live Beam 4 can go even further where battery life is concerned, and have a more naturalistic way with rhythmic expression — the A100 SE are just slightly lumpy in this regard — but ultimately they’re ‘different’ rather than obviously ‘better’. Because at this sort of money, finding something obviously ‘better’ than the Cambridge A100 SE is going to prove tricky.

Cambridge A100 SE review: Price and release date

(Image credit: Future)
  • Released on October 2, 2026
  • $149 / £129 / AU$249

They're hot off the press at the time of writing, friend! We're publishing this review to meet their embargo. What you need to know is, the A100 SE earbuds arrived on October 2, 2026. So, they're new — albeit very much built upon their older siblings.

And that's a big plus. The original Cambridge Audio Melomania A100 arrived in June 2025 (Cambridge has since dropped the 'Audio' from its moniker and, it seems, the 'Melomania' from its buds) to a resounding five-star review.

So while the price of these new earbuds is hardly huge, it does mean that the older set can now be found for around $99 / £79 — being superseded by newness can have this effect. So, there's plenty to consider…

Cambridge A100 SE review: Specs

Type

True wireless in-ear

Drivers

10mm full range dynamic (Neodynium)

Active noise cancellation

Yes

Battery life

39 hours (maximum)

Weight

4.7g (earbud); 38g (charging case)

Frequency response

Not stated

Connectivity

5.4; LDAC, aptX Lossless codec compatibility

Waterproofing

IPX5

Control

Touch; app

Cambridge A100 SE review: Features
  • Class A/B amplification2
  • Bluetooth 5.4 with aptX Lossless and LDAC compatibility3
  • 39 hours battery life (maximum)

There’s no need to offer any kind of ‘at the asking price’ qualification here — the Cambridge A100 SE have a very worthwhile feature set, full stop.

The use of the same Class A/B amplification that’s at the heart of the company’s well-regarded CX and EX full-size integrated amplifiers delivers a hit of hardcore hi-fi credibility. Compatibility with cutting-edge aptX Lossless and LDAC Bluetooth codecs means the biggest wireless streams possible are available from source devices that are capable of delivering it. Snapdragon Sound (complete with dual-core 240MHz Qualcomm Kalimba DSP) should mean ultra-low latency, and dual-point connectivity means content from two connected devices can be switched between seamlessly. Sound itself is delivered by a pair of 10mm full-range dynamic drivers, and they make liberal use of recycled Neodymium in their composition.

Three QualComm cVc mics per earbud handle voice assistant interaction, telephony, and the adaptive hybrid noise-cancellation system. With ANC engaged, the earbud and the charging case offer more than 21 hours of playback time between them, and if you switch ANC off this figure rises to closer to 39 hours. And you can spend these many hours in pretty much any realistic environment, thanks to the earbuds’ IPX5 rating.

  • Features score: 5 / 5

(Image credit: Future)Cambridge A100 SE review: Sound quality
  • Open, detailed and controlled sound
  • Good sense of dynamic variation
  • Not the most naturalistic where rhythms are concerned

Some true wireless in-ear headphones are more in-ear than others when it comes to the sound they make — the sensation of music being inside your head can be strong with some designs, and quite oppressive it is too. That’s not the case with the A100 SE; even without their ‘Dolby Audio’ mode being engaged they’re a notably open and airy listen, and when it’s switched in they become even more spacious. It’s not like listening to loudspeakers, of course, but it’s a lot less stifling than some alternatives.

It doesn’t do any harm in this respect that the Cambridge are quite adept when it comes to creating and controlling a soundstage. They have outright scale on their side, especially when it comes to the width of the stage, and they have absolute authority over the elements on it. There’s appreciable space between instruments, but a commonality and unity to the sound at the same time — the sensation of space doesn’t compromise the idea of ‘performance’.

A listen to a big FLAC file of LCD Soundsystem’s Daft Punk is Playing at My House allows the A100 SE to demonstrate a very even-handed way with frequency response and tonality. Leave the EQ settings out of the equation and the top-to-bottom presentation of the frequency range is smooth and undramatic in the best way — there’s no sense that the earbuds want to meaningfully favour any particular area of information over any other, and the same is true of the fairly neutral tone the Cambridge adopt. In ultimate terms they hint at spotlighting and gently heating the lowest frequencies, but overall they’re significantly less coloured than quite a few price-comparable rivals.

(Image credit: Future / Simon Lucas)

The A100 SE handle detail retrieval well, and are alert to even quite minor variations in timbre and texture — events deep in the mix or at the outer edges of the soundstage are not overlooked, and they’re given an appropriate amount of weighting in every circumstance. Details around the dynamics of harmonics are attended to well, and the more overt dynamics of attack and intensity are made absolutely apparent.

Really, it’s only where rhythmic expression is concerned that the Cambridge are anything less than really quite assertive. They’re reasonably adept when it comes to the attack and decay of bass sounds, and they certainly don’t drag at tempos — but they’re not as straight-edged as they might be, and consequently they handle rhythms in a relatively stiff, upright manner. ‘Lurch’ is too strong a word, but ‘lumpy’ isn’t — the A100 SE are, in absolute terms, just a little lumpy in this regard.

  • Sound quality: 4.5 / 5

Note the stabilizer fins and separate tips (Image credit: Future)Cambridge A100 SE review: Design
  • Choice of three finishes
  • App and touch control
  • Dolby Audio functionality

You’ve a straight choice if you’re designing a pair of true wireless in-ear headphones: either the pebble-like ‘twist to fit’ shape, or the dangly stem alternative popularised by Apple. For the A100 SE, Cambridge has gone down the second route.

The earbuds, and the slender charging case they travel in, are made to a perfectly acceptable standard, mostly from plastic that’s unremarkable both in look and feel. My review sample is a new dark blue finish, but more usual black or white alternatives are available.

The outer section of the top of each earbud features a capacitive touch surface, and here it’s possible to control playback, to handle telephony, to cycle through your ANC options, and to summon your source device’s native voice assistant (should it have one). They’re not as reliable as they might be in operation, but patience brings its rewards. Eventually.

You can also control the A100 SE using Cambridge’s ‘Melomania Connect’ control app. It’s a fair bit more reliable than the touch controls, and as well as being where you can engage (or disengage) the earbuds’ new Dolby Audio feature (which has the very welcome knack of bring a little more space to the sound, and a little less of the ‘directly into your head’ sensation some IEMs can suffer from) it allows you to remap the touch controls to get the sequence on taps, presses and holds you prefer.

It also features a seven-band EQ — there are six presets and the option to save a few custom settings of your own. It’s also where you can switch the ‘wear detect’ function on or off, engage ‘game’ mode, check for firmware updates and, perhaps most importantly of all in this instance, select your preferred ‘audible feedback’.

Not for the first time where a pair of Cambridge wireless headphones are concerned, the usual options of ‘off’, ‘tone’ and quite a quantity of different languages are available, along with a ‘Southwark’ option which turns out to be Matt Berry really Matt Berry-ing it up. It’s a frivolous, profoundly funny option that I am nowhere near tiring of — and TechRadar's Audio Editor agrees wholeheartedly.

  • Design score: 4 / 5

(Image credit: Future)Cambridge A100 SE review: value
  • Great specification
  • Some proper performance highlights
  • Matt Berry!

This is a very competitive area of the true wireless headphones market, and Cambridge has done a lot to ensure the A100 SE can be seen to represent good value for money.

The type of amplification that’s on board, the extensive Bluetooth codec compatibility, the spacious, detailed and dynamic nature of their presentation all point to a product that’s well worth the asking price, with only the slightly hit-and-miss touch-control implementation and slightly lumpy rhythmic expression counting against them.

  • Value: 4.5 / 5

(Image credit: Future)Should I buy the Cambridge A100 SE?

Attributes

Notes

Rating

Features

Class A/B amplification, great call-handling, aptX and LDAC codec support

5/5

Sound quality

Detailed and controlled with a good sense of dynamic variation, just not the most naturalistic rhythmically

4.5/5

Design

Three finishes and highly functional, just a little unremarkable

4/5

Value

A competitive area, but nevertheless there's great sound-per-pound value to be had here

4.5/5

(Image credit: Future)Buy them if…

You like open sound
There’s a proper sensation of space to the way the A100 SE present music, especially where ‘Dolby Audio’ mode is engaged.

You enjoy long listens
The Cambridge are relatively comfortable earbuds, and they have the battery stamina to let you listen right around the clock.

You appreciate a point of difference
No other manufacturer has the ability to let you hear Matt Berry gleefully over-reading “waiting to pair!” and other classics of TWS audible feedback.

Don’t buy them if…

You’re easily frustrated
The touch controls are not absolute perfect in operation, and you’ll need to remain calm at times in order to get what you’re asking for.

You’re rhythm-focused
The A100 SE are talented in many respects, but they don’t express rhythms with quite the confidence or the fluency of some rivals.

You’re expecting a premium look and feel
This Cambridge product is keenly priced, so while the quality of construction is well up to standard there’s nothing luxurious about it.

Cambridge A100 SE review: Also consider

The JBL Live Beam 4, while slightly more expensive, are probably the most impressive price-comparable rival to the A100 SE right now — and it seems fair to say that they’re slightly different, rather than obviously better or worse, than the Cambridge model.

They struggle to match the noise-cancellation the A100 SE offer, for instance, and don’t have quite as pronounced a spatial audio effect — but they hit back with a more convincing way of describing rhythms and straightforwardly impressive battery life of as much as 48 hours between charges.

Any other products of note? Yes, Apple's new AirPods 5 with Wireless Charging are right at this level and if you own an iPhone, they certainly look competitive on paper — just not for codec support (see "if you own an iPhone", above) or stamina. Our full review of Apple's newest buds is incoming, but food for thought at any rate.

(Image credit: Future)How I tested the Cambridge A100 SE
  • With Apple and Android devices
  • With file types from MP3 to DSD3
  • Indoors and outdoors

I used the Cambridge A100 SE at my desk, while out walking and on public transport. I connected them to an Apple MacBook Pro, an Apple iPhone 15 Pro and a FiiO M15S hi-res player.

This allowed me to access Qobuz and Tidal music streaming services, internet radio via Airable, and hi-res content stored on the DAP’s internal memory. I listened to lots of different genres of music and plenty of spoken-word content — and I did so, on and off, for two weeks.

  • First reviewed in September 2026
Categories: Reviews

Chefman Coffee Station Pro review: ambitious all-in-one brewing with mixed results

TechRadar Reviews - Thu, 10/01/2026 - 01:00
Chefman Coffee Station Pro: two-minute review

The Chefman Coffee Station Pro is a great idea. People like their coffee brewed in different ways, and it's easy to end up with two or even three coffee machines on the counter to accommodate households with multiple coffee drinkers. For example, my husband usually drinks drip coffee, but occasionally likes an espresso. I rotate between drip, espresso, and iced coffee, depending on my mood and the weather. I also like my Nespresso machine, since the capsules are available in some interesting flavors I occasionally enjoy. I also drink a lot of tea, so an instant hot feature is welcome. We don't often drink lattes or cappuccinos, but when our kids or guest come to visit, they often do. We could easily end up with three different coffee machines (plus a frother and a tea kettle) in our coffee nook, but the Chefman Coffee Station Pro can do all that and more.

Sounds like a dream, but unfortunately it doesn't do everything well, or even acceptably. For example, it doesn't brew Nespresso capsules fully or correctly, resulting in a weak and tiny brew. If you don't need every single feature, this machine might be a perfect fit for you because it does a lot of things well. I tested everything and found that it did some things far better than others.

(Image credit: Karen Freeman / Future)Chefman Coffee Station Pro: price and availability
  • Available on Chefman's website and other retailers
  • Retails for $399.99 (about £300 / AU$570)
  • Just one colorway, black and silver

You can buy the Chefman Coffee Station Pro on Chefman's website as well as brick-and-mortar and online retailers like Best Buy and Target. The retail price is $399.99, which is about £300 / AU$570, though it's not currently sold in the US and Australia.

Chefman Coffee Station Pro: specs

Name

Chefman Coffee Station Pro

Type

Semi-automatic

Dimensions

13 x 11.7 x 13.9 inches / 33.02 x 29.72 x 35.31 cm

Pressure (for espresso brewing)

20 bars

Brew styles

Espresso, single serve, drip, cold press, cold brew

Milk frother

Yes

Connected device

No

Chefman Coffee Station Pro: design
  • Smaller than you might expect
  • Has storage for accessories
  • Ten in one machine

The Chefman Coffee Station Pro is designed efficiently so it has a lot of features in its reasonably-sized footprint. The machine provides ten different brewing methods: espresso (with grounds or Nespresso capsules), cold press espresso, latte, cappuccino, milk frother, K-cup pods, carafe of drip coffee, drip over ice, cold brew, and instant hot water. You control everything with a touch-screen interface.

It comes with everything you need to make all of the beverages listed above. The big 100-ounce water tank fits onto the back of the machine. On the coffee side, you get a coffee filter holder and a reusable coffee filter basket. If you prefer, you can use paper filters instead. There is also a K-Cup adapter for brewing K-Cups. The glass carafe holds anywhere from four to twelve cups of coffee and it rests on a warming plate (which has a "hot" indicator light.) When you're brewing a single serve K-Cup rather than using the carafe, there is a fold-down cup platform with a removable rubber trivet for resting a mug.

On the espresso side, you get a portafilter with three different filters you can put inside. There's small filter for brewing single espresso, a larger one for double espresso, and an adapter for Nespresso capsules. You get a two-sided espresso tool, one side is a measuring scoop and the other side is a tamper. The included 16-ounce milk reservoir can be removed when not in use.

The Chefman Coffee Station Pro stores its own accessories cleverly. It has a hook on the side to store the portafilter and a compartment on top to store other accessories.

Karen Freeman / FutureKaren Freeman / Future

When you first set up the Chefman Coffee Station Pro, you'll want to set the clock for the correct time. There is a Delay Brew feature so you can set the machine up when you go to bed and you'll have a hot carafe of drip coffee waiting for you in the morning. The Keep Warm feature will keep your carafe hot for up to two hours.

There is a hot water spout, which runs separately from the coffee so you don't have to worry about stale coffee taste mixing with your hot water. This is perfect for making hot chocolate, tea, and other hot beverages with ease. I suppose you could even use for making instant ramen or really anything you might need hot water for. It's worth noting that it's hot but not boiling.

As with any coffee machine, it does need to be cleaned regularly. Since this one has so many features, there's more cleaning that needs to be done. Every time you use it, you'll want to wash any accessories you use, run a clean cycle on the milk frother wand, and wipe down the exterior as needed. Of course you'll want to remove the milk reservoir and refrigerate any unused milk right after use.

On a weekly basis, empty and wash out the water tank, empty and wash the milk reservoir, run a clean cycle on the espresso side, and flush the frother system if you're using it daily. Every month or two, you'll want to do a deep clean of the frother's internal parts.

Roughly every 100 cycles (or 50 for hot water), you'll need to descale the coffee, espresso, and hot water systems. The owner's manual included detailed instruction on how to do all of that, plus you can find videos on Chefman's YouTube channel for guided instruction.

Karen Freeman / FutureKaren Freeman / Future
  • Design score: 4/5
Chefman Coffee Station Pro: performance
  • Fairly easy to use
  • Most of the features work well
  • Some features don't result in good coffee

In my testing, most of the drinks I made came out really well. Some came out ok, and some came out actually undrinkable.

Espresso

The espresso came out fine and it had a nice crema. It was pretty easy to do, just measure your grounds with the provided scoop, pour your grounds in the portafilter with the appropriate filter inside. Use one scoop in the smaller filter for a single espresso or two scoops in the larger filter for a double espresso. Tamp them down firmly with the included tamper, and then twist the portafilter into place. Select your drink from the touch-screen menu and you'll have espresso in just a minute or so. I used a carefully measured flat scoop, and found the espresso to be rather weak, but your tastes may vary.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureEspresso with Nespresso capsule

Using the Nespresso capsule basket in the portafilter, you can brew any Nespresso or Nespresso-compatible capsule. Note that this is only for the small original line capsules, not the larger Vertuo line capsules.

This was a big fail, in my opinion. The capsule was only pierced partway, there was water left in the portafilter, and the resulting brew was sour and weak and had very little crema. It was not worth drinking.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / Future

In the photo gallery below, I compare the results of brewing the same kind of Nespresso capsule in both the Chefman Coffee Station Pro and my actual Nespresso machine. In both machines, I brewed it as a small or single espresso. The Nespresso machine results are on the left and the Chefman on the right in both photos.

Karen Freeman / FutureKaren Freeman / FutureLatte and cappuccino

Technically, a latte and a cappuccino are pretty different. Though they are both espresso drinks with frothed milk added, the proportions are different. A cappuccino is one third espresso, one third steamed milk, and one third milk foam.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / Future

A latte is one-third espresso and two thirds steamed milk with a light layer of milk foam on top.

Karen Freeman / FutureKaren Freeman / Future

You can probably tell from my photos above, they don't look all that different. They didn't taste all that different, either, though they were both delicious.

I also tried just frothing some milk and then brewing an espresso separately and putting them together. Again, it just made a lovely foamy milky beverage.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureCold-pressed espresso

This was just a fail, in my opinion. It was so weak that I couldn't even drink it. Again, that's just my taste, yours may be different.

Note that pretty much every time you do a cold-pressed espresso brew, the machine will prompt you to run a cooling cycle on the carafe side first in order to prime the machine for cold press. It's not a big deal, but you'll have to factor in the extra time and place a container under it to catch the flushed water.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureK-Cup

Using the included K-Cup adapater on the carafe side of the machine, you can make any K-Cup you like. I actually thought the Chefman Coffee Station Pro did a great job with this one. I'm not generally a fan of K-Cups but this machine brewed it as well as any Keurig machine I've tried. Note that unlike a Keurig machine, you are using a separate adapter part that you'll probably want to wash each time you use it before putting it away. So it is an extra step.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / Future

There is also an option to brew the K-Cup pod as cold brew. But I can't recommend it, unless you like a super weak iced coffee. I used the same kind of pod, but look at the difference.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureDrip coffee in carafe

The drip coffee came out great. It was easy to do, just like any traditional drip coffee machine. I used the metal and plastic reusable filter, but you could use a paper filter if you prefer. You have the option to set up a delayed brew, so you can get everything ready the night before and have a hot, fresh carafe of coffee when you wake up. The metal plate under the carafe can be set to keep your carafe warm for up to two hours, and an indicator light will let you know that it's hot.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureCold Brew

The Cold Brew feature brews your coffee slower, cooler, and with less water in order to extract the most flavor and give you less ice melt. This came out very well. It does take longer to brew, and it does usually require running a cool cycle first, but the results are tasty.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureOver Ice (in carafe)

The Over Ice funtion is a little different from the Cold Brew. It's brewed into the carafe just like regular hot coffee but a bit stronger to compensate for ice melt. This worked fine, and it wasn't watered down too much. However, it was less smooth than the Cold Brew method and more bitter to my taste.

Karen Freeman / FutureKaren Freeman / FutureKaren Freeman / FutureHot Water

Hot water comes from a separate spout, not through the coffee system. It works fine and just tastes like pure water with no hint of coffee taste.

I selected maximum temperature setting, but water measured just 163°F/73°C. So, it's certainly hot enough to make hot cocoa, certain delicate teas, and perhaps your instant ramen. But it's not that all that close to boiling water, which would be 212°F/100°C.

Karen Freeman / FutureKaren Freeman / Future
  • Performance score: 3/5
Should you buy the Chefman Coffee Station Pro?Chefman Coffee Station Pro score card

Attribute

Notes

Score

Value

The price is similar to other multi-functional semi-automatic machines

4/5

Design

The clever design allows for many functions in a not-too-huge footprint

4/5

Performance

This was very much a mixed bag; some types of brew came out great and some definitely not.

3/5

Buy it if

You have a multi-coffee-drinker household

The Chefman Coffee Station Pro does it all: espresso, latte, cappuccino, drip coffee, cold brew, iced coffee, K-cup, Nespresso capsule, and even hot water on demand.

You don't have space for many machines

While this isn't a small machine, it's certainly a lot smaller than separate machines for all of the different functions.

You want lots of options for guests

Even if your household doesn't need all of the features, it's nice to have just about any coffee option available for guests.

Don't buy it if

It's out of your price range

You can get a simple espresso machine plus a drip coffee machine and a basic frother for less than this all-in-one.

You want all of the features to be great

Though there are a lot of ways to brew coffee beverages with this machine, not all of them produce a great result.

You have extremely limited counter space

Considering how many features it has, the footprint isn't that huge. But it's still quite a bit bigger than most coffee machines.View Deal

Chefman Coffee Station Pro: also consider

Ninja AutoBarista Pro Fully Automatic Espresso Machine

This machine lacks the drip coffee carafe function and doesn't accept pods, but it has most of the other functions. Plus it has a built-in coffee grinder and comes with two different hoppers you can easily swap out.

Read my Ninja AutoBarista Pro Fully Automatic Espresso Machine reviewView Deal

Terra Kaffe TK-02

No pods here but you can make excellent drip coffee and espresso with just a tap. Use the built-in grinder or the ground coffee chute. The attached milk frother expands this machine's repertoire to six figures. Yes, you read that right. The Terra Kaffe TK-02 connects to an app (and Alexa!) so you can start your brew before you get out of bed.

Check out my Terra Kaffe TK-02 review.View Deal

How I tested the Chefman Coffee Station Pro

I brewed and drank every kind of coffee beverage the Chefman Coffee Station Pro makes. I brewed a Nespresso capsule and a K-cup. I brewed espresso from grounds, both hot and cold-pressed. I frothed milk (barista-style pistachio milk) and added a shot of espresso. I made latte and cappuccino. I brewed a carafe of drip coffee. I made cold brew and coffee over ice. I used the hot water feature, tasted it, and measured the temperature.

First reviewed September 2026

Categories: Reviews

PacketStream Review: Pros & Cons, Features, Ratings, Pricing, and more

TechRadar Reviews - Wed, 09/30/2026 - 15:32

Founded and headquartered in California in 2018, PacketStream was launched specifically to address the high cost and complexity of residential proxies, which are IP addresses sourced from real devices around the world. The company runs a peer-to-peer (P2P) bandwidth-sharing network, which allows users to elegantly bypass geo-restrictions when accessing all sorts of data.

In this model, device owners share their unused internet bandwidth via a background app in exchange for compensation ($0.10/GB). On the other side, businesses and developers get to purchase cheap residential IP bandwidth for $1.00 per gigabyte.

As you can imagine, there are some risks involved. Though the setup makes proxies more affordable, it comes at the cost of reliability and speed. Then, there’s the potential issue of unreliable IP addresses within the network. Despite offering secure proxies in general, PacketStream doesn’t fully control the IPs sold through its network.

PacketStream: Plans and Pricing

There are loads of proxy providers with fairly complex pricing plans, and then there’s PacketStream. The vendor keeps things simple, charging per bandwidth at a flat fee of $1 per GB, with no recurring subscriptions and a purchased balance that never expires. This way, you get access to the entire network of residential proxies, which is considerably more straightforward and may even be a cheaper alternative to providers charging for individual IP addresses or monthly commitments.

Speaking of cheap, the $1 per GB price tag is one of the most affordable options in the industry. A quick look at the competitors confirms that most of them charge a lot more. For instance, entry pricing for IPRoyal begins at $7/GB for pay-as-you-go, whereas Bright Data starts at $8.40/GB, and Webshare will cost you $3.50/GB for residential bandwidth, though it scales down to $1.40/GB.

The caveat is that you’ll need to buy at least $50 worth of bandwidth to activate an account. This means you can’t buy just $1 of bandwidth to take the platform for a spin before deciding, as the $50 minimum deposit is a must. Still, PacketStream offers rotating proxies and sticky sessions (there are no true static/dedicated ISP proxies), which hold the same residential IP address for up to 60 minutes. So, in case one IP address doesn’t work, you can switch to a different one in a jiffy.

If you’re adamant about testing the service before committing, PacketStream offers trial credits, but without an automated, instant process. You need to fill out a trial request form or contact support, where a team member manually evaluates your workload before approving discretionary credits. This process can feel cumbersome for individual users who just need to test a few gigabytes' worth of proxies.

PacketStream accepts payments through PayPal and major credit cards, with bank transfers available for enterprise or reseller tier orders ($500+ minimum).

PacketStream: Features

Besides simply shelling out for proxies as a user, PacketStream also allows you to acquire the proxies and sell them on to offset costs. You can also sell your unused device bandwidth for profit, starting at $0.10 per GB. The minimum payout is $5 and is sent to your PayPal account within one week, with a 3% fee applied to cashouts.

During our testing, an interesting thing happened. Microsoft Defender blocked the download and installation of PacketStream, identifying it as a program that “displays deceptive product messages.” This is typically how ‘scareware’ is described, or software that makes deceptive or fraudulent claims about your computer’s health to trick you into buying unnecessary or potentially unwanted products, which may not be inherently malicious in the same way as other malware.

However, since PacketStream doesn’t make any scary claims about your device, the flagging as potentially malicious could be due to the application’s process of using your computer to route third-party traffic when you share your bandwidth with other users. Hence, the antivirus interprets the app’s behavior as unusual or questionable. So, if you fail to install PacketStream, this could be the reason.

Residential Proxies

PacketStream’s bread and butter is its P2P residential proxy network spanning 190+ countries. These proxies are sourced from real devices whose owners sell their bandwidth on the PacketStream network. Before you start worrying about illegally sourced IP addresses (a significant issue among many proxy providers), you’ll be glad to know that every IP address on PacketStream was consensually added by its owner to earn money.

The company offers both rotating (per-request) and sticky session options. Rotating sessions switch exit IPs with every new connection for maximum anonymity, while sticky sessions hold the same residential IP connection for up to 60 minutes for workflows requiring persistent logins or multi-step requests. Notably, PacketStream doesn’t offer true permanent static ISP proxies, as sticky sessions remain dependent on active peer device availability. Selection of the session type is configured directly via your proxy authentication URL string.

PacketStream’s proxy IP addresses were reliable during our test and offered reasonable speeds. We chose IP addresses from different countries, and they provided fast connections, although the speed varies depending on the country and peer device bandwidth. PacketStream lets you pick proxies from all around the globe, but you can’t select by city or state, which we consider a disadvantage. Several rival proxy providers allow you a granular selection of proxies from specific cities or ZIP codes (not to mention ASN targeting) to boost your odds of circumventing geographical limitations.

(Image credit: PacketStream )

The platform supports HTTP, HTTPS, and SOCKS5 proxy protocols, which differ in how they handle traffic and their compatibility, each with its own strengths and downsides. Having SOCKS5 in particular is important as it operates at a lower network layer than HTTP/HTTPS, which makes it ideal for general-purpose tasks and specialized scraper setups.

While we’re on the subject of setups, residential proxies can be employed for many things. A good example is data scraping, wherein people use proxies to bypass website geo-restrictions and scrape relevant information.

Let’s say you run a website that tracks the prices of commodities and delivers this data to users. Running a price monitoring site requires extracting data frequently and quickly from many websites. The websites (primary data sources) are privy to external data scraping and block it by implementing geographical and IP restrictions. They can identify specific IPs from data scraping bots and block them from further access. They can also ban IP addresses from an entire country from accessing their information.

Through PacketStream, you gain access to a sizable network of residential IP addresses you can then use to evade restrictions and scrape commodity price data. Thanks to automatic IP rotation, in case one IP address gets discovered and blocked, your next request is instantly routed through a fresh peer connection. Although specific numbers fluctuate dynamically based on active peer devices, PacketStream routes traffic through millions of active household connections across 190 countries, so you’ll have plenty of new proxies to get your hands on the data you need.

Another frequent use case for residential proxies is online retail. Many people use automated scripts to snap up fast-selling products, placing orders before they run out of stock. But, e-commerce sites aren’t particularly keen on this and tend to blocklist bot IP addresses. PacketStream’s residential proxies let users circumvent this block and get their desired product.

As far as an e-commerce site is concerned, residential proxies belong to legitimate devices. They are inherently difficult to detect and block because doing so might lead to high false-positive rates, which could result in inadvertently locking out legitimate customers who share those same IP addresses. Even when e-commerce sites block a residential proxy, a sticky session can be refreshed to visit the site in question under a new peer identity.

That leads us to what is arguably PacketStream’s biggest drawback: it only offers residential IPs. It doesn’t have datacenter IPs in its lineup, which are faster and more reliable. Datacenter IPs are sourced from dedicated servers with more speed, making them ideal for massive data scraping tasks. Large enterprises are the main users of datacenter proxies, but PacketStream doesn’t serve this cohort well. Instead, it’s best suited for individuals and small businesses seeking affordable residential proxies.

PacketStream doesn’t offer dedicated mobile-specific IPs, which is surprising since mobile device IP addresses are present organically on this P2P network. Yet, you can’t specifically filter or target mobile carrier networks. Many businesses use mobile IPs for app testing and ad verification, but performing these tasks with PacketStream is difficult.

Likewise, you won’t find ISP proxies here. Sourced directly from Internet Service Providers, these proxies (static residential) provide higher data throughput and reduced delay than P2P residential proxies, but you’ll have to get them elsewhere.

Selling Bandwidth

As a PacketStream user (or ‘Packeter’), you can sell your unused bandwidth and make money. Just add your IP address to the network and earn money when people use your device as a proxy (with no inbound ports or port forwarding required). Pricing is $0.10 per GB shared, which can help you offset the cost of buying bandwidth on PacketStream.

The bandwidth-sharing process is fairly easy, as the primary requirement is a stable internet connection. Of course, you’ll have to download the PacketStream client on your PC, available for Windows, macOS, and Linux (where it can be installed via Docker). The client is lightweight and runs on low-end PCs without noticeable hiccups.

After installing the PacketStream PC app, open it any time you feel like sharing a connection and activate the mode. Your payout is automatically calculated based on the amount of data your shared connection transmits. Closing or stopping the PacketStream app immediately terminates the shared connection and offers you complete control over the process. PacketStream can’t use your connection without your consent, which you give by running the app.

There’s no limit to the amount of bandwidth you can share. The minimum payout is $5, earned by transmitting 50 GB of bandwidth, which corresponds directly to the $50 minimum deposit threshold for buyers. Earnings are paid out in USD via PayPal and processed within one week. Keep in mind that a flat 3% fee applies to every cashout.

Reseller API

PacketStream offers white-label reselling services via a dedicated Reseller API, designed for entrepreneurs and business clients interested in launching their own proxy brand. This model allows you to sell PacketStream’s residential proxy bandwidth under your own branding with zero PacketStream mentions or attribution.

(Image credit: PacketStream )

Through the Reseller API, it’s possible to programmatically create and manage subaccounts, allocate bandwidth limits, track subaccount balances, and monitor real-time usage data. Resellers purchase wholesale bandwidth at $1.00 per GB (matching the standard platform rate), which is subject to a $500 minimum purchase threshold. Resellers can set their own retail pricing to determine their profit margins and are responsible for providing direct customer support to their end-users.

Any peer device added to PacketStream’s network automatically becomes accessible to your subaccounts. This feature isn’t for individual users, but we consider it worth discussing to give a complete PacketStream review.

PacketStream: Ease of Use

It’s safe to say that PacketStream outdoes several of its peers in user-friendliness. It offers one of the most streamlined interfaces in the proxy space, largely due to its highly focused portfolio.

(Image credit: PacketStream )

All the features are neatly arranged on the left menu, and the main dashboard lies on the right side. With a white background and a few contrasting colors, PacketStream’s interface feels visually appealing and easy to navigate. The average person won’t have any issues understanding this interface, which, sadly, can’t be said for some proxy providers.

There’s a drawback, though. PacketStream doesn’t offer a browser extension to manage proxies. Instead, users must copy their proxy authentication endpoint and username parameters directly from the web-based dashboard and enter them into their scraping scripts or third-party software. An extension lets you switch proxies at the click of a single button, but PacketStream doesn’t provide this benefit.

PacketStream: Customer Support

This is an area where PacketStream lags behind its competitors. It offers direct support only via email and web contact form, with no live chat or telephone option. Though incoming tickets are monitored around the clock, PacketStream doesn’t state a guaranteed SLA response time. Replies vary and can take up to 48 hours, with no option to hold a real-time conversation with support staff.

Self-help support is organized under a dedicated Resources page on the website. It includes quickstart and proxy gateway references, guides, tutorials, insights, and runnable code examples hosted on GitHub (a big plus for devs), among other things. The overall documentation is compact and largely on par with what we’ve seen in other proxy providers.

PacketStream: The Competition

PacketStream has numerous competitors, the most notable being Bright Data, Oxylabs, and Webshare.

Bright Data offers residential, static ISP, and datacenter proxies. It also offers advanced web scraping APIs, scraping browsers, automated web unlockers, and pre-built datasets. In contrast, PacketStream offers none of these, except residential IPs. If you need PacketStream’s proxies for automated data scraping, you’ll have to get an external platform for the APIs.

But at $1 per GB (with a $50 minimum deposit), PacketStream’s residential proxy service is much more affordable than Bright Data’s, which costs around $8.40 per GB on standard pay-as-you-go plans (scaling down to $3.00/GB with monthly commitments).

Oxylabs provides residential, static ISP, mobile, and datacenter proxies, with a pool of over 100 million residential IP addresses. It also has a Web Unblocker and web scraping APIs for enterprises in its lineup. Oxylabs is undoubtedly the more sophisticated platform, with more reliable and speedy proxy IPs and complete control over its proxy network.

Still, Oxylabs’ residential IPs cost around $8.00 per GB on pay-as-you-go tiers, compared to PacketStream’s $1 flat rate.

Webshare offers residential, static ISP, and datacenter proxies, but lacks built-in web scraping APIs. Its pool of 80 million+ residential IP addresses across 195 countries is on par with Oxylabs and Bright Data, but larger than PacketStream.

With residential pricing starting at $3.50 per GB (scaling down to $1.40 per GB on volume commitments), Webshare is one of the most affordable proxy providers for enterprises. Yet, PacketStream’s $1 per GB flat rate beats it in entry-level per-gigabyte pricing.

In summary, PacketStream lags slightly behind most competitors in certain advanced features and customer support. Nonetheless, it outperforms them in ease of use and affordability, helped by the lower costs of running a P2P network and the opportunity to earn money through offering your bandwidth to other users.

PacketStream: Final words

At $1.00 per GB, PacketStream is among the most affordable residential IP providers, although the minimum purchase is $50. This makes it ideal for individual users or small businesses that require rotating and sticky (up to 60 minutes) residential proxies for everyday data collection and web browsing tasks.

Having said that, enterprises will probably find PacketStream lacking for any large-scale data scraping needs. There are no datacenter or ISP proxies; it doesn’t offer granular targeting or built-in scraping APIs, and has limited customer support.

We've rated the best VPN services.

Categories: Reviews

Trails in the Sky 2nd Chapter review: yet another triumphant remake

TechRadar Reviews - Wed, 09/30/2026 - 15:00

Nihon Falcom is on a real hot streak right now, and it’s showing no signs of slowing down with Trails in the Sky 2nd Chapter. The remake of 2006’s acclaimed Japanese role-playing game (JRPG), The Legend of Heroes: Trails in the Sky SC, is packed full of excellent quality-of-life updates that are sure to delight veteran players and newcomers alike, with full English voice acting, a visual overhaul, and modernized combat.

Review info

Platform reviewed: PS5
Available on: PS5, Nintendo Switch, Nintendo Switch 2, PC
Release date: September 17, 2026

But just how good is Trails in the Sky 2nd Chapter? Should you play it? Here are my thoughts after countless hours of gameplay.

I absolutely loved this game’s predecessor, which launched last year and was among the best RPGs released in 2025. Yes, Trails in the Sky 1st Chapter was a phenomenon, supplying a beautiful blend of action and turn-based combat, silky smooth performance, and a brilliantly revamped UI. I sunk so many hours into that game, and so I was delighted to find that everything I loved about 1st Chapter transferred across to this follow-up.

A first-rate follow-up

(Image credit: Nihon Falcom, GungHo)

I’ll start by talking about gameplay, which feels just as tight and refined as it did in 1st Chapter. You can rush around the world and attack enemies with Arts and basic attacks in Quick Battle. This is great if you want to mow through enemies — especially weaker ones — without having to spend too long strategizing, and it feels incredibly rapid and responsive. Being able to hack, slash, and whack your foes in a flash means that the game feels well-paced, and longer dungeons don’t seem too daunting.

However, you also have the choice to partake in turn-based Combat Battles to vanquish your opponents, and this is where a lot of the depth comes in. You have to carefully manage your Craft Points (CP) and Energy Points (EP), which enable you to use brutal physical and magical attacks and support options, while also carefully positioning your units to manage health.

It's also crucial to keep an eye on turn order to avoid getting KO’d before you unleash your attacks, choosing when to steal bonuses from your foes to heal or deal critical damage, and when to launch a deadly all-out team attack.

Best bit

(Image credit: Nihon Falcom, GungHo)

My absolute favorite part of this game was simply managing my Orbments — building out the ideal set of Quartz to buff my allies, to protect against almighty attacks, and to unleash mega damage on my foes.

As you can gather, there are a lot of mechanics to consider, and there’s plenty of depth to be found in command battles. But perhaps the most important thing is to manage your Orbments properly.

Orbments string a number of gems together, known as Quartz, which determine the Arts that you can use in battle. Carefully curating your Orbments for each character is crucial, and I had an absolute blast tinkering around to build the ideal build for every boss.

By travelling the world and taking on optional battles and quests, you can unlock some seriously powerful Quartz too, which makes exploration feel truly rewarding.

This may seem like a lot to take in at once — especially for newer players. But don’t worry — there are plenty of difficulty options to choose from to fit your desired level of challenge. There’s everything from Very Easy to Nightmare (one for the true sadists). I selected Advanced this time out, which is somewhere between Normal and Hard, and while the road got tough at times, the Orbment system gave me all the tools I needed to shield my allies from devastating attacks.

Hey bro, wya?

(Image credit: Nihon Falcom, GungHo)

The follow-up from the 1st Chapter is seamless gameplay-wise, and also in terms of narrative.

You can watch a recap of the first game if you want a refresher (or if you missed it entirely), and you’re reminded that Joshua (the protagonist Estelle’s adopted brother…lover? Both?) has fled. I won’t delve into the reasons why in this review, but essentially, Estelle decides to attend a specialist training camp to bolster her skills and track him down herself. It sounds pretty basic, but the story is pretty engrossing, actually. Like the first game, there are deeper political elements to explore, and you get to learn more about the mysterious secret society, Ouroboros.

The narrative remains gripping throughout, and there is no shortage of characters who join Estelle on her journey, be they returning faces like the travelling musician and romantic Olivier or the alcohol-loving Senior Bracer, Scherazard.

(Image credit: Nihon Falcom, GungHo)

Voice acting is strong across the board, and breathes so much life into this colorful and charismatic cast. Some of the more low-key parts of the story and side content are only voiced partially, though, meaning you can get one character narrating their thoughts aloud while others sit in silence with text boxes. This was also in Trails in the Sky 1st Chapter, and can create a slightly awkward atmosphere in moments, though I understand this is more of a nitpick.

It’s also worth noting that this is a true anime-inspired JRPG with all of the melodrama and theatrics that you’d expect from the genre dialled up to 11. While this produces some stronger emotive moments and a good amount of comic relief, it may feel overbearing for some players. A few characters, like Anelace, go on pretty long monologues about the importance of wearing pretty bows while facing your foes. The wandering priest, Kevin, likes to let Estelle know how pretty she is about 10 times in the space of five seconds during the game’s opening section, too.

While this is by no means something that ruins the experience, I did find some of the characters a little unlikeable. So yes, some dialogue can feel superfluous at times, and it can also stretch on for quite a while. But there is a speed-up mode, and there’s nothing stopping you from skipping over the less crucial dialogue segments.

Robustly revamped for the modern era

(Image credit: Nihon Falcom, GungHo)

On top of what I’ve already mentioned, Trails in the Sky 2nd Chapter is filled with a slew of masterful modernizations that really make the game click.

Like last time out, the UI has been considerably revamped and feels incredibly intuitive to sift through, while also looking great. Managing items and skills is seamless and easy, and you can access your quest list, recipe book, and the map in an instant. The speed-up option is also very welcome if you want to fly through your quick battles or travel over a long distance when fast-travel isn’t available.

The visuals are also great once again. Shimmering water, rich forest environments, and character models all look spectacular, at least on the PS5 version I played. By default, the game runs at silky 60fps with next-to-none hiccups whatsoever, but you can also play in performance mode, which targets 120fps at the expense of some graphical fidelity. This is perfect for fast-flowing action combat and exploring vast open areas. Loading screens are also incredibly brief, and I continue to be blown away by how well these games play on modern platforms.

One more thing I absolutely love about this remake is its stellar soundtrack. There’s an eclectic mix of delicate acoustic tracks, funk-infused high-energy tunes, and grandiose, hard-hitting battle themes that totally immerse you in the land of Liberl. Again, you have the option to pick between standard, arranged, or original background music – something that long-time fans no doubt appreciate.

All in all, Trails in the Sky 2nd Chapter is another exceptional remake that effortlessly maintains the strong momentum its predecessor picked up. Gameplay is varied, depth-filled, and addictive; the narrative is engaging, and the quality-of-life upgrades make it feel almost like a brand new game — all while carrying over the beloved aspects of the source material. Sure, the game’s melodramatic nature might not be to everyone’s taste, but if you’re a fan of the JRPG genre and want an epic adventure to sink your teeth into, then look no further.

Should you play Trails in the Sky 2nd Chapter?

(Image credit: Nihon Falcom, GungHo)Play it if...

You want a deep combat system to sink your teeth into
Combat is excellent in Trails in the Sky 2nd Chapter, with a brilliant blend of action and turn-based battles available. The depth of the combat system is also impressive; you need to be considerate when it comes to your Orbments, turn order, stealing bonuses, and so much more.

You’re looking for a game with peak performance
I was absolutely wowed by the performance in Trails in the Sky 1st Chapter, and luckily that remains the case for its sequel. It's visually striking, runs at an incredibly smooth 60fps, and there’s even a performance mode that targets 120fps if you have a compatible display.

Don't play it if...

You’ve never played a Trails game before
While there’s an option to catch up on the events of Trails in the Sky 1st Chapter, I’d strongly recommend playing that title before you jump into this one. This is a direct sequel, and a lot of the story elements won’t make much sense if you start here. The first game is the ultimate entry point — so be sure to get that finished before hopping into this.

You’re not a big fan of anime-style melodrama
If you’re not a fan of the classic anime tropes and over-the-top characters, you might find it a little challenging to get on with the case in Trails in the Sky 2nd Chapter. I still like a lot of the characters here personally, and the core narrative is very strong, it has to be said.

Accessibility features

You can adjust the subtitle language to English, German, French, or Spanish, and select either English or Japanese voice acting. There are a number of ways to customize the camera’s behavior, too, such as normal or inverted configurations, camera movement speed, and camera distance.

On top of this, there are difficulty options, including a Very Easy mode if you just want to focus on the game’s story. Unfortunately, there is no colorblind mode.

How I reviewed Trails in the Sky 2nd Chapter

(Image credit: Nihon Falcom, GungHo)

I spent two weeks playing through Trails in the Sky 2nd Chapter, during which time I played through the main story, took on a bunch of side quests, and sunk hours into exploring the land of Liberl.

For the most part, I played the game on my PS5 while connected to the Sky Glass Gen 2 TV and my Marshall Heston 120 soundbar. However, from time to time I dipped into the title on my PlayStation Portal remote player, and had the Sonos Ace Ultra headphones connected to listen to in-game audio.

More generally, I’ve spent years reviewing gaming software and hardware at TechRadar, where I serve as a Senior Reviews Writer. I reviewed the previous game in this series, Trails in the Sky 1st Chapter, and have covered a wider range of JRPGs here, including Fire Emblem: Fortune’s Weave, Dragon Quest I & II HD-2D Remake, and The Adventures of Elliot: The Millennium Tales.

First reviewed September 2026

Categories: Reviews

Samsung Galaxy Watch 9 review: making smartwatches easy

TechRadar Reviews - Wed, 09/30/2026 - 11:46
Samsung Galaxy Watch 9: One minute review

Every time a new smartwatch is released, it’s sold on its ability to collect new and improved types of health data. Any old fitness tracker knows more about your body’s comings and goings than you do, but without interpretation, these figures, statistics and metrics are all just numbers to you and I. A graph of my blood oxygen through the day, or my HRV while sleeping, won’t tell me how fit I am.

That’s why the Samsung Galaxy Watch 9 feels like a breath of fresh air. Its core upgrade isn’t some new facet of health to track, or a different kind of number which it can count, but something simpler. It ties into recent Samsung Health changes to actually provide actionable advice based on your data.

It’s the aggregate watch. All your workouts and body data are condensed into a Fitness Index, which compares your wellness in several different departments to other Samsung users on average, and helps you expand your exercise regimen to improve. Your sleep schedule, daily cadence and heart rate turns into your Energy Score, which helps you understand if, and when, it’s time to workout.

All of that is to say, that the Samsung Galaxy Watch 9 is far more useful than most wearables I’ve tested, because it actually makes your data mean something. Its smarts may be unnecessary for prolific exercisers, who already know how to use their data, but the average person who cares about health but hasn't yet dived into their fitness with the same granuarity will find it incredibly useful.

Perfect it is not. There are all the usual smartwatch quirks: navigation, and information locations within the UI, can sometimes feel counterintuitive, and it’ll easily pick up scuffs and marks over time. More significantly, the battery life is poor: it’ll go for about a day of use on a single charge, or even less if you’re doing multiple exercises per day, but this has always been a sticking point with Samsung watches.

Some features are also only available if you own a Samsung Galaxy smartphone, and although one could argue that these are more minor tools, it’s still a shame that not all buyers get the same smartwatch.

Still, this feels like one of the most accessible smartwatches you can buy, in terms of its feature set and performance. It’s worth buying if you’ve been on the fence, liking the idea of a smartwatch but never feeling like they justify themselves; this one does.

Samsung Galaxy Watch 9: Specifications

Component

Samsung Galaxy Watch 9 (40mm)

Samsung Galaxy Watch 9 (44mm)

Price

From $379.99 / £349.99 / AU$647

From $409.99 / £379.99 / AU$697

Dimensions

42.7 x 40.4 x 8.6mm

46.0 x 43.7 x 8.6mm

Weight

30g

34g

Case/Bezel

Armor Aluminum

Armor Aluminum

Display

1.3-in super AMOLED

1.5-in super AMOLED

GPS

GPS, Glonass, Beidou, Galileo

GPS, Glonass, Beidou, Galileo

Battery Life

Up to 30 hours

Up to 40 hours

Connection

Wi-Fi, NFC, Bluetooth 6.0

Wi-Fi, NFC, Bluetooth 6.0

Water Resistance

5 ATM

5 ATM

Samsung Galaxy Watch 9: Price and availability

(Image credit: Future)
  • 40mm Bluetooth model starts at $349.99 / £319 / AU$649
  • 44mm model starts at $399.99 / £349 / AU$699
  • Available to pre-order July 9

The Samsung Galaxy Watch 9 was unveiled at Galaxy Unpacked on July 22, 2026, alongside the Galaxy Watch Ultra 2, Galaxy Z Fold 8 and Galaxy Z Fold 8 Ultra.

There are many variants of the watch. You can choose between Bluetooth or LTE connectivity, in 40mm or 44mm size, in a range of body and band sizes and colors, with certain different types of band. You can see some of the prices below for the main four configurations.

Samsung Galaxy Watch 9 prices

variant

US

UK

AU

40mm Bluetooth

$379.99

£349.99

AU$647

40mm cell / LTE

$429.99

£399.99

AU$747

44mm Bluetooth

$409.99

£379.99

AU$697

44mm cell / LTE

$459.99

£429.99

AU$797

At that price, the watch slightly undercuts the Apple Watch Series 11 – bearing in mind that Apple’s sizes are slightly bigger. However it’s slightly more expensive than the Galaxy Watch 8 was, which is sad but unsurprising in the current tech market given the supply chain crisis.

It’s worth pointing out that lots of the new Galaxy Watch 9 features come from Samsung Health, and many other Samsung wearables are also compatible – and get many of the new tools as a result. They won’t be baked into the watch interface like on the Watch 9, but you’ll still get access to the new tools for cheaper.

And of course, if you’re not interested in this aggregated data, there are budget wearables for literally a fifth of the price which will do the job just fine. If you need any old smartwatch or tracker, you can get one offering a lot better value for money.

  • Value score: 4/5
Samsung Galaxy Watch 9: Design

(Image credit: Future)
  • Relatively thin and lightweight: solid on wrist
  • 3,000 nits screen works well outdoors
  • Unchanged design from Watch 8

To look at it, the Samsung Galaxy Watch 9 is incredibly similar to its predecessor. You’re getting the same circle display, housed in a squircle metal ‘cushion’. The similarities are more than aesthetic: design-wise, this is basically the same watch.

That’s not a complaint; we gave the Watch 8 a five-star design score. It’s a sleek watch, with two barely-protruding but easy-to-tap buttons on the right edge. It’s small enough to be comfortable to wear in bed, and light enough not to wiggle around when you’re running or working out.

The watch has a 5ATM rating for waterproofing (up to 50 meters), a MIL-STD-810H certification for protection (against extreme temperature, altitude, dust, drops and many more military-grade requirements) and is also IPX8 rated. That is to say, it’s pretty well protected… though it’ll show its war wounds. My review unit, as you’ll see in images, quickly picked up a few dings and scrapes.

All these similarities extend to the screen. A Super AMOLED panel with a max brightness of 3,000 nits, it’s nice and bright for when you’re out in sunlight, or to double as a torch if you need one. Not once did I struggle to see what was going on.

(Image credit: Future)

Mostly, the screen was responsive, but a few times it wouldn’t recognize my touch if my swipe began off the screen (as the screen isn’t huge, it’s easy to miss on gestures). On the 40mm, then, some gestures can be a little finickity, but I don’t imagine this is the case on the 44mm model.

You can buy the watch with Sport, Misty or Fabric bands, in a range of colors. My test sample had the former, which quickly gave me a rash; if you have sensitive skin, I’d recommend avoiding this strap. Luckily, loads more are available to buy online, and they’re easy to replace with a simple press-to-release catch system on the watch body.

The watch’s user interface seems quite simple on the surface, but mastering it can speed up the way you use your watch. Swiping down for quick settings or right for notifications is easy, as is pulling up to see your app drawer. Swiping left brings you Tiles, which are basically on-watch widgets which you can customize. They let you easily see metrics, start tracking certain activities or see information from weather or calendar apps, and learning to use these properly transformed my time with the watch.

It’s not quite perfect, and there are some navigation quirks which are quite annoying. It’s hard to change app on the fly; for example if you’re tracking your cycle ride while also navigating on Google Maps and managing your tunes on Spotify, you’ll constantly have to jump back to the main menu rather than swiping between menus. But these are minor gripes.

  • Design score: 5/5
Samsung Galaxy Watch 9: Features

(Image credit: Future)
  • Aggregates all your data for useful scores
  • Offers pointers and feedback which are mostly useful
  • Requires Samsung phone for all features

The Samsung Galaxy Watch 9 feature set revolves around the brand’s redesigned Samsung Health. The key note change is this: instead of simply recording and reporting all your health and fitness metrics, the watch (and app) will boil all your data down into several key metrics, and then provide feedback and analytics.

Some are really useful. Fitness index was a handy way to compare my strengths and weaknesses in several departments, while Heart Health is a handy way to nudge you towards best cardiovascular practice. However not all are equal: Daily Cardio Load should help you decide whether you’re exercising enough, but it only takes into account logged workouts, rather than actual activity (ie, 20,000 steps will count for less than a 100 meter run), so its feedback doesn’t feel relevant. Likewise, the energy score felt light years from accurate; I’d wake up feeling exhausted, and be told by the watch that my energy level was ‘excellent’.

But for good or ill, it’s great that Samsung Health actually does something with the data the Watch 9 collects. Features like the sleep score and sleep coaching, and the aforementioned Fitness Index, can give you useful pointers towards various goals. For example, the latter tool can give you recommendations to hit health targets, and show you data over time.

Again, the results are sometimes mixed. Running coach – which is admittedly in beta – gave me a laughably incorrect assessment of my running habits, giving me a 4-week training plan which I could complete in two days.

(Image credit: Future)

Some might find the Samsung Galaxy Watch 9’s approach a little oversimplistic, and if you’re in that camp, you might need a device geared more towards pros.

I was constantly surprised by what the Galaxy Watch 9 could track. You can use its sensors to measure body composition, stress and antioxidant levels in the body – obviously these won’t match the accuracy of an actual medical test, but it’s useful for contributing to the aforementioned metrics. I also really appreciated receiving a sweat loss figure during runs, telling me how much to rehydrate.

During testing, I paired the Galaxy Watch 9 with both a Samsung phone, and later a non-Samsung one. Unfortunately, some features are gated for Galaxy device owners, like ECG or blood pressure, so if you have another device you’re missing some of the tech you’re paying for.

Generally, Bluetooth connection was reliable. I had a few unexpected drop-outs, but most of the time, the watch could re-pair to my phone easily. Only once did I need to reboot the watch to regain connection.

Beyond the fitness tools, the Galaxy Watch has plenty of useful extra tools like a torch, music controls and Play Store for extras. I really appreciated the ability to set vibration alarms, so my wrist-mounted wake-up call wouldn’t also rouse my partner, and set alarms on my wrist before bed.

  • Features score: 4/5
Samsung Galaxy Watch 9: Performance

(Image credit: Future)
  • Mostly accurate for exercises and sleep tracking
  • Battery only lasts a day per charge
  • Lots of activities to train, but they range in usefulness

Let’s start with one of the weak elements of the Samsung Galaxy Watch 9: its battery life. In my testing, it generally lasted a day of serious use; by that I mean workouts tracked most days (sometimes multiple a day), a night of sleep tracking, and notification handling. In fact, during busy days, I’d have to top it up in the afternoon.

A sole day of battery life isn’t ideal, as it means charging the device takes up a significant amount of your potential use time. By reducing my workout frequency, turning off raise-to-wake and reducing notifications handled, I managed to get the device to last closer to two days, but not everyone will want to switch off many features of their fancy smart device.

When it comes to tracking activities, the Samsung Galaxy Watch 9 felt largely accurate. Its location results matched other trackers I’ve used, as well as GPS mapping tools, and heart rate data was comparable to another fitness watch I used at the same time.

Sleep tracking was a little more iffy. The watch was great at recognizing sleep time versus idling in bed time, avoiding a common wearable problem in which your pre-sleep book reading or post-wake-up dawdle would count as more sleep. However it didn’t always catch my waking up during the night, and sometimes didn’t report all my sleep data after I woke up. Oh well – I was just happy to wear a fitness tracker which wasn’t so big that it disrupted my sleep.

(Image credit: Future)

The watch’s sleep coaching is quite useful: after a test, I was told I sleep like a penguin, and given some tasks to accomplish to get better rest. Since many of these are self-reported, I lied a little bit – yes, Galaxy Watch, of course I meditated before bed – but pointers to get out of bed quickly after an alarm were handy.

Generally, the Samsung is adept at auto-recognizing pauses in your workout: when I stopped at traffic lights, it could tell when I was motionless, and when I’d resumed. It’s a little more unreliable for auto-tracking exercises though. When I took the watch on holiday and spent days wandering around a city, it’d sometimes track my wanders and other times neglect to. Don’t rely on this tool.

The Galaxy Watch has about ten activities available to track via its menu, but you can easily add more from a pre-determined list, or create your own activity if your favorite one is missing (there was no bouldering, so I had to make my own). These are often quite basic – when making bouldering, I could only set it to track duration and calories burnt – but it all contributes to the fitness metrics.

Done a workout? Good luck finding the data. As far as I can tell, you can’t see past workouts on the watch, even via the Samsung Health applet. You can see any done on that day on Samsung Health, but your long list of past workouts is hidden incredibly well within the app (I only found it by clicking a ‘View Records’ pop-up at the top of the app – not the other ‘View Records’ which takes you to your steps. It’s silly!) . Presumably, the brand doesn’t think you’re going to want to see historic data, but I often find this useful to check against.

  • Performance score: 4/5
Samsung Galaxy Watch 9: Should I buy?

(Image credit: Future)Buy it if...

You want advice, not numbers

The Galaxy Watch 9’s focus on actionable intel means it’s useful for general health users who could do with some advice, motivation or pointers in order to work out better.

You want something lightweight

I really appreciate how slender and non-bulky the Galaxy Watch is. You can run with it or sleep in it without it weighing you down.

You want something that survives everyday life

This is no rugged Ultra watch, but its protections ensure it’ll survive normal life. No bumps, splashes or unexpected dust storms are going to stop it working.

Don't buy it if...

You’re on a budget

This isn’t a super cheap smartwatch, and plenty of brands make good-value wearables for a much lower price. They won’t do everything the Samsung does, but they’ll do a lot.

You don’t have a Samsung phone

Some features are exclusive to Samsung phones, which also have the necessary Watch software pre-installed.

You need a multi-day device

Because of its low battery life, I can’t recommend the Galaxy Watch for multi-day use. Expect to charge it regularly.View Deal

Also consider

Apple Watch Series 12

Apple’s newest fitness tracker mostly offers AI-centric upgrades, but it’s still the best wearable for Apple fans due to its wide range of features and tools. You'll need an iPhone though.

Review coming soon

Garmin Venu 4

A weighty, powerful watch and the best Garmin watch for generally active people.

Read our full Garmin Venu 4 review

How I tested

I used the Samsung Galaxy Watch 9 for three weeks, wearing it on my wrist most of the time over that period. For the first week it was used alongside my Samsung Galaxy Z Fold 8, and the second two with the Fairphone 6 Plus.

During that span of time I slept with it, wore it while working, and took it on a week-long holiday. I also tracked various kinds of exercise including runs, walks, bouldering, cycles and tennis, and used all of Samsung Health’s features all that time.

I’ve been reviewing gadgets for TechRadar for eight years, and in that time have tested countless smartwatches and Samsung Galaxy devices. I’ve completed multiple marathons and am training for another, giving the Galaxy Watch 9 something to work towards.

Categories: Reviews

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

Pages

Subscribe to The Vortex aggregator - Reviews