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).

TechRadar Reviews

New forum topics

Subscribe to TechRadar Reviews feed
Updated: 1 hour 37 min ago

‘It was a literal breath of fresh air’ — I reviewed Blueair’s T10i air purifier and found a smart solution for year round comfort, whether you’re sweating through a heatwave or shivering during a cold snap

Sun, 09/06/2026 - 08:30
Blueair ComfortPure 3-in-1 T10i review

The Blueair ComfortPure 3-in-1 T10i Air Purifier is designed to combat common household problems with a single device. It purifies the air, cools you down when temperatures rise and provides heat when it gets cooler.

One of two models in Blueair’s ComfortPure range, the ComfortPure 3-in-1 T10i Air Purifier sits alongside the larger and more powerful T20i, which is designed for bigger spaces. Blueair also has an established reputation when it comes to air purification.

The appeal of the T10i compared to the best air purifiers is obvious. Rather than filling your home with separate appliances for heating, cooling and air purification, Blueair has combined all three into a single unit that’s designed to keep you comfortable throughout the year.

As someone who lives in a relatively small space, struggles with seasonal allergies and generally loves multi-purpose tech, that’s a compelling proposition. The catch is the price. It’s expensive and you’ll need to factor in placement filter costs over time. But if you genuinely see yourself using all three functions throughout the year, it could offer better value than buying separate devices.

To find out whether that’s actually the case, I spent 10 days testing the Blueair ComfortPure 3-in-1 T10i, putting its purification, cooling and heating features through their paces to see whether it earns its place in your home.

(Image credit: Future / Becca Caddy)

I feel like the Blueair ComfortPure 3-in-1 T10i is already geared towards versatility, simply because it's combining air purification, heating and cooling in a single appliance. That flexibility then continues with a solid range of features and settings that let you tailor the experience to your home and preferences.

Blueair says the T10i can clean a 16m² room in 12.5 minutes, a 39m² room in 30 minutes and a 78m² room in one hour. It also has a Clean Air Delivery Rate (CADR) of 132 cubic feet per minute (cfm) for pollen, 129cfm for dust and 113cfm for smoke, giving you an idea of how quickly it can circulate clean air around a room.

There are four fan speeds to choose from, alongside dedicated cooling, heating and boosted purification modes. You'll also find a Night mode that reduces noise and dims the display, plus an Auto mode that automatically adjusts performance when pollutants are detected.

According to Blueair, the T10i uses its proprietary HEPASilent filtration technology, which combines mechanical and electrostatic filtration to capture airborne particles like pollen, dust and smoke while keeping noise levels relatively low.

One feature I particularly liked was the way the purifier automatically ramped up when air quality dropped and then settled back down once conditions improved. It meant the unit never felt like it needed to run at full power all the time.

Another highlight is the T10i's 350-degree oscillation. Not only does it provide excellent coverage, but you can customize the oscillation pattern within the app. So if you only want airflow directed towards one side of a room, you can fine-tune that rather than simply choosing between a handful of preset options.

(Image credit: Future / Becca Caddy)

The app deserves a special mention because it's one of the best companion apps I've used with a home appliance. It looks clean and modern, it's easy to navigate and there are plenty of genuinely useful controls. You can set timers and schedules, monitor filter life, check indoor air quality readings, adjust oscillation settings and even enable location-based automation so the purifier can prepare your home before you arrive.

You can also control the T10i directly from the touchscreen panel on top of the unit, via the included remote control or through Amazon Alexa voice commands. So whatever your preferred way of interacting with smart home devices, there's probably an option here that suits you.

(Image credit: Future / Becca Caddy)

With its large cylindrical design, the Blueair ComfortPure 3-in-1 T10i immediately feels more substantial than many standalone air purifiers.

That's not necessarily a criticism. In fact, considering you're getting an air purifier, fan and heater in one appliance, I'd actually say it's surprisingly compact. But it's still worth checking the dimensions (19.69 x 10.24 x 10.24 inches / 500 x 260 x 260mm) before buying because it takes up a noticeable amount of floor space and Blueair recommends leaving clearance around the unit for optimal performance.

Looks-wise, I really liked it. The design is sleek, minimal and unobtrusive enough to blend into a wide range of homes. It feels premium without trying too hard and never looked out of place in my small apartment.

There’s a sturdy fabric handle on the back, which makes it much easier to move around than you'd expect from something of this size and weight. Because, at 13.7 lbs / 6.2kg, it’s not exactly heavy but I'd definitely say that handle is still essential. Blueair has also included an anti-tip sensor that automatically switches the unit off if it's knocked over, which is reassuring if you have children or pets at home.

On top of the purifier you'll find a bright, responsive display with clear icons for different modes and settings. I found it easy to read from across the room and simple to navigate without needing to constantly reach for my phone. Thankfully, Night mode also reduces the brightness significantly if you're using it in a bedroom.

Around the back there's a removable panel that provides access to the filter when it eventually needs replacing. It's all very straightforward and feels thoughtfully designed from a day-to-day usability perspective.

(Image credit: Future / Becca Caddy)

Getting the T10i up and running couldn't have been much simpler. After removing the protective packaging from the filter and reinstalling it, I was ready to go within minutes. Connecting it to the app was equally straightforward and took just a few moments over Wi-Fi.

It's worth noting that the smart features rely on that Wi-Fi connection. During the final few days of testing, I was in the middle of moving house and temporarily without internet access, which made me realize just how much I'd come to rely on the app's controls and customization options.

Performance-wise, I was testing the T10i at the perfect time. Not only was the UK experiencing a heatwave, but I was also packing up my apartment, moving boxes, cleaning rooms and generally creating the sort of dusty, messy environment that puts an air purifier through its paces.

One of the most impressive things about the T10i was how quickly it responded to changes in air quality. While cleaning, packing dusty boxes and using household cleaning products, I could see the air quality readings change almost immediately. Within a relatively short period of time, the readings would settle back down again as the purifier did its job.

I noticed something similar while cooking. The purifier consistently detected changes in air quality and cooking smells before ramping up its performance to deal with them. Watching the readings change in real time gave me confidence that it wasn't simply running on a fixed schedule but was actively responding to what was happening in my home.

Of course, the bigger question is whether I actually noticed a difference. As someone who's particularly sensitive to allergens and airborne irritants, I genuinely did. There's always a risk of placebo effect when you're reviewing an air purifier because cleaner air can be difficult to quantify in everyday life. But over the course of testing my apartment consistently felt fresher and more comfortable, even while I was creating more dust and disruption than usual.

(Image credit: Future / Becca Caddy)

The cooling performance was also surprisingly good. Now, I'd recently tested the MeacoFan Sefte Pro 10in Air Circulator and you're not getting that same level of airflow here. That's hardly surprising considering cooling isn't the T10i's primary purpose. But during several days of temperatures above 86°F / 30°C, I still found the fan mode genuinely effective and comforting.

Its heating mode delivered a similarly solid performance. The weather cooled dramatically towards the end of testing, so I had an opportunity to try it out properly. It won't replace a full central heating system, but it quickly produced warm air and helped make smaller spaces feel noticeably more comfortable.

Noise levels were also impressive. During my own testing, I measured around 35dB on the lowest cooling setting and roughly 52dB at maximum fan speed and boosted purification mode from one meter away. For context, my hairdryer measures around 78dB and my kettle reaches around 69dB. So while there's certainly some fan noise at higher settings, I found it surprisingly quiet overall.

That said, noise tolerance is subjective. Some people will inevitably find higher fan speeds a little intrusive. Personally, I'm someone who enjoys white noise and often sleeps with fan sounds in the background, so I found the sound profile more soothing than distracting.

Ultimately, the T10i performed exactly as I'd hoped. It noticeably improved air quality in my apartment, provided useful cooling during hot weather, offered effective supplemental heating when temperatures dropped and wrapped everything up in a smart, well-designed package. It's best suited to small and medium-sized spaces rather than large homes, but within those limits it's a genuinely impressive all-rounder.

(Image credit: Future / Becca Caddy)Blueair ComfortPure 3-in-1 T10i review: Price and release date
  • Released in Summer 2025
  • Priced at $499.99 / £399 (around AU$700)

The Blueair ComfortPure 3-in-1 T10i Air Purifier launched in Summer 2025 with a retail price of $499.99 / £399 (around AU$700). While it's available right now in the US and UK, it doesn't currently seem to be available in Australia.

If your first reaction to that price is that it sounds expensive, I get it. That's probably because most of us instinctively compare it to the price of a good fan or a good air purifier rather than a device that's attempting to do three jobs at once.

For example, one of my current favorite tabletop air circulators, the MeacoFan Sefte Pro 10in, costs considerably less at £119.99 and delivers more powerful cooling. Likewise, there are excellent standalone air purifiers available for much less money, including Blueair's own Blue Pure 411i Max / Blue Max 3250i at £169 / $169.99. But neither of those products heats, cools and purifies the air from a single appliance.

That's really how the T10i needs to be evaluated. You're not simply buying an air purifier here. You're buying an air purifier, a cooling fan and a space heater rolled into one. Whether that represents good value depends largely on how often you'll use all three functions.

In terms of direct competition, there aren't many devices that combine air purification, heating and cooling in quite the same way. The closest comparison is probably Dyson's Purifier Hot+Cool range, which offers a similar all-in-one approach. Dyson's models tend to have a more futuristic design and some additional features depending on the model, but they're often significantly more expensive than the T10i. For example, the Dyson Purifier Hot+Cool Gen1 HP10 purifying fan is $529.99 / £549.99 / AU$899.

Personally, I can imagine the upfront cost feeling a little steep initially, but it's also the sort of product that will earn its keep throughout the year. Cooling during summer, heating during colder months and air purification all year round is a compelling combination.

Of course, not everyone will need that versatility. If air quality isn't a major concern where you live and you're primarily looking for heating or cooling, there are more cost-effective specialist products available. But if you like the idea of cleaner air alongside temperature control, the value proposition becomes much easier to justify.

Blueair also offers a larger version called the ComfortPure T20i. It costs around £100 / $100 more, but it's designed for significantly larger spaces. Blueair says the T20i can clean spaces up to 156m² in one hour, compared to the 78m² maximum coverage claimed for the T10i. If you live in a larger home or have an open-plan living space, the extra investment could make sense.

One final consideration is filter replacement. Blueair says the filter should last up to a year and the app tracks its condition so you'll know when a replacement is needed. However, you'll also need to factor in the cost of a new filter, which currently costs £49 / $66.99.

(Image credit: Future / Becca Caddy)Blueair ComfortPure 3-in-1 T10i review: Specs

Speeds

1-4, Auto, Night and Eco

Oscillation

350 degrees

Weight

13.7 lbs / 6.2kg

Dimensions

19.69 x 10.24 x 10.24 inches / 500 x 260 x 260mm

Control

Onboard touch panel, remote control, app, voice

Timer

Yes

Additional modes

Warming, Cooling, Air Purification, Auto, Night and Eco

Should I buy the Blueair ComfortPure 3-in-1 T10i?

Attribute

Notes

Score

Features

Beyond cooling, warming and air purification, the T10i offers plenty of useful extras, include Night mode, Eco mode, adjustable oscillation and a really well-designed companion app. The customization options are solid but never feel complicated.

4.5/5

Performance

Great air purification combined with effective cooling and heating for smaller spaces and apartments. Dedicated heaters and fans might deliver more raw power, but the T10i noticeably improved comfort levels throughout testing.

4.5/5

Design

Larger than rival air purifiers, but the minimal design helps it blend into most rooms. The built-in handle, clear display and handy remote all contribute to a polished user experience.

4/5

Value

The upfront cost is high and ongoing filter replacements add to the overall investment. However, if you’ll regularly use the purification, heating and cooling functions, it offers strong value compared to buying multiple separate devices.

4/5

(Image credit: Future / Becca Caddy)Buy it if...

You want one device for year round comfort
The biggest selling point here is you’re getting air purification, heating and cooling in a single device. If you’d rather have one smart appliance than several, it’s a great choice.

Clean air matters to you
There are stronger fans and heating systems, but combining those functions with air purification is what makes the T10i stand out.

You live in a small or medium-sized space
It’s not a small device, but it fit well in my one bedroom apartment. The T10i works best in smaller spaces where it can effectively manage air quality and comfort levels.

Don't buy it if...

You mainly want cooling power
The cooling fan mode is useful and effective, especially during warm weather. But if your main goal is staying cool this summer then a dedicated fan will deliver more airflow for less money.

You need coverage for a large space
The T10i is designed for small and medium-sized rooms rather than big, open-plan homes or whole house air purification. If you need more coverage, the T20i might be a better fit.

You’re on a tight budget
The upfront cost is high and you’ll also need to factor in replacement filters over time. If cost is your main concern, separate budget-friendly devices might be better value for you.

Blueair ComfortPure 3-in-1 T10i review: Also consider

MeacoFan Sefte Pro 10in Table Air Circulator
If cooling is your priority, I’d recommend considering this Meaco air circulator instead. It delivers powerful airflow, quiet operation and handy features, like Eco mode and app control. Unlike the Blueair, it won’t purify the air or provide heating, but if your goal is staying comfortable during warm weather, it’s a more focused and cost effective solution. Read our full MeacoFan Sefte Pro 10in Table Air Circulator review.

Blueair Blue Pure 411i Max / Blue Max 3250i
If you’re only interested in air purification, Blueair’s own 3250i / 411i Max remains one of the best options available. It delivers excellent purification performance in a lightweight, easy-to-use package and costs significantly less than the T10i. You won’t get heating or cooling, but if cleaner air is your sole priority, it’s the better value choice. Read our full Blueair Blue Pure 411i Max / Blue Max 3250i review.

How I tested the Blueair ComfortPure 3-in-1 T10i Air Purifier

(Image credit: Future / Becca Caddy)
  • Tested the air purifier for 10 days
  • Used all of the settings regularly
  • Used it while working, sleeping and relaxing at home

I tested the Blueair ComfortPure 3-in-1 T10i Air Purifier for 10 days during a period of warmer weather in the UK when I was also moving house and dealing with some mild allergies. It turned out to be ideal timing, giving me a chance to see how well both the air purification and cooling functions performed in real-world conditions.

I used it most often while working from home at my desk, during the night in my bedroom and throughout the day while cooking, cleaning and relaxing. This gave me plenty of opportunities to switch between the different modes and experiment with various cooling levels, oscillation settings and purification options.

Over the course of testing, I paid close attention to how comfortable it made my home feel, how easy it was to live day-to-day and whether the combination of purification, heating and cooling genuinely offered an advantage over separate devices.

I’ve been testing tech and writing about it for more than 15 years. During that time, I’ve covered everything from health tech and smart home devices to audio tech and wearable gear. Whatever I’m reviewing, my focus is always on whether a product genuinely improves everyday life, rather than delivering an impressive list of features.

Categories: Reviews

I tested Sony’s affordable Bravia 5 TV, and it offers a lot of punch for its price tag, throwing serious shade on Sony’s previous mid-range screens

Sat, 09/05/2026 - 19:00
Sony Bravia 5: Two-minute review

The Sony Bravia 5 is a mini-LED TV with crisp images, strong contrast and great gaming features. It occupies that level in Sony’s TV range where the brand has historically struggled to maintain its high standards. The Bravia 5, though, bucks this trend in pretty spectacular fashion.

The Sony Bravia 5 retains both mini-LED lighting and local dimming, for starters, as well as an 120Hz panel to keep gamers happy. Sony says the Bravia 5 LCD panels are still made to the brand’s Master Backlight Drive standard too, and they’re equipped with a full up-to-date version of the Google TV smart system.

There are ‘catches’ to this promising specification, of course. In particular, the Bravia 5 won’t benefit from as many dimming zones as the step up Bravia 7, or achieve so much brightness. In reality, though, the 65-inch Bravia 5 (AKA the K65XR55) delivers much less of a step down from Sony’s mid-range models than expected based on past Sony lines. Pictures are vibrant, crisp, full of contrast and just way less compromised than previous generations of the same level of Sony TV would have been.

Add punchy, clean and detailed audio to its surprising picture talents, and the Bravia 5 is the Sony value TV we’ve always wanted.

Sony Bravia 5 review: Price and release date

The LG B6 delivers deep black tones and crisp textures (Image credit: Future)
  • Release Date: July 2025
  • 55-inch: $1,399.99 / £1,299 / AU$1,999
  • 65-inch: $1,499.99 / £1,499 / AU$2,299
  • 75-inch: $1,999.99 / £1,799 / AU$2,899
  • 85-inch: $2,399.99 / £2,299 / AU$3,899
  • 98-inch: $4,999.99 / £4,499 (around AU$8,570)

While the Bravia 5 is affordable by Sony TV standards, $1,499.99 / £1,499 / AU$2,299 is no longer cheap for a 65-inch TV.

The Bravia 5 retains much more of Sony’s mid-range — and even premium — TV DNA than expected based on similarly positioned models in previous Sony ranges, though. As a result, it has at least the potential to take a clear performance edge over more affordable rivals.

Sony Bravia 5 review: Specs

Screen type

Backlight Master Drive VA mini-LED with local dimming

Sizes available

55, 65, 75, 85 and 98 inches

Refresh rate

120Hz

Resolution

4K

HDR support

Dolby Vision, HDR10, HLG

Audio support

40W acoustic multi-audio speaker system featuring dual full-range (bass reflex) speakers and two ‘frame’ tweeters; Dolby Atmos and DTS:X decoding

Smart TV

Google TV (plus all main UK terrestrial broadcaster catch up apps for UK buyers)

HDMI ports

4 (two full HDMI 2.1)

Sony Bravia 5 review: Benchmark results Sony Bravia 5 review: Features

(Image credit: Future)
  • Mini-LED lighting
  • Direct lighting with local dimming
  • Bravia XR processor

As I’ve hinted more than once already, the Sony Bravia 5 is packing much more feature heat than I would have expected it to, based on Sony TV ranges of the past.

This is particularly true of the screen hardware at the Bravia 5’s heart. Designated one of Sony’s Master Backlight Drive panels, it is illuminated by mini-LEDs driven by a local dimming system that, according to my own counting efforts, operates across an impressive 240 zones. That’s 240 areas of the image that are capable of receiving their own light level, independent of their neighbors, according to the needs of the image.

The Bravia 5’s panel is a VA type, too, which should further enhance contrast (though maybe not viewing angles). Meanwhile, even this far down Sony’s range, the brand's consistently impressive XR processor is still on hand to power all the constituent parts of the TV’s pictures. On top of this, rather than dropping down to 50/60Hz, the panel also maintains a native 120Hz refresh rate.

Meanwhile, its support for high dynamic range images extends to Dolby Vision, as well as the more basic HDR10 and HLG formats. Sony is also unusual in the TV world for automatically applying an HDR upgrade to SDR sources on some of its picture presets. There’s no interest from Sony, though, in the HDR10+ format designed as an open-source alternative to Dolby Vision.

The Bravia 5’s connections keep up with its step-up siblings. So you get four HDMIs (though only two support the TV’s full range of gaming features like VRR and ALLM), USB media playback support, and wireless support that includes Wi-Fi, Bluetooth 5.3, built-in Chromecast, Apple Airplay, and Apple HomeKit.

(Image credit: Future)

Sony’s TV business has long traded on its ‘from camera to TV’ product chain, and the potential for accuracy that this can bring. So as usual the Bravia 5’s Professional Mode setting, at least, will have been tuned alongside one of Sony’s professional mastering monitors, and the set is equipped with a bunch of so-called Calibrated modes designed to replicate as closely as possible the mastering standards of the Prime Video, Netflix and Sony Pictures Core video streaming services.

Buying a Bravia 5 entitles you to 10 free films and 24 months of access to Sony Pictures Core too, by the way, complete with its unique high-bandwidth streaming speeds for enhanced picture quality.

Further ‘third party’ endorsement finds the Bravia 5 earning an IMAX Enhanced badge, indicating that it has been deemed capable of doing justice to the special noise-limiting mastering processes and potential shifting aspect ratios associated with the IMAX Enhanced system. IMAX Enhanced titles are available on Sony Pictures Core and Disney+.

The Bravia 5’s audio setup is pretty potent by mid-range TV standards. It offers two full range Bass Reflex-design drivers and two separated tweeters getting 10W a piece to deliver both Dolby Atmos and DTS:X soundtracks — the latter even includes the special tweaked version of DTS:X associated with IMAX Enhanced content.

  • Features score: 4.5 / 5
Sony Bravia 5 review: Picture quality
  • Impressive brightness and light control
  • Bold but also natural colour
  • Genuine 4K sharpness and excellent 4K upscaling

The Sony Bravia 5’s image quality instantly changes the fortunes of this level of Sony’s TV range, leaning much more towards the Sony TVs above it than those below.

Particularly great to see is how much contrast the Bravia 5 retains for this level of Sony’s range. Black colors look deep and strikingly consistent, exhibiting minimal issues with backlight blooming around bright objects or general areas of clouding. That's despite the fact the screen is capable of hitting nearly 900 nit brightness peaks on a 10% HDR window and sustaining an OLED-beating 595 nits with a full 100% HDR window.

Combining Sony’s backlight structure and XR Processor, the Bravia 5 can maintain more intensely bright highlights against dark backdrops than you’d expect for its price tag, despite how limited the clouding around such highlights is. This combination of bright stand-out objects and limited clouding is very difficult to achieve with locally dimmed TVs, yet the Bravia 5 makes it look easy.

Dark scenes look stable, too, in the sense that you never feel aware of the sudden brightness jumps or obvious ‘handovers’ between different dimming zones as bright objects move around a dark backdrop.

(Image credit: Future)

Many screens with strong contrast performances are often capable of good color reproduction too — and this trend continues with the Bravia 5. In its Standard preset, it produces strikingly vibrant, rich and bold tones (actually upgraded to HDR if you’re watching an SDR source) that still feel balanced, full of subtlety and nuance, and connected to source tones for the most part. They feel more like amplifications of source content colors rather than aggressive departures from them.

Unfortunately, the Bravia 5 pushes this amplification effect way too far in the Vivid preset, which is best avoided. But the Standard setting is an excellent bright room option, as well as actually being delicate and balanced enough to hold up as a dark room movie night option if your image tastes tend towards the bright and vibrant.

Unlike most other TV brands, Sony doesn't offer a Filmmaker Mode preset for AV fans who favor ‘as the director intended’ viewing. Its Professional Mode, though, does pretty much the same thing, with an emphasis on trying to match the image as closely as possible to Sony’s professional video mastering monitor.

Using Portrait Display’s Calman Ultimate software, G1 signal generator and C6 HDR5000 colorimeter, the accuracy of the Bravia 5 Professional mode was easy enough to demonstate. Errors recorded in both SDR and HDR across the board came in at well under the 3.0 DeltaE 2000 average beyond which errors might become visible to the human eye.

(Image credit: Future)

The Bravia 5’s Professional mode doesn’t just measure well. It also looks subjectively lovely, packed with the subtle texturing, immaculate color balance, and remarkable light control for a lower mid-range LCD TV. The benefits of Sony finally being able to introduce a superior core panel in a TV at the Bravia 5’s level are arguably at their most obvious in the Professional preset, in fact, given that this mode uses relatively few processing tools to help ‘boost’ its appearance.

Inevitably, given it’s far from the most premium TV in Sony’s range, there are a few limitations to the Bravia 5’s picture performance. Dark scenes in the Professional mode look a little grayer than they do in Standard mode, and backlight blooming around bright objects can become more noticeable if you view the TV from an angle. Strangely, certain shades of red can look a bit over-ripe during dark scenes, and some dark shots also take on a slightly green undertone.

Finally, some of Sony’s preset choices don’t actually help the Bravia 5’s pictures at all. Motion processing only really helps 24p movie sources if it’s switched to its True Cinema mode, for instance, with other settings tending to generate unwanted digital side effects or leave the image looking unnaturally smooth. I’d also recommend turning off the noise reduction features, especially with native 4K sources, to ensure the screen’s impressive native sharpness isn’t unnecessarily softened away.

The Bravia 5’s issues are mild enough or easy enough to fix, though, that they don’t stop it from being an all-round excellent picture performer for its money.

  • Picture quality score: 4.5 / 5
Sony Bravia 5 review: Sound quality

(Image credit: Future)
  • Impressive clarity and detailing
  • Sound doesn’t suffer with distortions
  • Bass is a bit lightweight

The Bravia 5’s sound joins its pictures in being impressively expressive and clean, working within the speaker’s limitations rather than pushing things beyond their breaking point as so many integrated TV sound systems are wont to do.

Even the brightest, shrillest treble sounds are produced without sounding thin or brittle, while the mid-range is clean and pretty expansive, able to cope with the ebbs and flows of even quite dense action scenes without sounding forced, muddy or compressed.

It uses its four-speaker system well to create a fairly large soundstage, too — one that’s well populated with accurately placed, crisp but never overstated details.

My only complaint is that the Bravia 5 feels a bit light in the bass department. Dinosaur footprints, rumbling space ships, meaty explosions and the like don’t hit with quite as much heft as I’d like. At the same time, though, not even Hollywood’s most extreme bass moments cause the Bravia 5’s speakers to succumb to distracting crackles or distortions.

  • Sound quality score: 4 / 5
Sony Bravia 5 review: Design

(Image credit: Future)
  • Multi-point foot attachment
  • Recycled plastic remote control
  • Minimal frame

The Bravia 5’s design doesn’t feel like much of a step-down at all from Sony’s Bravia 7 series. Its screen frame is extremely narrow, distracting scarcely at all from the pictures within, and it also stays fairly trim around the back for a lower mid-range LCD TV.

Its feet look a little basic when attached to such an elegantly minimalistic screen, perhaps. But Sony has thoughtfully provided the option to attach them either quite close together or out towards the TV’s bottom corners, depending on the width of the furniture you want to stand the TV on.

Build quality is good, too, and despite its relatively affordable position in Sony’s current TV range, it ships with two remote controls. The sleeker, more modern and more feature-rich handset is made largely made from recycled plastic, as part of Sony’s wide-ranging attempts to make the TV production process greener.

  • Design score: 4 / 5
Sony Bravia 5 review: Smart TV & menus

LG's webOS 26 is easily one of the best smart TV platforms around (Image credit: Future)
  • Google TV smart system
  • YouView for full UK app coverage
  • Optional Bravia Cam

The Sony Bravia 5 runs the latest Google TV system very well, avoiding the sluggishness the system sometimes causes on less powerful TVs. Google TV carries pretty much all of the most popular and important video streaming services, and Sony has helpfully worked round Google TV’s blind spot when it comes to some of the UK’s most popular terrestrial broadcaster catch up services by adding the YouView app.

Google TV can still feel a little overwhelming in its presentation and doesn’t feel as intelligent as some rival smart systems when it comes to recommending content based on your viewing habits. The smarter of the two remote controls Sony provides, though, makes navigation of the menus feel straightforward. On top of this, you can access a good range of features and issue quite complex search instructions just by talking to the Bravia 5 via the Google Assistant voice recognition system.

You can even add basic gesture control features to the Bravia 5 if you cough up £200 for one of Sony’s Bravia Cam accessories. This add-on camera can also detect your location in the room and adjust the TV’s picture and sound settings accordingly, as well as issuing audio warnings if it detects anyone getting too close to the screen. I’m not personally convinced Bravia CAM does enough to justify its price, but if the features I’ve just described sound good to you, then fill your boots!

  • Smart TV & menus score: 4.5 / 5
Sony Bravia 5 review: Gaming

(Image credit: Future)
  • 4K/120Hz support
  • VRR support
  • Perfect For PlayStation 5 support

The Sony Bravia 5 is fairly, rather than brilliantly, well specified as a gaming display. For instance, while it does support 4K game feeds at 120Hz refresh rates, it only does so over two of its HDMIs, rather than all four. It also doesn’t stretch the refresh rate support to 144Hz or even 165Hz, like some rival TVs currently do.

Similarly, while the Bravia 5 supports variable refresh rates, that support doesn’t extend to the AMD Freesync or Nvidia G-Sync systems. There is support for auto low latency mode switching, though, so the TV can automatically switch into its fastest responding picture mode when a game source is detected. While in this mode, the Bravia 5 takes just 13.3ms to render 60Hz gaming feeds.

There’s support, too, for Sony’s unique Perfect For PlayStation 5 features, comprising a PS5-specific version of automatic game mode switching, and an excellent system where a connected PS5 is able to tell which Sony TV model it’s attached to, and automatically optimize its HDR output accordingly.

You can also call up a dedicated gaming menu when the Bravia 5 is in Game mode, containing information on the game feed and a few helpful gaming assistants. Finally, the actual gaming experience when using one of the two wide-bandwidth HDMIs is very enjoyable. The TV’s vibrant, exceptionally sharp and contrast-rich pictures provide a perfect fit for today’s usually HDR and 4K graphics, while the rapid response time and VRR support means gaming never feels sluggish or laggy.

  • Gaming score: 4 / 5

(Image credit: Future)Sony Bravia 5 review: Value

Not so long ago, spending $1,499.99 / £1,499 / AU$2,299 to get a 65-inch TV as good and feature rich as the Sony Bravia 5 would have felt like a great deal. Recently, though, TCL in particular has drastically shifted the TV value ‘window’, with its bright, vibrant and gaming-friendly 65-inch C7K currently going for just £779.

The Bravia 5 does offer more precision and balance in its pictures than the TCL C7K, but the price gap is big enough to mean you may feel like holding out for a special offer on Sony’s model, or searching beyond the most popular electronics retailers for a better deal.

  • Value score: 3.5 / 5
Should I buy the Sony Bravia 5?Sony Bravia 5 scorecard

Attributes

Notes

Rating

Features

Aside from a few gaming limitations, the Bravia 5 is well featured for its money.

4.5 / 5

Picture quality

Vibrant, bright, sharp and contrast rich pictures reveal the presence of more excellent Sony backlighting and video processing systems.

4.5 / 5

Sound quality

While bass heads might wish for a bit more low frequency impact, the Bravia 5’s sound is clean, punchy, detailed and unusually well staged.

4 / 5

Design

With its choice of foot position, elegantly minimalist frame, slender frame and strong build quality, the Bravia 5 looks premium enough to match its price.

4 / 5

Smart TV and menus

Google TV runs stably and reasonably slickly on the Bravia 5, making it easy to access the huge array of content options it offers. The set up menus are well organised and graphically rich, too.

4.5 / 5

Gaming

Only two HDMIs support the Bravia 5’s full array of gaming features, and those features don’t include absolutely everything some rivals offer. However, the exclusive to Sony TVs Auto HDR ‘Perfect For PlayStation 5’ feature is excellent, and the screen feels responsive and immersive.

4 / 5

Value

While the Bravia 5 is well priced for a Sony TV that performs as well as this one, competition at this price level is brutal these days.

3.5 / 5

Buy it if...

You want that Sony picture feel for less
The Bravia 5 holds on to more of the panel and processing prowess of more premium Sony TVs than you'd expect at this price.

You have a PlayStation 5
The Bravia 5’s Perfect For PlayStation 5 features allow a PS5 console to automatically feed it optimized HDR games — a genuinely helpful feature given that HDR gaming is still in something of a ‘wild west’ stage at the moment.

You want to put your TV on a narrow piece of furniture
While the widest foot placement looks more elegant, Sony provides the option to place the Bravia 5’s feet close together as well.

Don't buy it if...

You are on a tight budget
Some rivals, most notably TCL, sell bright, vibrant 65-inch TVs with good gaming features for substantially less than the Bravia 5 costs.

You have more than two premium gaming sources
Only two of the Bravia 5’s HDMI ports support the full range of cutting-edge gaming features that today’s gamers are looking for (4K/120Hz and VRR).

You want a Filmmaker Mode and/or HDR10+ support
If you happen to be a real fan of Filmmaker Mode presets and the HDR10+ rival to Dolby Vision HDR, you should know that the Bravia 5 doesn’t support either of these features.

Sony Bravia 5 review: also consider

Sony Bravia 5

TCL C7K

LG C5

Samsung QN90F

Price (65-inch)

$1,499.99 / £1,499 / AU$2,299

$899.99 / £779 / AU$2,295

$1,399.99 / £1,599 / AU$2,699.99

$1,599.99 / £1,399 / AU$2,899

Screen type

Backlight Master Drive VA mini-LED with local dimming

Mini-LED with local dimming

WRGB OLED

Mini-LED with local dimming

Refresh rate

120Hz 4K

144Hz (up to 288Hz at lower resolution)

144Hz

120Hz (up to 165Hz with Motion Xcelerator technology)

HDR support

HDR10, HLG, Dolby Vision

Dolby Vision, HDR10, HLG

Dolby Vision, HDR10, HLG

HDR10, HDR10+, HLG

Smart TV

Google TV (plus all main UK terrestrial broadcaster catch up apps for UK buyers)

Google TV with YouView

WebOS 25

Tizen OS

HDMI ports

4 (two full HDMI 2.1)

4 (two HDMI 2.1)

4 x HDMI 2.1

4 x HDMI 2.1

TCL C7K
With its extreme brightness, surprisingly good backlight control and uncompromising gaming features, the C7K has single-handedly rewritten the TV value rulebook. While Sony’s set delivers a more controlled image, the C7K’s bang for your buck is crazy. And it supports all four key HDR formats too. Read our full TCL C7K review.

LG C5
With LG’s 2026 OLED TV range just arriving, at the time of writing you can buy 2025’s C5 at a knock down price. Every pixel in OLED TVs delivers its own color and light without compromising its neighbors, delivering stunning contrast. The C5 also delivers excellent gaming support, and some of the most accurate pictures around. Read our full LG C5 OLED TV review.

Samsung QN90F
Samsung’s flagship 4K mini-LED TV for 2025 is also still around as we wait for the brand’s 2026 models, and it looks like strong value at its current $1,599.99 / £1,399 / AU$2,899 price. Its impressive pictures are joined by four full HDMI 2.1 ports, and an Object Tracking Sound (OTS) system that does a strikingly good job of placing sound effects in the right place on screen. Read our full Samsung QN90F TV review.

How I tested the Sony Bravia 5
  • Tested over three weeks
  • Tested with 4K Blu-rays, multiple streaming platforms and resolutions, Freeview HD broadcasts, and HD Blu-rays
  • Reviewed in both dark and light dedicated test room conditions, on its feet in both corner and mid wall positions

I tested the Sony Bravia 5 over a three-week period in a variety of room conditions — including using it as a regular living room TV for more than a week.

I checked out streamed content at a variety of resolutions from all of the main video streaming platforms, including Sony’s exclusive Sony Pictures Core high-bandwidth services. I also watched tuner channels and fed it a selection of our regularly used test Blu-rays and 4K Blu-ray discs. Gaming was explored using a PlayStation 5, an Xbox Series X and a gaming PC.

Objective testing was performed using Portrait Displays’ Calman Ultimate analysis software, G1 signal generator, and C6 HDR5000 light meter.

Categories: Reviews

Ever wanted earbuds with a touchscreen case? Even if you haven’t, JBL's affordable Live Buds 4 are worth a look; think stellar sound and top features

Sat, 09/05/2026 - 14:00
JBL Live Buds 4 review

Ever wondered what life would be like if your earbuds had a touchscreen case? OK, you probably haven’t, but stick with me here. The JBL Live Buds 4 are the new generation of the audio specialist’s in-ears that pair with a smart charging case, enabling you to adjust sound settings, adapt ANC, and more — all without having to download a companion app.

They’re a standout model in a congested market. The Live Buds 4 also sit within JBL's wider Live range, which is itself fairly congested in that it also includes the stemmed JBL Live Beam, plus the open-fit JBL Live Flex. This specific model, though — the Live Buds 4 — comes with a number of claimed upgrades over its predecessor, including enhanced ANC, new “fidelity drivers,” and boosted call quality. But are they worth the money and can they compete with options in our best earbuds roundup? Here’s what I think after three weeks of testing.

We’ve got to start with the smart charging case, which has a revamped UI for a smoother, more complete user experience. The touchscreen is undoubtedly small, but it's highly responsive, and there are clear menus to access EQ tweaking, ANC modes, appearance options, and even tools like a flashlight and timer. I sometimes preferred using the JBL Headphones app for the ease of a larger screen, and the ability to set a custom wallpaper from my photo gallery, but for on-the-go tweaks, the charging case is a neat option — even if it is arguably a little bit gimmicky. But hey, I like a good gimmick now and then.

Beyond what I’ve already mentioned, the case features a lot of fun features, like a smart-talk option, which picks up voices if you want to have a conversation while keeping your buds in. There are also customizable touch controls for the buds themselves (which I found to be reactive and convenient), and settings for how your voice sounds on a call, including a bright, natural, and powerful option.

Speaking of calls, JBL has included 6 mics in these earbuds, as well as its new Perfect Calls 2.0 tech, which makes use of AI to keep your voice clear, even in noisier environments. As I mentioned in my JBL Live Beam 4 review (I know, it's easy to get confused with names), I did find my voice to be relatively clear on calls and when taking a recording, but unfortunately I didn’t get the premium clarity I was expecting. There was some noticeable sibilance in my recording, and I also found that some background noises remained more prominent than anticipated.

I also want to talk about active noise cancellation, which has been improved for the Live 4 series. Overall, ANC is decent, but it’s still not up to the standards offered by buds from Apple and Bose. When out and about or on public transport, I could still make out background chatter, and in the office, typing sounds and doors closing were still audible. Sounds are still dulled effectively, and ANC is by no means bad — but if you’re expecting a curtain of silence when using the Live Buds 4, you may be left wanting more.

(Image credit: Future)

One area that the Buds 4 totally excel in, though, is sound quality. For earbuds in this price-range, the Buds 4 are excellent, dishing out impactful bass, clean mids, and expressive highs, impressive handling of dynamics, and good attention to detail.

When tuning into Labor of Love by Ned Doheny, I was struck by the beautifully textured and weighted acoustic guitars, which were well separated from clear, tonally accurate vocals. Subtle percussive details also came through beautifully, and funky bass sounded impactful without drowning out other sounds across the frequency range. What’s more, by activating the higher-res Bluetooth codec, LDAC, I could make out some more intricacies in the mid-range, with almost life-like guitars taking the listening experience to the next level.

The Live Buds 4 proved to cope brilliantly with any genre, though. With a deeper, more energetic track, such as Don’t Compare Yourself by Kolter, the pumping deep bass hit phenomenally hard, and reached down to tremendous depths for this level. Bassy synths sounded textured and controlled, lively drums sounded articulate and precise, and emotive vocals, while impactful, never overwhelmed the mix.

I have very few complaints about the sound, and it’s super-simple to customize it to your liking with the EQ settings on the charging case or JBL headphones app. But one thing that could’ve been better was the spatial audio setting, which just lacked the clarity and openness of the standard tuning. I’d also argue that the soundstage is relatively broad on the Live Buds 4 anyway, so you should just keep this mode off if you ask me.

(Image credit: Future)

Let’s also talk design, as this is the main area where the Live Buds 4 differentiate themselves from the Beam and Flex. They take up a small, snug in-ear feel, which is ideal for those who prefer earbuds without the stems. I found the buds to be incredibly comfortable, and had no issue keeping them in for multiple hours at a time. They’re also highly secure, never feeling as if they’ll fall out of your ears.

The buds also have a good standard of build, the case has an attractive, textured finish, and the model can be purchased in a wide range of colors. The buds are also IP55-rated, making them splashproof. Some rivals offer superior IP57 protection, but IP55 is enough to keep your buds safe on a rainy day.

One more difference the Buds 4 have, is that they offer the least amount of battery life in the Live 4 lineup, with 8 hours of playtime with the buds when ANC is on, and up to 40 hours with the case. That’s still a good amount of playtime, and competes well with major rivals.

So, are the JBL Live Buds 4 worth their £179.99 / AU$269.95 (about $240) asking price? For me, it’s an emphatic yes. Of course, they’re not the cheapest buds on the market, but they’re also a fair bit cheaper than big-name rivals like the AirPods Pro 3 and Bose QuietComfort Ultra Earbuds Gen 2. They also sound fantastic for the money, with the nifty charging case only adding more value. Sure, they could do better in the call quality and ANC department, but ultimately, they still offer decent enough quality in those areas.

(Image credit: Future)JBL Live Buds 4 review: price & release date
  • List price of £179.99 / AU$269.95 (about $240)
  • Revealed in May 2026

The JBL Live Buds 4 were revealed in May 2026, alongside their siblings, the JBL Live Beam 4 and the JBL Live Flex 4. They released about two years after their predecessor, the JBL Live Buds 3.

They come in at £179.99 / AU$269.95 (about $240), which is the same as their predecessors cost at the point of launch (in the UK). We’re yet to catch wind of a release date and pricing for the US, but we’ll update this review accordingly if and when further details emerge.

These buds are available at a relatively affordable price for the quality on offer, coming in at a lower cost than rivals such as the Apple AirPods Pro 3 and the Bose QuietComfort Ultra Earbuds Gen 2.

Our top pick for wireless earbuds whatever your budget is the Technics EAH-AZ100, at $299 / £259 (around AU$478). So at quite a bit less than those figures, the JBL Live Buds 4 can be yours for a shade under flagship money — and that's a very good thing in terms of value.

That said, the Huawei Freebuds Pro 5 are our current 'best mid-range' pick in that detailed guide, and those excellent buds retail for the same £179.99 fee as the JBL option. They don't have a smart charging case, but still, food for thought…

JBL Live Buds 4 review: specs

Drivers

10mm dynamic

Active noise cancellation

Yes

Battery life

8 hours (buds, with ANC on); 10 hours (buds, with ANC off); 40 hours (with charging case)

Weight

4.8g (per bud)

Connectivity

Bluetooth 6.0

Frequency range

20Hz-40kHz

Waterproofing

IP55

(Image credit: Future)Should I buy the JBL Live Buds 4?

Attribute

Notes

Score

Features

Massive suite of features and neat smart case, but ANC and call quality could be better.

4/5

Sound quality

Detailed, impactful, and rich audio, but spatial sound option in need of improvement.

4.5/5

Design

Small and secure fit, strong standard of build, IP55-rated.

4.5/5

Value

Great price for the sound and feature-rich case.

4.5/5

Buy them if…

You want a more discreet in-ear look and feel
Unlike the stemmed JBL Live Beam 4 and Flex 4, the Buds 4 have a low-key, ultra-compact in-ear look and feel. They’re more akin to models like the Bowers & Wilkins Pi8 in terms of build, and if you want compact and comfortable buds then they’re a top option.

You’re digging the smart case
There’s no doubt in my mind that a lot of people buy the Live series of earbuds for one reason, and one reason only: the smart charging case. Can I blame them? No. Is it a bit gimmicky? Sure. But do I like it? Yes, I genuinely do. You get quick access to all of the important features on the smart case, as well as tools like a torch and stopwatch, and it adds a bit of a fun factor to these great-sounding in-ears.

Don’t buy them if…

You want silence-inducing ANC
Although JBL has improved the ANC in its latest batch of Live earbuds, the quality is still a bit middling in my view. You can get much better noise-cancelling from rivals like the AirPods Pro 3.

You’re looking for amazing spatial audio
I didn’t find the spatial audio mode on the Live Buds 4 to be particularly effective, and preferred using them with this setting turned off. My go-to most days, the LG Tone Free T90S, have a great immersive listening mode, and even support Dolby Atmos.

JBL Live Buds 4 review: also consider

JBL Live Buds 4

Apple AirPods Pro 3

Huawei Freebuds Pro 5

Price

£179.99 / AU$269.95 (about $240)

$249 / £219 / AU$429

£179.99 (around $240; AU$270)

Drivers

10mm dynamic

Custom high excursion

11mm dynamic woofer and micro-planar tweeter

Active noise cancellation

Yes

Yes

Yes

Battery life

8 hours (buds, with ANC on); 10 hours (buds, with ANC off); 40 hours (with charging case)

8 hours (buds, ANC on); 6.5 hours (buds, heart rate sensor on); 24 hours (case)

9 hours buds, 38 hours case

Weight

4.8g (per bud)

5.6g (per bud)

5.5g (per bud)

Connectivity

Bluetooth 6.0

Bluetooth 5.3

Bluetooth 6.0

Frequency range

20Hz-40kHz

Not stated

10Hz to 48kHz

Waterproofing

IP55

IP57

IP57 buds, IP54 case

Apple AirPods Pro 3
If you want earbuds that are stylish, sound fantastic, supply stellar ANC and an iPhone will be your source device, look no further than the AirPods Pro 3 — if your budget will stretch to them We loved their comfortable, secure fit, new heart-rate monitor option, hearing health software and impressive waterproof rating, but they are still a little weak in the battery life department. Read our full Apple AirPods Pro 3 review for more.

Huawei Freebuds Pro 5
Five-star svelte earbuds for the same money as the JBL set you came here to read about? Worth a look, surely — they're the model we recommend as the best mid-range buy in our dedicated earbuds buying guide. They might not be available if you happen to reside in the US, however, they're still worth shouting about to anyone else; the drivers are huge, the battery life is exceptional, the IP rating is a step up on most rivals, they're stuffed full of perks and the ANC is, as we said in our review, "excellent".
Read all about them in our Huawei Freebuds Pro 5 review.

How I tested the JBL Live Buds 4

(Image credit: Future)
  • Tested over the course of three weeks
  • Used in the office, on walks, and on public transport
  • Mainly streamed tunes over Tidal, but tapped into Spotify too

I spent three weeks putting the JBL Live Buds 4 through their paces. During this time, I listened to countless hours of music, messed around with everything the smart charging case had to offer, and exhausted their various features.

As always, I made sure to use these buds in a range of environments — including at home or at the office, but also when out on walks near busy roads, and when on public transport like buses and trains. When listening to tunes, I predominantly streamed music over Tidal on my Xiaomi 17 phone, but I also jumped into Spotify now and then. I made sure to soft through the multi-genre TechRadar reference playlist, but also bumped a bunch of tunes from my personal library.

More generally, I’ve spent years testing audio gear here at TechRadar, where I serve as a Senior Reviews Writer. I’ve reviewed everything from premium wireless headphones like the Sony 1000X The Collexion to hulking party speakers like the Marshall Bromley 750. Of course, I’ve also tested many pairs of wireless earbuds, so I know exactly what it takes for a model to stand out in a highly competitive market.

Categories: Reviews

Garmin Fenix 9 Pro review: The best gets better as we put Garmin's new flagship through its paces in the French Alps

Fri, 09/04/2026 - 21:30
Garmin Fenix 9 Pro: one-minute review

(Image credit: Future / Julia Clarke)

When the Fenix 8 finally dropped in 2024, it quickly earned a reputation as the best Garmin GPS watch money can buy, even if that meant parting with a lot of money. I gave it a thorough test on the 11-day trek to Everest Base Camp, and with Garmin’s full suite of training features, a bright AMOLED display, microphone and speaker, plus an LED torch, there was no doubt that it was a big step up from the hugely popular Fenix 7.

Last year, Garmin followed the Garmin Fenix 8 up with the Garmin Fenix 8 Pro, which took the winning formula and added built-in LTE cellular and inReach satellite connectivity for phone-free messaging and SOS alerts. I tested it at the Love Trails running festival this summer, and genuinely started to doubt the rumours that a Fenix 9 could really be imminent. What more could there possibly be to add?

I went along to the Fenix 9 release in Chamonix to find out, and immediately afterwards I strapped the Fenix 9 Pro on and hit the trail. It hasn’t been off my wrist since, and between its refined design, faster processing, plus some very fun new navigation and tracking features, I can say it’s a clear improvement over the Fenix 8.

Built with a titanium case and bezel, the 9 Pro is lighter, more durable and resistant to the elements. Side-by-side with my 8 Pro, it looks nicer and more expensive thanks to a nanomoulding construction process that produces a more streamlined build without the need for screws. This also makes it significantly thinner, in all sizes, and with the arrival of a 43mm case option (which I’m testing), it’s more wearable day-to-day than its predecessor.

(Image credit: Future / Julia Clarke)

The 3,000-nit AMOLED display is brighter, sure (although not as bright as the 8 Pro’s MicroLED option), but it’s more the improved clarity that I find myself appreciating. The green light option that’s been added to the LED torch makes a fantastic difference to my night vision, whether I’m out late on the trail or trying to make a cup of tea in the middle of the night without disturbing my entire household.

Garmin is already the industry leader in maps, and the Fenix 9 Pro map loads faster and adds a new Perspective orientation, which I think is useful when navigating in urban areas, and it’s more useful to be able to see what side streets and road junctions are up ahead.

Rolled out with the Fenix 9 are improved Stamina readings, including new Stamina Zones, which I’ve started using to help me manage my effort and pace when I’m on the trail. Brand new is the Garmin Epic feature, which essentially lets you group workouts such as training blocks, long-distance treks or adventure holidays so you can see their cumulative effect. There are also updates to the Rucking activity mode, so it now reflects the additional energy demands of your pack weight.

Like the Fenix 8 Pro, this watch boasts LTE-M cellular technology, which means I can easily respond to messages and phone calls from my wrist so long as my phone is nearby. There are some improvements to LiveTrack and Location Tracking, which are useful for both urban explorers and long bouts in the wild.

For hikers like myself, inReach satellite connectivity means I can reach emergency response from almost anywhere on the planet, and it does mean I can message friends and family when I’m offline; however, that’s only through the Garmin Messenger app. When I spoke to Garmin’s Global Lead Product Manager Jon Hosler in Chamonix, he admitted that the brand’s functionality here does lag a bit behind competitors like Apple, which have more control over the cellular ecosystem, but he also stressed that the Fenix remains a performance watch first and foremost.

In summary, the Fenix 9 Pro plants a flag firmly at the GPS watch summit as a top-of-the-line option. It’s brighter, faster, ludicrously well-featured, and, unsurprisingly, even pricier. All of that said, this shouldn’t be considered a realistic upgrade for Fenix 8 users, who are already sporting a fantastic timepiece. But compared to anything before the 8, it’s better by a country mile.

Garmin Fenix 9 Pro: specifications

(Image credit: Future / Julia Clarke)

Component

Garmin Fenix 9 Pro (model tested: 43mm with inReach)

Price

From $1,099.99 / £949.99 / AU$1,749

Dimension

43 x 43 x 13.3 mm

Weight

62 g (case only: 45 g)

Case/bezel

Titanium

Display

416 x 416 pixels, AMOLED (up to 3,000 nits)

GPS

GPS+Beidou+Glonass+Galileo+QZSS

Battery life

10 days (18 hours in activity mode, up to 50 hours in Max battery mode)

Connection

LTE, Satellite, Bluetooth, ANT+, Wi-Fi

Water resistant?

Yes, 10ATM

Garmin Fenix 9 Pro: price and availability

(Image credit: Future / Julia Clarke)
  • Starts at £949.99 for smallest 43mm
  • Prices for Fenix 9 start at £859.99
  • Reaches up to £1,209.99

The Fenix 9 Pro starts at $1,099.99 / £949.99 / AU$1,749 for the 43mm case size without inReach connectivity. With inReach, pricing starts at $1,199.99 / £1,029.99 / AU$1,899. The Fenix 9 Pro Solar is the same price, while the regular Fenix 9, which has a fibre-reinforced polymer case instead of titanium, starts at $999.99 / £859.99 / AU$1,599, and that’s for both the 43mm and 47mm.

The largest and most expensive 51mm Fenix 9 Pro with inReach is priced at $1,399.99 / £1,209.99 / AU$2199, and for that you get yourself a considerable increase in battery life with up to 31 days in smartwatch mode / 56 hours in activity mode compared to 10 days / 18 hours in the 43mm watch.

If you’re looking at a model with satellite technology, you’ll also need to factor in the cost of an inReach subscription if you actually want to use it (which starts at £7.99 / $7.99 a month), and all in, it definitely prices a lot of people out.

But the high price shouldn’t come as a surprise for anyone familiar with Garmin Fenix watches, and it’s hard to criticize it on being a high-performing piece of tech made with premium materials. There are plenty of other great options out there right now, including the Fenix 8, which you’re likely to find at a discount now that the Fenix 9 has been unleashed.

  • Value score: 4/5
Garmin Fenix 9 Pro: design
  • Titanium case and bezel
  • Slimmer design
  • Brighter AMOLED display

I tend to feel a bit indifferent to changes in materials in my GPS watches, but I have to admit that the titanium case and bezel on the Fenix 9 Pro do make this look and feel like the expensive watch that it is. It’s sleeker and less rugged, down to both the materials and the nanomoulding process, which removes the need for screws.

It’s not totally fair to do a side-by-side comparison with the Fenix 8 Pro here because the latter isn’t available in 43mm, and that accounts for some of the 15g weight difference (equalling an almost 25% increase), but suffice to say that my Fenix 9 Pro is considerably lighter and thinner (to the tune of 16%, according to Garmin), and it has a less sporty aesthetic, which for me is a huge upgrade. If I’m being honest, this is the first Garmin watch I’ve tested that I’m happy wearing all of the time, though I might take it off to go to a wedding.

The AMOLED display is brighter than both my Fenix 8 and 8 Pro models, while the new, more subdued colour scheme is a bit more sophisticated, and it’s all a little sharper whether I’m looking at the stats of a run or using maps to navigate. I’m also amazed at how accurate the touchscreen keyboard is for typing out text messages, even on the smallest display available.

Other than that, everything will feel familiar to existing Fenix users, including the five-button setup, intuitive widget-based layout and responsive touchscreen (that is sometimes a little too responsive, pulling up the weather forecast when I’m in the shower). I’ve finally taken the time to add a bunch of widgets that I use frequently to my quick list, such as my endurance score and recovery estimates, last activity, moon phases and tides, so it’s ready to go before I even leave the house.

You’ll need the enormously comprehensive Garmin Connect app to view your metrics, and the slightly clunkier Garmin Messenger app if you want to use satellite technology for messaging, and if I were to pinpoint a weakness, I’d say it’s a shame that these two aren’t yet integrated into one app.

  • Design score: 4.5/5
Garmin Fenix 9 Pro: features

(Image credit: Future / Julia Clarke)
  • Updated build
  • Better maps and LED torch
  • New training and adventure tools

First up, maps have been updated, and according to Garmin, they render 40% faster than on the 8 Pro and pan 30% faster when you’re searching for something up ahead. There’s a new perspective view added to the map orientation, which you can enable to better see what’s up ahead.

Also new are Stamina Zones, which use heart rate, pace and speed, and Hosler explains that they can be more useful than Heart Rate Zones for managing your effort. I’ve added them to the data screens in different activity modes, so I can see what zone I’m in and how much of my potential stamina I’m using. It’s more obvious in interval training, where I can see my zones dip and rise, but even on long plods it’s an interesting way to see how much gas I might have left in the tank at a current pace.

After an activity, I can view the top contributors to my Endurance Score (hiking for me), and see estimates of how long I should be able to run at a given pace: apparently over seven hours at my easy pace and nearly 20 minutes at max effort, which I’m yet to put to the test.

Garmin’s commitment to upgrading Rucking mode in recent years signals that this is an activity in ascendancy, and it now calculates better estimates of your energy expenditure rather than just being a way to catalogue different activities. The Fenix 9 allows you to set a calorie goal rather than distance or time, and to edit your pack weight mid-activity, which Hosler explains gives ruckers more accurate readings when they’re hiking uphill with water or rocks that they ditch for the descent. I often hike with a heavy pack, and now my activity report shows the difference between my calories burned through activity and the additional calories from the weight of my pack. This is mildly interesting, and could in theory change my fuelling strategy on a long thru hike.

A very fun – if non-essential – feature rolled out with the Fenix 9 and 9 Pro is called Garmin Epic, which lets you group workouts. When I heard about it in the press conference, I worried it might be similar to the gratuitous Adventure Journal in the Coros Nomad, but after testing it out, I genuinely love it. I gave it a quick test in Chamonix by grouping together all five hikes and trail runs I went on so I could see my cumulative distance, time on the trails and related health stats. But it’s also retrospective, so I’ve been able to make an Epic for last year’s trek to Everest Base Camp and finally see that entire, unforgettable trip as one adventure, from the map of my entire 11-day route to my total elevation gain. I can share my Epic with friends and family, but I can see the demand for Garmin to develop this into a video that users can share on social media.

As for connectivity, I have an active inReach subscription, so I’m able to signal for help from anywhere, but fortunately haven’t had to do so yet. This feature does rely on the Garmin Messenger app, and most of my friends and family are not on there, so this is an area where the Fenix lags behind the Apple Watch Ultra 3. In our conversations, Hosler was clear that he doesn’t consider this watch a true replacement for a satellite device like my Garmin inReach Mini 2, but more of a nice-to-have backup. LiveTrack has improved and now you can send a tracking link directly from your phone, which has good implications for urban runners as well as hikers.

And last but not least, I’d be remiss if I didn’t mention everyone’s favourite feature: the upgraded LED torch, which was being heralded by elite trail runners like Katie Schide, Tom Evans and Elsey Davis in Chamonix, who all said this was among their top Garmin features.

The Fenix 9 and 9 Pro have both added a green light option, which is better for night vision, though perhaps not quite as kind to your significant other when you’re looking for your running socks at 5 a.m. It may not be a substitute for a headtorch on a night run, but when your torch runs out of batteries, you’ll be glad you have your Garmin.

Add on to this all the features of the Fenix 8, and I can’t imagine what else you could possibly want from your watch.

  • Features score: 5/5
Garmin Fenix 9 Pro: performance

(Image credit: Future / Julia Clarke)
  • Reliable sensors
  • Lightning-fast maps
  • Better night vision

The Garmin Fenix 9 Pro has all the same sensors as its predecessor, and after testing the two out on the same run, I’m confident that the readings were all virtually identical (though Hosler did explain that GPS differences can be down to the two watches being on different wrists and pointing in different directions).

I prefer the smaller case size, but it does mean I’m sacrificing battery life. My battery lost 17% during my first two-hour hike, which was a little shocking, but going forward I’ve been using Max Battery mode for longer sessions, which uses energy-saving measures and means a little less accuracy from GPS.

In the last 10 days, I did four short hikes and runs in Chamonix, two spin sessions, a pool swim, a long trail run, a short treadmill workout and a base run. I ran the battery all the way down, had to charge it once, and now it’s at 61%. In regular use, where I’ll typically have it in activity mode for at least 30 minutes a day, I expect to have to charge it once a week, and for a multi-day trek, I’d expect to be charging it at least every other day. That said, if you compare the 51mm Fenix 9 Pro and 8 Pro side by side, the 9 Pro has a better battery life, so if you’re after endurance, size up.

The display is really easy to see in all light conditions, brilliant sunshine and torrential rain and is really responsive when I lift my wrist, although this naturally declines as the battery runs low.

I put maps to the test straight away in Chamonix, charting a course to a mountainside cafe on the Tour du Mont Blanc, and it all renders so quickly and smoothly I don’t even really have to stop and think about it. Though I didn’t find the perspective view that helpful on the trails, it was great for navigating through the busy streets of Chamonix, which often poses a challenge as my phone doesn’t work well there. On my first test, I tried going off-course to see if the maps would reroute me and it didn’t work, but I’ve since been able to chalk that up to Garmin rolling out the watch to the world at the very same time I was testing it, as when I got back to Scotland, I went out on a 12k trail run and found the rerouting to work perfectly.

he LTE connectivity means I can leave my phone in my backpack, and that is really quite refreshing. I did send my boyfriend a link to track me on my most recent trail run via Garmin Connect, and he was able to do so, if not with a fair amount of apathy. I’ve also sent some test messages to my few Garmin Messenger contacts; it’s easy to type directly on the watch, and the message sends in a flash.

I don’t love wearing a watch to bed, but thanks to the slimmer design, I’ve been able to test out the sleep tracking, and it’s really accurate. My subsequent training Readiness scores and Recovery predictions have been pretty in line in accordance with how I feel.

Also at night, the green light function on the torch has quickly rendered my beloved red light nearly obsolete, making it easier than ever to creep around the house without bumping into things and even read a book in bed without turning my lamp on.

  • Performance score: 5/5
Garmin Fenix 9 Pro: should I buy?

(Image credit: Future / Julia Clarke)Buy it if…

Your adventures take you into the wild

The Fenix 9 Pro has all the field tools for a backcountry adventure, and the technology to help get you out of there if things go wrong.

You’ve been running on a Fenix older than the 8 for years

Even the fabulous Fenix 7 pales in comparison to this one.

You’re a tech junkie with a big budget

All the best tech is on display here at an aspirational price.

Don’t buy it if…

You have the Fenix 8

The Fenix 8 is a cracking watch, and while we admit this is an upgrade, we can’t make a compelling case to switch

You’re saving up for a down payment on a house

This watch comes with some serious sticker shock

Also consider

Apple Watch Ultra 3

The best Apple Watch for adventuring, with dive computer functionalities and a titanium body.

Read our full Apple Watch Ultra 3 review

Coros Vertix 2

The best affordable Garmin Fenix alternative

Read our full Coros Vertix 2 review

How I tested

I’ve tested this watch from the French Alps to Scotland, over multiple hikes, trail runs and road runs, with a few indoor workouts on the bike, treadmill and in the pool thrown in. I’ve compared it with the Garmin Fenix 8 Pro and the Suunto Vertical 2 for good measure, and spent hours talking to Garmin experts and poring over the data in the watch and on the Garmin Connect app.

Categories: Reviews

I didn’t think any analog keyboard could outperform my beloved SteelSeries — but then I tried Razer’s new magnetic Huntsman

Fri, 09/04/2026 - 20:00
Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz: One-minute review

The Huntsman line has long been a distinguished marque in the gaming keyboard world, and now this new analog addition seeks to add Hall Effect technology to the formula.

It looks like a high-performing machine. The all-black colorway might be a little drab, but the floating keycaps and subtly brushed metal faceplate add touches of class. The bright RGB backlighting also helps to sell its gaming prowess.

(Image credit: Future)

What’s more, it’s built exceptionally well. That faceplate feels incredibly smooth and solid, while the keycaps are planted and have a great-feeling texture. At the same time, the V3 HE is also very light and compact — doubly impressive when you consider it includes quite a few navigation keys.

Razer’s Synapse software can be used to customize the inputs of the V3 HE. You’ll find plenty of analog adjustments here, and there’s even a handy visualizer to display key travel in real time, although this isn’t available for every analog setting. The software is easy to use and I didn’t experience any major issues during my time with it.

Once you’ve dialled in your preferred settings, gaming with the V3 HE is a joy. The keys are very tactile and provide plenty of feedback without feeling heavy. However, due to the height of the keycaps and the lack of wrist support, I found typing quite uncomfortable.

This is perhaps the major drawback of the V3 HE, along with its price, which is quite high for a keyboard lacking wireless connectivity. However, its gaming performance and build quality are to be admired, and might just make it worth the outlay.

(Image credit: Future)Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz review: Price and availability
  • $139.99 / £139.99 / AU$229.95
  • Preorders available now
  • Expensive for a wired keyboard

The Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz costs $139.99 / £139.99 / AU$229.95 and will be available later this year, but you can preorder it now. A mini 65% variant will also be available for $20 / £20 / AU$30 less.

It's undeniably expensive for a wired gaming keyboard. However, it’s still cheaper than some of its rivals, such as the SteelSeries Apex Pro TKL, another fantastic analog keyboard. This is easily one of the best analog keyboards I’ve tested. It also features an integrated OLED screen for a visually appealing way to access various settings and adjustments, and it can display certain in-game information as well.

If you’re looking for a decidedly more budget-friendly analog keyboard, you can’t do much better than the MonsGeek FUN60 Ultra. Not only is this much cheaper than the Huntsman, but it also performs very admirably and has multiple wireless connectivity modes to boot.

Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz review: Specs

Layout

TKL

Switch

Analog (Razer Hall Effect Magnetic)

Programmable keys

Yes

Dimensions

14.2 x 5.5 x 1.6 inches (361 x 139 x 40mm)

RGB or backlighting

Yes (customizable)

(Image credit: Future)Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz review: Design and features
  • Great build quality
  • Bright RGB lighting
  • Copious customization options

In line with Razer’s other products, the V3 HE looks like a premium product. I especially liked the floating keycaps and the brushed metal faceplate, which add elements of sophistication. The all-black colorway is a little austere, but the bright and customizable RGB backlighting does well to liven things up, especially since those aforementioned floating keycaps increase the illumination.

Equal to its appearance is the build quality of the V3 HE. Despite the plastic material, the chassis is incredibly solid, while that faceplate feels lusciously smooth. The double-shot PBT keycaps have a gratifying texture to them as well, and are as planted and as stable as you could wish for.

Another nice touch is the recessed USB port. This encloses the jack completely, adding security and creating a neater look. The included cable should prove long enough to accommodate most setups, and what’s more it’s braided, which is more common on the best gaming mice. This improves flexibility, although it’s thicker and seems more durable than those on said mice.

(Image credit: Future)

Despite the strong build, the V3 HE is also very light, which pleasantly surprised me. It’s also quite compact, yet still features some useful keys for navigation. And there are plenty of Fn shortcuts dotted around, including those for tweaking certain aspects of the V3 HE, such as the RGB, actuation point (between 0.1mm and 4mm), and Rapid Trigger sensitivity. Thankfully, these shortcuts are also labelled.

For further customizations, you’ll need to download Razer’s Synapse peripheral software. Alongside those mentioned above, you can adjust the Rapid Trigger sensitivity of upstrokes and downstrokes independently, map up to four inputs to a single key, select up to four keys to have a secondary function on their release, and decide which key takes priority when two are pressed at the same time (with numerous options to choose from). There are also a few pre-made profiles catering to certain game types and scenarios, as well as a remapping suite with a large selection of assignments at your disposal, including gamepad buttons, sticks, and triggers.

I was glad to see the inclusion of a visualizer that shows the travel of your presses in real time by filling up a bar. This bar is also marked with your currently set actuation point in millimeters, so you can see when you’ve passed it. It’s a shame there’s no visualizer for the Rapid Trigger function, given this can be a little tricky to comprehend. For the most part, though, Synapse is clearly laid out and easy to use.

(Image credit: Future)Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz review: Performance
  • Snappy and tactile
  • Comfortable and secure when gaming
  • Hard to type with

As with most Razer keyboards, the performance of the V3 HE is exemplary. The analog switches have plenty of tactility, being easy to press yet providing just enough resistance to allow for controlled presses; relative to other analog keyboards, I found it easy to hit certain actuation points. They also have a wonderfully springy response, which makes them feel snappy. But they’re quite clicky, too, with just enough dampening to prevent them feeling harsh.

The keycaps themselves are a boon when gaming, too. Their aforementioned texture not only feels great but should also help to prevent slips when things get sweaty. Prominent indentations improve finger security further, as well as helping you to avoid hitting the wrong key.

However, I found them less amenable to typing. Their sheer height means that even though the base of the V3 HE is reasonably thin, I still found myself having to angle my wrists upwards to an uncomfortable degree. I wish a wrist rest was included in the box like other Razer models, especially as Razer’s are some of the best in class thanks to their exceedingly plush padding.

Should I buy the Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz?Scorecard

Attributes

Notes

Rating

Value

Cheaper than some other premium analog keyboards, but a lot more expensive than others, too.

3.5 / 5

Design and features

The Huntsman looks sleek and is built incredibly well. It’s a shame there’s no wrist rest, though.

4.5 / 5

Performance

The analog switches are tactile and very customizable, but the tall keycaps make typing a chore.

4 / 5

Overall

The Huntsman V3 HE is a fantastic gaming keyboard with analog switches that perform as well as you could wish for. It would seriously benefit from a wrist rest, and it’s expensive compared to some others in the space, but its performance and build are matched by very few.

4 / 5

Buy it if…

You want great analog performance
I haven’t experienced many analog switches better than these, and their copious adjustments should please every gamer out there.

You prize build quality
The sleek floating keycaps are attractive, while the super solid yet super light and compact design is a marvel.

Don't buy it if…

You’ll be typing alot
I found the keycaps too tall to type comfortably with for long periods.

You want the best value
The V3 HE is expensive, especially when you consider its wired-only connectivity and TKL layout.

Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz review: Also consider

SteelSeries Apex Pro TKL Gen 3
Another high-performing analog keyboard, the Apex Pro also has the build quality to match the Huntsman’s. It’s more expensive, but it does at least come with a wrist rest, although it’s not the best example. Read our full SteelSeries Apex Pro TKL Gen 3 review.

MonsGeek FUN60 Ultra
If you’re looking to spend a lot less on an analog keyboard, look no further than the FUN60 Ultra. Not only is it surprisingly high performing, but it’s also seriously well made. And to cap it all off, it has multiple wireless connectivity modes. Read our full MonsGeek FUN60 Ultra review.

(Image credit: Future)How I tested the Razer Huntsman V3 HE Magnetic Tenkeyless 8KHz
  • Tested for a few days
  • Used for a variety of tasks
  • Lots of gaming keyboard experience

I tested the Huntsman V3 HE for a few days, using it for gaming, working, and general browsing. I used it with two different Windows 11 PCs.

I played games such as Counter-Strike 2, which offers a stern test for peripherals given its emphasis on quick and precise inputs. I also played S.T.A.L.K.E.R. 2: Heart of Chornobyl, which requires a broader use of the layout, so I could test how easy it was to use keys outside of those within the immediate vicinity of the WASD position.

I’ve been PC gaming for over a decade, and have used many different keyboards in that time. I’ve also reviewed a large number of them with various switch types, form factors, and price points.

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

LinkedIn (2026) review

Fri, 09/04/2026 - 11:52

With more than 1 billion registered members, calling LinkedIn popular might be an understatement. Virtually all business professionals know LinkedIn, and chances are they have an account.

What exactly is LinkedIn? It’s partly a business-oriented social networking platform and partly a job search platform. Users create profiles to showcase their professional acumen, connect with fellow industry professionals, and find job opportunities.

What are the pros and cons of using LinkedIn? What are its core features, and how does it fare against competitors? I’ve extensively tested the platform to answer these questions.

Read on to learn what LinkedIn offers and whether it’s your best choice for networking and job-hunting.

LinkedIn: Plans and pricing

LinkedIn is free for most users. Anyone can create an account, refine their profile, and connect with other professionals for free. However, LinkedIn offers premium subscriptions that unlock advanced features for individuals and businesses.

For individuals, LinkedIn Premium unlocks the ability to send direct messages to people you haven't yet connected with, see a complete list of accounts that view your profile, use extra search filters to find professionals, and get unlimited access to the LinkedIn Learning collection of video courses to build new skills.

There are four Premium tiers: Career, Business, All-in-One, and Company Page. For $40 per month, the Career plan lets you message 5 people you aren't yet connected with each month, see a complete list of who've viewed your profile, identify jobs your profile matches with, and unlock access to 25,000+ LinkedIn Learning video courses.

For $70 per month, Premium Business allows 15 monthly messages, unlimited LinkedIn profile browsing, and unlocks enhanced profile tools (e.g., a custom call-to-action button), plus everything available under the Career tier.

For $90 per month, Premium All-in-One takes things a step further with 30 monthly messages to accounts you aren’t yet connected with, run unlimited searches with custom filters, monthly ad credits, an AI assistant to help generate posts, and daily AI-driven recommendations to find potential clients.

For a pricey $100 per month, Premium Company Page offers specialized tools for businesses running dedicated LinkedIn pages. For instance, it unlocks the ability to add a call-to-action button (e.g., Contact Us) to a business page, use a dynamic cover image or add a slideshow at the top of your page, display client testimonials and certifications, and add a verification badge with a gold LinkedIn logo to build credibility.

LinkedIn also offers business prospecting and relationship-building tools for businesses under the Sales Navigator package. There are three Sales Navigator tiers: Core, Advanced, and Advanced Plus.

The Core plan, for $120 per month, is designed for individual sellers. It unlocks unlimited LinkedIn searches with 50+ search filters to pinpoint ideal business prospects, 50 messages to accounts outside your network per month, and the ability to save up to 10,000 leads and custom filter setups.

For $160 per month, Sales Navigator Advanced unlocks team collaboration with saved searches, shared custom lists, and insights; aggregated engagement data; AI-powered insights to improve buyer conversations; and the ability to import target account lists via CSV files, alongside everything in the Core plan.

The Sales Navigator Advanced Plus plan takes things further with enterprise-grade security features (e.g., Single Sign-On) and direct integration with CRM platforms like Salesforce. This tier has no standard pricing, so you’ll need to contact the sales team for a quote.

If you pay annually, LinkedIn offers discounts of up to 25% compared to paying month-to-month. Yet, that doesn’t change the fact that LinkedIn’s plans are pricey. Although the premium plans offer valuable features, you’ll need some clear justification for spending upwards of $40 per month, so I’ll advise only subscribing if you’re dedicated to using LinkedIn as a career advancement tool, not just a casual networking site.

LinkedIn: Setup

LinkedIn’s setup process is as simple as it gets. Anyone can create an account and fill out their profile.

Anyone can also create a business page and fill it out with details. Similarly, getting a subscription is easy: choose a plan, pay, and access the newly unlocked features.

LinkedIn: Features

For an average user, LinkedIn is a simple professional networking site, but there’s much more under the hood.

Sure, it’s important to create a profile and fill it out with details like your current and past professional roles, educational background, and core skills.

LinkedIn uses these details to suggest like-minded professionals to connect with, and connections can help you snag valuable professional opportunities.

(Image credit: LinkedIn )

There’s a news feed where you can scroll through posts from your network. People often share professional milestones like new jobs, new certifications, and academic achievements. The news feed is also where many users post valuable opportunities that you can snag.

Just like on other social media platforms, you get notified about posts and mentions from your network. LinkedIn also notifies you about jobs you may be interested in.

You can send connection requests to other profiles and, if accepted, you’ll see their posts and can message the profiles without limits. But for profiles you aren’t connected to, messaging is restricted.

A premium subscription lets you message such profiles, varying from 5 messages per month under Premium Career to 30 per month under Premium All-in-One. People often use LinkedIn to pitch products to potentially interested parties, and a Premium subscription comes in handy in this case.

LinkedIn also restricts the number of profiles you can view, but a Premium subscription removes the restrictions. Note that LinkedIn often alerts people when you view their profile, so they’ll often know if you did that. Similarly, you’ll get notified about who views your profile, although not the complete list unless you’re a Premium subscriber.

A Premium plan has other benefits, like unlocking an AI assistant that helps you write posts, refine your LinkedIn profile, and find opportunities. It also provides full access to LinkedIn Learning, a suite of 25,000 video courses on broad topics like data science, data analysis, product development, web design, creative writing, and cybersecurity. For professionals looking to upskill and broaden their knowledge, LinkedIn Learning is a goldmine.

Under a Sales Navigator subscription, LinkedIn offers advanced tools for businesses seeking potential customers. It lets you find ideal customer profiles with comprehensive search filters, provides AI-powered recommendations to improve buyer conversations, and integrates directly with customer relationship management (CRM) platforms like Salesforce. These are valuable tools for businesses, albeit pricey.

LinkedIn: Ease of use

LinkedIn is quite easy to navigate when focused on its core features. From creating an account to filling out your profile, building connections, and interacting with your network, these basic parts work easily.

However, navigation can get complex when using advanced features like search filters, ad management, and page analytics. These advanced features have a substantial learning curve, but you can get used to them with time.

I like that LinkedIn offers both a web interface, a native desktop app, and mobile apps on iOS and Android. I could access it from whichever medium was most convenient at specific times, and the same applies to other users.

LinkedIn: Support

LinkedIn offers extensive support resources for both free and paid users. The LinkedIn Help Center contains detailed guides and info for every feature you’ll encounter on LinkedIn. Feel free to use the search button to find a solution to your problem in this Help Center.

For direct support, you can contact LinkedIn’s support team via live chat or fill out a support ticket and wait for an email response. LinkedIn offers phone support only for Premium or Sales Navigator subscribers, understandably because of the steep fees they pay for subscriptions.

This phone support is available only in English, while live chat support is available in English, French, German, Portuguese, Spanish, Dutch, and Italian.

LinkedIn: The competition

When it comes to professional networking, LinkedIn easily dominates the competition. No other site offers the widespread user base and potential business connections you can get on LinkedIn. It’s the golden spot where professionals create profiles, promote their services, and build connections.

However, LinkedIn has serious competition when it comes to finding jobs. Rival platforms like ZipRecruiter and Indeed also help everyday job-seekers find the best opportunities in their industries.

There’s also Glassdoor, which facilitates recruitment and also offers a platform for job-seekers to learn major details about companies (like salary data, interview processes, benefits, and even workplace photos).

LinkedIn: Final verdict

Do you want to expand your professional network and meet the right people that’ll connect you to better opportunities? LinkedIn is unbeatable here. You’ll find the broadest network on LinkedIn and can snag opportunities or sell products to professionals.

In terms of the job searches, it's very easy to use, and the ability to upload your CV and use Easy Apply is a nice - if occasionally impersonal - touch. I found broad job opportunities on the platform. However, I do think it faces stiff competition from the likes of Indeed and Glassdoor in this area.

Subscriptions cost also more than I'd like. Premium plans are quite pricey, but LinkedIn still offers great value even for free users.

For more picks, we've tested the best recruitment platforms and the best job sites.

Categories: Reviews

ZipRecruiter job recruiter site (2026) review

Fri, 09/04/2026 - 11:36

ZipRecruiter is a popular job marketplace used by both candidates and employers. It’s known for its straightforward model, where candidates upload a resume and get matched with fitting jobs from a large employer pool.

For employers, posting an available role on ZipRecruiter gets that posting syndicated to over 100 other job boards, helping them find candidates faster.

How does ZipRecruiter compare to competitors? What are its pros and cons? Is it your best option? I’ve extensively tested and reviewed the platform to answer these questions. Read on to learn what ZipRecruiter offers.

ZipRecruiter: Plans and pricing

ZipRecruiter is completely free for job candidates. However, employers posting roles on ZipRecruiter need a subscription plan. The Standard plan costs $299 per month, unlocking AI job matching and the ability to post a limited number of jobs.

For $419 per month, the Premium plan unlocks more job postings and access to ZipRecruiter’s vast 56-million-resume database.

For $719 per month, the Pro plan allows unlimited access to ZipRecruiter’s resume database, paid promotions for job postings, and direct integration with various applicant tracking systems, making hiring smoother.

(Image credit: ZipRecruiter)

ZipRecruiter’s subscription prices are quite high, and the short 2-to-4-day free trial periods don’t help. However, the prices can be worthwhile for large enterprises seeking to fill strategic roles quickly, as ZipRecruiter broadcasts jobs to a massive candidate pool, and you can search its vast resume database to find your exact matches. However, for small and mid-sized businesses, I wouldn’t advise getting ZipRecruiter’s paid plans.

You can check out ZipRecruiter by clicking here.

ZipRecruiter: Setup

ZipRecruiter has an easy setup process, both for candidates and employers. Candidates can quickly sign up, create a profile, and upload resumes.

With a resume uploaded, ZipRecruiter’s AI system analyzes your resume to match it with suitable jobs. You can see those jobs right on your dashboard, and new opportunities will be emailed over time. If you find the right job, you can apply right on ZipRecruiter and await the employer’s response.

The setup process is similarly straightforward for employers. Sign up, select a subscription plan, and pay. Then, you can begin posting job roles and scouring through ZipRecruiter’s vast database for candidates.

ZipRecruiter: Features

At its core, ZipRecruiter is a hiring marketplace that matches job candidates with employers. It’s designed for both parties to get exactly what they want, while being free for job candidates but a paid platform for businesses seeking to hire candidates.

ZipRecruiter uses an advanced AI-assisted system to scan candidates’ resumes and match them to the right employers’ job listings. The moment a resume is uploaded, the candidate starts getting matched to suitable offers. The same occurs when an employer posts a new job role: the system starts to find ideal candidates who can be contacted for further interviews.

When a candidate finds a suitable job, applying is as easy as clicking a button to send your resume to the employer. But sometimes, you may be required to answer some screening questions or be directed to an external website to complete the application. You can apply for multiple jobs, and everything will be monitored from your central ZipRecruiter dashboard. You’ll see every job you’ve applied for and track your progress in one place.

(Image credit: ZipRecruiter )

Employers can also manage all processes, including reviewing resumes, tracking candidates’ status, and managing applicant flows from a central dashboard. On the Pro subscription tier, ZipRecruiter connects directly to the employer’s applicant tracking system (ATS), enabling them to manage even more of the application process without leaving ZipRecruiter.

I liked a feature I found on ZipRecruiter: an AI tool that helps job candidates to polish their profiles. With this tool, I used AI to help draft a new resume from scratch and to refine an existing one to fit a specific job. It’s generally good advice to tailor your resume for each job application, but this can be stressful when applying to many jobs. An AI tool saves the day by helping refine your resume for every role, but always review the resume afterwards and ensure it doesn’t sound too robotic. Recruiters already complain about dealing with excessive AI-generated resumes, so you shouldn’t be adding to their problems.

I also liked ZipRecruiter’s email and SMS alerts sent to candidates about new job matches. As the algorithms constantly search for roles based on your resume, you’ll receive these alerts about new opportunities you can quickly apply for. Think of ZipRecruiter now as an AI-powered assistant that’s constantly scouring new job roles for you.

For employers, there’s a relatively new Smart Outreach feature, unveiled in June 2026. This feature uses AI to convert job descriptions into personalized messages for employers to send to fitting job candidates. This way, an employer wouldn’t just be reaching out to a candidate about a possible job, but would do so with a compelling message that’ll encourage the candidate to consider the offer.

All in, ZipRecruiter does a good job of matching job candidates to available opportunities. If you need a job, you can sign up for free, get matched to fitting roles, and apply at the click of a button. If you’re an employer, you can post jobs to both ZipRecruiter and 100 other job boards at the click of a button, get matched to the right candidates, and contact them easily. However, ZipRecruiter isn’t free for employers; the subscription plans are pricey, ranging from $299 to $719 per month.

ZipRecruiter: Ease of use

As I’ve hinted at, ZipRecruiter is a user-friendly platform. During my extensive testing of ZipRecruiter, both as a job seeker and as an employer, I didn’t find noticeable issues navigating the platform.

From signing up to uploading resumes, posting jobs, getting alerts, and navigating mock interviews, the processes felt very straightforward.

(Image credit: ZipRecruiter)

I like that job candidates can use ZipRecruiter’s Job Search mobile app to find opportunities on the go.

Instead of opening a web browser each time you need to scour job opportunities, you can just open your smartphone and do that conveniently. This app lets you apply for jobs at the click of a button, and you'll receive an instant notification when an employer views your application.

However, for employers, a web browser is the primary way to use ZipRecruiter. There’s no app that lets you post jobs, review resumes, and manage applications on the go.

ZipRecruiter: Support

ZipRecruiter provides decent support for both candidates and employers. But given that employers foot the bill with expensive subscription plans, support resources lean more toward them.

First, there’s a Help Center filled with detailed user guides and answers to frequently asked questions. Maybe you want to know how to update your password, see all your saved jobs, or create a job alert; the Help Center answers your questions in detail.

If you need further support as a candidate, you can fill out a form on ZipRecruiter’s support page and await an email response. This response comes within 24 to 48 hours, or more in some cases.

Employers have their designated ZipRecruiter Help Center filled with detailed user guides and answers to frequently asked questions. Maybe you want to know how to add notes to a candidate’s profile, create a custom auto-reply message for applicants, or set screening questions for a job role; you’ll get detailed answers in the Help Center.

For further support, employers can contact ZipRecruiter via email, telephone, or live chat. Instant answers are available via telephone and live chat, but this isn’t available for candidates, understandably, because employers pay substantial subscription fees and deserve more bang for their buck.

ZipRecruiter: The competition

ZipRecruiter fares well against the competition. It’s one of many job search sites available, with major competitors like Indeed, Monster, and LinkedIn.

ZipRecruiter stands out with its job post syndication, as a post made on ZipRecruiter automatically gets broadcast to 100+ other job boards, widening the potential applicant pool.

The AI-assisted candidate matching system also makes ZipRecruiter stand out, although rival job sites are increasingly implementing similar systems. It helps candidates find the right jobs quickly and helps employers meet the right candidates without much strain.

ZipRecruiter: Final verdict

ZipRecruiter is a good option for proactive job candidates and employers. It lessens the time candidates spend on finding jobs and employers spend seeking the right candidates.

The matching system helps link the right talent to the right opportunities, quickly and conveniently.

My main complaint is the pricey subscription plans for employers, so I advise only large businesses to use ZipRecruiter, not small and medium-sized businesses with limited budgets.

For more picks, we've tested the best recruitment platforms and the best job sites.

Categories: Reviews

I spent a very boring week with the Google Pixel 11 Pro XL — and I loved every second of it

Fri, 09/04/2026 - 10:39
Google Pixel 11 Pro XL: Two-minute review

The Google Pixel 11 Pro XL, like the rest of the new Pixel 11 phones, doesn't offer much in terms of huge upgrades over the Pixel 10 line. The Pixel 11 Pro XL's design is only slightly altered versus that of the Pixel 10 Pro XL, with a new all-glass camera bump and an LED light in place of the temperature sensor that I'm convinced no one ever used anyway.

The new color options are fun, including the matte black, despite yours truly being bored of black phones.

Inside the 11 Pro XL is Google's new Tensor G6 processor. Storage options start at 256GB, then double to 512GB and 1TB. With the base model doubling in storage from last year's 128GB entry, Google didn't lower the price to match. Instead, you're going to pay $100 / £80 / AU$150 more than last year for the entry-level XL.

Not only does it cost more to buy a Pixel phone, but Google also dropped the base model's memory from 16GB to 12GB (you'll get 16GB if you choose the 512GB or 1TB storage variants). It's unclear how much of an impact this has on the overall performance, but Google says it's made optimizations to get more out of less memory.

The Pixel 11 Pro XL's cameras are fantastic, as usual. There's a new Magic Capture mode that takes the guesswork out of recording video or snapping pics of precious moments, and is surely something parents will use a lot. However, 120x Pro Zoom is more of a parlor trick than something useful. I found that, after 30x, you're not really getting good results.

The Pixel 11 Pro and Pixel 11 Pro XL are nearly identical phones, with the XL having a larger footprint, battery, and display. As such, virtually everything I said about the 11 Pro in its review applies to the 11 Pro XL. Be sure to read my Google Pixel 11 Pro review to get a full picture of what to expect from either phone.

Google Pixel 11 Pro XL: Price and availability
  • Starts at $1,299 / £1,279 / AU$2,099 for 256GB + 12GB RAM

Google's Pixel 11 Pro XL was announced in mid-August 2026, alongside a revamp of the Pixel 11, Pixel 11 Pro and Pixel 11 Pro Fold. The new line started shipping on August 20.

Like the Pixel 11 Pro, the XL version is available in Canyon, Olive, Fog, and Obsidian. There's no longer a 128GB storage option, with Google instead bumping up the starting storage amount to 256GB. Other storage options include 512GB and 1TB. The 256GB comes with 12GB of memory — a downgrade from last year's equivalent — while the rest of the portfolio has 16GB.

Google kept the price of the 256GB model the same as last year — $1,299 / £1,279 / AU$2,099 — effectively raising the price of the 11 Pro XL by $100 / £80 / AU$150. The 512GB and 1TB models are $1,419 / £1,399 / AU$2,299 and $1,649 / £1,629 / AU$2,649, respectively.

The same base-model price hike happened across the entire Pixel 11 lineup and is becoming commonplace industry-wide. Smartphone makers like Apple, Samsung, and now Google seem to have adopted the same pricing approach, with the Pixel 11 Pro XL priced to match the Samsung Galaxy S26 Ultra.

Last year's iPhone 17 Pro Max still starts at $1,199 / £1,199 / AU$2,149. However, that's likely to change on September 9 when Apple announces the iPhone 18 line; price increases seem inevitable.

  • Value score: 3 / 5
Google Pixel 11 Pro XL review: Specs

Here's a breakdown of the Google Pixel 11 Pro XL's key specs:

Dimensions:

162.6 x 76.2 x 7.6mm

Weight:

226g

Display:

6.8-inch Super Actua display

Resolution:

1344 x 2992

Refresh rate:

120 Hz

Peak brightness:

3,600 nits

CPU:

Google Tensor G6

RAM:

12GB, 16GB

Storage:

256GB, 512GB, 1TB

OS:

Android 17

Cameras:

50MP main, 48MP ultra-wide, 48MP telephoto with 5x optical zoom, 120x Pro Zoom

Selfie Camera:

42MP

Battery:

5,115mAh

Charging:

45W wired, 25W wireless

Colors:

Canyon, Olive, Fog and Obsidian

Google Pixel 11 Pro XL review: Design

The Google Pixel 11 Pro (left) alongside the Google Pixel 11 Pro XL (right) (Image credit: Future)
  • Nearly identical design to the Pixel 10 Pro XL
  • Camera bar is all glass
  • Obsidian (matte) looks great

You wouldn't have to try very hard to convince me that Google recycled last year's Pixel 10 Pro XL design with the Pixel 11 Pro XL. The two phones are nearly identical, with the biggest noticeable differences being an all-glass camera bump and new colors.

I've been using the matte black model, or Obsidian (matte) as Google refers to it, and I'm obsessed. Black phones are boring, sure, but the matte finish on every single surface of the 11 Pro XL looks really nice.

There's a new scratchproof coating on the display glass that's — surprise! — supposed to make it very hard to scratch. And while I haven't been gentle with the 11 Pro XL over the last week or so, I haven't purposely tried to scratch the screen, and I don't plan on doing so.

(Image credit: Future)

The 11 Pro XL measures 162.6 x 76.2 x 7.6mm and weighs 226g. On the right side is a volume rocker with a sleep/wake/Gemini button just above it. Other than those buttons and a USB-C port on the bottom, the Pro XL's exterior is unblemished. It'll survive an accidental splash or two thanks to its IP68 rating.

  • Design score: 4 / 5
Google Pixel 11 Pro XL review: Display

(Image credit: Future)
  • 6.8-inch Super Actua panel
  • 120Hz refresh rate
  • Smooth, bright, and vivid

If you pull up Google's phone comparison tool and look at the Pixel 11 Pro XL's screen compared to the 10 Pro XL, you'll be hard-pressed to find many differences. It's still a 6.8-inch Super Actua display with a resolution of 1,334 x 2,992 and a refresh rate of up to 120Hz.

There's that new anti-scratch coating I previously mentioned, along with a boost in HRD and peak brightness. Peak brightness now maxes out at 3,600 nits and HDR at 2,400 nits, up from 3,300 and 2,200, respectively.

The display looks sharp and is easily viewable outside on bright days. The OLED panel does a great job with both dark and bright colors, making it easy to feel as immersed as you can on a phone.

I appreciate the larger display of the Pro XL over the Pro's smaller panel, but that's a matter of personal preference. Both are great.

  • Display score: 5 / 5
Google Pixel 11 Pro XL review: Software

(Image credit: Future)
  • HiLight needs a rethink
  • Proactive Assistance is missing in action
  • Rambler is just too cool

The Pixel 11 Pro and Pro XL have the same software tricks. Android 17 is preinstalled and brings with it many Gemini features.

You can read my Google Pixel 11 Pro review for a more thorough take on the software features found in this year's crop of the Pixel Pro models, but the gist of it is this: Proactive Assistance is still something I've yet to see in action. I haven't seen a dish recommendation at a restaurant, and the conversations I've had in various apps have yet to trigger any sort of Gemini suggestion.

HiLight, a new notification light that takes the place of the temperature sensor in the camera bump, is pretty pointless in its current form. It only works during hands-free conversations with Gemini or when you receive an incoming call — when your phone is face down.

Rambler, the Pixel's new voice dictation tool, feels like a step forward for voice dictation as a whole. Talk how you normally would, make mistakes, correct yourself, and stammer through your thoughts, and Rambler will make sense of it all. It's pretty great.

  • Software score: 4 / 5
Google Pixel 11 Pro XL review: Cameras

(Image credit: Future)
  • 50MP main camera
  • 48MP ultra-wide
  • 48MP telephoto with 5x optical zoom

The Pixel 11 Pro XL boasts three rear cameras: a 50MP main, 48MP telephoto with 5x optical zoom, and a 48MP ultra-wide.

I appreciate the larger screen on the 11 Pro XL when taking pictures simply because it's a larger viewfinder, and it makes framing shots easier.

One thing I noticed when testing the 11 Pro XL's 120x Pro Zoom feature is that its AI rendering powers are hit and miss.

Several photos have obvious AI-like qualities to them. For example, the smokestack I took various pictures of at different zoom levels suddenly has two ladders — one white, one black — the closer the zoom gets.

FutureFutureFutureFutureFutureFuture

Another photo of several American flags on top of a building looks like a really bad Photoshop job, with strips placed where the stars should be, and other blatant mistakes.

(Image credit: Future)

I also used Pro Zoom to capture some pretty cool pics of the 96% lunar eclipse, but I'm not sure I trust what I see. Nonetheless, they look pretty darn cool.

FutureFutureFuture

Interestingly, to me, the photos I captured with the 11 Pro XL didn't have the same flat look as those I snapped with the smaller 11 Pro. I'm honestly not sure what's caused that difference; I took nearly identical pictures on both phones.

For my full thoughts on the Pixel 11 Pro's new camera setup, including the impressive new Magic Capture feature (which automatically takes high-quality stills while you're shooting a video), be sure to read my Google Pixel 11 Pro review.

  • Camera score: 4 / 5
Google Pixel 11 Pro XL review: Camera samplesFutureFutureFutureFutureFutureFutureFutureFutureFutureFutureGoogle Pixel 11 Pro XL review: Performance

(Image credit: Future)
  • Google Tensor G6 chipset
  • 12GB or 16GB of memory
  • 256GB starting storage

On paper, the Pixel 11 Pro XL matches a mid-range phone in the performance department. Its benchmark performance isn't impressive; it beats out three-year-old processors but falls short of current flagship models.

For example, the Pixel 11 Pro XL's Geekbench 6 single- and multi-core scores are 2,721 and 7,305, respectively. The same test on the Samsung Galaxy Z Fold 8 produces results of 2,625 and 8,430. So, the Pixel 11 Pro XL wins on single-core performance, but there's a notable drop-off in multicore, which is indicative of performance during resource-heavy tasks.

But benchmarks aren't the complete story. In my daily use with the Pixel 11 Pro XL, I haven't run into a single performance-based issue. Apps open without delay, and bouncing between multiple apps while streaming a video in picture-in-picture mode or listening to music is a process the Pixel 11 Pro XL handles without issue.

The Pixel 11 Pro XL uses Google's Tensor G6 chipset, and as previously mentioned, it comes with 12GB or 16GB of storage. Like the Pixel 11 Pro review sample, I received a 512GB/16GB sample of the Pixel 11 Pro XL. As such, I can't vouch for what the experience is like on the base model.

Google Pixel 11 Pro XL benchmark scores

Geekbench 6 single-core

2,721

Geekbench 6 multi-core

7,305

3DMark Wild Life Extreme Stress Test best

3,251

3DMark Wild Life Extreme Stress Test low

2,535

3DMark Solar Bay

Would Not Run

  • Performance score: 3.5 / 5
Google Pixel 11 Pro XL review: Battery
  • 5,115mAh battery
  • 45W wired charging
  • 25W wireless charging

The Pixel 11 Pro XL comes with a 5,115mAh battery and is capable of wired charging up to 45W. Support for the Qi2.2 standard also brings 25W wireless charging to the phone; Google claims 30 hours of battery life, and my experience has matched that with regular use.

My days start at 6am and usually end around 10pm, with lots of messages sent in several apps — Slack, BlueBubbles, Facebook Messenger, Instagram, etc. — too much doomscrolling, and plenty of interacting with Gemini.

When connected to a 65W charger, the Pixel 11 Pro XL went from completely drained to 25% in 15 minutes. At 30 minutes, it was at 49%, and it took 1 hour and 32 minutes to fully charge.

I experienced the same charging cadence with a 45W charging adapter, which I suppose is to be expected. During both of those tests, I monitored the charging output and never saw it go above 28W.

However, there's a new Extreme Charging Mode that you can enable in the quick settings panel. When running the same charging test, going from 0-100%, the Pixel 11 Pro XL charged much, much faster.

At the 15-minute mark, it was at 38%; at 30 minutes, it was at 73%; at 1 hour and 3 minutes, it was fully charged. I recorded a peak charging speed of 38W with Extreme Charging Mode turned on, which limits background activities while your battery is below 50% to increase charging speeds.

I would love to see a permanent toggle to always have Extreme Charging Mode turned on, instead of having to enable it every time you want to use it. Hopefully that's something Google implements in the future.

  • Battery score: 4 / 5
Should you buy the Google Pixel 11 Pro XL?Google Pixel 11 Pro scorecard

Attributes

Notes

Rating

Value

Double the storage but half the memory for $100 / £80 / AU$150 more? Boo!

3 / 5

Design

A format Google keeps refining.

4 / 5

Display

Smooth, bright and vivid.

5 / 5

Software

Gemini and Android 17 make a great team.

4 / 5

Cameras

A trio of cameras make it easy to take great pics.

4 / 5

Performance

You’re not going to notice any hiccups despite low benchmark scores.

3.5 / 5

Battery

All-day battery life with impressively fast charging.

4 / 5

Buy it if...

Your current Pixel is older than three years
There's almost no reason to upgrade from a Pixel 9 or Pixel 10, especially if you're coming from a Pro XL variant. But if you have an older phone that's starting to show signs of age, then the Pixel 11 Pro XL is a great choice.

You're an avid Gemini user who wants more, sooner
Everywhere you look on a Pixel, Gemini is waiting. The same can be said about almost all Android phones, but Gemini and other bleeding-edge Android features typically make their debut on the latest Pixel before trickling down to other devices.

Don't buy it if...

You have a smartphone released in the past two years
There's really no reason to jump up to a Pixel 11 Pro XL if your phone is less than three years old — especially if it's a Pixel phone. This year's hardware is more of a software bump, and some of these features may very well make their way to older Pixel phones. Staying on the sidelines this time around is A-OK.

Google Pixel 11 Pro XL review: Also consider

Google Pixel 10 Pro XL
Google's Pixel 10 Pro XL is practically the same phone as the 11 Pro XL, with a slightly new design and new software tricks. Sure, there's a new processor, a bump in performance, and faster charging, but if you want to save some cash and get virtually the same experience, then last year's model is a good pick.

Read our full Google Pixel 10 Pro XL review

Apple iPhone 17 Pro Max
Android fans may get upset, but there's something to be said about joining the blue bubbles gang. The iPhone 17 Pro Max is a solid choice, offering a robust camera and reliable performance.

Read our full iPhone 17 Pro Max review

How I tested the Google Pixel 11 Pro Why you can trust TechRadar

☑️ 100s of smartphones reviewed
☑️ 15 years of product testing
☑️ Over 16,000 products reviewed in total
☑️ Nearly 200,000 hours testing tech

After wrapping up my Pixel 11 Pro review, I switched to the Pixel 11 Pro XL. The phones are nearly identical, save for the latter's larger size, and as such, I didn't spend as much time with the Pro XL as the standard Pro.

That said, I went through the same testing process, just in a condensed timeframe. I chatted with Gemini, took plenty of photos, texted, scrolled, and even gamed a bit.

In other words — I lived with the phone, treating it as my daily driver.

Read more about how we test here.

  • First reviewed: August 2026
Categories: Reviews

I've watched The Grand Tour's return to Prime Video and although I miss Clarkson, May and Hammond, you can't deny the charm of our new trio — especially Francis Bourgeois

Fri, 09/04/2026 - 01:00

When I spoke to new presenting trio James Engelsman, Francis Bourgeois and Thomas Holland about their debut on The Grand Tour, I admitted that I am an absolute dunce when it comes to cars. Are they prepared to impart wisdom to idiots like me? "Well, did you enjoy it [the series]?" Engelsman asks me. When I reply yes, he says "That's all that matters."

In a nutshell, this is what I think we need to keep coming back to now that Prime Video has revamped its hit car show. Not everybody is going to be thrilled with the changes, and understandably so — original presenters Jeremy Clarkson, James May and Richard Hammond are the absolute lifeblood of the concept. But at the end of the day, no single person can sustain a light entertainment show forever.

And light entertainment The Grand Tour is. None of the core sections of the show have been altered, with our new trio still galivanting across the world in expensive supercars, or doing something stupid like sticking parts of a classic school bus to a microcar. If chaos is what you're tuning in for, it hasn't gone anywhere.

Neither, in a way, have the original trio. Amazon has shrewdly been able to include their spirit and legacy in a way that doesn't overshadow the authority of the new presenters (no spoilers here, though), and the new six episodes feel like the perfect homage to everything that has come before.

Do I miss Clarkson, Hammond and May having the run of resources and Amazon budget? Without question. But just because something has changed doesn't inherently make it worse.

Don't write our new hosts of The Grand Tour off as mere 'content creators'

(Image credit: Prime Video)

If, like me, you're chronically online but don't fall into any type of niche content, you might only recognize one of the three faces above. Bourgeois went viral on TikTok for his (frankly, nerdy) love of trains, but the internet was won over by his wholesome charm. As luck would have it, his love and understanding of cars is almost as strong as a high-carbon steel train track.

But our other two presenters shouldn't be overlooked. Engelsman and Holland are the creators of popular car YouTube channel Throttle House. Fans have dubbed it "the spiritual successor to Top Gear for years," and with a similar blend of fun and smarts, it's easy to see why. They even had Hammond on in a cameo role years before any of the TV stuff took off.

For the trio to be asked to take over feels somewhat written in the stars, particularly as more traditional media formats are actively looking to capitalize on the success of online influencers. However, TV and content creation are two entirely different disciplines, and having an active social media presence doesn't automatically mean that you'll make a great presenter.

Yes, there are bouts of awkwardness, stilted banter and hesitant connection, but there's a great deal of promise in the three as a newly-formed team. There's an underlying ease between them that proves why they were brought together, and their expansive love for all things transport is all the glue that they really need. In time, they'll clearly be seasoned, and I don't think they'll need much help to get them to that level.

Yes, I still miss the original team — I can't help it

(Image credit: Prime Video)

I'm desperate to talk about — but won't, at least here — the ways that Prime Video has incorporated the essence of Clarkson, Hammond and May into The Grand Tour's new episodes, but you're just going to have to see it to believe it. It's a mixture of passing the baton onto a new generation, and knowing there's a huge chance that viewership will drop if they're not somehow included.

The meat of the show, from the global car trips to sheer stupidity, acts as a constant, regardless of who is presenting. Our new boys might not be as hilariously mean to each other as the originals were, but the spirit of just being idiots on the telly hasn't died out. Who is involved here almost doesn't matter, because you're so wrapped up in the possibility of that being you. I hate driving, but I still want to try out a supercar on the palm tree-laden streets of Malaysia.

Ultimately, The Grand Tour's revamp is as successful as it ever could have been. Nothing has been compromised, yet everything subtly feels different... in a positive way. A particular shoutout must go to Bourgeois, who I think is easily the strongest of the bunch. His combination of deep-dive intellect and soft-spoken delivery will make him the James May of tomorrow, and I can't help but feel immensely proud of that.

Categories: Reviews

I loved the minuscule weight of this Logitech gaming mouse — but I was even more surprised by its price

Thu, 09/03/2026 - 19:00
Logitech G305 X Superlight: Review

The Logitech G305 X Superlight is a lightweight wireless gaming mouse. Logitech is no stranger to this category, but this addition to its G305 line aims to keep things relatively simple while including some surprisingly advanced features relative to its price point.

It has quite a basic appearance, with a lack of branding or any odd contours. There’s an RGB light strip that looks too small to be effective, but it manages to brighten up the G305 X Superlight to an impressive degree — especially the black model — thanks to its wealth of animation customizations.

(Image credit: Future)

The overall build quality is great, too, adhering to Logitech’s typically high standards. Despite how light the unit is (it weighs just 61g), it’s surprisingly solid, lacking any flimsiness or hollowness. The plastic body is smooth with just a hint of texture that feels tactile and just as premium as the best gaming mouse shells. Furthermore, all of its buttons and the scroll wheel are solidly planted without a hint of play.

To customize the inputs (as well as the aforementioned RGB lighting) of the G305 X Superlight, you’ll need to download Logitech’s G HUB software. In one section, you’ll find five configurable DPI sliders that you can set to a range between 100 and 44,000 — you can then cycle through these using the dedicated button on the G305 X Superlight, which is thankfully placed on top rather than underneath, making it easy to access. You can save your five settings as a custom preset or select from several provided by Logitech, catering to various game types and scenarios — something I haven’t seen much in peripheral software.

In another section, you can reassign all of the G305 X Superlight’s buttons. There are a large number of assignments available, ranging from a multitude of system and media commands to keyboard inputs and mouse adjustments. You’ll also find custom actions for Discord, Overwolf, OBS, and Streamlabs Desktop. What’s more, a second mapping layer is available via Logitech’s G-shift feature, which is accessed by holding down a button of your choosing.

(Image credit: Future)

However, there aren’t any performance-related tweaks for the G305 X Superlight; you can’t alter the lift-off distance or debounce times, nor can you enable motion sync or angle snapping, for example. About the only feature in this area is what Logitech calls BHOP mode. This is designed to prevent accidental knocks of the scroll wheel from registering by ignoring the first scroll event unless a second is performed within a certain time frame (adjustable between 100ms and 1000ms).

Such omissions didn’t spoil my time gaming with G305 X Superlight, though. Its low profile suited my grip style, and the rear hump was just about prominent enough to sit comfortably in my palm without being obstructive. Also, I could grip the mouse securely with my thumb and ring finger during lift-offs thanks to the sidewalls that narrow as they reach the bottom, making up for the lack of grip tape or embossing.

Maneuvering the G305 X Superlight is easy thanks to that aforementioned lightness, too. And despite the relatively small skates, swipes were smooth and frictionless on my mouse pad. This was the case even when I had the USB cable attached — a surprise given it isn’t braided as many gaming mice cables are. Although it created some noticeable drag, it’s still lighter and more malleable than your average rubber cable.

(Image credit: Future)

As for the mouse buttons, I appreciated the ergonomics of their downward slant and subtle indentations. Clicks are solid yet snappy, with a good amount of feedback and a surprisingly deep travel. This means spamming is relatively effortless while accidental taps are unlikely to register. The side buttons are easy to reach and actuate, too.

The scroll wheel is easy to flick thanks to its light notching, yet there’s still just enough feedback to make single scrolls easy to perform. However, there were a few occasions when scrolls triggered when I pressed the middle button. This button can also feel quite firm if you don’t hit it at precisely the right angle, which can make presses awkward, but with practice this became less of an issue.

I had no problems with the connectivity of the G305 X Superlight. It connected to my devices via both Bluetooth and the 2.4GHz dongle without a hitch, and hot-switching between them was quick and easy thanks to the selector button underneath. You’ll also find a handy slot here for storing the dongle.

(Image credit: Future)

It is a shame there’s no native 8KHz support, although most PC gamers probably won’t need it. Taking everything into consideration, though, the G305 X Superlight is a great value gaming mouse that offers high performance and has a pleasing amount of features at this price point.

Logitech G305 X Superlight review: Price & availability
  • $79.99 / £69.99 / AU$149.95
  • Available now in black or white
  • Good price for a wireless gaming mouse

The Logitech G305 X Superlight costs $79.99 / £69.99 / AU$149.95 and is available now. Two colorways are available: black and white. A USB cable is included for charging and wired play, but it isn’t braided. There are also no spare skates or optional grip tape to adhere to the sidewalls or mouse buttons.

Nevertheless, the G305 X Superlight is well priced for a gaming wireless mouse that has two wireless modes. It also performs very well and has a generous number of input customizations, although it lacks performance-related adjustments. It’s much cheaper than the Razer Viper V4 Pro, even though that mouse has a similar number of input customizations and no additional Bluetooth support. However, we loved virtually every aspect of its performance when we tested it, and gamers may find its form more ergonomic.

If you’re looking for something even cheaper, the Cooler Master MM311 is one of the best value gaming mice around right now. We were impressed with its light and symmetrical design, as well as its fast performance. Again, it doesn’t feature Bluetooth support, and you also have to supply your battery, but it’s hard to complain too much about such omissions when it’s so cheap.

Should I buy the Logitech G305 X Superlight?

Attribute

Notes

Score

Value

There aren’t many gaming mice that offer more for less, although the non-braided cable is a slight shame.

4.5 / 5

Design and features

Solid yet light, and with a comfortable form, although the low profile mightn’t appeal to everyone. The input customizations are impressive, although more advanced tweaks are absent.

4 / 5

Performance

The G305 X Superlight is impressively smooth and snappy, with good click feedback. Some may find the scroll wheel a little too light, though.

4.5 / 5

Final score

For not a lot of money, the G305 X Superlight offers a well-made, comfortable, and high-performing gaming mouse with the added benefit of multiple wireless connectivity modes.

4.5 / 5

Buy it if…

You want to good value
The G305 X Superlight is a veritable bargain when you consider its multiple wireless connectivity modes, customization options, and excellent performance.

You want plenty of input customizations
G HUB offers plenty of rebinding and DPI options, which are always welcome.

Don't buy it if…

You don’t like low profile shapes
Although the G305 X Superlight is reasonably long, it’s very low to the ground, which might not suit every grip style.

You want to tweak performance
There aren’t any tweaks you can make to alter the actual performance of the G305 X Superlight, which is a shame.

Logitech G305 X Superlight review: Also consider

Razer Viper V4 Pro
Razer is known for making top-tier peripherals, and the Viper V4 Pro is no exception. It’s fast, well made, and offers plenty of customizations. However, it’s considerably more expensive than the G305 X Superlight, and it lacks Bluetooth support. Read our full Razer Viper V4 Pro review.

Cooler Master MM311
For a mouse that’s even gentler on your wallet than the G305 X Superlight, consider the MM311. Its fast and smooth performance is impressive for the price, although you will have to dispense with an inbuilt battery and Bluetooth support. Read our full Cooler Master MM311 review.

(Image credit: Future)How I tested the Logitech G305 X Superlight
  • Tested for several days
  • Used for gaming and other tasks
  • Plentiful gaming mouse experience

I tested the G305 X Superlight for several days, and used it to play several games, including Counter-Strike 2, which is a great test for mice given it requires extremely fast and precise movements. I also used the mouse for general browsing and working.

I’ve been PC gaming for over a decade, so I’ve used plenty of mice in that time. I’ve also reviewed a large number of gaming mice before, including other Logitech models.

Categories: Reviews

I spent a week with the Google Pixel 11 Pro, and I think Google has perfected the Pixel formula

Thu, 09/03/2026 - 10:36
Google Pixel 11 Pro: Two-minute review

Google's Pixel 11 Pro doesn't move the needle very far in terms of new design, hardware, and features. It looks almost identical to the Google Pixel 10 Pro, save for a new all-glass Camera Bar. The temperature sensor has been replaced by an LED that lights up when you're talking to Gemini or you're getting a phone call, but it's about as useful as that temp sensor was in the first place.

Inside the phone is a new Tensor G6 processor, and either 12GB or 16GB of memory. Performance during daily tasks and gaming isn't an issue, despite what Pixel naysayers may like to claim. That smaller RAM allotment is reserved for the entry-level 256GB option, while more storage means more memory for both the 512GB and 1TB models. Google didn't double the storage for nothing, however, as the 256GB model keeps its predecessor's 256GB price, effectively hiking the base cost of the Pixel 11 Pro by $100 / £80 / AU$150.

The cameras are mostly the same as those on the 10 Pro, but with some new software features that are mostly good. The new Camera Looks lets you tailor the 11 Pro's camera performance to your liking and makes it easy to switch between different settings on the fly. Magic Capture, meanwhile, makes it super easy to capture both photos and video of special moments. The new 120x Pro Zoom feature is cool, but only in limited situations; we're still trying to figure out exactly what those are.

(Image credit: Future)

Battery life is good enough to last all day, and if you're in a hurry, you can enable a new Extreme Charge Mode feature to top off the 11 Pro faster than non-extreme charging does.

Software-wise, the 11 Pro is loaded full of AI and Gemini features. The new Rambler voice dictation tool is really cool and will let you talk like you used to in middle school, but get rid of all the fluff and make you sound coherent.

Overall, the Pixel 11 Pro is a solid phone that doesn't move the Pixel line too far forward. Most of the new features are software and could very well come to older Pixel devices in due time. Only Google knows if or when.

That said, it's a great phone that's sure to make any older Pixel owners happy. Or, if you've been tempted to jump into Samsung or Apple's ecosystem, come on over; the Pixel 11 Pro's water is fine.

Google Pixel 11 Pro: Price and availability
  • Starts at $1,099 / £1,079 / AU$1,849 for 256GB + 12GB RAM

Google announced the Pixel 11 Pro alongside a refresh of the entire Pixel lineup — except the Pixel 10a — on August 12, with an official launch date of August 20.

The Pixel 11 Pro is available in four colors: Canyon, Olive, Fog, and Obsidian. Google did away with the 128GB base storage model, and instead is offering 256GB and 512GB storage allotments with 12GB and 16GB of memory, respectively. The base model has less RAM than the Pixel 10 Pro, dropping from 16GB to 12GB.

However, instead of keeping the previous starting price of $999 / £999 / AU $1,699 for the base model, the Pixel 11 Pro now starts at $1,099 / £1,079 / AU$1,849 for 256GB or $1,219 / £1,199 / AU$2,049 for 512GB. Sure, you're getting double the storage, but you're also getting less memory and paying more.

Price increases are something we're seeing across all smartphone makers, and even though it's our new reality, it doesn't make it any easier to accept.

That said, the Pixel 11 Pro's starting price is in line with comparable smartphones like the Samsung Galaxy S26 Plus and Apple iPhone 17 Pro.

  • Value score: 3 / 5
Google Pixel 11 Pro review: Specs

Here's a breakdown of the Google Pixel 11 Pro's key specs:

Dimensions:

152.7 x 71.9 x 8.4mm

Weight:

204g

Display:

6.3-inch Super Actua display

Resolution:

2856 x 1280

Refresh rate:

120Hz

Peak brightness:

3,600 nits

CPU:

Google Tensor G6

RAM:

12GB, 16GB

Storage:

256GB, 512GB, 1TB

OS:

Android 17

Cameras:

50MP main, 48MP ultra-wide, 48MP telephoto with 5x optical zoom, 120x Pro Zoom

Selfie Camera:

42MP

Battery:

4,850mAh

Charging:

30W wired, 25W wireless

Colors:

Canyon, Olive, Fog and Obsidian

Google Pixel 11 Pro review: DesignFutureFutureFuture
  • Similar design to the Pixel 10 Pro
  • Camera bar is now all glass

There isn't much to talk about in terms of design changes between the 11 Pro and the 10 Pro. It's hard to tell the two apart unless you look closely. I'm undecided if that's a bad thing — I rather liked the design of the larger Pixel 10 Pro XL.

The biggest difference is the camera bar that now features an all-glass design instead of a mix of glass and metal. The thermometer sensor has been replaced with a notification light, which Google calls HiLight. I go into more detail about HiLight in the software section, but after under a week of use, I'd say it's just as useful as the thermometer sensor. As in — there's really no point to it right now.

Along with a revamped camera bar, Google claims the display has a new coating that makes it twice as scratchproof. I haven't put that claim to the test.

The Pixel 11 Pro measures 152.7 x 71.9 x 8.4mm and weighs 204g. The volume and sleep/wake buttons live on the right edge, with a USB-C port on the bottom edge of the phone. It's IP68 rated, meaning it should have no issues surviving a plunge in the pool.

It's available in four colors, all of which I happen to rather like. Google sent me the Olive version of the 11 Pro and the Obsidian (Matte) version of the 11 Pro XL. I've grown rather bored of black or white phones, so I'm pretty fond of the Olive option and imagine I'd be just as happy with Fog or Canyon. They're fun colors. I like fun.

  • Design score: 4 / 5
Google Pixel 11 Pro review: Display

(Image credit: Future)
  • Direct sunlight isn't an issue
  • Crisp, clear and sharp

The Pixel 11 Pro's display is nearly a 1:1 match to the Pixel 10 Pro's on the spec sheet. It's a 6.3-inch Super AMOLED display with a 1,280 x 2856 resolution and a 1-120Hz refresh rate.

Where the 11 Pro breaks away is with brightness, offering a 2,400-nit HDR peak and up to 3,600 nits outdoors. That's up from 2,200 and 3,300, respectively, on the Pixel 10 Pro.

I had no complaints about the Pixel 10 Pro XL's screen, and the same can be said about the 11 Pro's. I can use it outside in direct sunlight without issue, and the small bump in overall brightness helps ensure content remains visible.

There's really nothing groundbreaking about this screen, but the bar was already high. Colors are bright and vibrant for binge-watching videos on YouTube, while text and graphics look clear and sharp when scrolling Reddit. You won't have any display-related problems with the Pixel 11 Pro.

  • Display score: 5 / 5
Google Pixel 11 Pro review: Software

(Image credit: Future)
  • HiLight is pretty pointless
  • Gemini is everywhere you look
  • Rambler feels like a leap forward for voice dictation

The Pixel 11 Pro ships with Android 17 and is chock-full of Gemini features — including Proactive Assistance, which Google says will proactively make recommendations and surface information without you explicitly requesting it throughout the operating system.

For example, if someone asks you about an upcoming flight, it's supposed to find and present your flight time without you leaving the conversation. It's also capable of showing meal suggestions for the restaurant you're at in the At a Glance widget.

After over a week of use, I can't tell you whether or not anything I've experienced on the Pixel 11 Pro has been from Proactive Assistance. I certainly haven't seen any meal recommendations when at a restaurant, and nobody's asked me about an upcoming flight. I'm sure, eventually, maybe, perhaps, I'll see a recommendation and the promised magic will make sense, but right now: Meh.

The same can be said for the new HiLight feature. Google swapped out the temperature sensor in the camera bump and replaced it with a multi-color light. The indicator light is reminiscent of my BlackBerry days, when I'd have specific colors set for important contacts and on an app-by-app basis.

The HiLight sensor on the Pixel 11 Pro (Image credit: Future)

Right now, HiLight's only triggered during two very specific scenarios: when you're interacting with Google Gemini hands-free, and when one of your contacts saved as a favorite is calling. It's only active when your phone is face down.

I've triggered Gemini a few times with the Pixel 11 Pro sitting on my desk for the sole reason of invoking HiLight. The animations and various colors are fun to look at, but I rarely talk to Gemini hands-free. And if I do, it's usually while holding the phone, when I long-press the side button and ask about something on my screen (super handy), so the light doesn't come into play at all.

But where HiLight really falls short is the fact that it's limited to just phone calls right now. I can't tell you how often my phone rings, but I can say it's not a lot.

That said, my most used and loved Pixel feature has long been the ability to place the phone face down on my desk during meetings and instantly have do not disturb turned enabled. It effectively cuts me off from the outside world. So when I first read rumors about HiLight, I wasn't very happy.

"Google is ruining my favorite Pixel feature!", I yelled alone in my office.

So, part of me is glad the LED light is so crippled. I'd surely fall victim to enabling it beyond phone calls and be far more distracted during meetings than I'd like.

Google hasn't said if it plans on bringing more apps to HiLight, including those made by third parties, but a developer has already figured out how to do just that. You need to be comfortable with sideloading and reactivating the feature every time your phone reboots — but it's possible with HiLight Studio.

If you're someone who often uses voice dictation instead of tapping on a glass display, you'll love Google's new voice-input tool, Rambler. I rarely use voice dictation, simply because it's historically been so bad, often requiring extra time to fix mistakes.

However, Rambler feels like it's a big step in the right direction. You activate it following the same steps you always have, start talking, and when you're done, you're given a clean block of text, without any awkward pauses and filler words. If you say 'um' a lot, or repeat words while trying to finish your thought, Rambler strips all of that out.

After reviewing your text, you can then tell Rambler which words to fix or ask it to rewrite the entire thing with a different tone.

I don't know if it'll get me to start using voice dictation more often, but I can say it's pretty darn cool.

  • Software score: 4 / 5
Google Pixel 11 Pro review: Cameras

(Image credit: Future)
  • 50MP main camera
  • 48MP ultra-wide
  • 48MP telephoto with 5x optical zoom
  • Magic Capture is a nice addition

The Pixel 11 Pro has three rear cameras: a 50MP main, a 48MP telephoto with 5x optical zoom, and a 48MP ultra-wide.

There have been slight changes to the sensors and image processor of the Tensor G6, but the most notable improvements to the camera setup of the Pixel 11 Pro lineup this year come in the form of new features.

There's a new 120x Pro Zoom for far-away shots, a new Camera Looks option for fine-tuning photos based on your preferences, and a Magic Capture feature that eliminates the need to decide when to take a video or photo.

I've tested the 120x Pro Zoom on a wide range of subjects, from people to random ducks to buildings — and it's hit or miss. There's a clear degradation of image quality and an increase in the AI-like look to the pictures the more you zoom. I'd say it's nothing but diminishing returns after you get past 30x.

Future/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason Cipriani

When taking a 120x photo of my son from across five tennis courts, he ended up looking more like a watercolor painting than a standard photo. However, a 120x photo of the spire on our town hall — well, it doesn't look terrible. Not great, but not terrible.

Future/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason Cipriani

The new Camera Looks feature is neat, and something the iPhone has had for a couple of years now, in that you can preset your preferred settings for things like contrast and brightness, save it as a look, and use it going forward. Google includes a few Looks to get you started. I'm not sure how many people are going to dive into tweaking and creating their own look, but the option is good and welcome.

Magic Capture is by far the most notable new feature on the Pixel 11 Pro; it's a dedicated shooting mode in the Camera app. When selected, you press the shutter button and hold the phone and frame the subject as if you're recording a video. Tap the shutter button again when you're done.

Then, when you go into the Photos app, you'll see a series of photos and videos from the session. It's very much like Google Clips, the standalone camera Google released in 2017 and abandoned soon after.

I used Magic Capture to get pictures and videos of my niece playing volleyball, and I was totally skeptical going into it. However, after letting Magic Capture do its thing — which also requires some processing after the fact — I was pleasantly surprised to see short video clips of her in action and not just standing around waiting for the ball. There were also several photos of her diving for or setting a ball that made sense — situations I would have tried to capture on my own, sometimes successfully and sometimes not.

Here's an example of Magic Capture being used to snap a moving train:

A photo captured using Magic Capture on the Pixel 11 ProFuture/Jason CiprianiA photo captured using Magic Capture on the Pixel 11 ProFuture/Jason CiprianiA photo captured using Magic Capture on the Pixel 11 ProFuture/Jason Cipriani

Overall, the photo quality of the Pixel 11 Pro sticks to Google's tried-and-true results. That said, I do have to admit that the pics from the 11 Pro feel a little flat to me. Colors aren't as bright and vibrant as I'd normally see, but with some small tweaks to create my own Look, I'm sure I could boost saturation and get the results I wanted.

Then again, there's nothing really wrong with the settings out of the box.

  • Camera score: 4 / 5
Google Pixel 11 Pro review: Camera samplesFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiFuture/Jason CiprianiGoogle Pixel 11 Pro review: Performance

(Image credit: Future)
  • Google Tensor G6 chipset
  • 12GB or 16GB memory
  • 256GB starting storage

I'll get the potentially controversial part out of the way: I don't have any issues with the Pixel 11 Pro's performance. It's handled everything I've thrown at it with ease.

That includes watching YouTube live streams while scrolling through Reddit, triaging my inbox, the occasional gaming session in Asphalt Legends, and fumbling my way through a Fortnite match using only touch controls. I'm so bad.

Before I go much further, let's cover the basics. Inside the Pixel 11 Pro is Google's Tensor G6 processor, which boasts better and faster image processing and improved on-device Gemini capabilities. The amount of memory you get is based on how much storage your phone has. If you order the 256GB base model, you're getting 12GB. If you order anything above that, you're getting 16GB.

Google claims it's made improvements to memory usage, and Pixel owners with 12GB of memory shouldn't have any performance issues.

I received a 512GB model with 16GB of memory. As such, I can only speak to my experience with that specific build. I don't know if Google really has optimized Gemini and the rest of the AI features to leverage less memory.

The entire reason there's an industry-wide memory shortage, along with rising costs, is because AI relies heavily on memory. Reducing the amount of memory in a phone that boasts a lot of AI features seems counterintuitive.

But I digress.

On paper, Pixels have never been the fastest phones. The same goes for the Pixel 11 Pro compared to other current flagships like the Samsung Galaxy S26.

The latter beats the Pixel 11 Pro across the board in Geekbench 6 and 3DMark benchmark testing, and while Google's phone does actually beat something like the Motorola Razr Plus 2026 in the same tests, the Razr uses a processor that debuted three years ago. Google's Tensor G6 chipset is box-fresh.

However, in daily use, the Pixel 11 Pro delivered consistent, reliable performance no matter what I was doing. I haven't had a single moment where it felt underpowered or like it wasn't living up to what I'd expect from a flagship phone in 2026. Benchmark scores can be useful, but they rarely tell the whole story.

Google Pixel 11 Pro benchmark scores

Geekbench 6 single-core

2,222

Geekbench 6 multi-core

5,314

3DMark Wild Life Extreme Stress Test best

3,107

3DMark Wild Life Extreme Stress Test low

2,021

3DMark Solar Bay

Would Not Run

  • Performance score: 3 / 5
Google Pixel 11 Pro review: Battery

(Image credit: Future)
  • 4,850mAh battery
  • 30W wired charging
  • 25W wireless charging

The Pixel 11 Pro has a 4,850mAh battery and supports up to 30W charging. That battery is only slightly smaller than the Pixel 10 Pro's 4,870mAh cell, but Google estimates battery life at over 30 hours (up from 24 hours last year), and I'd say that's mostly accurate.

On days when I streamed far too many YouTube videos or played Asphalt Legends, battery life still lasted the entire day, but I had to charge overnight.

To test the Pixel 11 Pro's charging speed, I completely drained the battery, plugged it into a 45W power adapter, waited for the phone to boot up, and then turned on Extreme Charging Mode — a new feature, making its debut with the Pixel 11 line.

When enabled — and while your battery is under 50% — Extreme Charging Mode limits background activities to increase charging speeds.

At the 15-minute mark, the 11 Pro reached 25%. At an hour, it was at 86% and reached 100% in under 90 minutes.

And the result? Extreme charging does make a difference in charging speed.

I ran a charging test without it enabled, and the Pixel 11 charged to 24% in 15 minutes, 71% in an hour, and fully charged in 1 hour and 45 minutes.

Even though the 15-minute results were nearly identical, the rest of the charging process was faster. It's worth enabling if you're in a hurry.

In addition to the new extreme fast charging feature, the Pixel 11 Pro now supports 25W wireless charging and the Qi2.2 standard, and it includes the required magnets in the phone itself (unlike Samsung devices) to attach any compatible accessories like wallets, mounts, or to hold it in place on magnetic wireless charging pads.

I'm an avid user of all things MagSafe/PixelSnap/whatever marketing name you want to apply to a ring of magnets on the back of a phone.

  • Battery score: 4 / 5
Should you buy the Google Pixel 11 Pro?Google Pixel 11 Pro scorecard

Attributes

Notes

Rating

Value

An unwelcome price increase over last year's model.

3 / 5

Design

A tried-and-true design that looks great.

4 / 5

Display

A display that hits all the marks of what you'd want in a flagship phone.

5 / 5

Software

Android 16 and One UI 8.5 team up to provide a reliable experience.

4 / 5

Cameras

All three cameras take solid pics, but don't rely on the telephoto past 3x.

4 / 5

Performance

Quick and powerful, but the phone does get hot during intense tasks.

3 / 5

Battery

All-day battery life is welcome, but slow charging speeds are not.

4 / 5

Buy it if...

You have an older Pixel
If you've done your time and paid off your last phone with your carrier over a few years, you're ready for an upgrade. The Pixel 11 Pro makes for a fine upgrade if your phone is older than, say, a Pixel 9.

You want to go all in on Gemini
The Pixel 11 Pro has Google Gemini baked into it at every turn, and for someone who uses Gemini on a daily basis, it's a fantastic experience.

You never want to miss those special moments
The Pixel 11 Pro's Magic Capture feature eliminates the decision-making process of when to take photos or videos. You just hold your phone up and let the camera do the heavy lifting. It's perfect for someone with young kids or, heck, any proud parent.

Don't buy it if...

You have a Pixel 9 or 10
There's zero reason to upgrade if you currently have a Pixel phone from the last two years. This year's update feels more like a software update than hardware. It's entirely possible most of the 11 Pro's features come to older models. It's safe to wait this one out.

You want the "best" performance
If you look at just the performance numbers, the Pixel 11 Pro isn't all that impressive. There's no denying that, and even though that's not the entire story, for some, it's enough to look elsewhere. There's zero shame in that.

Google Pixel 11 Pro review: Also consider

Google Pixel 10 Pro
Google's Pixel 10 Pro nearly matches every spec of the 11 Pro, save for a slight design tweak and some software features. Yes, it's a year older, but it's also just as capable. Better yet, it forgoes the $100 / £80 / AU$150 price hike and is currently marked down across a wide range of vendors.

Read our full Google Pixel 10 Pro review

Apple iPhone 17 Pro
It's not an Android phone, but Apple's iPhone 17 Pro is everything the Pixel 11 Pro is, with the added bonus (if you're into it) of running iOS.

Read our full iPhone 17 Pro review

How I tested the Google Pixel 11 Pro Why you can trust TechRadar

☑️ 100s of smartphones reviewed
☑️ 15 years of product testing
☑️ Over 16,000 products reviewed in total
☑️ Nearly 200,000 hours testing tech

I was on a road trip dropping my daughter off at college when the Pixel 11 Pro arrived at my house. It was waiting for me when I got back home, and I immediately set it up and started testing it. I've spent just over a week using it for work and play, as if it was my personal device.

That means I spent a lot of time chatting with Gemini, taking photos and the occasional video, texting with friends and family, and playing the occasional game. I also spent my fair share of time doomscrolling on social networks I should have ditched long ago.

I even have a BlueBubbles server set up at my house, which allows me to continue my iMessage conversations — the platform of choice for my entire family — while testing Android phones.

Read more about how we test here.

Categories: Reviews

DJI's Osmo 360 II fixes its predecessor's flaws, and remains much more affordable than Insta360

Thu, 09/03/2026 - 06:40
DJI Osmo 360 II: two-minute review

Just a year after launching its debut 360 camera, the Osmo 360, DJI has delivered a sequel that addresses pretty much every complaint I had with the original — without asking you to pay through the nose for the privilege.

The Osmo 360 II looks and feels almost identical to its predecessor: same dimensions, same weight, same general shape. But DJI has used that 12-month gap wisely, fixing the two biggest issues I had with the original Osmo 360 in one swift update.

First, the lenses. They're now built with a tougher optical coating, and — far more importantly — they're user-replaceable if you crack or scratch one. For anyone using this camera to capture action sports, that alone might be worth the modest price increase.

Second, DJI's approach to underwater shooting has changed. The waterproof rating hasn't budged from 10m, but where DJI once actively discouraged submersion with the original Osmo 360, it now positions the Osmo 360 II as a viable sub-aqua option for snorkelers and scuba divers.

(Image credit: Future | Sam Kieldsen)

On the imaging side, the headline feature is native 8K video at 60fps — a first for any 360 camera, edging out even the freshly-launched Insta360 X6 (which tops out at 8K/50fps). Dynamic range, slow motion, timelapse resolution and SuperNight low-light performance have all improved too, though the underlying sensor appears to be physically the same as before, suggesting these are largely processing-driven gains rather than a major hardware leap.

Performance is solid across the board: battery life is roughly on par with the original, storage remains a generous 105GB built-in, and DJI's Mimo and Studio apps are dependable if unspectacular.

Is this a transformative upgrade? Not quite — image quality is a slight rather than dramatic step forward. But DJI has plugged the gaps that mattered, kept what already worked, and done it all while keeping this camera's price significantly below that of the Insta360 X6.

Against the GoPro Max 2, the Osmo 360 II's low-light performance is a clear win too. Right now, my instinct is that there's very little to separate the Osmo 360 II and the X6 on image quality alone — I'll be testing the two head-to-head in more depth soon to see which comes out on top overall — but as an all-rounder at this price, the Osmo 360 II is a seriously compelling 360 camera.

DJI Osmo 360 II specsDJI Osmo 360 II specs

Type:

360 camera

Sensor:

1.1-inch x 2

Max aperture:

f/1.9

Max video resolution:

8K / 60fps

Max photo resolution:

120MP

Storage:

105GB internal + microSD card slot

Screen:

2-inch OLED

Connectivity:

USB-C 3.0, Bluetooth 5.1, Wi-Fi 6

Dimensions:

2.4 x 1.4 x 3.2 inches / 61 x 36.3 x 81mm

Weight:

6.5oz / 183g

DJI Osmo 360 II: Price and availability
  • Launches on September 15 2026, roughly a year after the original DJI Osmo 360
  • Standard Combo costs £509 / AU$921, up from the original's £409.99 / AU$759
  • The Adventure Combo (£639 / AU$1,096) throws in useful extras

The DJI Osmo 360 II arrives around 13 months after its predecessor, and it's more expensive: the Standard Combo will set you back £509 / AU$921, compared with £409.99 / AU$759 for the original Osmo 360 at launch. That's a pretty big jump, but it doesn't stop the Osmo 360 II being significantly more affordable than its biggest rival.

That rival is the Insta360 X6, which starts at £619.99 / AU$1,049.99 for its own Standard bundle. Not that the Osmo 360 II is the budget option in this category, though: the GoPro Max 2, now available for as little as £269.99 / AU$849.95, undercuts DJI comfortably if outright affordability is your main concern.

If you can stretch to it, the pricier Adventure Combo (£639 / AU$1,096) is worth consideration. It throws in two extra batteries (three in total), a charging case that holds three batteries at once, plus a 1.2m selfie stick — accessories that anyone shooting for extended periods will likely want anyway, and which would cost more bought separately.

As with several other recent DJI launches, the Osmo 360 II won't be arriving in the US for now, with the company's application for regulatory authorization still pending. American buyers will need to look elsewhere (or import through a third party) in the meantime.

  • Price score: 4.5/5
DJI Osmo 360 II: Design
  • Same 61 x 36.3 x 81mm dimensions and 183g weight as the original
  • Lenses are now tougher and user-replaceable if damaged
  • Still 10m waterproof case-free, but DJI now encourages underwater use

Hold the Osmo 360 II next to its predecessor and there's very little physical difference. DJI has kept the same 61 x 36.3 x 81mm body and 183g weight, and the overall silhouette — a squat, screen-fronted block with two bulging lenses, one on either side — is unchanged. The screen, connectivity options and mounting hardware, including the 1/4-inch tripod thread and DJI's own magnetic quick-release mount, all carry over unaltered from the original too.

Future | Sam KieldsenFuture | Sam KieldsenFuture | Sam KieldsenFuture | Sam KieldsenFuture | Sam KieldsenFuture | Sam Kieldsen

The main changes here are on the lenses themselves. DJI says the Osmo 360 II's lenses use a tougher optical coating that better resists scratches, and if you do manage to crack or damage one, it's now a user-replaceable part via DJI's own lens replacement kit (£35 / AU$50 — and if you prefer, there's also the option of taking or sending it to an authorized repair spot to get someone else to fix it). It sounds like a modest tweak on paper, but it's the biggest change DJI has made this generation from a peace-of-mind perspective, particularly for anyone shooting the kind of high-impact action footage where dinging the lenses is a real risk.

DJI hasn't increased the Osmo 360 II's case-free waterproof rating, which remains at 10m (half of the 20m offered by the Insta360 X6). What has changed is the company's own confidence in the camera underwater: where DJI previously discouraged underwater capture on the original Osmo 360, it now positions the Osmo 360 II as a viable option for snorkelers and scuba divers working within that 10m limit.

  • Design score: 4.5/5
DJI Osmo 360 II: Performance
  • Battery capacity increased slightly, and format stays interchangeable across the Osmo range
  • DJI's claimed 100 minutes of 8K/30fps recording held up in testing
  • Extended 8K/60fps recording can cause overheating

DJI has nudged the Osmo 360 II's battery capacity up from 1950mAh to 2150mAh, but real-world battery life is roughly on a par with the original. The batteries themselves remain interchangeable across both Osmo 360 generations and recent Osmo Action-series cameras, so anyone already invested in DJI's action camera ecosystem can use batteries across their various devices.

DJI claims you get 100 minutes of continuous 8K/30fps recording on a full charge. In my testing, I used 25% of the battery to capture 25 minutes of 8K/30fps footage, which backs up DJI's figure almost exactly.

(Image credit: Future | Sam Kieldsen)

Push the Osmo 360 II to its most demanding setting, 8K at 60fps, and a warning prompt appears letting you know that overheating is a possibility. How long you actually get before that happens depends on ambient conditions, with airflow and temperature both playing a part, but in my testing indoors at room temperature, with no fan or breeze to help cool the camera, it lasted around 19 minutes before shutting itself down to cool off. If you're planning extended 8K/60fps sessions, especially somewhere warm, it's worth considering that limitation.

Storage carries over unchanged from the original Osmo 360, with a generous 105GB of usable built-in space, plus a microSD card slot if you need more.

The new Insta360 X6 next to the even newer DJI Osmo 360 II. (Image credit: Future | Sam Kieldsen)

Already own a DJI Mic? There's a good chance it'll connect wirelessly to the Osmo 360 II for 24-bit audio, as part of DJI's OsmoAudio ecosystem. If you don't, the camera's four built-in microphones do a decent job of capturing usable sound on their own.

Editing and reframing your 360 footage means going through one of DJI's two companion apps: the mobile DJI Mimo app, or desktop-based DJI Studio. I tested both, and found them solid and dependable overall, if not spectacular. Mimo's AI-assisted auto-editing tools left me distinctly unimpressed, so if you were hoping to shoot all day and wake up to a finished edit, temper your expectations — but for anyone willing to manually cut, reframe and tweak their own clips, both apps get the job done without drama. DJI Studio stood out in particular for its excellent subject tracking and the impressive 64x slow-motion mode, which uses interpolation to smooth out footage.

  • Performance score: 4/5
DJI Osmo 360 II: Image quality
  • First 360 camera offering native 8K/60fps video recording
  • SuperNight low-light mode now runs at up to 60fps
  • 120MP still photos with HDR

The Osmo 360 II is the first 360 camera on the market to offer native 8K video at 60fps — even the just-released Insta360 X6 tops out at 8K/50fps. That's not the only imaging upgrade either: DJI has added a stop of extra dynamic range, bumped slow-motion up to 4K/240fps (from 4K/100fps), pushed timelapse resolution to 16K/30fps (from 4K/30fps), and introduced HDR support for the 120MP photo mode. Edit your footage in DJI Studio and you can also access up to 64x slow-motion via frame interpolation.

Then there's SuperNight 2.0, DJI's low-light shooting mode. I wasn't blown away by the original Osmo 360's version of SuperNight — it was decent, no more — but here the results look significantly cleaner and sharper, and you can now record at up to 60fps rather than being capped at 30fps. There is one catch: you still can't shoot in D-Log M with SuperNight 2.0 active, so you're restricted to the standard color profile (Adaptive Tone remains available, however).

Interestingly, the image sensor itself appears to be physically identical to the one in the original Osmo 360, which suggests that all of the above gains have come via processing and software refinement rather than new hardware. That's not necessarily a bad thing, but it does mean these image quality improvements are evolutionary rather than the product of some new imaging leap.

All the usual 360-camera fundamentals — stabilization, stitching, selfie stick removal and flare handling — are brilliantly handled here. It's a slick camera that can capture good-looking footage while requiring very little effort from the user.

Taken as a whole, image quality is excellent, if perhaps not a huge leap over the original — more a slight but real improvement on what was already a very good setup built around a large, capable sensor. For the sample video embedded in this review, I shot footage using the default Standard color profile, D-Log M (graded afterward using DJI's own LUT plus some manual color tweaks), and SuperNight 2.0, all recorded at 10-bit. Everything was reframed in DJI Studio on my Mac, then edited in DaVinci Resolve.

Video is, understandably, still noticeably sharper, more detailed and more impactful in daylight, but shoot with a bit of care and it's absolutely possible to capture excellent after-dark footage too.

Photos are perfectly fine too, though I've never considered still photography much of a draw on a 360 camera personally — it feels like a secondary feature here rather than a primary selling point.

Future | Sam KieldsenFuture | Sam Kieldsen
  • Image quality score: 5/5
DJI Osmo 360 II: testing scorecard DJI Osmo 360 II

Attributes

Notes

Rating

Price

Pricier than the original Osmo 360, but significantly cheaper than the Insta360 X6.

4.5/5

Design

Same body as before, but user-replaceable lenses and newfound underwater confidence are big wins.

4.5/5

Performance

Solid battery life and storage, dependable apps, but 8K/60fps can trigger overheating.

4/5

Image quality

First native 8K/60fps 360 camera, with better dynamic range and a much-improved SuperNight 2.0.

5/5

Should I buy the DJI Osmo 360 II?Buy it if...

You want flagship features without flagship pricing
The Osmo 360 II undercuts the Insta360 X6 by over £100 while offering the first native 8K/60fps 360 video on the market, plus meaningfully improved SuperNight low-light performance.View Deal

You like peace of mind when shooting action sports
Cheap, user-replaceable lenses mean a cracked or scratched lens is no longer catastrophic — a direct answer to one of the biggest weaknesses of the original Osmo 360.View Deal

You regularly shoot in low light
SuperNight 2.0's jump to 60fps and its cleaner results make this a far stronger nighttime shooter than the GoPro Max 2, which stumbles noticeably once the sun goes down.View Deal

Don't buy it if...

You're on a tight budget
If price is your primary concern, the cheaper (if lower-spec) GoPro Max 2 undercuts the Osmo 360 II comfortably, especially now that it's available at discounted pricing.View Deal

You're based in the US
The Osmo 360 II isn't launching stateside for now, with DJI's regulatory authorization still pending — so US buyers are out of luck unless they're willing to import.View Deal

Also consider

If money is no object and you want the sharpest, cleanest 360 footage around in any light, the Insta360 X6 remains the camera to beat — it's just going to cost you considerably more than the Osmo 360 II.

Read our full Insta360 X6 reviewView Deal

GoPro's comeback 360 camera is significantly cheaper than the Osmo 360 II and delivers excellent daylight image quality, but its low-light performance can't compete, and its own replaceable lenses haven't been engineered for the same low-light or dynamic range gains DJI has made here.

Read our full GoPro Max 2 reviewView Deal

How I tested the DJI Osmo 360 II
  • I tested the DJI Osmo 360 II Adventure Combo ahead of its official release
  • I shot video across a long weekend trip to northeast England, plus my hometown
  • I used the included 1.2m selfie stick and a car mount, in daylight and at night

(Image credit: Future | Sam Kieldsen)

I was sent a DJI Osmo 360 II Adventure Combo a few days ahead of its official release for testing. I put the camera through its paces on a long weekend trip to the northeast of England, as well as around my Kent coast hometown, mounting it on the included 1.2m selfie stick for on-foot shooting and attaching it to my car for vehicle-mounted footage. I tested it across a range of lighting conditions, from strong daylight to full nighttime darkness, and also shot a handful of 120MP stills alongside my video testing. I also tested both DJI's desktop and mobile companion apps, using them to reframe footage and photos.

  • First reviewed September 2026
Categories: Reviews

The Gentlemen season 2 is darker, meaner and more 'brutal' than its Netflix debut — but shock new storylines haven't compromised on style or satisfaction

Thu, 09/03/2026 - 02:01

When I spoke to star Theo James a few months ago for Sky TV movie Fuze, he teased that The Gentlemen season 2 would be "even darker" than its Netflix debut. At the time, I wrote this off as something he might say simply to create buzz and a good headline — but it turns out, he wasn't kidding.

I think that it takes a lot to shock the modern viewer, given how immediately exposed we are to everything in the world thanks to social media. Somehow, The Gentlemen season 2 (which is out now) manages exactly that, and I spent a good deal of time while watching its eight episodes with my mouth wide open.

The sense of crazed chaos established in its first season, which debuted back in 2024, is only heightened, which in itself feels like an extraordinary feat. If you strip it back, Eddie (James) is following the classic 'chosen one' archetypal storyline, but his unhinged family and work colleagues add layers of deranged complexity... and a fair few obstacles along the way.

Eddie is still working directly with Susie (Kaya Scodelario) and Bobby (Ray Winstone) as the action picks back up, but the trio's new business partners come in the form of an Italian crime network. Cue some questionable under-the-table deals, alliances and betrayal, and a tiger kept in a questionably small cage.

At the Halstead manor, things aren't exactly quiet either. Freddy (Daniel Ings) has been quietly sent to a rehab centre while Lady Sabrina (Joely Richardson) tentatively tries to keep him in check from a distance. Bobby's decision-making takes on a more spiritual approach, while Susie genuinely seems like the only person around with her head screwed on.

The groundwork is set, then, for a Shakespearean level of drama that's tinged with signature Guy Ritchie-style brutality to unfold. But whatever you think that looks like, times it by 100, and add in a chainsaw.

The Gentlemen season 2's darker storylines are the ideal step forward — and make for a tasty season 3 setup

It's odd to think of The Gentlemen season 1 as superficial or even jovial, but compared to season 2, that's how it feels in hindsight. Without giving the game away, new episodes are integral to Eddie's development, transforming him from a criminal network cog into a brutish, no-nonsense leader.

Because we already know that season 3 has been renewed, the only clear path for The Gentlemen to follow is charting the rise of Eddie's own illegal underground empire, or at least his individual role within that world. Susie describes him as a dog desperate to be free of his leash in episode 1, and by episode 8, there really is no turning back.

In essence, the brutal underbelly that we've always known was there — both in the wider network and within Eddie himself — comes to the surface. Whether it's mental manipulation, underhand strategy or outright physical force, everyone should be scared of what is actually capable of happening... including Eddie.

For us, that means getting stuck into scene after scene of wildly outlandish chaos. People die in ways that I didn't actually think people could die, cruelty and deception translate into delicious onscreen tension, and where do I even begin with the physical and emotional torture? Ball-achingly good, to put it one way.

It's no surprise that Jame and his gaggle of core co-stars are as impeccably brilliant as they always have been, and it's a relief to know that each person involved in The Gentlemen can be so solidly relied on. But at the same time, a huge shoutout must go to our new cast members, none of whom feel at all out of place.

Hugh Bonneville's eccentric aristocrat feels like Downton Abbey on acid, and is worth tuning in for alone. First-time actors Maya Jama and Chris Eubank Jr. are astounding in a completely different way, never letting their lack of experience get in the way of a convincing performance. They're somewhat playing fictional versions of themselves (or at least share characteristics), but still: credit where credit is due.

Style and satisfaction are still number 1 priorities

(Image credit: Netflix)

The more of The Gentlemen season 2 you see, the more you perversely want to watch, yet the best way to describe a single episode is that it feels like a sumptuous feast. You feel full digesting one, able to sit apart as a full, complete story.

I like the fact that the Netflix show feels so rich that you don't — or perhaps can't — binge it all in one go, and the devil really is in the detail. Given how heavy-handed the streamer usually is with how its TV shows look (read: they all look the same), The Gentlemen is able to adhere to this while being incredibly stylish at the same time.

Through shrewd editing, handwritten effects, sound and narrative structure, new episodes feel playful and unserious despite its often sombre and hard-hitting undertones, with Ritchie's tonal balance across it all being nothing short of impressive. Clearly, the best way to deal with the bad things in life is to sprinkle in as much absurdity and humor as possible, and Ritchie never lets us forget that.

Do parts wane in interest and have pacing issues? Absolutely, but what modern TV show doesn't suffer from that? In fact, I doubt that The Gentlemen season 2 actually cares about this: it exists in the world with wanton abandon, and you're going to like it however it's packaged, or else.

Categories: Reviews

I've watched all of The Paper season 2 and still think it's trying too hard to be Parks and Recreation — but the Brits are the best part of The Office spinoff

Wed, 09/02/2026 - 11:00

I shouldn't still be on the fence about a show's existence as it enters its second season, but here we are. The Paper season 2 returns to Peacock on September 9 — but out of its 10 new episodes, I'd say that only half are worth watching.

Why? Because The Office spinoff is still suffering from the same overarching issue as it did in season 1: everything is just that little bit underwhelming. Exactly a year after we left the writers of the Toledo Truth Teller, not much has changed in terms of the big picture.

Editor-in-Chief Ned (Domhnall Gleeson) is still desperately searching for the stories that will take his team to the next level, while Esmeralda (Sabrina Impacciatore) rarely thinks about anybody's reputation but her own. Nicole (Ramona Young) is still giving Kelly Kapoor vibes in a majorly inferior way, while Mare (Chelsea Frei)... well, she's just trying her best.

Without giving anything away, there are enough major dramatic plot points to steer the drama away from journalists despairing in an office. However, some of these are short-lived, and worse, give off trying-too-hard energy.

In Mean Girls, Regina George tells Gretchen Wieners to "stop making fetch happen. It's not going to happen," and I almost want to shake Peacock by the shoulders and explain that the same thing is happening here. The Paper season is being forced into existence, rather than having having a natural evolution.

Still, you can grab laughs where you can in some places, but for Brits, there's a lot more reason to be smiling. Tim Key and Gbemisola Ikumelo are easily the strongest players in this wayward cast, and they alone would be enough reason for me to keep watching if season 3 is given the green light.

The Paper season 2 is trying (and mostly failing) to make fetch happen

I think we can all agree that The Paper is far more similar to Parks and Recreation than it ever has been to The Office. This awkward resemblance only becomes more noticeable in season 2, as Ned's eagerness to become a pillar of the community (which incidentally seems to hate him) only increases.

I think the key difference here is how easy and natural the camaraderie, and sense of community, comes in Parks and Rec. None of that is genuine in The Paper, to the point where I'm almost rooting for Ned to fail. With the exception of Esmeralda, everyone is better off spending their time elsewhere — something that is directly explored as season 2 continues.

Some fans have critiqued The Paper's 10-episode bursts, arguing that seasons should rival the 25 episodes a piece we used to get for such shows back in the glory days of the early 2000s. However, I'd argue that the season already struggles to fill those 10 episodes, with some feeling like stagnant filler content in between the more intriguing storylines.

I can also see how Esmeralda was so divisive in season 1, and in bad news for critics, I think creators have doubled down on her grating personality traits this year. From the moment episode 1 kicks off, her extroverted vanity is on display in full force, and it hits pantomime levels of performance.

While there are points in season 2 where I enjoy this, her temperament does risk overshadowing the rest of the ensemble cast... and I've come away wishing that I felt a more invested in their stories as a result.

Tim Key Supremacy

(Image credit: Peacock)

But never fear! There are two heroes in our midst in the form of Tim Key and Gbemisola Ikumelo. Where Esmeralda is spiralling into chaos, Key's character Ken is the only one able to use this to his advantage. Esmeralda becomes the sidekick in their compelling (and genuinely hilarious) double act, which hits its peak between episodes 2 and 3.

A sharp, witty British man who is always armed with thinly-veiled criticism is exactly what this show needs, and Key plays his part to perfection. In fact, his scenes made me feel ashamed that I'd forgotten how good a comedic actor he is — since The Ballad of Wallis Island, I'd filed him in the director directory part of my brain.

Then there's Ikumelo. I couldn't believe that this quietly sassy and genius American accountant was the same woman who found Diane Morgan's fake farts on Last One Laughing UK season 2 so funny that she screamed her tears out. Metamorphosis is an incredible (and incredibly rare) skill to have as an actor, meaning she should never be underestimated. Now she just needs more bookings on UK comedy shows, please.

I know I may have made it sound like it's the case, but The Paper season 2 is far from the worst TV show, or comedy series, in 2026. But don't think it will be gracing my 'best of the year' lists, either.

Categories: Reviews

The Whisper Man review — Robert DeNiro and Adam Scott can't redeem this predictable and disappointing Netflix movie

Wed, 09/02/2026 - 06:20

Netflix has struggled in the thriller space recently. After The Last House disappointed me, I was hoping that The Whisper Man would restore my faith in the genre.

Unfortunately, the new Robert DeNiro and Adam Scott led movie was another bitter disappointment. It had potential, but suffers from pacing issues and a predictable plot throughout. This was a frustrating experience for me because with a storyline like this, they could have included some smarter twists.

The Whisper Man follows grieving widower Tom Kennedy (Adam Scott), whose son Jake (Acston Luca Porto) is abducted after they move to a new town to start a new life. What was meant to be a fresh start turns into a living nightmare for Tom, who is desperate to find his son.

This desperation leads him to his estranged father, Peter Willis (Robert DeNiro), from whom Tom has completely separated himself to the point they don't share a surname. Peter has never met his grandson, but after a panicked Tom arranges a meet with him he agrees to help track him down. Peter was once a detective, so has the resources and skillset that Tom needs to track down Jake.

The first act of the movie does feel promising. Jake's abduction is sudden and creepy, there's the family tensions to dive into, and I had hoped a good movie would follow. Unfortunately, it loses momentum fast and becomes quite predictable.

It also differs from the book in some ways, so those wanting to see a completely faithful adaptation might be left disappointed. Without spoiling it, some of the changes to the script annoyed me and I think it could've benefitted from following the book more accurately.

The Whisper Man has very good performances from its core cast, especially from DeNiro and Scott. They did the best that they could with the script, but even their combined talent couldn't make this a better movie. Their father-son relationship is an interesting one but quite a lot of their reconnection felt rushed.

The story is focused on family, especially grief and loss, and I would've liked to learn more about what had happened between Peter and Tom. The few emotionally driven scenes we did get between them felt important, so I was frustrated that other, less important scenes seemed to drag on longer than they needed to.

Another great addition to the cast is Michael Keaton, who plays convicted serial killer Frank Carter, whom Peter helped to convict in the height of his days as a detective. Scenes between DeNiro and Keaton are also well acted, providing a familiar interrogation scene that crime lovers never seem to tire of.

Unfortunately, The Whisper Man is another run of the mill thriller movie that doesn't offer anything new. It's an alright thriller to watch on a rainy day if you want a familiar, easy to follow story, but it won't satisfy viewers who are looking for twists, turns and unpredictability.

I'm hopeful that Netflix picks up some better thrillers in future because so far in 2026, it's been very disappointing. If you're looking for good titles to stream, why not check out our guide to the best Netflix movies.

Categories: Reviews

I applaud the ambition in The Blood of Dawnwalker, but this open-world RPG features too much busywork and not a strong enough vampire fantasy to truly excel

Tue, 09/01/2026 - 16:00

When I previewed The Blood of Dawnwalker, its prologue was an impressive snapshot of what Rebel Wolves was hoping to achieve with its vampiric open-world role-playing game (RPG). It was a tight and tense introduction to a game that encourages you to spend your time wisely, live with the consequences of your actions, and balance Coen’s newly acquired Vrakhir abilities with the hope of maintaining his humanity.

Now, after sinking dozens more hours into the full release, this team that includes several ex-Witcher 3 developers hasn’t quite made that formative game’s spiritual successor. However, I can’t fault the ambition found in the studio’s debut release — even if not every idea is fully realised and a few elements lack polish.

Review info

Platform reviewed: PS5
Available on: PS5, Xbox Series X|S, PC
Release date: September 3, 2026

Ever since playing through that exciting opening, which sees Coen’s village razed and his family held captive to be used as sacrifices in an upcoming coronation for the valley’s vampire overlord, Brencis, I've been desperate to get back in and see what awaited in the rest of the game.

So, it’s strange that when you first hit the open world, the game starts to feel a little aimless. Your main goal may be to kill Brencis and save your family, but the direct approach is almost certainly going to lead to your death. Instead, it’s smarter to take the time to destabilise Brencis’ reign by going after his generals and increasing your power for the upcoming showdown.

No rest for the wicked

(Image credit: Bandai Namco / Rebel Wolves)

Unfortunately, that means engaging with a lot of dull and fairly repetitive tasks dotted around the map, mostly clearing camps of soldiers and smashing up boxes of supplies. The set dressing changes a little depending on which vampire lieutenant you’re going after (it may be blood supplies for Ambrus or slivovitz distilleries with Bakir), but you’re ultimately going through the same motions.

And I was surprised at how little some of the vampire leaders actually feature in the story while you’re being such a thorn in their side. Most development happens off-screen, while notes are found on soldiers bemoaning Coen’s actions and edicts are issued as you become more notorious.

There isn’t as much time given to interacting with these villains before an inevitable confrontation. And that’s a shame, because when you do come face-to-face with these flamboyant, furious, and fascinating characters, they end up being killed off just as they’re starting to get interesting.

(Image credit: Bandai Namco / Rebel Wolves)

I did find that The Blood of Dawnwalker found its feet when you dig into one of its many lengthier multi-part quests. Given the developer’s history and pedigree, and what was shown off in the prologue, this is more of what I expected. You get to spend time with some entertaining and well-written characters, explore interesting environments and dungeons, tackle challenging combat encounters, and often emerge with some nice new loot.

Choices and consequences come front and center in many of these quests, and I felt the game gives a surprising amount of room, as your investigations can open up different approaches or outcomes. And quite cleverly, not all effects are felt immediately, with some outcomes or repercussions only felt much later down the line. It shows Rebel Wolves really thought about the interconnectivity of its world and wanted to show the impact you have on it. A huge plus for the RPG lovers who thrive on that level of world-building.

The final countdown

Tying it all together is the 30-day time limit that’s central to The Blood of Dawnwalker. Much has been said about this mechanic, but the countdown to Brencis’ coronation and your family’s execution wasn’t a constant threat looming overhead. I considered it a lot at the start, but eventually, instead of making me question whether every single action was worth doing or made worthwhile progress, losing chunks of time eventually became something I just accepted as the price of doing business.

(Image credit: Bandai Namco / Rebel Wolves)

Where it was always a frustration, though, was during levelling up, where almost all skills and perks require you to spend time learning them, meaning you could lose half a day (or night) simply to make Coen stronger. I would understand this if it were reserved for learning more advanced skills, but when the same price must be paid to get 25 per cent more health or some passive stamina regeneration, it doesn’t feel worth the cost.

Best bit

(Image credit: Bandai Namco / Rebel Wolves)

Getting stuck into one of the game's more involved quests is when I feel The Blood of Dawnwalker really hits its stride. These are the moments I reflect on most fondly after my time with the game, mixing in dungeon crawling, exploration, and investigation — often alongside a well-written character or two — to create compelling and exciting scenarios. Even more so when they layer on tough moral choices at the conclusion, which sometimes come back to help (or hinder) you later.

The transition from day to night didn’t substantially change the game, either. Yes, it enables Coen’s vampiric powers, with neat tricks such as shadowstepping across chasms or walking up walls, but these don’t have the impact I feel they could have.

For starters, there’s so much blood available in consumables or animals to hunt out in the wild that I never felt this moral dilemma the game wants to push about Coen needing to feed. There is a neat idea that only happens if you’re low on health in vampire form and chatting with a non-player character (NPC), where you risk Coen giving in to the hunger and sucking the blood from his conversation partner, but it didn’t happen to me once in my playthrough.

Tonight I'm going to suck...your blood

(Image credit: Bandai Namco / Rebel Wolves)

When it comes to a clash of steel and fangs, the vampire powers don’t elevate what is a perfectly serviceable, if mostly underwhelming, combat system. The foundation is based on directional inputs to attack, block, or dodge, and picking the correct direction will set up your opponent for a devastating riposte from your sword or claws.

You can weave in a few abilities that range from the mundane, such as using pocket sand to temporarily blind an enemy, to several witchcraft or vampiric skills that burn your opponent's blood or set them up for a gruesome and bloody explosion. And while it all works fine, it never flows as smoothly as you would like or feels as impactful as you wish it did. Combat ultimately became something that I got through impassively rather than finding myself excited for the next encounter.

And that’s ultimately what makes me struggle to wholeheartedly recommend The Blood of Dawnwalker. Too many elements are dull, repetitive, or underused to keep me fully engaged over its lengthy playtime. There are captivating moments, though, that I feel some may be able to appreciate more if you’re able to overlook some of its flaws. Perhaps with some updates or a sequel, the ambitions of Rebel Wolves can be fully met.

Should you play The Blood of Dawnwalker?

(Image credit: Bandai Namco / Rebel Wolves)Play it if…

You enjoy rich and interconnected RPG worlds
The bigger and more involving quests in The Blood of Dawnwalker are a highlight, with your choices being felt not only immediately, but also much later in the game, with some surprising consequences of your actions.

You want an RPG to tide you over until The Witcher 3 Remastered
Given the development team’s history, there’s Witcher DNA throughout The Blood of Dawnwalker, and this will serve as a perfectly good stopgap until the third entry’s remaster.

Don’t play it if…

You can’t look past some jank
Combat is not always the most elegant or smoothest experience, and there’s some awkwardness in Coen’s movement or traversal using vampiric powers that can frustrate.

You tire of repetitive tasks
A fair chunk of the game’s quests involve repeating an almost identical objective to disrupt the vampire leaders, and even though it’s not essential, it does get boring fast.

Time pressure gives you choice paralysis
I don’t actually think the game’s 30-day timer is as oppressive as it could be, but this could give some players some real choice anxiety.

Accessibility

The Blood of Dawnwalker has limited accessibility features. Subtitles are available in 14 languages, but you cannot customise the size, color, or position on the screen. Two control options are available, with the ability to invert both axes if required.

There are more choices when it comes to refining the difficulty of the game, though. As well as general preset options ranging from Story to Duelist, you can also specifically tweak enemy health, enemy aggressiveness, how easy it is to perform perfect blocks, and whether blocking is automatic if you want an easier combat experience.

How I reviewed The Blood of Dawnwalker

I’ve put around 25 hours into The Blood of Dawnwalker over the past week and a half, and while I haven’t completed it yet, I feel I’ve seen more than enough of the game’s main story and side quests to offer a comprehensive verdict.

I spent all my time playing on a PlayStation 5 Pro on a Samsung S90C OLED TV and Samsung HW-Q930C soundbar while using a DualSense Wireless Controller.

I played on Balanced mode, which aims to run the game at 40 frames per second (fps) in dynamic 4K. A 30fps Quality mode is also available, but I preferred the option with a more stable fps that didn’t impact the visuals significantly. A Performance mode targeting 60fps will also be made available at launch.

First reviewed September 2026.

Categories: Reviews

The Cosori Dual Blaze Twinfry Compact is a big-basket air fryer that does a lot more than you'd expect — for a very reasonable price

Tue, 09/01/2026 - 09:21
Cosori Dual Blaze Twinfry Compact: 30-second review

The Cosori Dual Blaze Twinfry Compact might be a bit of a mouthful to say, but there's plenty to like about this air fryer.

Things start off well when you open the box with a useful quick start guide and fun little cookbook with over 20 recipes, showing you the range of possibilities available with this appliance.

With roast, grill and bake modes alongside the standard air fry function, and with an 8.6L basket that also has a divider so you can cook two things simultaneously, the Twinfry Compact could replace multiple appliances in your kitchen.

From crispy chicken wings, roast potatoes and wonderfully baked cakes, to gooey cookies, grilled burgers, and reheated pizza, I enjoyed using this air fryer.

(Image credit: Future)

The controls are straight forward, the basket is easy to clean, and it's not going to set you back as much as some of the more premium machines - while giving you results which are almost as good as expensive rivals.

It's a large device, so those with smaller kitchens might struggle to fit it in, while the lack of a shake reminder means you'll need to be vigilant when it's in use to make sure your food is turned/tossed correctly.

But these are minor points against what is a very capable air fryer, and one you should consider buying — especially if you can find it discounted.

Cosori Dual Blaze Twinfry Compact: price and availability
  • £159.99, but I’ve seen it discounted to £130
  • This model isn't available in the US and Australia

The Cosori Dual Blaze Twinfry Compact Air Fryer price is £159.99, putting it in the middle of the larger-basket market, although I have seen it discounted to £130 at some retailers, so it’s worth shopping around to find the best price.

That means the Twinfry Compact finds itself up against some strong competition, including the Philips 1000 Series Dual Basket and Tower Elite 11 Litre Flexi Drawer.

The list price equates to around $220 / AU$300, but this particular model isn't available in the US and Australia.

  • Value score: 4.5/5
Cosori Dual Blaze Twinfry Compact: specifications

Review Model

CAF-TF801-AUK

Number of baskets

1

Number of cooking programs

6

Cooking programs

Air Fry, Roast, Grill, Bake, Reheat, Dry

Extra functions

Dual Zone with Removable Divider, DualBlaze Tech

Smart control

No

Wattage

2700W

Capacity

8.6L

Temperature range

35-240C

Time range

1 minute - 4 hours

Dimensions

339cm (D) x 482cm (W) x 281cm (H)

Dishwasher-safe

Yes

Weight

8kg

Cosori Dual Blaze Twinfry Compact: design
  • Well designed with clear buttons and useful quick-start guide
  • You can split the basket in two, and there are six preset modes
  • No shake reminder or window on the basket

The Cosori Dual Blaze Twinfry Compact Air Fryer is nicely designed, with a sleek matte finish and clear controls. Sure it’s on the larger side, but the sizable 8.6L basket has to go somewhere.

It does mean you’ll need a chunk of worksurface space to fit the 339cm (D) x 482cm (W) x 281cm (H) machine, so those with smaller kitchens might find it a struggle to comfortably place this air fryer, or have enough space in a cupboard to store it. If you are tight on counter space, consider a smaller basket air fryer, or a vertically stacked, dual-basket option such as the Philips 4000 Series Stacked Dual Basket or Ninja Double Stack XL.

FutureFuture

You can split the 8.6L basket into two 4.3L offerings with the included divider in the box. This allows you to cook two separate foods, at different settings, simultaneously, offering greater flexibility.

Get past the size though, and there’s a lot to like. I was particularly impressed with the quick start guide in the box, which explained the main functions clearly and offered up a big table of different foods with the best cooking mode, temperature and time. This makes it really easy to get cooking.

What helps the Cosori Dual Blaze Twinfry Compact stand out from the crowd however, is its four heating elements. Two above, and two below the basket, providing even heat above and below your food, for an improved cook.

FutureFutureFuture

You get six preset cooking modes too, with Air Fry, Roast, Grill, Bake, Reheat, and Dry - but there are no food-specific presets like you see on some air fryers.

I do like the button layout on this appliance, with clearly labelled buttons making it easy to select if you’re cooking on one side of the basket, or doing a large batch in the whole thing — Cosori calls this the 'grandzone'.

Temperature and time are easily adjusted with up and down arrow buttons, while the ‘match’ button can copy the settings from one side of the basket to the other, and sync allows you to cook two foods in each side of the basket for different durations, but have them finish at the same time by delaying the start of the side with the shorter time.

FutureFuture

There’s no shake reminder though, which is a small miss as you need to remember to shake or turn the food yourself. There’s also no window on the basket, so you can’t keep an eye on the food while it cooks, you have to remove the basket which pauses cooking.

When you come to remove the basket from the air fryer, the large handle that runs the full width of the basket makes it easy to grip and move around. Although, if you’ve loaded up the basket with food it can be heavy, so you’ll need to use both hands.

FutureFuture

Before you put any food in the air fryer for the first time though, you need to wash the basket and pop the air fryer through a test run. The manual says to run the Cosori Dual Blaze Twinfry Compact for five minutes at 200C (give the basket, divider and trays a quick wash first) to ensure it's working and to remove any residue on components. During this time it will smell a bit, but don’t worry as it’s doing what it needs to.

Cleaning is pretty easy too. The basket, divider and trays are all dishwasher safe, while you can also hand wash them with warm water, mild soap, and a non-abrasive sponge. The size of the basket does mean washing it in smaller kitchen sinks can be a touch tricky, but it’s not a huge issue.

  • Design score: 4.5/5
Cosori Dual Blaze Twinfry Compact: performance
  • Great results from air fry, bake, grill and roast modes
  • It takes time to fully understand the best temps and timings
  • Opt for shorter cook times, to avoid burning food

At 60dB (from my own tests), the fans on this air fryer are noisier than some, so you’ll be well aware that it’s on and cooking. It’s not loud enough to drown out conversation, but you might want to take a step or two away from it if you are chatting to someone.

Whenever I review a large basket air fryer one of my go-to first cooks is pizza. When I tested the Tower Elite 11 Litre Flexi Drawer I was able to fit a small circular pizza in the drawer. With the Cosori, the basket isn’t as big, nor as deep as the Tower, which means I had to slice my pizza in half to fit it in the basket.

@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-1788271156702-vxxdhr06v *, #fv-chart-1788271156702-vxxdhr06v *:before, #fv-chart-1788271156702-vxxdhr06v *:after, #fv-chart-1788271156702-vxxdhr06v-slideshow *, #fv-chart-1788271156702-vxxdhr06v-slideshow *:before, #fv-chart-1788271156702-vxxdhr06v-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1788271156702-vxxdhr06v, #fv-chart-1788271156702-vxxdhr06v-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1788271156702-vxxdhr06v {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1788271156702-vxxdhr06v.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1788271156702-vxxdhr06v.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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1788271156702-vxxdhr06v-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v-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-1788271156702-vxxdhr06v-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-1788271156702-vxxdhr06v-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-1788271156702-vxxdhr06v-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1788271156702-vxxdhr06v-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1788271156702-vxxdhr06v-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-1788271156702-vxxdhr06v-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-1788271156702-vxxdhr06v-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-1788271156702-vxxdhr06v-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271156702-vxxdhr06v .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1788271156702-vxxdhr06v .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1788271156702-vxxdhr06v.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1788271156702-vxxdhr06v .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1788271156702-vxxdhr06v .fv-image-compare-expand-btn, #fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-image-compare-expand-btn:hover, #fv-chart-1788271156702-vxxdhr06v .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1788271156702-vxxdhr06v .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1788271156702-vxxdhr06v .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1788271156702-vxxdhr06v .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1788271156702-vxxdhr06v .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1788271156702-vxxdhr06v .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1788271156702-vxxdhr06v .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1788271156702-vxxdhr06v .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1788271156702-vxxdhr06v .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1788271156702-vxxdhr06v .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1788271156702-vxxdhr06v .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-bar-row, #fv-chart-1788271156702-vxxdhr06v .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271156702-vxxdhr06v.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1788271156702-vxxdhr06v.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1788271156702-vxxdhr06v .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1788271156702-vxxdhr06v .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1788271156702-vxxdhr06v .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1788271156702-vxxdhr06v .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1788271156702-vxxdhr06v .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1788271156702-vxxdhr06v .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1788271156702-vxxdhr06v .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1788271156702-vxxdhr06v .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1788271156702-vxxdhr06v .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1788271156702-vxxdhr06v .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1788271156702-vxxdhr06v .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1788271156702-vxxdhr06v .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1788271156702-vxxdhr06v .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1788271156702-vxxdhr06v .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1788271156702-vxxdhr06v .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v.mobile-view .fv-pie-container,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-row,#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-stacked-product,#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-grouped-bar-product,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-bar-row,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-stacked-product,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1788271156702-vxxdhr06v.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-1788271156702-vxxdhr06v.mobile-view .fv-bar-label,#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-grouped-product-title,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-bar-label,#fv-chart-1788271156702-vxxdhr06v.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-1788271156702-vxxdhr06v.mobile-view .fv-bar-container,#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-cluster,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-bar-container,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271156702-vxxdhr06v.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-1788271156702-vxxdhr06v.mobile-view .fv-x-axis-wrapper,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-x-axis-label-space,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-x-axis-chart-space,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-benchmark-title,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-dropdown-title,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-carousel-nav-btn,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-chart-title,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-chart-subhead,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-header,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-select-wrapper,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-vs,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-select-container,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-versus-select,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-stl-shop-all-btn,#fv-chart-1788271156702-vxxdhr06v.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-1788271156702-vxxdhr06v.mobile-view .fv-stl-shop-all-logo,#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-stl-shop-all-icon,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-bar-commentary-inline,#fv-chart-1788271156702-vxxdhr06v.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271156702-vxxdhr06v.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1788271156702-vxxdhr06v .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271156702-vxxdhr06v .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271156702-vxxdhr06v .fv-bar-row,#fv-chart-1788271156702-vxxdhr06v .fv-stacked-product,#fv-chart-1788271156702-vxxdhr06v .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-bar-label,#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-bar-container,#fv-chart-1788271156702-vxxdhr06v .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271156702-vxxdhr06v .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271156702-vxxdhr06v .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271156702-vxxdhr06v .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271156702-vxxdhr06v .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271156702-vxxdhr06v .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271156702-vxxdhr06v .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271156702-vxxdhr06v .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271156702-vxxdhr06v .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271156702-vxxdhr06v .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v .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-1788271156702-vxxdhr06v .fv-stl-shop-all-logo,#fv-chart-1788271156702-vxxdhr06v .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271156702-vxxdhr06v .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271156702-vxxdhr06v .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271156702-vxxdhr06v .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271156702-vxxdhr06v.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Round pizza","description": "Cooked using Cosori Dual Blaze Twinfry Compact Air Fryer","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-01T13:59:16.703Z","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": []}Round pizza

Cooked using Cosori Dual Blaze Twinfry Compact Air Fryer

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-1788271156702-vxxdhr06v', false); });} else {initialize('fv-chart-1788271156702-vxxdhr06v', false);}})();

This wasn’t an issue as it was a fresh pie, but had I purchased a frozen pizza I wouldn’t have been able to cook it in this air fryer. I selected air fry mode, set the temperature to 180C and the time to eight minutes.

After six minutes the pizza was done, with a crispy base and melted cheese making for a satisfying lunch. I returned a few days later with an oval pizza that I could easily fit in the basket. Another six minutes at 180C and again I had a nicely cooked pizza. It’s quicker and easier than using the oven.

@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-1788271335574-v8f79gp7j *, #fv-chart-1788271335574-v8f79gp7j *:before, #fv-chart-1788271335574-v8f79gp7j *:after, #fv-chart-1788271335574-v8f79gp7j-slideshow *, #fv-chart-1788271335574-v8f79gp7j-slideshow *:before, #fv-chart-1788271335574-v8f79gp7j-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1788271335574-v8f79gp7j, #fv-chart-1788271335574-v8f79gp7j-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1788271335574-v8f79gp7j {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1788271335574-v8f79gp7j.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1788271335574-v8f79gp7j.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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1788271335574-v8f79gp7j-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j-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-1788271335574-v8f79gp7j-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-1788271335574-v8f79gp7j-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-1788271335574-v8f79gp7j-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1788271335574-v8f79gp7j-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1788271335574-v8f79gp7j-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-1788271335574-v8f79gp7j-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-1788271335574-v8f79gp7j-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-1788271335574-v8f79gp7j-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271335574-v8f79gp7j .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1788271335574-v8f79gp7j .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1788271335574-v8f79gp7j.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1788271335574-v8f79gp7j .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1788271335574-v8f79gp7j .fv-image-compare-expand-btn, #fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-image-compare-expand-btn:hover, #fv-chart-1788271335574-v8f79gp7j .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1788271335574-v8f79gp7j .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1788271335574-v8f79gp7j .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1788271335574-v8f79gp7j .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1788271335574-v8f79gp7j .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1788271335574-v8f79gp7j .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1788271335574-v8f79gp7j .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1788271335574-v8f79gp7j .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1788271335574-v8f79gp7j .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1788271335574-v8f79gp7j .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1788271335574-v8f79gp7j .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-bar-row, #fv-chart-1788271335574-v8f79gp7j .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271335574-v8f79gp7j.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1788271335574-v8f79gp7j.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1788271335574-v8f79gp7j .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1788271335574-v8f79gp7j .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1788271335574-v8f79gp7j .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1788271335574-v8f79gp7j .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1788271335574-v8f79gp7j .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1788271335574-v8f79gp7j .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1788271335574-v8f79gp7j .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1788271335574-v8f79gp7j .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1788271335574-v8f79gp7j .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1788271335574-v8f79gp7j .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1788271335574-v8f79gp7j .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1788271335574-v8f79gp7j .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1788271335574-v8f79gp7j .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1788271335574-v8f79gp7j .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1788271335574-v8f79gp7j .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j.mobile-view .fv-pie-container,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-row,#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-stacked-product,#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-grouped-bar-product,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-bar-row,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-stacked-product,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1788271335574-v8f79gp7j.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-1788271335574-v8f79gp7j.mobile-view .fv-bar-label,#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-grouped-product-title,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-bar-label,#fv-chart-1788271335574-v8f79gp7j.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-1788271335574-v8f79gp7j.mobile-view .fv-bar-container,#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-cluster,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-bar-container,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271335574-v8f79gp7j.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-1788271335574-v8f79gp7j.mobile-view .fv-x-axis-wrapper,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-x-axis-label-space,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-x-axis-chart-space,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-benchmark-title,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-dropdown-title,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-carousel-nav-btn,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-chart-title,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-chart-subhead,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-header,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-select-wrapper,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-vs,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-select-container,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-versus-select,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-stl-shop-all-btn,#fv-chart-1788271335574-v8f79gp7j.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-1788271335574-v8f79gp7j.mobile-view .fv-stl-shop-all-logo,#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-stl-shop-all-icon,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-bar-commentary-inline,#fv-chart-1788271335574-v8f79gp7j.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271335574-v8f79gp7j.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1788271335574-v8f79gp7j .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271335574-v8f79gp7j .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271335574-v8f79gp7j .fv-bar-row,#fv-chart-1788271335574-v8f79gp7j .fv-stacked-product,#fv-chart-1788271335574-v8f79gp7j .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-bar-label,#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-bar-container,#fv-chart-1788271335574-v8f79gp7j .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271335574-v8f79gp7j .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271335574-v8f79gp7j .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271335574-v8f79gp7j .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271335574-v8f79gp7j .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271335574-v8f79gp7j .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271335574-v8f79gp7j .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271335574-v8f79gp7j .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271335574-v8f79gp7j .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271335574-v8f79gp7j .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j .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-1788271335574-v8f79gp7j .fv-stl-shop-all-logo,#fv-chart-1788271335574-v8f79gp7j .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271335574-v8f79gp7j .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271335574-v8f79gp7j .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271335574-v8f79gp7j .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271335574-v8f79gp7j.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Frozen fries","description": "Cooked using Cosori Dual Blaze Twinfry Compact Air Fryer","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-01T14:02:15.575Z","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": []}Frozen fries

Cooked using Cosori Dual Blaze Twinfry Compact Air Fryer

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-1788271335574-v8f79gp7j', false); });} else {initialize('fv-chart-1788271335574-v8f79gp7j', false);}})();

I was also able to air fry a large batch of delicious homemade fries (200C for 20 minutes), that came out wonderfully crispy on the outside while remaining fluffy in the middle.

Frozen fries come out equally as well, with the same temperature and duration as their homemade counterparts to achieve a similar cook. The adjustment I made when I came to cook fries again was to reduce the time by a couple of minutes, to avoid the outside of the fries being quite so well done.

@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-1788271525057-ywgqsi998 *, #fv-chart-1788271525057-ywgqsi998 *:before, #fv-chart-1788271525057-ywgqsi998 *:after, #fv-chart-1788271525057-ywgqsi998-slideshow *, #fv-chart-1788271525057-ywgqsi998-slideshow *:before, #fv-chart-1788271525057-ywgqsi998-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1788271525057-ywgqsi998, #fv-chart-1788271525057-ywgqsi998-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1788271525057-ywgqsi998 {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1788271525057-ywgqsi998.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1788271525057-ywgqsi998.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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1788271525057-ywgqsi998-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1788271525057-ywgqsi998-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-1788271525057-ywgqsi998-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-1788271525057-ywgqsi998-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-1788271525057-ywgqsi998-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1788271525057-ywgqsi998-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1788271525057-ywgqsi998-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-1788271525057-ywgqsi998-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-1788271525057-ywgqsi998-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-1788271525057-ywgqsi998-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271525057-ywgqsi998 .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1788271525057-ywgqsi998 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1788271525057-ywgqsi998.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1788271525057-ywgqsi998 .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1788271525057-ywgqsi998 .fv-image-compare-expand-btn, #fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-image-compare-expand-btn:hover, #fv-chart-1788271525057-ywgqsi998 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1788271525057-ywgqsi998 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1788271525057-ywgqsi998 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1788271525057-ywgqsi998 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1788271525057-ywgqsi998 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1788271525057-ywgqsi998 .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1788271525057-ywgqsi998 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1788271525057-ywgqsi998 .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1788271525057-ywgqsi998 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1788271525057-ywgqsi998 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1788271525057-ywgqsi998 .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-bar-row, #fv-chart-1788271525057-ywgqsi998 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271525057-ywgqsi998.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1788271525057-ywgqsi998.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1788271525057-ywgqsi998 .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1788271525057-ywgqsi998 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1788271525057-ywgqsi998 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1788271525057-ywgqsi998 .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1788271525057-ywgqsi998 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1788271525057-ywgqsi998 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1788271525057-ywgqsi998 .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1788271525057-ywgqsi998 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1788271525057-ywgqsi998 .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1788271525057-ywgqsi998 .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1788271525057-ywgqsi998 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1788271525057-ywgqsi998 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1788271525057-ywgqsi998 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1788271525057-ywgqsi998 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1788271525057-ywgqsi998 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998.mobile-view .fv-pie-container,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-row,#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-stacked-product,#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-grouped-bar-product,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-bar-row,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-stacked-product,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1788271525057-ywgqsi998.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-1788271525057-ywgqsi998.mobile-view .fv-bar-label,#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-grouped-product-title,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-bar-label,#fv-chart-1788271525057-ywgqsi998.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-1788271525057-ywgqsi998.mobile-view .fv-bar-container,#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-cluster,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-bar-container,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271525057-ywgqsi998.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-1788271525057-ywgqsi998.mobile-view .fv-x-axis-wrapper,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-x-axis-label-space,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-x-axis-chart-space,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-benchmark-title,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-dropdown-title,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-carousel-nav-btn,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-chart-title,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-chart-subhead,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-header,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-select-wrapper,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-vs,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-select-container,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-versus-select,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-stl-shop-all-btn,#fv-chart-1788271525057-ywgqsi998.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-1788271525057-ywgqsi998.mobile-view .fv-stl-shop-all-logo,#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-stl-shop-all-icon,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-bar-commentary-inline,#fv-chart-1788271525057-ywgqsi998.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271525057-ywgqsi998.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271525057-ywgqsi998.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1788271525057-ywgqsi998 .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271525057-ywgqsi998 .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271525057-ywgqsi998 .fv-bar-row,#fv-chart-1788271525057-ywgqsi998 .fv-stacked-product,#fv-chart-1788271525057-ywgqsi998 .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-bar-label,#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-bar-container,#fv-chart-1788271525057-ywgqsi998 .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271525057-ywgqsi998 .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271525057-ywgqsi998 .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271525057-ywgqsi998 .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271525057-ywgqsi998 .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271525057-ywgqsi998 .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271525057-ywgqsi998 .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271525057-ywgqsi998 .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271525057-ywgqsi998 .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271525057-ywgqsi998 .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271525057-ywgqsi998 .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271525057-ywgqsi998 .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271525057-ywgqsi998 .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-1788271525057-ywgqsi998 .fv-stl-shop-all-logo,#fv-chart-1788271525057-ywgqsi998 .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271525057-ywgqsi998 .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271525057-ywgqsi998 .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271525057-ywgqsi998 .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271525057-ywgqsi998.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Chicken wings","description": "Cooked using Cosori Dual Blaze Twinfry Compact Air Fryer","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-01T14:05:25.057Z","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": []}Chicken wings

Cooked using Cosori Dual Blaze Twinfry Compact Air Fryer

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-1788271525057-ywgqsi998', false); });} else {initialize('fv-chart-1788271525057-ywgqsi998', false);}})();

Chicken wings, coated in a buffalo ranch rub, came out with wonderfully crispy skin and succulent meat after 20 minutes at 185C.

I was able to fit eight full size wings in the basket, and I might have been able to squeeze one or two more in if I bunch them up a bit, but I didn't want to compromise the cook.

While they were very good, they weren't quite as moist inside as the wings I steam fried in the Philips 5000 series.

@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-1788271057019-cmqph08f6 *, #fv-chart-1788271057019-cmqph08f6 *:before, #fv-chart-1788271057019-cmqph08f6 *:after, #fv-chart-1788271057019-cmqph08f6-slideshow *, #fv-chart-1788271057019-cmqph08f6-slideshow *:before, #fv-chart-1788271057019-cmqph08f6-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1788271057019-cmqph08f6, #fv-chart-1788271057019-cmqph08f6-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1788271057019-cmqph08f6 {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1788271057019-cmqph08f6.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1788271057019-cmqph08f6.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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1788271057019-cmqph08f6-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1788271057019-cmqph08f6-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-1788271057019-cmqph08f6-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-1788271057019-cmqph08f6-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-1788271057019-cmqph08f6-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1788271057019-cmqph08f6-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1788271057019-cmqph08f6-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-1788271057019-cmqph08f6-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-1788271057019-cmqph08f6-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-1788271057019-cmqph08f6-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271057019-cmqph08f6 .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1788271057019-cmqph08f6 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1788271057019-cmqph08f6.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1788271057019-cmqph08f6 .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1788271057019-cmqph08f6 .fv-image-compare-expand-btn, #fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-image-compare-expand-btn:hover, #fv-chart-1788271057019-cmqph08f6 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1788271057019-cmqph08f6 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1788271057019-cmqph08f6 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1788271057019-cmqph08f6 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1788271057019-cmqph08f6 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1788271057019-cmqph08f6 .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1788271057019-cmqph08f6 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1788271057019-cmqph08f6 .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1788271057019-cmqph08f6 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1788271057019-cmqph08f6 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1788271057019-cmqph08f6 .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-bar-row, #fv-chart-1788271057019-cmqph08f6 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271057019-cmqph08f6.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1788271057019-cmqph08f6.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1788271057019-cmqph08f6 .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1788271057019-cmqph08f6 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1788271057019-cmqph08f6 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1788271057019-cmqph08f6 .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1788271057019-cmqph08f6 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1788271057019-cmqph08f6 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1788271057019-cmqph08f6 .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1788271057019-cmqph08f6 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1788271057019-cmqph08f6 .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1788271057019-cmqph08f6 .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1788271057019-cmqph08f6 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1788271057019-cmqph08f6 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1788271057019-cmqph08f6 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1788271057019-cmqph08f6 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1788271057019-cmqph08f6 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6.mobile-view .fv-pie-container,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-row,#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-stacked-product,#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-grouped-bar-product,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-bar-row,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-stacked-product,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1788271057019-cmqph08f6.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-1788271057019-cmqph08f6.mobile-view .fv-bar-label,#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-grouped-product-title,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-bar-label,#fv-chart-1788271057019-cmqph08f6.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-1788271057019-cmqph08f6.mobile-view .fv-bar-container,#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-cluster,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-bar-container,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271057019-cmqph08f6.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-1788271057019-cmqph08f6.mobile-view .fv-x-axis-wrapper,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-x-axis-label-space,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-x-axis-chart-space,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-benchmark-title,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-dropdown-title,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-carousel-nav-btn,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-chart-title,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-chart-subhead,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-header,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-select-wrapper,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-vs,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-select-container,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-versus-select,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-stl-shop-all-btn,#fv-chart-1788271057019-cmqph08f6.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-1788271057019-cmqph08f6.mobile-view .fv-stl-shop-all-logo,#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-stl-shop-all-icon,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-bar-commentary-inline,#fv-chart-1788271057019-cmqph08f6.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271057019-cmqph08f6.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271057019-cmqph08f6.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1788271057019-cmqph08f6 .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271057019-cmqph08f6 .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271057019-cmqph08f6 .fv-bar-row,#fv-chart-1788271057019-cmqph08f6 .fv-stacked-product,#fv-chart-1788271057019-cmqph08f6 .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-bar-label,#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-bar-container,#fv-chart-1788271057019-cmqph08f6 .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271057019-cmqph08f6 .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271057019-cmqph08f6 .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271057019-cmqph08f6 .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271057019-cmqph08f6 .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271057019-cmqph08f6 .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271057019-cmqph08f6 .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271057019-cmqph08f6 .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271057019-cmqph08f6 .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271057019-cmqph08f6 .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271057019-cmqph08f6 .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271057019-cmqph08f6 .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271057019-cmqph08f6 .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-1788271057019-cmqph08f6 .fv-stl-shop-all-logo,#fv-chart-1788271057019-cmqph08f6 .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271057019-cmqph08f6 .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271057019-cmqph08f6 .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271057019-cmqph08f6 .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271057019-cmqph08f6.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Cookie cup","description": "Baked using Cosori Dual Blaze Twinfry Compact Air Fryer ","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-01T13:57:37.019Z","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": []}Cookie cup

Baked using Cosori Dual Blaze Twinfry Compact Air Fryer

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-1788271057019-cmqph08f6', false); });} else {initialize('fv-chart-1788271057019-cmqph08f6', false);}})();

I also tried a Marks & Spencer cookie cup, currently doing the rounds on social in the UK as a must-try air fryer treat. I went for the Smores Cookie cup, and after 10 minutes in zone 1 (the left side of the basket) at 160C I got a cup that oozed chocolate topped with nicely toasted marshmallows.

And while we’re on the subject of sweet treats, the bake mode was another favorite of mine, with the Cosori Dual Blaze Twinfry Compact capable of excellent results. I cooked a simple banana bread in the grandzone for 25 minutes at 160C, and a further 20 minutes at 140C.

It rose wonderfully, and delivered an excellent bake that was soft, fluffy and flavourful. I also whipped up a batch of cookies, and on the bake mode for eight minutes at 175C I was treated to gooey-centered delights with a crispy exterior. The cook on them wasn't quite as impressive as the more premium Philips 5000 series I had recently tested, but they were still tasty.

@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-1788271075148-y266ykbz0 *, #fv-chart-1788271075148-y266ykbz0 *:before, #fv-chart-1788271075148-y266ykbz0 *:after, #fv-chart-1788271075148-y266ykbz0-slideshow *, #fv-chart-1788271075148-y266ykbz0-slideshow *:before, #fv-chart-1788271075148-y266ykbz0-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1788271075148-y266ykbz0, #fv-chart-1788271075148-y266ykbz0-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1788271075148-y266ykbz0 {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1788271075148-y266ykbz0.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1788271075148-y266ykbz0.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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1788271075148-y266ykbz0-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1788271075148-y266ykbz0-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-1788271075148-y266ykbz0-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-1788271075148-y266ykbz0-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-1788271075148-y266ykbz0-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1788271075148-y266ykbz0-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1788271075148-y266ykbz0-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-1788271075148-y266ykbz0-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-1788271075148-y266ykbz0-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-1788271075148-y266ykbz0-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271075148-y266ykbz0 .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1788271075148-y266ykbz0 .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1788271075148-y266ykbz0.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1788271075148-y266ykbz0 .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1788271075148-y266ykbz0 .fv-image-compare-expand-btn, #fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-image-compare-expand-btn:hover, #fv-chart-1788271075148-y266ykbz0 .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1788271075148-y266ykbz0 .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1788271075148-y266ykbz0 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1788271075148-y266ykbz0 .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1788271075148-y266ykbz0 .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1788271075148-y266ykbz0 .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1788271075148-y266ykbz0 .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1788271075148-y266ykbz0 .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1788271075148-y266ykbz0 .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1788271075148-y266ykbz0 .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1788271075148-y266ykbz0 .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-bar-row, #fv-chart-1788271075148-y266ykbz0 .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271075148-y266ykbz0.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1788271075148-y266ykbz0.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1788271075148-y266ykbz0 .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1788271075148-y266ykbz0 .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1788271075148-y266ykbz0 .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1788271075148-y266ykbz0 .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1788271075148-y266ykbz0 .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1788271075148-y266ykbz0 .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1788271075148-y266ykbz0 .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1788271075148-y266ykbz0 .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1788271075148-y266ykbz0 .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1788271075148-y266ykbz0 .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1788271075148-y266ykbz0 .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1788271075148-y266ykbz0 .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1788271075148-y266ykbz0 .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1788271075148-y266ykbz0 .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1788271075148-y266ykbz0 .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0.mobile-view .fv-pie-container,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-row,#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-stacked-product,#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-grouped-bar-product,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-bar-row,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-stacked-product,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1788271075148-y266ykbz0.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-1788271075148-y266ykbz0.mobile-view .fv-bar-label,#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-grouped-product-title,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-bar-label,#fv-chart-1788271075148-y266ykbz0.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-1788271075148-y266ykbz0.mobile-view .fv-bar-container,#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-cluster,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-bar-container,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271075148-y266ykbz0.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-1788271075148-y266ykbz0.mobile-view .fv-x-axis-wrapper,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-x-axis-label-space,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-x-axis-chart-space,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-benchmark-title,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-dropdown-title,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-carousel-nav-btn,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-chart-title,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-chart-subhead,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-header,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-select-wrapper,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-vs,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-select-container,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-versus-select,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-stl-shop-all-btn,#fv-chart-1788271075148-y266ykbz0.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-1788271075148-y266ykbz0.mobile-view .fv-stl-shop-all-logo,#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-stl-shop-all-icon,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-bar-commentary-inline,#fv-chart-1788271075148-y266ykbz0.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271075148-y266ykbz0.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271075148-y266ykbz0.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1788271075148-y266ykbz0 .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271075148-y266ykbz0 .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271075148-y266ykbz0 .fv-bar-row,#fv-chart-1788271075148-y266ykbz0 .fv-stacked-product,#fv-chart-1788271075148-y266ykbz0 .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-bar-label,#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-bar-container,#fv-chart-1788271075148-y266ykbz0 .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271075148-y266ykbz0 .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271075148-y266ykbz0 .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271075148-y266ykbz0 .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271075148-y266ykbz0 .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271075148-y266ykbz0 .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271075148-y266ykbz0 .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271075148-y266ykbz0 .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271075148-y266ykbz0 .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271075148-y266ykbz0 .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271075148-y266ykbz0 .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271075148-y266ykbz0 .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271075148-y266ykbz0 .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-1788271075148-y266ykbz0 .fv-stl-shop-all-logo,#fv-chart-1788271075148-y266ykbz0 .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271075148-y266ykbz0 .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271075148-y266ykbz0 .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271075148-y266ykbz0 .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271075148-y266ykbz0.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Banana bread","description": "Baked using Cosori Dual Blaze Twinfry Compact Air Fryer","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-01T13:57:55.148Z","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": []}Banana bread

Baked using Cosori Dual Blaze Twinfry Compact Air Fryer

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-1788271075148-y266ykbz0', false); });} else {initialize('fv-chart-1788271075148-y266ykbz0', false);}})();

The roast mode is also a useful addition. I was able to cook fluffy roast potatoes (with a reasonably crispy exterior) in less time, and using less power than my oven. And there was no need to par boil them either.

I cooked them for 25 minutes at 200C using the roast mode, and while you'll get crispier results using an oven, the Cosori is a great option when you're looking for faster results.

I roasted the potatoes alongside broccoli and sprouts, using the divider so the vegetables could be cooked for 15 minutes at 190C (per Cosori’s own instructions).

This turned out to be too long, as after 10 minutes they were already overcooked. An example of the initial trial and error required when understanding a new air fryer. However, for chunkier veg — such as carrots and parsnips - this setting works much better.

One of the slightly more unusual cooking modes available here is grill, but it works surprisingly well. I tested it out with four beef burgers, with the quick start guide that came with the air fryer suggesting I cook them for 11 minutes at 230C.

I was initially worried when I pulled them out at the end that they could be overcooked, but I was happy to find they were still juicy in the middle. You wouldn’t know it was the work of an air fryer rather than a traditional grill, and it was incredibly easy to do.

If you are someone who grills a lot, the Cosori Dual Blaze Twinfry Compact can replace your traditional grill, as well as being a strong air fryer and baking machine.

@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-1788271591488-osbwlk6no *, #fv-chart-1788271591488-osbwlk6no *:before, #fv-chart-1788271591488-osbwlk6no *:after, #fv-chart-1788271591488-osbwlk6no-slideshow *, #fv-chart-1788271591488-osbwlk6no-slideshow *:before, #fv-chart-1788271591488-osbwlk6no-slideshow *:after {box-sizing: border-box !important; margin: 0; padding: 0; border: 0;font-size: 100%; font: inherit; vertical-align: baseline;}#fv-chart-1788271591488-osbwlk6no, #fv-chart-1788271591488-osbwlk6no-slideshow { font-family: 'Open Sans', sans-serif !important; }#fv-chart-1788271591488-osbwlk6no {position: relative !important; overflow: visible !important;--riv-primary: #2E6E93;}#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-inner-wrapper.fv-no-header.fv-is-image-compare {padding-top: 0 !important;}#fv-chart-1788271591488-osbwlk6no.fv-full-bleed {width: 100vw !important;margin-left: calc(50% - 50vw) !important;}body {overflow-x: clip !important;}#fv-chart-1788271591488-osbwlk6no.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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no-slideshow {position: relative !important;width: 100% !important;margin: 1rem 0 !important;--riv-primary: #2E6E93;}#fv-chart-1788271591488-osbwlk6no-slideshow .fv-slides-wrapper {position: relative !important;width: 100% !important;}#fv-chart-1788271591488-osbwlk6no-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-1788271591488-osbwlk6no-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-1788271591488-osbwlk6no-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-1788271591488-osbwlk6no-slideshow .fv-nav-btn svg {width: 18px !important;height: 18px !important;stroke-width: 3px !important;filter: none !important;}#fv-chart-1788271591488-osbwlk6no-slideshow .fv-nav-btn:hover {opacity: 0.9 !important;transform: translateY(-1px) !important;}#fv-chart-1788271591488-osbwlk6no-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-1788271591488-osbwlk6no-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-1788271591488-osbwlk6no-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-1788271591488-osbwlk6no-slideshow .fv-slideshow-select:focus {outline: 2px solid #2E6E93 !important;border-color: #2E6E93 !important;}#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-versus-chart { display: flex; flex-direction: column; width: 100%; margin-top: 1rem; }#fv-chart-1788271591488-osbwlk6no .fv-versus-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; padding: 0 1rem; }#fv-chart-1788271591488-osbwlk6no .fv-versus-select-wrapper { flex: 1; min-width: 0; }#fv-chart-1788271591488-osbwlk6no .fv-versus-select-wrapper.fv-left { text-align: center; padding-right: 1rem; }#fv-chart-1788271591488-osbwlk6no .fv-versus-select-wrapper.fv-right { text-align: center; padding-left: 1rem; }#fv-chart-1788271591488-osbwlk6no .fv-versus-select-container { position: relative; display: inline-block; max-width: 100%; width: 100%; }#fv-chart-1788271591488-osbwlk6no .fv-versus-chevron { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; width: 16px; height: 16px; flex-shrink: 0; }#fv-chart-1788271591488-osbwlk6no .fv-versus-select-wrapper.fv-left .fv-versus-chevron { right: 0; }#fv-chart-1788271591488-osbwlk6no .fv-versus-select-wrapper.fv-right .fv-versus-chevron { right: 0; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-versus-select.fv-select-left { text-align: center; direction: ltr; padding-right: 1.25rem; }#fv-chart-1788271591488-osbwlk6no .fv-versus-select.fv-select-right { text-align: center; padding-right: 1.25rem; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-versus-body { display: flex; flex-direction: column; gap: 1.5rem; }#fv-chart-1788271591488-osbwlk6no .fv-versus-row { position: relative; height: auto; padding-top: 20px; margin-bottom: 0.25rem; display: block; }#fv-chart-1788271591488-osbwlk6no .fv-versus-bar-container { position: relative; height: 32px; display: flex; align-items: center; }#fv-chart-1788271591488-osbwlk6no .fv-versus-bar-left-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-end; align-items: center; }#fv-chart-1788271591488-osbwlk6no .fv-versus-bar-right-wrapper { flex: 1; height: 100%; display: flex; justify-content: flex-start; align-items: center; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-versus-bar-left { border-radius: 4px 0 0 4px; justify-content: flex-end; padding: 0 8px; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-inside-left { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271591488-osbwlk6no .fv-inside-right { white-space: nowrap; flex-shrink: 0; }#fv-chart-1788271591488-osbwlk6no .fv-versus-val-text { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 14px; }#fv-chart-1788271591488-osbwlk6no .fv-versus-pct-diff { font-size: 12px; font-weight: 600; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-image-compare-container { width: auto !important; margin-left: -1.5rem !important; margin-right: -1.5rem !important; margin-bottom: 2rem !important; }#fv-chart-1788271591488-osbwlk6no.fv-full-bleed .fv-image-compare-container { width: 100% !important; max-width: none !important; margin: 0 auto !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-image-compare-handle.fv-image-compare-handle-square { border-radius: 6px !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-image-compare-label-left { left: 1rem !important; }#fv-chart-1788271591488-osbwlk6no .fv-image-compare-label-right { right: 1rem !important; }#fv-chart-1788271591488-osbwlk6no .fv-image-compare-expand-btn, #fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-image-compare-expand-btn:hover, #fv-chart-1788271591488-osbwlk6no .fv-image-compare-close-btn:hover { background-color: rgba(0, 0, 0, 0.7) !important; }#fv-chart-1788271591488-osbwlk6no .fv-image-compare-close-btn { display: none !important; top: 1rem !important; bottom: auto !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-inner:active { cursor: grabbing !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-expand-btn { display: none !important; }#fv-chart-1788271591488-osbwlk6no .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-close-btn { display: flex !important; }#fv-chart-1788271591488-osbwlk6no .fv-image-compare-wrapper.fv-image-compare-fullscreen .fv-image-compare-label-right { right: 4rem !important; }#fv-chart-1788271591488-osbwlk6no .fv-bottom-bar { display: flex !important; flex-direction: column !important; align-items: center !important; margin-top: 0.5rem !important; gap: 1rem !important; }#fv-chart-1788271591488-osbwlk6no .fv-footer-content { text-align: center !important; width: 100% !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-dropdown-wrapper { text-align: center !important; margin-bottom: 16px !important; margin-top: 0 !important; }#fv-chart-1788271591488-osbwlk6no .fv-dropdown-title-container { position: relative !important; display: inline-block !important; max-width: 100% !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-dropdown-title:focus { outline: none !important; }#fv-chart-1788271591488-osbwlk6no .fv-dropdown-title::-ms-expand { display: none !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-carousel-nav-btn:hover { border-color: #9ca3af !important; }#fv-chart-1788271591488-osbwlk6no .fv-carousel-counter { font-size: 14px !important; color: #374151 !important; text-align: center !important; margin-top: 1rem !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-legend-item { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 14px !important; color: #374151 !important; }#fv-chart-1788271591488-osbwlk6no .fv-legend-color { width: 12px !important; height: 12px !important; border-radius: 3px !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-multi-legend-swatch { width: 16px !important; height: 16px !important; border-radius: 3px !important; }#fv-chart-1788271591488-osbwlk6no .fv-benchmark-group { margin-bottom: 1rem !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-bar-row, #fv-chart-1788271591488-osbwlk6no .fv-stacked-product { display: flex !important; align-items: center !important; width: 100% !important; margin-bottom: 0.75rem !important; position: relative !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no.preview-wrapper .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271591488-osbwlk6no.preview-wrapper .fv-bar-commentary-inline:focus, #fv-chart-1788271591488-osbwlk6no.preview-wrapper .fv-bar-commentary-inline:focus-within, #fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline, #fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-commentary-inline:focus, #fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-commentary-inline:focus-within { display: flex !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-bar:hover { opacity: 0.8 !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-bar-inner-label { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; padding-right: 8px !important; }#fv-chart-1788271591488-osbwlk6no .fv-bar-inner-value { flex-shrink: 0 !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-bar-label.fv-primary-product { font-weight: bold !important; color: var(--riv-primary) !important; }#fv-chart-1788271591488-osbwlk6no .fv-multi-bar-container { flex-direction: column !important; padding: 4px !important; align-items: stretch !important; gap: 4px !important; height: auto !important; }#fv-chart-1788271591488-osbwlk6no .fv-multi-bar-item { display: flex !important; align-items: center !important; height: 25px !important; width: 100% !important; }#fv-chart-1788271591488-osbwlk6no .fv-stacked-bar { display: flex !important; overflow: hidden !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-stacked-segment:last-child { border-right: none !important; }#fv-chart-1788271591488-osbwlk6no .fv-segment-value { font-size: 14px !important; font-weight: bold !important; }#fv-chart-1788271591488-osbwlk6no .fv-grouped-bar-product { display: flex !important; flex-direction: column !important; width: 100% !important; margin-bottom: 1.25rem !important; }#fv-chart-1788271591488-osbwlk6no .fv-grouped-product-title-wrapper { padding-left: 150px !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-bar-cluster { width: 100% !important; flex-grow: 1 !important; display: flex !important; flex-direction: column !important; }#fv-chart-1788271591488-osbwlk6no .fv-bar-cluster .fv-bar-row { margin-bottom: 3px !important; }#fv-chart-1788271591488-osbwlk6no .fv-bar-cluster .fv-bar-container { height: 20px !important; }#fv-chart-1788271591488-osbwlk6no .riv-grid line {stroke: #D1D5DB !important;stroke-dasharray: 3 3 !important;}#fv-chart-1788271591488-osbwlk6no .fv-x-axis-wrapper { display: flex !important; width: 100% !important; margin-top: 0.5rem !important; }#fv-chart-1788271591488-osbwlk6no .fv-x-axis-label-space { width: 150px !important; padding-right: 10px !important; flex-shrink: 0 !important; }#fv-chart-1788271591488-osbwlk6no .fv-x-axis-chart-space { flex-grow: 1 !important; padding-right: 8px !important; }#fv-chart-1788271591488-osbwlk6no .fv-x-axis-wrapper.fv-grouped-x-axis { margin-left: 0 !important; }#fv-chart-1788271591488-osbwlk6no .fv-x-axis-line { border-top: 1px solid #D1D5DB !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-x-axis-ticks span { position: relative !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-x-axis-unit { text-align: center !important; font-size: 14px !important; color: #374151 !important; margin-top: 8px !important; display: block !important; }#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no.mobile-view .fv-pie-container,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-grouped-product-title-wrapper,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-row,#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-stacked-product,#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-grouped-bar-product,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-bar-row,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-stacked-product,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-label:not(.fv-grouped-product-title),#fv-chart-1788271591488-osbwlk6no.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-1788271591488-osbwlk6no.mobile-view .fv-bar-label,#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-grouped-product-title,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-bar-label,#fv-chart-1788271591488-osbwlk6no.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-1788271591488-osbwlk6no.mobile-view .fv-bar-container,#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-cluster,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-bar-container,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-row .fv-bar-commentary-inline:focus-within,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271591488-osbwlk6no.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-1788271591488-osbwlk6no.mobile-view .fv-x-axis-wrapper,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-x-axis-label-space,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-x-axis-chart-space,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-benchmark-title,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-dropdown-title,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-carousel-nav-btn,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-chart-title,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-chart-subhead,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-header,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-select-wrapper,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-select-wrapper.fv-left,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-select-wrapper.fv-right,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-select.fv-select-left,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-select.fv-select-right,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-vs,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-select-container,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-versus-select,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-stl-shop-all-btn,#fv-chart-1788271591488-osbwlk6no.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-1788271591488-osbwlk6no.mobile-view .fv-stl-shop-all-logo,#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-stl-shop-all-icon,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-stl-shop-all-logo,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-stl-shop-all-icon svg,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-bar-commentary-inline,#fv-chart-1788271591488-osbwlk6no.labels-on-top .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271591488-osbwlk6no.mobile-view .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271591488-osbwlk6no.mobile-view.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}@media (max-width: 599px) {#fv-chart-1788271591488-osbwlk6no .fv-pie-container {flex-direction: column !important; gap: 1rem !important;}#fv-chart-1788271591488-osbwlk6no .fv-grouped-product-title-wrapper {padding-left: 0 !important;}#fv-chart-1788271591488-osbwlk6no .fv-bar-row,#fv-chart-1788271591488-osbwlk6no .fv-stacked-product,#fv-chart-1788271591488-osbwlk6no .fv-grouped-bar-product {flex-direction: column !important; align-items: flex-start !important; margin-bottom: 1.25rem !important;}#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-bar-label,#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-bar-container,#fv-chart-1788271591488-osbwlk6no .fv-bar-cluster {width: 100% !important;}#fv-chart-1788271591488-osbwlk6no .fv-bar-row .fv-bar-commentary-inline,#fv-chart-1788271591488-osbwlk6no .fv-bar-row:hover .fv-bar-commentary-inline,#fv-chart-1788271591488-osbwlk6no .fv-bar-row .fv-bar-commentary-inline:focus,#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-x-axis-wrapper {margin-left: 0 !important;}#fv-chart-1788271591488-osbwlk6no .fv-x-axis-label-space {display: none !important;}#fv-chart-1788271591488-osbwlk6no .fv-x-axis-chart-space {padding-right: 0 !important;}#fv-chart-1788271591488-osbwlk6no .fv-benchmark-title {font-size: 16px !important;}#fv-chart-1788271591488-osbwlk6no .fv-dropdown-title {font-size: 16px !important;}#fv-chart-1788271591488-osbwlk6no .fv-carousel-nav-btn {padding: 8px 12px !important; font-size: 14px !important;}#fv-chart-1788271591488-osbwlk6no .fv-chart-title {padding: 0 8px !important;}#fv-chart-1788271591488-osbwlk6no .fv-chart-subhead {padding: 0 8px !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-header {flex-direction: column !important; align-items: center !important; padding: 0 !important; gap: 0.5rem !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-select-wrapper {flex: 1 !important; min-width: 0 !important; width: 100% !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-select-wrapper.fv-left {text-align: center !important; padding-right: 0 !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-select-wrapper.fv-right {text-align: center !important; padding-left: 0 !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-select.fv-select-left {text-align: center !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-select.fv-select-right {text-align: center !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-vs {text-align: center !important; padding: 0.25rem 0 !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-select-container {max-width: 100% !important; width: 100% !important;}#fv-chart-1788271591488-osbwlk6no .fv-versus-select {font-size: 14px !important; width: 100% !important;}#fv-chart-1788271591488-osbwlk6no .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-1788271591488-osbwlk6no .fv-stl-shop-all-logo,#fv-chart-1788271591488-osbwlk6no .fv-stl-shop-all-icon {width: 2rem !important; height: 2rem !important;}#fv-chart-1788271591488-osbwlk6no .fv-stl-shop-all-icon svg {width: 14px !important; height: 14px !important;}#fv-chart-1788271591488-osbwlk6no .fv-bar-commentary-inline {display: block !important; margin-left: 0 !important; width: 100% !important;}#fv-chart-1788271591488-osbwlk6no .fv-y-axis-title { padding-left: 5% !important; }#fv-chart-1788271591488-osbwlk6no.fv-contains-line-chart .fv-footer-content {margin-left: -1rem !important;margin-right: -1rem !important;}}{"@context": "https://schema.org","@type": "Dataset","name": "Burgers","description": "Cooked using Cosori Dual Blaze Twinfry Compact Air Fryer","creator": {"@type": "Organization","name": "TechRadar","logo": "https://cdn.mos.cms.futurecdn.net/dAwPEozB9GMMhAngdFJTHb.png"},"isAccessibleForFree": true,"dateCreated": "2026-09-01T14:06:31.489Z","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": []}Burgers

Cooked using Cosori Dual Blaze Twinfry Compact Air Fryer

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-1788271591488-osbwlk6no', false); });} else {initialize('fv-chart-1788271591488-osbwlk6no', false);}})();

Something I did notice was you want to lean towards the shorter end of cooking times, because if forget about the air fryer, or set the timer for the higher end of a cooking range, you might find food gets a little cremated.

This is all part of the air fryer ownership journey, and during the first couple of weeks you’ll need to spend some time closely monitoring how quickly food is cooking to get a better understanding of the performance.

The lack of a shake reminder means it’s easier to forget about checking how your food is getting. But don’t let this put you off. All air fryers come with this learning curve, and with the Cosori Dual Blaze Twinfry Compact less tends to be more when it comes to cooking duration.

  • Performance score: 4.5/5
Should you buy the Cosori Dual Blaze Twinfry Compact?Report card

Attribute

Notes

Rating

Value

There’s great versatility here, with the bake and grill modes excellent additions alongside air fry. And with deals to be had, you can probably get it for less than RRP is you shop around.

4.5/5

Design

A slick design that looks smart on the kitchen counter, so long as you have space for this wide machine. Buttons are well laid out, the basket divider allows two different foods to be cooked together, and the quick start guide is packed with useful info.

4.5/5

Performance

The Cosori Dual Blaze Twinfry Compact delivers consistent results across air fry, bake, grill and roast modes. You will need to keep an eye on things and adjust timings to suit your needs, but once you’ve mastered this you’ll be happy with the results.

4.5/5

Buy it if

You love big basket flexibility

The big basket on the Cosori Dual Blaze Twinfry Compact can fit plenty of food in it. Whether it’s a large joint of meat, or a smaller main and a side split by the divider and cooked at different temps, you can do it with this air fryer.

You want more than just an air fryer

With impressive bake, roast and grill modes, the Cosori Dual Blaze Twinfry Compact can handle more than just simple air frying. You could reduce the number of appliances in your kitchen.

You don’t want to spend loads

WIth an already reasonable price tag, and with discounts to be had if you shop around, the Cosori Dual Blaze Twinfry Compact delivers great versatility and features for the price. You can spend more on premium rivals from Philips and Ninja, but aside from sleeker designs and food presets, the difference it’s overly great.

Don’t buy it if

You’re forgetful

There’s no shake reminder here, nor is there a window in the basket, which means you really need to remember to check how your food is cooking. Otherwise you might end up with over cooked items, or uneven cooking if you forget to flip, turn, or shake the food in the basket.

You have limited counter space

Due to the sizable basket of this air fryer, you’re looking at a wide footprint. For kitchens that have limited space on counters, this Cosori might be too big for your setup. Consider a smaller basket air fryer, or a stacked offering that reduces the footprint required.

You want a quiet air fryer

The Cosori Dual Blaze Twinfry Compact isn’t obnoxiously loud, but it is noisier than some other air fryers. If you want a quieter machine, you’ll be best off looking elsewhere.

Cosori Dual Blaze Twinfry Compact: also consider

Tower Elite 11 Litre Flexi Drawer

This air fryer has an even bigger basket, and a lower price tag, making it an excellent choice for families on a budget. Its controls aren’t as intuitive, and the basket is handwash only, but results are still good.

For more information, check out our full Tower Elite 11 Litre Flexi Drawer review

Philips 5000 Series Megabasket with Steam Air Fryer

If your budget can stretch to a premium model, this Philips large-basket air fryer also offers a great array of cooking modes, including an impressive steam function that’s made some of the best chicken wings I’ve ever had.

For more information, check out our full Philips 5000 Series Megabasket with Steam review

How I tested the Cosori Dual Blaze Twinfry Compact
  • I used the Cosori Dual Blaze Twinfry Compact for multiple weeks in my kitchen
  • I cooked a variety of food, including fries, cakes, vegetables, pizza and meat
  • I tested the various cooking modes, and the cleaning process

For my review of the Cosori Dual Blaze Twinfry Compact Air Fryer, I used it for a number of weeks at home, cooking a wide variety of food and testing out the various functions.

I baked cakes and cookies, air fried fries, chicken wings and pizza, roasted potatoes and vegetables, and grilled kebabs and burgers. I even reheated leftover pizza the next day - which was sensational on a slight hangover.

I also hand-washed the components, and ran them through a dishwasher, to ensure cleaning and maintenance was easy.

First reviewed September 2026

Categories: Reviews

Dyson CameraJet review: This game-changing toothbrush offers liquid flossing, precision-brushing and a camera that doubles as a dental endoscope — I tried it for a week

Tue, 09/01/2026 - 04:33
Dyson CameraJet: One minute review

As the only toothbrush and water flosser with a built-in 100k pixel macro lens camera, the CameraJet offers something unique. It’s designed to identify gaps in the teeth and precision floss as you brush and gently blast away at plaque for a thorough clean. The Dyson CameraJet was unveiled by its founder and chief engineer James Dyson in Paris on Tuesday 1 September, and I’ve been using it for a week prior to launch. I was keen to see if its impressive spec could change the way I brush, and see, my teeth. While I’m still getting to grips with how to get the best from its settings and perfect my brushing technique, so far I’ve been enjoying the results and it may well make it onto our best electric toothbrush list.

At £419.99 (US $568 / AUS $794) for the set including a charging dock, travel case, Dyson Toothpaste and Dyson Mouthrinse, there’s no denying that this mouth-watering set comes at an eye-watering price.

You can already find AI/smart toothbrushes with sensors, smart apps and voice guidance available online from the likes of Oclean, Philips, Oral-B or Feno, of course, but none of these have a built-in endoscopic camera like the Dyson CameraJet, or include such an array of promising tech. I’ve tried water flossers in the past, but none that seem so mindfully designed.

The CameraJet provides a live-view the inside of your mouth, which you can view on the accompanying MyDyson app on your smartphone. This allows you to see where you’re cleaning, where you need to brush and how you can improve brushing and flossing. Having a toothbrush with built-in Wi-Fi camera in the bathroom does make me feel a little uneasy, but Dyson assures me that no images are recorded or stored on the product or in the cloud, and images remain private to the user.

At the time of writing, the companion MyDyson CameraJet app has only just gone live, so i’ve only used the live-view feature for a few guided brushing sessions. But the picture quality is clear, even if all I can see is a sea of gum, teeth and bubbles, and it streams with no lag, which is very impressive. I’ll be interested to see what personalised oral care insights it gathers in the coming days.

The CameraJet’s built-in anti-gravity mouthrinse tank makes its cordless design bulkier than your standard electric toothbrush, but I’ve found it comfortable to handle and control. I also like that it’s cordless unlike some water flossers, and you can use it in multiple directions in your mouth. However, if I don’t close my mouth properly, it splashes my mirror unapologetically while in auto-jet flossing mode.

The dual-bristle brush feels a nice size against my teeth and it glides along the contours with a satisfying pressure and firmness. Its variable sonic oscillation technology keeps the brush in constant motion to make it easier to get hard to reach areas without the brush stalling. It’s easy to refill and charge on its dedicated stand too.

What makes the Dyson CameraJet seemingly effective when blasting mouthrinse at plaque is its broad conical shaped spray that provides wide coverage. It took me a while to get used to the feel of the jet spray as it tickled every tooth. But with a slow and steady pace I was able to improve my brushing and flossing technique every time to get the best from the CameraJet, even if I couldn’t see myself in the bathroom mirror afterwards.

Dyson CameraJet: Specifications

Price

£419.99 / around $568 and $792 AUD)

Camera

100k pixel macro lens camera

Smart connectivity

Wi-Fi at 2.4GHz and Bluetooth connected

Colorways

Ceramic Ultra Blue and Ceramic Pink

Dimensions

L 273mm x W 44mm x D 44mm

Dyson CameraJet: Price and availability

(Image credit: Future / Emily Peck)
  • £419.99 (around $568 and $792 AUD)
  • Available in Ceramic Ultra Blue or Ceramic Pink colorways
  • For use with 75ml tube of Dyson Toothpaste and 400ml bottle of Dyson Mouthrinse

At the time of writing, the mouth-watering Dyson CameraJet costs £419.99 (around $568 and $792 AUD). This includes the colour choice of either Ceramic Ultra Blue or Ceramic Pink, and comes in a set including a charging dock, travel case, 75ml tube of Dyson Toothpaste and 400ml bottle of Dyson Mouthrinse.

While oral care may be a far cry from Dyson’s floorcare and air purifying categories, I think the CameraJet aligns mindfully with Dyson’s growing portfolio of tech beauty products. If you already own the game-changing Dyson Supersonic hair dryer and new Dyson Co-anda2x complete with new attachments, buying the CameraJet may just feel like a natural next step, but you will need to take the hit of its high-end price.

Just as Dyson has complemented its beauty tools with hair products such as its Chitosan styling range, Dyson has also formulated its special Dyson toothpaste and mouthwash formula. These are optimised to be non-foaming so the camera can see clearly while you brush. A 400ml bottle of mouthrinse that dispenses the precise 12.5ml should last around 32 brushes – if you’re using the mouthrinse twice daily that gives you around 16 days before having to refill. A set of two brush heads costs £25, while the Dyson toothpaste and mouthrinse are £8.49 ($11.50 / AUS $16 each.

The toothbrush heads will need to be replaced every three months. The brushes are RFID enabled, so you’ll get an alert on the app when it’s time to change them.

  • Value score: 3.5/5
Dyson CameraJet: Design

(Image credit: Future / Emily Peck)
  • Dual-bristle brush head to contour teeth
  • Powerful sonic motor oscillates 245 times a second to help remove plaque
  • WiFi enabled at 2.4 GHz with Bluetooth connectivity, designed to work with companion smart app

With its built-in camera, conical jet, flexible control pad, feature-packed app and luxurious pink or blue styling, the Dyson CameraJet design looks and feels premium.

It comes presented in a Dyson-branded cardboard box with a refill dock, USB-C charger and two dual-bristle brush heads with plastic case. There’s no carry bag in the box, but I think this would make a nice addition if you’re travelling with it.

You also get a Dyson mouthrinse and non-foaming toothpaste, which contains sodium fluoride to help fortify enamel and strengthen teeth.Both the toothpaste and mouthrinse taste agreeable, and are quite subtle in minty-ness.

It takes eight hours to recharge the brush fully on the refill dock that takes a USB-C. Battery should last for eight hours, but this all depends on how long you use it for, and which settings you choose.

To set up you can either pour the mouthrinse into the refill dock or straight into the CameraJet tank. I poured three quarters of my 400ml mouthrinse bottle into the refill doc, so that I could fill up the mouthrinse tank on the CameraJet after each use simply by pressing a button on the dock. To clean the brush after use, I simply rinsed its brush head, ran the tank under water and allowed the brush to dry while on the dock.

The 100k pixel macro lens camera is built into the design just below the brush head. What makes the camera accurate in its jet sprays while flossing – so you’re not just blinding firing mouthrinse into your mouth – is its Gap Optical Targeting, which is Dyson’s AI learning machine algorithm. This scans 28 live images per second to identify, track and predict gaps between the teeth.

With variable sonic oscillation that varies the angle of the brush to improve plaque removal and prevent it from stalling, the brush head feels comfortable to use. While the body of the CameraJet is quite large for a toothbrush, the brush head is a comfortable size, and it contours my mouth smoothly.

The brush comes with a control panel on the front with three intensity settings, and modes for brushing, flossing or brushing and floss at the same time. The anti-gravity mouthrinse tank also delivers the recommended 25ml amount of mouthrinse each time you use it. This has a diaphragm pump and pressure chamber that adapts during use to eliminate air pockets and prevent the device from firing blanks. This means it should provide uninterrupted jets of mouthwash, whichever way you hold its cordless design. I found it a little hit and miss at times, particularly in the front teeth, but there’s a knack to brushing correctly that I haven’t quite mastered yet.

With the WiF-connected camera acting like a dental endoscope, the brushes smart app can show you a live-view of the inside of your mouth. I found it easy to connect to the app over WiFi, and while I’ve only tried it a few times, i’m really impressed with how clear a picture quality it displays and how quickly the picture streams.

As I use the brush more, and follow the guided cleaning sessions in the app, my technique will no doubt improve, resulting in a much more thorough clean. Here you can see which bits you’re missing and get advice on how to improve your clean.

  • Design score: 4/5
Dyson CameraJet: Performance

(Image credit: Future / Emily Peck)
  • Variable sonic oscillation to prevent stalling and keep bristles moving
  • With 100k pixel macro lens camera and conical jet to target gaps between teeth
  • Flexible jet-flossing controls and three brushing intensity modes

The first time I tried to use the CameraJet I got a spray of mouthwash on my forehead when I turned it on. It’s then that I discovered my rule number one – make sure to direct it away from the face when turning it on.

Once inside my mouth, I found it comfortable to use, even if its tooth-tickling spray did take a few attempts to get used to. At 61.3 dBa – measured at home on my decibel meter app on its highest setting – it’s not too noisy either but gently hums away. Its medium-firm, dual-bristle brush head is a nice shape and glided along my gums comfortably.

On board its powerful sonic motor and diaphragm pump is designed to deliver a targeted, pressurized conical jet spray in as fast as one-tenth of a second to target plaque effectively.

Dyson suggests applying light pressure and allowing the toothbrush to do the work. You also need to keep moving the brush as you use it to ensure the camera can find the gaps dispense the jet sprays, and this can be a little tricky to start off with. It doesn’t always fire a jet spray when I think it should, but I’m getting better at handling it. This is where the app is also helping, as I can see exactly which teeth are being cleaned and getting prompts to ‘part my lips wide’ and move sections. I can also follow the guided cleaning sessions, while the camera tracks which teeth i’m cleaning in real time.

The app only went live a day prior to launch, so I haven’t really had a proper chance to use it, but I do find it strangely exciting to see the inside of my mouth in real time while I brush. It’s a sight I only thought I’d see when visiting the dentist, and while it offers a little more insight than I’d like, I can see that it has the potential to be very helpful when cleaning - and when you’ve got toothache or something stuck in between your teeth.

From the three brush intensity settings, I’ve been finding the deepest clean the most effective. As well as the option to either brush or floss for two minutes, you can also brush and floss for three minutes at the same time. The toothpaste is non-foaming, which helps to reduce any slurry in my mouth, but when I’m flossing and trying to look at which teeth I’m brushing, my bathroom mirror is getting a lot of spray. I think when the app goes live and Ii’m able to view a live-stream of the inside of my mouth while flossing, this might make things a little less messy. It will also be able to tell me which teeth I’m missing.

After a week, this more disciplined approach has left my mouth feeling fresher and cleaner. But while I trust the jets are working, I don’t think I’m quite ready to give up my dental tape completely just yet.

When I first set eyes on the Dyson CameraJet, I couldn’t help but wonder if its built-in camera was just a superfluous gimmick or a useful oral health tool. But having trialled it for a week, I’m impressed by its premium feel and just how deeply it seems to be cleaning my teeth. On first look I think the app is rather special too, and has the potential to be really quite useful.

Overall, I think if you’re willing to make the spend, the Camerajet can be a smart and informative oral health tool. And as regularly as I’m currently using it, I know I’ll feel much more confident next time I visit my hygienist.

  • Performance score: 4/5
Dyson CameraJet: Scorecard

(Image credit: Future / Emily Peck)

Category

Comment

Score

Value

Premium price and you need to factor in the cost of refills, mouthrinse and toothpaste

3.5/5

Design

Easy to hold and comfortable in hand. Built in mouthrinse tank makes it a little bulky.

4/5

Features

Impressive 100k pixel macro lens camera and variable sonic brushing. Useful guided cleaning sessions and live-stream insight on the app.

5/5

Performance

Feels like a thorough clean, even if the splashes make it messy to use in jet flossing mode

4/5

Total

4/5

Dyson Camerajet: Should I buy?Buy it if…

You want to improve your cleaning coverage

The conical jet on this device is optimized to precision floss while you brush. By simply using it twice a day for three minutes at a time, you’re taking positive steps to try and improve your oral hygiene. There’s also an accompanying app to help guide you.

You love a smart app with health data

This smart toothbrush pairs with the MyDyson app on your smartphone to give you access to even more health data.

You want to try jet flossing

The convenient thing about the Dyson CameraJet is that its conical jet spray delivers the recommended amount of mouthrinse from its built-in anti-gravity tank. It can help keep plaque at bay and leave your mouth feeling fresh.

Don’t buy it if…

The idea of a camera-based product makes you uneasy

Smart devices aren’t for everyone, although Dyson does take privacy seriously. The camera is only active during live viewing or auto-jetting settings and Dyson states that no images are recorded or stored on the product or in the cloud, and images remain private to the user.

You’re squeamish

The built-in camera on the CameraJet doubles as an oral endoscope and is designed to work alongside the MyDyson smart app to provide a live feed of the inside of your mouth while you brush. Of course you don’t have to use this feature, but it’s a key part of the offering and may just help with brushing.

Your budget is tight

You could argue that with this toothbrush you’ll be potentially saving money on dental bills, but you’ll also need to factor in the cost of replacement brushes every three months, Dyson toothpaste and mouthrinse.

Also consider

Suri Core 1.0 electric toothbrush

It may not have a built-in water flosser, but the latest Suri Core 1.0 electric toothbrush is very effective. It comes with gentle haptic pressure sensor to let you know when you’re brushing too hard, recyclable heads and gives you an impressive four-weeks battery life on a full charge.

Read our full Suri Core 1.0 review

Oral-B iO Series 10

Our best premium AI powered electric toothbrush.

Read our full Oral-B iO Series review

How I tested

Back in May 2026, I visited Dyson’s global headquarters to see how the CameraJet was engineered, constructed and tested. Prior to its launch on September 1st, I tested CameraJet myself at home over the course of a week. I assessed its design, performance, battery life, brush modes and noise levels using a decibel meter reading on my smartphone. At the time of reviewing, the app has only just gone live.

Categories: Reviews

MSI Pro MP243W E14 review: A simple FHD business monitor at a spectacular price

Mon, 08/31/2026 - 16:40

The MSI PRO MP243 is a slim-bezel monitor that delivers nearly everything you would want from a low-cost display. At the same time, it’s exactly what you would expect when you hear the words “budget monitor.”

It’s not going to impress you with flashy features, and it’s not going to win any performance awards. It's not the very best business monitor we've ever tested. But what it does offer, however, is a sleek design, an easy setup, and enough of what most people need to make it a practical choice for everyday work in the office or home.

Maybe you need a larger screen for your home office, or perhaps you just bought a mini PC or Mac mini and need an affordable display to go along with it. It could also work well as a second monitor in a dual-screen setup. In those cases, the MP243 does the job.

MSI PRO MP243: Price and availability

(Image credit: Collin Probst // Future )

The price is where the MP243 really starts to make sense.

At around $120, you are getting a 23.8-inch IPS panel, a 144Hz refresh rate, Adaptive-Sync, HDMI, DisplayPort, built-in speakers, VESA support, and a clean white design.

That is a good group of features for a monitor in this price range.

One of the closest alternatives is the Dell SE2426HS. It has a similar 23.8-inch Full HD IPS panel, 144Hz refresh rate, Adaptive-Sync, and VESA support. The Dell also has a height-adjustable stand, which is a real advantage over the tilt-only stand on the MSI.

The MSI does have a few advantages of its own. It includes built-in speakers and DisplayPort, and the white finish gives it a cleaner look than most budget monitors.

At a lower sale price, the MSI is an easy monitor to recommend. At around $120, it is still a good option, but there are more competitors worth considering.

It really comes down to what matters more to you. If you want the white design, built-in speakers, and DisplayPort, the MSI is a good pick. If you care more about stand adjustment (and a higher resolution), there are better options.

(Image credit: Collin Probst // Future )MSI PRO MP243: Unboxing and First Impressions

Most of the monitor and stand are plastic, but they don’t really feel cheap. It’s lightweight enough that I’d still be careful when putting it together and taking it apart.

Everything included in the box is white, even down to the cables, which gives the setup a uniform look. If you’re someone who likes a certain aesthetic, I think you’ll appreciate that everything matches.

The monitor is really simple to put together. Everything just clicks in, and then you’re good to go. The back of the stem includes a cable-management clip for routing your power and display cables. It is a small feature, but it helps keep the back of your desk a little cleaner.

The top of the base includes a simple organizer slot. It’s big enough that you can put a USB adapter, thumb drive, or anything else in there that would otherwise just be sitting on top of your desk. It's an unexpected little feature that actually turned out to be useful.

MSI advertises it as a spot to hold your phone. You can place your phone in landscape and, depending on your workflow, use it as a secondary screen or simply keep it visible for notifications, your calendar, or something similar. It’s not a huge feature by any means, but it’s another small touch I appreciated that adds to the overall practicality of the monitor.

MSI PRO MP243: Design & Build Quality

The monitor’s control button is on the back right side. It doubles as both the power button and the joystick for navigating the menu.

The monitor keeps things simple when it comes to connectivity. It has one HDMI port, one DisplayPort, and one 3.5mm headphone jack. Both display inputs support 1080p at refresh rates up to 144Hz.

Honestly, support for up to 144Hz is a nice bonus for this price range, even if it’s clearly built for office work first. It's not necessary, but it's handy and opens up the customers for this monitor a little bit as well.

The MP243 has the standard settings you would expect, including brightness, contrast, sharpness, volume, and color controls. It also includes a few MSI-specific features that are worth mentioning.

MSI’s EyesErgo features include Less Blue Light, Anti-Flicker, and an anti-glare coating. These are all meant to make the monitor easier on your eyes during longer work sessions. If you spend most of your day reading emails, writing, or working through spreadsheets, they are nice features to have.

There is also an Eye-Q Check feature that gives you basic reminders for posture, eye fatigue, and taking breaks. It is not a feature I would buy the monitor for, but it makes sense on something that is primarily designed for office use.

The monitor supports Adaptive-Sync, HDR Ready, and refresh rates up to 144Hz. Adaptive-Sync can help reduce screen tearing, while 144Hz makes scrolling through webpages and moving things around the screen feel smoother than it would on a basic 60Hz monitor.

One of the more useful features of this monitor is its support for VESA mounting. The obvious benefit is that the monitor can be attached to a compatible wall mount or monitor arm. However, I think the more interesting use case is mounting a compatible mini PC directly to the back of the monitor.

Pairing this monitor with any of the best mini PCs is a more affordable alternative to a prebuilt all-in-one desktop. The computer stays out of sight, you can use shorter cables, and the whole setup takes up less space and looks cleaner.

I’m a stickler for cable management and keeping electronics as organized as possible. Being able to mount a mini PC behind the monitor, hide most of the hardware, and cut down on visible cables really adds to the value of this monitor.

The MP243 uses a 24-inch IPS panel with a claimed viewing angle of 178 degrees.

The bezels are thin along the left, right, and top edges, while the bottom bezel is slightly thicker. Combined with the white finish, the slim borders give the monitor a more high-end appearance than its price might suggest.

That is where this monitor arguably shines the most. It looks sleek, occupies relatively little space, and can blend naturally into a clean home-office environment.

The actual display is more conventional. Its 1080p resolution and standard image-quality features are appropriate for email, web browsing, documents, spreadsheets, and other everyday office tasks.

You can do just about anything with it, of course, but if you're trying to edit photos or creative content on this, you may miss some things you would catch on a higher end monitor, it also just won't look as clear.

MSI PRO MP243: In use

(Image credit: Collin Probst // Future )

One thing I actually didn’t mind was virtual meetings on this monitor. While I didn't have the clearest images of everyone, I didn't feel the virtual meeting was degraded or compromised in any way when using this screen.

The monitor includes two built-in 2W stereo speakers. The best comparison I can make is that they sound like basic laptop speakers without Dolby features or any other processing trying to make them sound better than they are.

It was good enough to hear clear audio, but I won't be listening to music through this anytime soon. If you do not already own desktop speakers, they are enough to get started. You can always add better speakers or headphones later.

I also connected an Xbox Series X and tested the monitor with Overwatch. It worked and the game was “playable.” However, the deficiencies were pretty noticeable when compared to my dedicated gaming monitor, which was already around five years old.

The 144Hz refresh rate may make it seem gaming-friendly on paper, but refresh rate alone doesn’t define the overall experience. For casual gaming, especially with a system limited to Full HD, it gets the job done.

I would not buy it specifically for gaming, though. Anyone shopping primarily for gaming should look elsewhere, which makes sense as this is more of a budget business monitor, despite the 144Hz tag that will get gamers excited.

MSI PRO MP243: Final verdict

(Image credit: Collin Probst // Future )

The MSI PRO MP243 is best suited to someone who wants to upgrade or expand a home-office setup without spending much money.

Its strongest qualities are its clean design, compact footprint, useful stand, cable-management features, built-in speakers, and support for VESA mounting systems. It provides the basic features most people need for regular office work while looking better than many inexpensive monitors.

Its limitations are just as clear, though. It’s only 1080p, the build is lightweight, and while it supports 144Hz, I wouldn’t recommend buying it specifically for gaming. That doesn’t make it a bad product. It just means it should be purchased for the right reasons.

This is a practical choice for emails, documents, web browsing, secondary-screen use, casual media consumption, and compact desktop setups. If you’re not concerned about having 4K, it offers a straightforward and affordable way to add more screen space to your desk.

Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future Collin Probst // Future
Categories: Reviews

I tested iFi’s new DAC/amp and it’s a masterpiece, with impressive portable power, stellar sound quality, a fountain of features, and an intuitive OLED display

Mon, 08/31/2026 - 16:00
iFi iDSD GR 2: one-minute review

With the iFi iDSD GR 2, a seemingly arduous task was at hand. British hi-fi brand iFi had to produce a portable DAC/amp that could improve on the spectacular xDSD Gryphon, which we handed a rave five-star review. But boy, did they pull it off.

The iDSD GR 2 provides upgrades that feel meaningful, practical, and tangible. It delivers around 50% more amplification power than its predecessor, making it easier to drive more demanding headphones, all while providing enhanced dynamic range and lower distortion. What’s more, it adds K2HD tech, licensed from JVC Kenwood, which helps to restore warmth and musicality that digital recordings sometimes lose.

Oh, and it fixes our only major gripe with its predecessor, by adding a vivid OLED touchscreen display, making it feel intuitive and easy to use when switching sources, toggling XBass and XSpace processing, or accessing settings. As a result, it easily competes with the best headphone DACs that money can buy.

It's a fantastic performer, delivering articulate, layered, and balanced sound. I paired the DAC/amp with the Astell & Kern A&ultima SP4000 music player and a range of headphones/IEMs, including the Sennheiser HD 600, and the results blew me away. The GR 2 supplied intricate instrument separation, punchy bass, phenomenal mid-range clarity, and expressive treble, making for a captivating listen, no matter what genre I threw at it.

What’s more, the DAC/amp has higher battery capacity (4,900mAh) with adaptive power, meaning I could indulge in long listening sessions without interruption. Combine that with a neat companion app, numerous connectivity modes, and a lightweight feel, and the GR 2 is the ideal device for audiophiles to carry while on the move.

At launch, the iFi iDSD GR 2 is cheaper than its predecessor was at the point of release, despite making a whole host of improvements. And while it would’ve been nice to see a case bundled in at this price-point, and while there are cheaper options on the market, I still think this model offers impeccable value for money when considering the sheer volume of tech crammed into this little device. As a result, it’s all too easy for me to recommend the GR 2.

(Image credit: Future)iFi iDSD GR 2 review: price & release date
  • List price of $529 / £529 / AU$849
  • Released in June 2026

The iFi iDSD GR 2 released in June 2026, and is the spiritual successor to the brand’s popular portable DAC/amp, the iFi xDSD Gryphon — a model that hit the market back in 2021. Despite offering a number of upgrades over its predecessor, the GR 2 is cheaper at launch, coming in at $529 / £529 / AU$849.

(Image credit: Future)iFi iDSD GR 2 review: features
  • Brilliant OLED touchscreen display
  • 4,900mAh battery capacity with adaptive power
  • K2HD tech opens up even more textured, subtle playback

The iFi iDSD GR 2 is rammed with features, and improves significantly on its already impressive predecessor.

Some of the most captivating options are back, including XBass and XSpace filters, which you can use in tandem or individually. XBass provides a tasteful bump to low-end sounds, while XSpace aims to deliver a more expansive soundstage — both work brilliantly, and I found myself using them often for more hard-hitting hip-hop and dance tracks.

You can select these via a new OLED touchscreen interface, which is phenomenally responsive and very easy to use. Here, you can access a range of settings, including Bluetooth pairing, dual charge mode, a voice prompt toggle, volume sync and more. The main menu also enables you to sift through the GR 2’s vast array of sources, such as Bluetooth (with higher-res aptX Lossless and LDAC support), USB-C, optical, coaxial, and line in. There’s also a lock button if you want to avoid accidental screen touches.

On top of this, the model features dedicated 3.5mm and 4.4mm headphone ports and a USB-C charging slot. Speaking of charging, it will take about 3.5 hours to get to 100% from flat, which isn’t particularly impressive, although I still found that I got quite a lot of playtime from the GR 2 without having to juice it up. That’s because the model features an upgraded battery capacity of 4,900mAh, which should be good for around 7 hours of use — though this will vary depending on volume and if you’re using sound filters.

You can use the GR 2 while charging it via its dedicated USB-C port, a very useful feature if you find you’re indulging in long listening sessions (as I did during testing). The DAC/amp also brings a new adaptive power feature to the table, which balances external power and battery operation. So, if you’ve got the GR 2 hooked up to an external supply, it can prioritize mains power, and in the case that additional power is required, it can be drawn from the device’s battery. The GR 2 will also automatically return to external power if demand drops.

Perhaps my favorite new feature on the GR 2, though, is its K2HD tech, which we saw before in iFi’s considerably pricier and larger iDSD Phantom desktop DAC. This is intended to restore harmonic detail, and bring a track closer to its intended sound, and is exclusively licensed to iFi by JVC Kenwood. I’ll speak more about the sonic benefits of K2HD in the ‘sound quality’ section, but for now, just know that it is indeed a brilliant addition.

Finally, it's worth noting that you can control the GR 2 with the iFi Nexis app, which is incredibly easy to use. It displays all of the options you’d typically see on the device’s touchscreen display, enabling you to easily switch between connectivity modes, adapt volume, toggle on the XBass / XSpace modes and more.

  • Features score: 5/5

(Image credit: Future)iFi iDSD GR 2 review: sound quality
  • Balanced, articulate, and nuanced sound
  • K2HD adds beautiful depth and detail, XBass / XSpace fantastic too
  • 50% more headphone drive, but less distortion and greater dynamic range

The original Gryphon was a great performer, delivering impeccable detail, precision, and dynamism, so it should come as no surprise that its sequel is phenomenally talented as well.

Although I tried the GR 2 with a few pairs of IEMs, I conducted most of my testing with the Sennheiser HD 600 headphones, and iFi’s DAC/amp got the very best out of them.

When tuning into a 24-bit 192kHz FLAC of Doralice by Stan Getz, João Gilberto, and Antonio Carlos Jobim, the GR 2 provided a beautifully balanced, insightful listen. Vocals were textured and carefully defined, and the K2HD feature added a nice dosage of warmth. Acoustic guitars were brilliantly separated too, and sounded as if they were operating in a discrete pocket within a broad and nuanced soundstage. Subtle percussion worked away in the right channel and expressive, leading sax also flowed through with personality and natural tonality.

With a more energetic track, Rocking Chair by Mr Scruff, the GR 2 continued to impress. The resonance of bongos in the intro was striking, higher pitched percussion in the treble range came through with vibrancy and precision, and there was an incredibly warm and textured quality to the squelchy bass, which hit with impressive impact — especially with XBass active. Individual instruments, like keys and tambourines were again fantastically weighted and separated, and K2HD added a delicious layer of subtlety and detail that effortlessly restored the richness of the tune’s low end.

Even compared to a strong portable rival, like the FiiO BTR17, the iFi iDSD GR 2 proved to be exceptional. In Felini by Venerus and Marco Castello, the trickling of water was true-to-life and acoustic guitars were expertly separated from emotive vocals. On that subject, iFi’s model just added a bit more detail and depth to the vocals compared to its (still impressive) FiiO rival. The GR 2 exhibited a markedly delicate, raw quality with the vocals and I felt as if I was getting the sort of listening experience the artists had intended.

The capability of the GR 2 to serve up punchy bass, articulate mids, and expressive treble while maintaining such excellent balance across the frequency range has to be applauded. Combining this with its nuanced and precise soundstage — with or without XSpace — and impressive handling of dynamics, it truly feels like the full package.

What’s more, the GR 2 has around 50% more power to drive headphones with (up to 1,513mW RMS) than its predecessor, but it still offers even greater dynamic range and less distortion. So, whether you’re looking to upgrade from the OG Gryphon or get a portable DAC/amp with serious audiophile credentials, I think the GR 2 is one of the best options on the market right now.

  • Sound quality score: 5/5

(Image credit: Future)iFi iDSD GR 2 review: design
  • Excellent OLED touchscreen display
  • Lightweight and pretty portable
  • Case can be purchased separately

In terms of design, the iFi iDSD GR 2 is a considerable upgrade over its predecessor, largely as a result of one major change: its touchscreen.

Not only is the OLED color display vivid and clear, but it's incredibly easy and intuitive to use. The touchscreen is responsive and enables you to easily make any changes you want or switch to a different source. You can also adjust the screen’s brightness to your liking, or lock the screen entirely if you want to prevent accidental commands.

Otherwise, the GR 2 has all of the qualities you’d want from a portable DAC/amp. It’s lightweight (at just 0.6 lbs / 268g), has a wide range of connectivity ports, and has a good standard of build. It also has a tactile volume control knob with a small set of physical buttons — all of which are well-sized and effective.

Some may find that there are more ‘portable’ options out there. The FiiO BTR17 I compared to the GR 2 has a considerably smaller footprint, and will fit in just about any pocket. But for the tech stuffed inside iFi’s new model, I’d still argue it’s portable enough, and I had no issue slotting it into my short pockets or a small bag. Oh, and in case you're wondering, no, my review sample never ran hot — not that the OG did either, you understand, but it's often a question we're asked. These products bear plenty of power squirrelled away within a small enclosure, so it's important to mention.

The only thing I would have liked is a case, which has to be purchased separately. But otherwise, the GR 2 is a certified hit in the design category.

  • Design score: 4.5/5

(Image credit: Future)iFi iDSD GR 2 review: setup & usability
  • Incredibly easy to get set up and started
  • iFi Nexis app only adds more seamless usability
  • Easy to use interface

The iFi iDSD GR 2 is incredibly easy to start using. Just power the device on and it’s ready to go — no overlong login process, no confusing pairing requests, just plug and play design at its best.

Even if you’re not a seasoned user of DACs or amps, everything is labelled clearly, making it very simple to navigate. The iFi Nexis app also helps you tap into any settings you need on the fly, only heightening the device’s versatility.

  • Setup & usability score: 5/5

(Image credit: Future)iFi iDSD GR 2 review: value
  • Not the cheapest option around, but still great value
  • Less pricey than predecessor at launch
  • Impeccable all around quality makes it feel worth the investment

Look, I’m not going to pretend that the GR 2 is a cheap piece of tech. It comes in at $529 / £529 / AU$849, which is a considerable investment to make into your audio setup — but I still think it more than earns its price.

First of all, it's cheaper than its predecessor at launch, but offers 50% more amplification power, a much-improved user interface, K2HD tech, and more. It does all of this while remaining highly portable and delivering stellar sound, and there can be no doubts over the quality you get in return for your outlay.

Yes, you could grab a model like the aforementioned FiiO BTR17 for around $219 / £179 / AU$349, and while that’s a nifty small pick with strong performance and features to match, it can’t deliver the depth of the GR 2, which stuns with its excellent sound filters, wide connectivity options, top-tier audio, and mighty portable power.

  • Value score: 5/5

(Image credit: Future)Should I buy the iFi iDSD GR 2?

Attribute

Notes

Score

Features

Excellent new display, K2HD and XBass / XSpace work a treat, neat adaptive power with upgraded battery capacity.

5/5

Sound quality

Balanced, layered, precise sound with beautiful detail from K2HD with tasteful bass and soundstage boost options.

5/5

Design

Fantastic touchscreen display, great build quality, lightweight, would be even better with a case bundled in.

4.5/5

Setup & usability

Quick setup, easy to use interface, neat control app.

5/5

Value

More affordable than its predecessor while meaningfully improving upon it in almost every way.

5/5

Buy it if…

You need a powerful and portable amplification solution
The GR 2 provides around 50% more output power than its predecessor, meaning it can fuel some harder-to-drive headphones, and even some speakers. So, if you need a powerful amplification tool to take on the go, look no further.

You're looking for premium performance
I was wowed by the quality on offer from the iFi iDSD GR 2. Music sounds textured and layered, especially with K2HD tech activated. If you want premium on-the-go performance, this is the model I’d go for.

Don’t buy it if…

You’re on a budget
Although it still offers great value for money, there’s no denying that the iFi iDSD GR 2 is quite the investment. In addition, there are plenty of lower-priced alternatives that we’ve rated highly — if you’re interested, check out the ‘also consider’ section.

You want an ultra-compact model
The GR 2 is still a very portable device, and will slot into some pockets and any small bag. But there are even more compact alternatives out there, like the FiiO BTR17, for instance.

iFi iDSD GR 2 review: also consider

Chord Mojo 2
The Chord Mojo 2 provides phenomenal audio quality, which we described as “eloquent, engaging and endlessly listenable” in our glowing five star review. It also offers plenty of connectivity options, strong build quality, and a standout design. It doesn’t have the most intuitive interface, though. Read our full Chord Mojo 2 review.

FiiO BTR17
The tiny FiiO BTR17 is a great little DAC/amp. I used it as a point of comparison for the GR 2, and while iFi’s model sounds a bit more nuanced, FiiO’s rival is still a fantastic sounding option, with a tiny footprint, stylish look, and wireless connectivity. Read our full FiiO BTR17 review.

How I tested the iFi iDSD GR 2

(Image credit: Future)
  • Tested across multiple days
  • Used with Sennheiser HD 600, Beyerdynamic IEMs, and more
  • Compared against rival model

I spent multiple days intensively testing the iFi iDSD GR 2, during which time I spent countless hours listening to music and exhausting its various features.

Most of the time, I used the Sennheiser HD 600 headphones to test the GR 2 out, although I did also use a few pairs of IEMs from the likes of Beyerdynamic. I used the Astell & Kern A&ultima SP4000 as my main source device, and played a range of file types. And when listening to music, I tuned into tracks from a wide variety of genres, and made sure to compare the GR 2 against a rival from FiiO.

More generally, I’ve spent years testing audio gear here at TechRadar, where I serve as a resident Senior Reviews Writer. I’ve reviewed a range of products, from hulking party speakers like the Marshall Bromley 750 through to reference-grade IEMs, like the Sennheiser IE 600.

Categories: Reviews

Pages